@mgdis/stencil-helpers 2.2.3 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +210 -299
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/dist/tests/unit.d.ts.map +1 -1
- package/package.json +10 -10
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/index.ts","../../../node_modules/.pnpm/@stencil+core@4.25.1/node_modules/@stencil/core/internal/app-data/index.js","../../../node_modules/.pnpm/@stencil+core@4.25.1/node_modules/@stencil/core/internal/client/index.js","../src/storybook/index.ts","../src/ide/index.ts","../src/locale/index.ts","../src/tests/unit.ts"],"sourcesContent":["/**\n * Create random ID\n * @param prefix - add prefix to created ID\n * @param length - ID length\n * @returns ID\n */\nexport const createID = (prefix = '', length = 10): string => {\n const randomBytes = new Uint8Array(length);\n\n crypto.getRandomValues(randomBytes);\n\n const hexString = Array.from(randomBytes)\n .map(byte => byte.toString(16).padStart(2, '0'))\n .join('')\n .slice(0, length);\n\n return prefix !== '' ? `${prefix}-${hexString}` : hexString;\n};\n\n/**\n * Validate html `id` format\n * @param newValue - id value to validate\n * @returns true if `id` is valid\n */\nexport const isValideID = (newValue: unknown): boolean => isValidString(newValue) && /^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.exec(newValue) !== null;\n\n/**\n * Class to manage component classlist\n */\nexport class ClassList {\n /**\n * Available classes\n */\n classes: string[];\n\n constructor(classlist: string[] = []) {\n this.classes = classlist;\n }\n\n /**\n * Add class\n * @param className - class name to add\n */\n add = (className: string): void => {\n if (!this.has(className)) {\n this.classes.push(className);\n }\n };\n\n /**\n * Delete class\n * @param className - class name to delete\n */\n delete = (className: string): void => {\n const index = this.classes.indexOf(className);\n if (index > -1) {\n this.classes.splice(index, 1);\n }\n };\n\n /**\n * Check if class exist in list\n * @param className - class name to check\n * @returns class name is in the list\n */\n has = (className: string): boolean => {\n return this.classes.includes(className);\n };\n\n /**\n * Join classes seperated by spaces\n * @returns joined values\n */\n join = (): string => {\n return this.classes.join(' ');\n };\n}\n\n/**\n * Typeguard function to check if all array items are strings.\n * @param items - items to check\n * @returns `true` if all items are strings\n */\nexport const allItemsAreString = (items: unknown): items is string[] => Array.isArray(items) && items.every(item => typeof item === 'string');\n\n/**\n * Check if element belongs to the given tagNames list\n * @param element - element to check\n * @param tagNames - allowed tag names list\n * @returns `true` if element tagName is in the tagNames list\n */\nexport const isTagName = (element: Element, tagNames: string[]): boolean => {\n return tagNames.includes(element?.tagName.toLowerCase());\n};\n\n/**\n * CSS selector to select focusable elements.\n * @example\n * ```ts\n * const allFocusableElements: HTMLElement[] = Array.from(this.element.querySelectorAll(focusableElements));\n * ```\n */\nexport const focusableElements = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]), [identifier], mg-button';\n\n/**\n * Get windows\n * @param localWindow - the window we are lookink for other windows\n * @returns The list of windows found\n */\nexport const getWindows = (localWindow: Window): Window[] => {\n const parentWindows = getParentWindows(localWindow);\n const childWindows = getChildWindows(localWindow);\n return [localWindow, ...parentWindows, ...childWindows];\n};\n\n/**\n * Get parent windows\n * @param localWindow - the window we are lookink for parents\n * @param windows - The list of allready found windows\n * @returns The list of windows found\n */\nexport const getParentWindows = (localWindow: Window, windows: Window[] = []): Window[] => {\n // Check if is in iframe\n if (localWindow.self !== localWindow.top) {\n // Check if we have permission to access parent\n try {\n const parentWindow: Window = localWindow.parent;\n if (parentWindow) {\n windows.push(parentWindow);\n return getParentWindows(parentWindow, windows);\n } else return windows;\n } catch (err) {\n console.error('Different hosts between iframes:', err);\n return windows;\n }\n }\n return windows;\n};\n\n/**\n * Get child windows\n * @param localWindow - the window we are lookink for children\n * @param windows - The list of allready found windows\n * @returns The list of windows found\n */\nconst getChildWindows = (localWindow: Window, windows: Window[] = []): Window[] => {\n if (localWindow.frames.length > 0) {\n for (const childWindow of Array.from(localWindow.frames)) {\n windows.push(childWindow);\n getChildWindows(childWindow, windows);\n }\n }\n return windows;\n};\n\n/**\n * Validate string\n * @param value - value to check\n * @returns `true` if string is valid\n */\nexport const isValidString = (value: unknown): value is string => typeof value === 'string' && value.trim() !== '';\n\n/**\n * Stringify value\n * @param value - value to stringify\n * @returns stringified value\n */\nexport const toString = (value: unknown): string => {\n if (typeof value === 'object') return JSON.stringify(value);\n else return `${value}`;\n};\n\n/**\n * Validate number\n * @param value - value to check\n * @returns `true` if number is valid\n */\nexport const isValidNumber = (value: unknown): value is number => typeof value === 'number' && !Number.isNaN(value);\n\n/**\n * Cleans string characters by removing special characters and converting to lowercase.\n * @param text - text to clean\n * @returns cleaned string\n * @example\n * ```ts\n * cleanString('âäàçéèêñù') // 'aaaceeenu'\n * cleanString('BATMAN') // 'batman'\n * ```\n */\nexport const cleanString = (text: string): string =>\n typeof text === 'string'\n ? text\n .toLocaleLowerCase()\n .normalize('NFD')\n .replaceAll(/[\\u0300-\\u036f]/g, '')\n : text;\n\n/**\n * Use to process code next tick in the event loop\n * @param callback - code to excute on next tick\n * @returns differed code excution\n */\nexport const nextTick = async (callback: () => void): Promise<void> => callback();\n","// src/app-data/index.ts\nvar BUILD = {\n allRenderFn: false,\n cmpDidLoad: true,\n cmpDidUnload: false,\n cmpDidUpdate: true,\n cmpDidRender: true,\n cmpWillLoad: true,\n cmpWillUpdate: true,\n cmpWillRender: true,\n connectedCallback: true,\n disconnectedCallback: true,\n element: true,\n event: true,\n hasRenderFn: true,\n lifecycle: true,\n hostListener: true,\n hostListenerTargetWindow: true,\n hostListenerTargetDocument: true,\n hostListenerTargetBody: true,\n hostListenerTargetParent: false,\n hostListenerTarget: true,\n member: true,\n method: true,\n mode: true,\n observeAttribute: true,\n prop: true,\n propMutable: true,\n reflect: true,\n scoped: true,\n shadowDom: true,\n slot: true,\n cssAnnotations: true,\n state: true,\n style: true,\n formAssociated: false,\n svg: true,\n updatable: true,\n vdomAttribute: true,\n vdomXlink: true,\n vdomClass: true,\n vdomFunctional: true,\n vdomKey: true,\n vdomListener: true,\n vdomRef: true,\n vdomPropOrAttr: true,\n vdomRender: true,\n vdomStyle: true,\n vdomText: true,\n watchCallback: true,\n taskQueue: true,\n hotModuleReplacement: false,\n isDebug: false,\n isDev: false,\n isTesting: false,\n hydrateServerSide: false,\n hydrateClientSide: false,\n lifecycleDOMEvents: false,\n lazyLoad: false,\n profile: false,\n slotRelocation: true,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n appendChildSlotFix: false,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n cloneNodeFix: false,\n hydratedAttribute: false,\n hydratedClass: true,\n // TODO(STENCIL-1305): remove this option\n scriptDataOpts: false,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n scopedSlotTextContentFix: false,\n // TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n shadowDomShim: false,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n slotChildNodesFix: false,\n invisiblePrehydration: true,\n propBoolean: true,\n propNumber: true,\n propString: true,\n constructableCSS: true,\n cmpShouldUpdate: true,\n devTools: false,\n shadowDelegatesFocus: true,\n initializeNextTick: false,\n asyncLoading: true,\n asyncQueue: false,\n transformTagName: false,\n attachStyles: true,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n experimentalSlotFixes: false\n};\nvar Env = {};\nvar NAMESPACE = (\n /* default */\n \"app\"\n);\nexport {\n BUILD,\n Env,\n NAMESPACE\n};\n","/*\n Stencil Client Platform v4.25.1 | MIT Licensed | https://stenciljs.com\n */\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/client/client-build.ts\nimport { BUILD } from \"@stencil/core/internal/app-data\";\nvar Build = {\n isDev: BUILD.isDev ? true : false,\n isBrowser: true,\n isServer: false,\n isTesting: BUILD.isTesting ? true : false\n};\n\n// src/client/client-host-ref.ts\nimport { BUILD as BUILD3 } from \"@stencil/core/internal/app-data\";\n\n// src/utils/es2022-rewire-class-members.ts\nimport { BUILD as BUILD2 } from \"@stencil/core/internal/app-data\";\n\n// src/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\n\n// src/utils/es2022-rewire-class-members.ts\nvar reWireGetterSetter = (instance, hostRef) => {\n var _a;\n const cmpMeta = hostRef.$cmpMeta$;\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD2.state || BUILD2.prop) && (memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(instance), memberName);\n Object.defineProperty(instance, memberName, {\n get() {\n return ogDescriptor.get.call(this);\n },\n set(newValue) {\n ogDescriptor.set.call(this, newValue);\n },\n configurable: true,\n enumerable: true\n });\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\n\n// src/client/client-host-ref.ts\nvar hostRefs = BUILD3.hotModuleReplacement ? window.__STENCIL_HOSTREFS__ || (window.__STENCIL_HOSTREFS__ = /* @__PURE__ */ new WeakMap()) : /* @__PURE__ */ new WeakMap();\nvar deleteHostRef = (ref) => hostRefs.delete(ref);\nvar getHostRef = (ref) => hostRefs.get(ref);\nvar registerInstance = (lazyInstance, hostRef) => {\n hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);\n if (BUILD3.modernPropertyDecls && (BUILD3.state || BUILD3.prop)) {\n reWireGetterSetter(lazyInstance, hostRef);\n }\n};\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map()\n };\n if (BUILD3.isDev) {\n hostRef.$renderCount$ = 0;\n }\n if (BUILD3.method && BUILD3.lazyLoad) {\n hostRef.$onInstancePromise$ = new Promise((r) => hostRef.$onInstanceResolve$ = r);\n }\n if (BUILD3.asyncLoading) {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n const ref = hostRefs.set(hostElement, hostRef);\n if (!BUILD3.lazyLoad && BUILD3.modernPropertyDecls && (BUILD3.state || BUILD3.prop)) {\n reWireGetterSetter(hostElement, hostRef);\n }\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\n\n// src/client/client-load-module.ts\nimport { BUILD as BUILD5 } from \"@stencil/core/internal/app-data\";\n\n// src/client/client-log.ts\nimport { BUILD as BUILD4 } from \"@stencil/core/internal/app-data\";\nvar customError;\nvar consoleError = (e, el) => (customError || console.error)(e, el);\nvar STENCIL_DEV_MODE = BUILD4.isTesting ? [\"STENCIL:\"] : [\n \"%cstencil\",\n \"color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px\"\n];\nvar consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m);\nvar consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m);\nvar consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m);\nvar setErrorHandler = (handler) => customError = handler;\n\n// src/client/client-load-module.ts\nvar cmpModules = /* @__PURE__ */ new Map();\nvar MODULE_IMPORT_PREFIX = \"./\";\nvar loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n const exportName = cmpMeta.$tagName$.replace(/-/g, \"_\");\n const bundleId = cmpMeta.$lazyBundleId$;\n if (BUILD5.isDev && typeof bundleId !== \"string\") {\n consoleDevError(\n `Trying to lazily load component <${cmpMeta.$tagName$}> with style mode \"${hostRef.$modeName$}\", but it does not exist.`\n );\n return void 0;\n } else if (!bundleId) {\n return void 0;\n }\n const module = !BUILD5.hotModuleReplacement ? cmpModules.get(bundleId) : false;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${BUILD5.hotModuleReplacement && hmrVersionId ? \"?s-hmr=\" + hmrVersionId : \"\"}`\n ).then(\n (importedModule) => {\n if (!BUILD5.hotModuleReplacement) {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n },\n (e) => {\n consoleError(e, hostRef.$hostElement$);\n }\n );\n};\n\n// src/client/client-style.ts\nvar styles = /* @__PURE__ */ new Map();\nvar modeResolutionChain = [];\n\n// src/client/client-task-queue.ts\nimport { BUILD as BUILD7 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/runtime-constants.ts\nvar CONTENT_REF_ID = \"r\";\nvar ORG_LOCATION_ID = \"o\";\nvar SLOT_NODE_ID = \"s\";\nvar TEXT_NODE_ID = \"t\";\nvar COMMENT_NODE_ID = \"c\";\nvar HYDRATE_ID = \"s-id\";\nvar HYDRATED_STYLE_ID = \"sty-id\";\nvar HYDRATE_CHILD_ID = \"c-id\";\nvar HYDRATED_CSS = \"{visibility:hidden}.hydrated{visibility:inherit}\";\nvar STENCIL_DOC_DATA = \"_stencilDocData\";\nvar DEFAULT_DOC_DATA = {\n hostIds: 0,\n rootLevelIds: 0,\n staticComponents: /* @__PURE__ */ new Set()\n};\nvar SLOT_FB_CSS = \"slot-fb{display:contents}slot-fb[hidden]{display:none}\";\nvar XLINK_NS = \"http://www.w3.org/1999/xlink\";\nvar FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS = [\n \"formAssociatedCallback\",\n \"formResetCallback\",\n \"formDisabledCallback\",\n \"formStateRestoreCallback\"\n];\n\n// src/client/client-window.ts\nimport { BUILD as BUILD6 } from \"@stencil/core/internal/app-data\";\nvar win = typeof window !== \"undefined\" ? window : {};\nvar doc = win.document || { head: {} };\nvar H = win.HTMLElement || class {\n};\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: \"\",\n jmp: (h2) => h2(),\n raf: (h2) => requestAnimationFrame(h2),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts)\n};\nvar setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nvar supportsShadow = BUILD6.shadowDom;\nvar supportsListenerOptions = /* @__PURE__ */ (() => {\n let supportsListenerOptions2 = false;\n try {\n doc.addEventListener(\n \"e\",\n null,\n Object.defineProperty({}, \"passive\", {\n get() {\n supportsListenerOptions2 = true;\n }\n })\n );\n } catch (e) {\n }\n return supportsListenerOptions2;\n})();\nvar promiseResolve = (v) => Promise.resolve(v);\nvar supportsConstructableStylesheets = BUILD6.constructableCSS ? /* @__PURE__ */ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === \"function\";\n } catch (e) {\n }\n return false;\n})() : false;\n\n// src/client/client-task-queue.ts\nvar queueCongestion = 0;\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueDomWritesLow = [];\nvar queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n } else {\n plt.raf(flush);\n }\n }\n};\nvar consume = (queue) => {\n for (let i2 = 0; i2 < queue.length; i2++) {\n try {\n queue[i2](performance.now());\n } catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar consumeTimeout = (queue, timeout) => {\n let i2 = 0;\n let ts = 0;\n while (i2 < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i2++](ts);\n } catch (e) {\n consoleError(e);\n }\n }\n if (i2 === queue.length) {\n queue.length = 0;\n } else if (i2 !== 0) {\n queue.splice(0, i2);\n }\n};\nvar flush = () => {\n if (BUILD7.asyncQueue) {\n queueCongestion++;\n }\n consume(queueDomReads);\n if (BUILD7.asyncQueue) {\n const timeout = (plt.$flags$ & 6 /* queueMask */) === 2 /* appLoaded */ ? performance.now() + 14 * Math.ceil(queueCongestion * (1 / 10)) : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push(...queueDomWrites);\n queueDomWrites.length = 0;\n }\n if (queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0) {\n plt.raf(flush);\n } else {\n queueCongestion = 0;\n }\n } else {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar readTask = /* @__PURE__ */ queueTask(queueDomReads, false);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\n\n// src/client/index.ts\nimport { BUILD as BUILD29, Env, NAMESPACE as NAMESPACE2 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/asset-path.ts\nvar getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nvar setAssetPath = (path) => plt.$resourcesUrl$ = path;\n\n// src/runtime/bootstrap-custom-element.ts\nimport { BUILD as BUILD26 } from \"@stencil/core/internal/app-data\";\n\n// src/utils/helpers.ts\nvar isDef = (v) => v != null && v !== void 0;\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// src/utils/query-nonce-meta-tag-content.ts\nfunction queryNonceMetaTagContent(doc2) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc2.head) == null ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) == null ? void 0 : _b.getAttribute(\"content\")) != null ? _c : void 0;\n}\n\n// src/utils/result.ts\nvar result_exports = {};\n__export(result_exports, {\n err: () => err,\n map: () => map,\n ok: () => ok,\n unwrap: () => unwrap,\n unwrapErr: () => unwrapErr\n});\nvar ok = (value) => ({\n isOk: true,\n isErr: false,\n value\n});\nvar err = (value) => ({\n isOk: false,\n isErr: true,\n value\n});\nfunction map(result, fn) {\n if (result.isOk) {\n const val = fn(result.value);\n if (val instanceof Promise) {\n return val.then((newVal) => ok(newVal));\n } else {\n return ok(val);\n }\n }\n if (result.isErr) {\n const value = result.value;\n return err(value);\n }\n throw \"should never get here\";\n}\nvar unwrap = (result) => {\n if (result.isOk) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar unwrapErr = (result) => {\n if (result.isErr) {\n return result.value;\n } else {\n throw result.value;\n }\n};\n\n// src/runtime/connected-callback.ts\nimport { BUILD as BUILD24 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/client-hydrate.ts\nimport { BUILD as BUILD12 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/dom-extras.ts\nimport { BUILD as BUILD9 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/slot-polyfill-utils.ts\nimport { BUILD as BUILD8 } from \"@stencil/core/internal/app-data\";\nvar updateFallbackSlotVisibility = (elm) => {\n const childNodes = elm.__childNodes || elm.childNodes;\n if (elm.tagName && elm.tagName.includes(\"-\") && elm[\"s-cr\"] && elm.tagName !== \"SLOT-FB\") {\n getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {\n var _a;\n if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === \"SLOT-FB\") {\n if ((_a = getHostSlotChildNodes(slotNode, slotNode[\"s-sn\"], false)) == null ? void 0 : _a.length) {\n slotNode.hidden = true;\n } else {\n slotNode.hidden = false;\n }\n }\n });\n }\n for (const childNode of childNodes) {\n if (childNode.nodeType === 1 /* ElementNode */ && (childNode.__childNodes || childNode.childNodes).length) {\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nvar getSlottedChildNodes = (childNodes) => {\n const result = [];\n for (let i2 = 0; i2 < childNodes.length; i2++) {\n const slottedNode = childNodes[i2][\"s-nr\"] || void 0;\n if (slottedNode && slottedNode.isConnected) {\n result.push(slottedNode);\n }\n }\n return result;\n};\nfunction getHostSlotNodes(childNodes, hostName, slotName) {\n let i2 = 0;\n let slottedNodes = [];\n let childNode;\n for (; i2 < childNodes.length; i2++) {\n childNode = childNodes[i2];\n if (childNode[\"s-sr\"] && childNode[\"s-hn\"] === hostName && (slotName === void 0 || childNode[\"s-sn\"] === slotName)) {\n slottedNodes.push(childNode);\n if (typeof slotName !== \"undefined\") return slottedNodes;\n }\n slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];\n }\n return slottedNodes;\n}\nvar getHostSlotChildNodes = (node, slotName, includeSlot = true) => {\n const childNodes = [];\n if (includeSlot && node[\"s-sr\"] || !node[\"s-sr\"]) childNodes.push(node);\n while ((node = node.nextSibling) && node[\"s-sn\"] === slotName) {\n childNodes.push(node);\n }\n return childNodes;\n};\nvar isNodeLocatedInSlot = (nodeToRelocate, slotName) => {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (nodeToRelocate.getAttribute(\"slot\") === null && slotName === \"\") {\n return true;\n }\n if (nodeToRelocate.getAttribute(\"slot\") === slotName) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate[\"s-sn\"] === slotName) {\n return true;\n }\n return slotName === \"\";\n};\nvar addSlotRelocateNode = (newChild, slotNode, prepend, position) => {\n let slottedNodeLocation;\n if (newChild[\"s-ol\"] && newChild[\"s-ol\"].isConnected) {\n slottedNodeLocation = newChild[\"s-ol\"];\n } else {\n slottedNodeLocation = document.createTextNode(\"\");\n slottedNodeLocation[\"s-nr\"] = newChild;\n }\n if (!slotNode[\"s-cr\"] || !slotNode[\"s-cr\"].parentNode) return;\n const parent = slotNode[\"s-cr\"].parentNode;\n const appendMethod = prepend ? parent.__prepend || parent.prepend : parent.__appendChild || parent.appendChild;\n if (typeof position !== \"undefined\") {\n if (BUILD8.hydrateClientSide) {\n slottedNodeLocation[\"s-oo\"] = position;\n const childNodes = parent.__childNodes || parent.childNodes;\n const slotRelocateNodes = [slottedNodeLocation];\n childNodes.forEach((n) => {\n if (n[\"s-nr\"]) slotRelocateNodes.push(n);\n });\n slotRelocateNodes.sort((a, b) => {\n if (!a[\"s-oo\"] || a[\"s-oo\"] < b[\"s-oo\"]) return -1;\n else if (!b[\"s-oo\"] || b[\"s-oo\"] < a[\"s-oo\"]) return 1;\n return 0;\n });\n slotRelocateNodes.forEach((n) => appendMethod.call(parent, n));\n }\n } else {\n appendMethod.call(parent, slottedNodeLocation);\n }\n newChild[\"s-ol\"] = slottedNodeLocation;\n newChild[\"s-sh\"] = slotNode[\"s-hn\"];\n};\nvar getSlotName = (node) => node[\"s-sn\"] || node.nodeType === 1 && node.getAttribute(\"slot\") || \"\";\n\n// src/runtime/dom-extras.ts\nvar patchPseudoShadowDom = (hostElementPrototype) => {\n patchCloneNode(hostElementPrototype);\n patchSlotAppendChild(hostElementPrototype);\n patchSlotAppend(hostElementPrototype);\n patchSlotPrepend(hostElementPrototype);\n patchSlotInsertAdjacentElement(hostElementPrototype);\n patchSlotInsertAdjacentHTML(hostElementPrototype);\n patchSlotInsertAdjacentText(hostElementPrototype);\n patchInsertBefore(hostElementPrototype);\n patchTextContent(hostElementPrototype);\n patchChildSlotNodes(hostElementPrototype);\n patchSlotRemoveChild(hostElementPrototype);\n};\nvar patchCloneNode = (HostElementPrototype) => {\n const orgCloneNode = HostElementPrototype.cloneNode;\n HostElementPrototype.cloneNode = function(deep) {\n const srcNode = this;\n const isShadowDom = BUILD9.shadowDom ? srcNode.shadowRoot && supportsShadow : false;\n const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false);\n if (BUILD9.slot && !isShadowDom && deep) {\n let i2 = 0;\n let slotted, nonStencilNode;\n const stencilPrivates = [\n \"s-id\",\n \"s-cr\",\n \"s-lr\",\n \"s-rc\",\n \"s-sc\",\n \"s-p\",\n \"s-cn\",\n \"s-sr\",\n \"s-sn\",\n \"s-hn\",\n \"s-ol\",\n \"s-nr\",\n \"s-si\",\n \"s-rf\",\n \"s-scs\"\n ];\n const childNodes = this.__childNodes || this.childNodes;\n for (; i2 < childNodes.length; i2++) {\n slotted = childNodes[i2][\"s-nr\"];\n nonStencilNode = stencilPrivates.every((privateField) => !childNodes[i2][privateField]);\n if (slotted) {\n if (BUILD9.appendChildSlotFix && clonedNode.__appendChild) {\n clonedNode.__appendChild(slotted.cloneNode(true));\n } else {\n clonedNode.appendChild(slotted.cloneNode(true));\n }\n }\n if (nonStencilNode) {\n clonedNode.appendChild(childNodes[i2].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nvar patchSlotAppendChild = (HostElementPrototype) => {\n HostElementPrototype.__appendChild = HostElementPrototype.appendChild;\n HostElementPrototype.appendChild = function(newChild) {\n const slotName = newChild[\"s-sn\"] = getSlotName(newChild);\n const slotNode = getHostSlotNodes(this.__childNodes || this.childNodes, this.tagName, slotName)[0];\n if (slotNode) {\n addSlotRelocateNode(newChild, slotNode);\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[slotChildNodes.length - 1];\n const parent = intrnlCall(appendAfter, \"parentNode\");\n let insertedNode;\n if (parent.__insertBefore) {\n insertedNode = parent.__insertBefore(newChild, appendAfter.nextSibling);\n } else {\n insertedNode = parent.insertBefore(newChild, appendAfter.nextSibling);\n }\n updateFallbackSlotVisibility(this);\n return insertedNode;\n }\n return this.__appendChild(newChild);\n };\n};\nvar patchSlotRemoveChild = (ElementPrototype) => {\n ElementPrototype.__removeChild = ElementPrototype.removeChild;\n ElementPrototype.removeChild = function(toRemove) {\n if (toRemove && typeof toRemove[\"s-sn\"] !== \"undefined\") {\n const childNodes = this.__childNodes || this.childNodes;\n const slotNode = getHostSlotNodes(childNodes, this.tagName, toRemove[\"s-sn\"]);\n if (slotNode && toRemove.isConnected) {\n toRemove.remove();\n updateFallbackSlotVisibility(this);\n return;\n }\n }\n return this.__removeChild(toRemove);\n };\n};\nvar patchSlotPrepend = (HostElementPrototype) => {\n HostElementPrototype.__prepend = HostElementPrototype.prepend;\n HostElementPrototype.prepend = function(...newChildren) {\n newChildren.forEach((newChild) => {\n if (typeof newChild === \"string\") {\n newChild = this.ownerDocument.createTextNode(newChild);\n }\n const slotName = newChild[\"s-sn\"] = getSlotName(newChild);\n const childNodes = this.__childNodes || this.childNodes;\n const slotNode = getHostSlotNodes(childNodes, this.tagName, slotName)[0];\n if (slotNode) {\n addSlotRelocateNode(newChild, slotNode, true);\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[0];\n const parent = intrnlCall(appendAfter, \"parentNode\");\n if (parent.__insertBefore) {\n return parent.__insertBefore(newChild, intrnlCall(appendAfter, \"nextSibling\"));\n } else {\n return parent.insertBefore(newChild, intrnlCall(appendAfter, \"nextSibling\"));\n }\n }\n if (newChild.nodeType === 1 && !!newChild.getAttribute(\"slot\")) {\n newChild.hidden = true;\n }\n return HostElementPrototype.__prepend(newChild);\n });\n };\n};\nvar patchSlotAppend = (HostElementPrototype) => {\n HostElementPrototype.__append = HostElementPrototype.append;\n HostElementPrototype.append = function(...newChildren) {\n newChildren.forEach((newChild) => {\n if (typeof newChild === \"string\") {\n newChild = this.ownerDocument.createTextNode(newChild);\n }\n this.appendChild(newChild);\n });\n };\n};\nvar patchSlotInsertAdjacentHTML = (HostElementPrototype) => {\n const originalInsertAdjacentHtml = HostElementPrototype.insertAdjacentHTML;\n HostElementPrototype.insertAdjacentHTML = function(position, text) {\n if (position !== \"afterbegin\" && position !== \"beforeend\") {\n return originalInsertAdjacentHtml.call(this, position, text);\n }\n const container = this.ownerDocument.createElement(\"_\");\n let node;\n container.innerHTML = text;\n if (position === \"afterbegin\") {\n while (node = container.firstChild) {\n this.prepend(node);\n }\n } else if (position === \"beforeend\") {\n while (node = container.firstChild) {\n this.append(node);\n }\n }\n };\n};\nvar patchSlotInsertAdjacentText = (HostElementPrototype) => {\n HostElementPrototype.insertAdjacentText = function(position, text) {\n this.insertAdjacentHTML(position, text);\n };\n};\nvar patchInsertBefore = (HostElementPrototype) => {\n const eleProto = HostElementPrototype;\n if (eleProto.__insertBefore) return;\n eleProto.__insertBefore = HostElementPrototype.insertBefore;\n HostElementPrototype.insertBefore = function(newChild, currentChild) {\n const slotName = newChild[\"s-sn\"] = getSlotName(newChild);\n const slotNode = getHostSlotNodes(this.__childNodes, this.tagName, slotName)[0];\n const slottedNodes = this.__childNodes ? this.childNodes : getSlottedChildNodes(this.childNodes);\n if (slotNode) {\n let found = false;\n slottedNodes.forEach((childNode) => {\n if (childNode === currentChild || currentChild === null) {\n found = true;\n if (currentChild === null || slotName !== currentChild[\"s-sn\"]) {\n this.appendChild(newChild);\n return;\n }\n if (slotName === currentChild[\"s-sn\"]) {\n addSlotRelocateNode(newChild, slotNode);\n const parent = intrnlCall(currentChild, \"parentNode\");\n if (parent.__insertBefore) {\n parent.__insertBefore(newChild, currentChild);\n } else {\n parent.insertBefore(newChild, currentChild);\n }\n }\n return;\n }\n });\n if (found) return newChild;\n }\n return this.__insertBefore(newChild, currentChild);\n };\n};\nvar patchSlotInsertAdjacentElement = (HostElementPrototype) => {\n const originalInsertAdjacentElement = HostElementPrototype.insertAdjacentElement;\n HostElementPrototype.insertAdjacentElement = function(position, element) {\n if (position !== \"afterbegin\" && position !== \"beforeend\") {\n return originalInsertAdjacentElement.call(this, position, element);\n }\n if (position === \"afterbegin\") {\n this.prepend(element);\n return element;\n } else if (position === \"beforeend\") {\n this.append(element);\n return element;\n }\n return element;\n };\n};\nvar patchTextContent = (hostElementPrototype) => {\n patchHostOriginalAccessor(\"textContent\", hostElementPrototype);\n Object.defineProperty(hostElementPrototype, \"textContent\", {\n get: function() {\n let text = \"\";\n const childNodes = this.__childNodes ? this.childNodes : getSlottedChildNodes(this.childNodes);\n childNodes.forEach((node) => text += node.textContent || \"\");\n return text;\n },\n set: function(value) {\n const childNodes = this.__childNodes ? this.childNodes : getSlottedChildNodes(this.childNodes);\n childNodes.forEach((node) => {\n if (node[\"s-ol\"]) node[\"s-ol\"].remove();\n node.remove();\n });\n this.insertAdjacentHTML(\"beforeend\", value);\n }\n });\n};\nvar patchChildSlotNodes = (elm) => {\n class FakeNodeList extends Array {\n item(n) {\n return this[n];\n }\n }\n patchHostOriginalAccessor(\"children\", elm);\n Object.defineProperty(elm, \"children\", {\n get() {\n return this.childNodes.filter((n) => n.nodeType === 1);\n }\n });\n Object.defineProperty(elm, \"childElementCount\", {\n get() {\n return this.children.length;\n }\n });\n patchHostOriginalAccessor(\"firstChild\", elm);\n Object.defineProperty(elm, \"firstChild\", {\n get() {\n return this.childNodes[0];\n }\n });\n patchHostOriginalAccessor(\"lastChild\", elm);\n Object.defineProperty(elm, \"lastChild\", {\n get() {\n return this.childNodes[this.childNodes.length - 1];\n }\n });\n patchHostOriginalAccessor(\"childNodes\", elm);\n Object.defineProperty(elm, \"childNodes\", {\n get() {\n const result = new FakeNodeList();\n result.push(...getSlottedChildNodes(this.__childNodes));\n return result;\n }\n });\n};\nvar patchSlottedNode = (node) => {\n if (!node || node.__nextSibling || !globalThis.Node) return;\n patchNextSibling(node);\n patchPreviousSibling(node);\n patchParentNode(node);\n if (node.nodeType === Node.ELEMENT_NODE) {\n patchNextElementSibling(node);\n patchPreviousElementSibling(node);\n }\n};\nvar patchNextSibling = (node) => {\n if (!node || node.__nextSibling) return;\n patchHostOriginalAccessor(\"nextSibling\", node);\n Object.defineProperty(node, \"nextSibling\", {\n get: function() {\n var _a;\n const parentNodes = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.childNodes;\n const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);\n if (parentNodes && index > -1) {\n return parentNodes[index + 1];\n }\n return this.__nextSibling;\n }\n });\n};\nvar patchNextElementSibling = (element) => {\n if (!element || element.__nextElementSibling) return;\n patchHostOriginalAccessor(\"nextElementSibling\", element);\n Object.defineProperty(element, \"nextElementSibling\", {\n get: function() {\n var _a;\n const parentEles = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.children;\n const index = parentEles == null ? void 0 : parentEles.indexOf(this);\n if (parentEles && index > -1) {\n return parentEles[index + 1];\n }\n return this.__nextElementSibling;\n }\n });\n};\nvar patchPreviousSibling = (node) => {\n if (!node || node.__previousSibling) return;\n patchHostOriginalAccessor(\"previousSibling\", node);\n Object.defineProperty(node, \"previousSibling\", {\n get: function() {\n var _a;\n const parentNodes = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.childNodes;\n const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);\n if (parentNodes && index > -1) {\n return parentNodes[index - 1];\n }\n return this.__previousSibling;\n }\n });\n};\nvar patchPreviousElementSibling = (element) => {\n if (!element || element.__previousElementSibling) return;\n patchHostOriginalAccessor(\"previousElementSibling\", element);\n Object.defineProperty(element, \"previousElementSibling\", {\n get: function() {\n var _a;\n const parentNodes = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.children;\n const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);\n if (parentNodes && index > -1) {\n return parentNodes[index - 1];\n }\n return this.__previousElementSibling;\n }\n });\n};\nvar patchParentNode = (node) => {\n if (!node || node.__parentNode) return;\n patchHostOriginalAccessor(\"parentNode\", node);\n Object.defineProperty(node, \"parentNode\", {\n get: function() {\n var _a;\n return ((_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode) || this.__parentNode;\n },\n set: function(value) {\n this.__parentNode = value;\n }\n });\n};\nvar validElementPatches = [\"children\", \"nextElementSibling\", \"previousElementSibling\"];\nvar validNodesPatches = [\n \"childNodes\",\n \"firstChild\",\n \"lastChild\",\n \"nextSibling\",\n \"previousSibling\",\n \"textContent\",\n \"parentNode\"\n];\nfunction patchHostOriginalAccessor(accessorName, node) {\n let accessor;\n if (validElementPatches.includes(accessorName)) {\n accessor = Object.getOwnPropertyDescriptor(Element.prototype, accessorName);\n } else if (validNodesPatches.includes(accessorName)) {\n accessor = Object.getOwnPropertyDescriptor(Node.prototype, accessorName);\n }\n if (!accessor) {\n accessor = Object.getOwnPropertyDescriptor(node, accessorName);\n }\n if (accessor) Object.defineProperty(node, \"__\" + accessorName, accessor);\n}\nfunction intrnlCall(node, method) {\n if (\"__\" + method in node) {\n return node[\"__\" + method];\n } else {\n return node[method];\n }\n}\n\n// src/runtime/profile.ts\nimport { BUILD as BUILD10 } from \"@stencil/core/internal/app-data\";\nvar i = 0;\nvar createTime = (fnName, tagName = \"\") => {\n if (BUILD10.profile && performance.mark) {\n const key = `st:${fnName}:${tagName}:${i++}`;\n performance.mark(key);\n return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key);\n } else {\n return () => {\n return;\n };\n }\n};\nvar uniqueTime = (key, measureText) => {\n if (BUILD10.profile && performance.mark) {\n if (performance.getEntriesByName(key, \"mark\").length === 0) {\n performance.mark(key);\n }\n return () => {\n if (performance.getEntriesByName(measureText, \"measure\").length === 0) {\n performance.measure(measureText, key);\n }\n };\n } else {\n return () => {\n return;\n };\n }\n};\nvar inspect = (ref) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return void 0;\n }\n const flags = hostRef.$flags$;\n const hostElement = hostRef.$hostElement$;\n return {\n renderCount: hostRef.$renderCount$,\n flags: {\n hasRendered: !!(flags & 2 /* hasRendered */),\n hasConnected: !!(flags & 1 /* hasConnected */),\n isWaitingForChildren: !!(flags & 4 /* isWaitingForChildren */),\n isConstructingInstance: !!(flags & 8 /* isConstructingInstance */),\n isQueuedForUpdate: !!(flags & 16 /* isQueuedForUpdate */),\n hasInitializedComponent: !!(flags & 32 /* hasInitializedComponent */),\n hasLoadedComponent: !!(flags & 64 /* hasLoadedComponent */),\n isWatchReady: !!(flags & 128 /* isWatchReady */),\n isListenReady: !!(flags & 256 /* isListenReady */),\n needsRerender: !!(flags & 512 /* needsRerender */)\n },\n instanceValues: hostRef.$instanceValues$,\n ancestorComponent: hostRef.$ancestorComponent$,\n hostElement,\n lazyInstance: hostRef.$lazyInstance$,\n vnode: hostRef.$vnode$,\n modeName: hostRef.$modeName$,\n onReadyPromise: hostRef.$onReadyPromise$,\n onReadyResolve: hostRef.$onReadyResolve$,\n onInstancePromise: hostRef.$onInstancePromise$,\n onInstanceResolve: hostRef.$onInstanceResolve$,\n onRenderResolve: hostRef.$onRenderResolve$,\n queuedListeners: hostRef.$queuedListeners$,\n rmListeners: hostRef.$rmListeners$,\n [\"s-id\"]: hostElement[\"s-id\"],\n [\"s-cr\"]: hostElement[\"s-cr\"],\n [\"s-lr\"]: hostElement[\"s-lr\"],\n [\"s-p\"]: hostElement[\"s-p\"],\n [\"s-rc\"]: hostElement[\"s-rc\"],\n [\"s-sc\"]: hostElement[\"s-sc\"]\n };\n};\nvar installDevTools = () => {\n if (BUILD10.devTools) {\n const stencil = win.stencil = win.stencil || {};\n const originalInspect = stencil.inspect;\n stencil.inspect = (ref) => {\n let result = inspect(ref);\n if (!result && typeof originalInspect === \"function\") {\n result = originalInspect(ref);\n }\n return result;\n };\n }\n};\n\n// src/runtime/vdom/h.ts\nimport { BUILD as BUILD11 } from \"@stencil/core/internal/app-data\";\nvar h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i2 = 0; i2 < c.length; i2++) {\n child = c[i2];\n if (Array.isArray(child)) {\n walk(child);\n } else if (child != null && typeof child !== \"boolean\") {\n if (simple = typeof nodeName !== \"function\" && !isComplexType(child)) {\n child = String(child);\n } else if (BUILD11.isDev && typeof nodeName !== \"function\" && child.$flags$ === void 0) {\n consoleDevError(`vNode passed as children has unexpected type.\nMake sure it's using the correct h() function.\nEmpty objects can also be the cause, look for JSX comments that became objects.`);\n }\n if (simple && lastSimple) {\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n } else {\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (BUILD11.isDev && nodeName === \"input\") {\n validateInputProperties(vnodeData);\n }\n if (BUILD11.vdomKey && vnodeData.key) {\n key = vnodeData.key;\n }\n if (BUILD11.slotRelocation && vnodeData.name) {\n slotName = vnodeData.name;\n }\n if (BUILD11.vdomClass) {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class = typeof classData !== \"object\" ? classData : Object.keys(classData).filter((k) => classData[k]).join(\" \");\n }\n }\n }\n if (BUILD11.isDev && vNodeChildren.some(isHost)) {\n consoleDevError(`The <Host> must be the single root component. Make sure:\n- You are NOT using hostData() and <Host> in the same component.\n- <Host> is used once, and it's the single root component of the render() function.`);\n }\n if (BUILD11.vdomFunctional && typeof nodeName === \"function\") {\n return nodeName(\n vnodeData === null ? {} : vnodeData,\n vNodeChildren,\n vdomFnUtils\n );\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n if (BUILD11.vdomKey) {\n vnode.$key$ = key;\n }\n if (BUILD11.slotRelocation) {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nvar newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null\n };\n if (BUILD11.vdomAttribute) {\n vnode.$attrs$ = null;\n }\n if (BUILD11.vdomKey) {\n vnode.$key$ = null;\n }\n if (BUILD11.slotRelocation) {\n vnode.$name$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = (node) => node && node.$tag$ === Host;\nvar vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate)\n};\nvar convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$\n});\nvar convertToPrivate = (node) => {\n if (typeof node.vtag === \"function\") {\n const vnodeData = { ...node.vattrs };\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...node.vchildren || []);\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\nvar validateInputProperties = (inputElm) => {\n const props = Object.keys(inputElm);\n const value = props.indexOf(\"value\");\n if (value === -1) {\n return;\n }\n const typeIndex = props.indexOf(\"type\");\n const minIndex = props.indexOf(\"min\");\n const maxIndex = props.indexOf(\"max\");\n const stepIndex = props.indexOf(\"step\");\n if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) {\n consoleDevWarn(`The \"value\" prop of <input> should be set after \"min\", \"max\", \"type\" and \"step\"`);\n }\n};\n\n// src/runtime/client-hydrate.ts\nvar initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n const endHydrate = createTime(\"hydrateClient\", tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const slottedNodes = [];\n const shadowRootNodes = BUILD12.shadowDom && shadowRoot ? [] : null;\n const vnode = newVNode(tagName, null);\n vnode.$elm$ = hostElm;\n let scopeId2;\n if (BUILD12.scoped) {\n const cmpMeta = hostRef.$cmpMeta$;\n if (cmpMeta && cmpMeta.$flags$ & 10 /* needsScopedEncapsulation */ && hostElm[\"s-sc\"]) {\n scopeId2 = hostElm[\"s-sc\"];\n hostElm.classList.add(scopeId2 + \"-h\");\n } else if (hostElm[\"s-sc\"]) {\n delete hostElm[\"s-sc\"];\n }\n }\n if (!plt.$orgLocNodes$) {\n initializeDocumentHydrate(doc.body, plt.$orgLocNodes$ = /* @__PURE__ */ new Map());\n }\n hostElm[HYDRATE_ID] = hostId;\n hostElm.removeAttribute(HYDRATE_ID);\n hostRef.$vnode$ = clientHydrate(\n vnode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n hostElm,\n hostElm,\n hostId,\n slottedNodes\n );\n let crIndex = 0;\n const crLength = childRenderNodes.length;\n let childRenderNode;\n for (crIndex; crIndex < crLength; crIndex++) {\n childRenderNode = childRenderNodes[crIndex];\n const orgLocationId = childRenderNode.$hostId$ + \".\" + childRenderNode.$nodeId$;\n const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);\n const node = childRenderNode.$elm$;\n if (!shadowRoot) {\n node[\"s-hn\"] = tagName.toUpperCase();\n if (childRenderNode.$tag$ === \"slot\") {\n node[\"s-cr\"] = hostElm[\"s-cr\"];\n }\n }\n if (childRenderNode.$tag$ === \"slot\") {\n if (childRenderNode.$children$) {\n childRenderNode.$flags$ |= 2 /* isSlotFallback */;\n if (!childRenderNode.$elm$.childNodes.length) {\n childRenderNode.$children$.forEach((c) => {\n childRenderNode.$elm$.appendChild(c.$elm$);\n });\n }\n } else {\n childRenderNode.$flags$ |= 1 /* isSlotReference */;\n }\n }\n if (orgLocationNode && orgLocationNode.isConnected) {\n if (shadowRoot && orgLocationNode[\"s-en\"] === \"\") {\n orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);\n }\n orgLocationNode.parentNode.removeChild(orgLocationNode);\n if (!shadowRoot) {\n node[\"s-oo\"] = parseInt(childRenderNode.$nodeId$);\n }\n }\n plt.$orgLocNodes$.delete(orgLocationId);\n }\n const hosts = [];\n const snLen = slottedNodes.length;\n let snIndex = 0;\n let slotGroup;\n let snGroupIdx;\n let snGroupLen;\n let slottedItem;\n for (snIndex; snIndex < snLen; snIndex++) {\n slotGroup = slottedNodes[snIndex];\n if (!slotGroup || !slotGroup.length) continue;\n snGroupLen = slotGroup.length;\n snGroupIdx = 0;\n for (snGroupIdx; snGroupIdx < snGroupLen; snGroupIdx++) {\n slottedItem = slotGroup[snGroupIdx];\n if (!hosts[slottedItem.hostId]) {\n hosts[slottedItem.hostId] = plt.$orgLocNodes$.get(slottedItem.hostId);\n }\n if (!hosts[slottedItem.hostId]) continue;\n const hostEle = hosts[slottedItem.hostId];\n if (!hostEle.shadowRoot || !shadowRoot) {\n slottedItem.slot[\"s-cr\"] = hostEle[\"s-cr\"];\n if (!slottedItem.slot[\"s-cr\"] && hostEle.shadowRoot) {\n slottedItem.slot[\"s-cr\"] = hostEle;\n } else {\n slottedItem.slot[\"s-cr\"] = (hostEle.__childNodes || hostEle.childNodes)[0];\n }\n addSlotRelocateNode(slottedItem.node, slottedItem.slot, false, slottedItem.node[\"s-oo\"]);\n if (BUILD12.experimentalSlotFixes) {\n patchSlottedNode(slottedItem.node);\n }\n }\n if (hostEle.shadowRoot && slottedItem.node.parentElement !== hostEle) {\n hostEle.appendChild(slottedItem.node);\n }\n }\n }\n if (BUILD12.scoped && scopeId2 && slotNodes.length) {\n slotNodes.forEach((slot) => {\n slot.$elm$.parentElement.classList.add(scopeId2 + \"-s\");\n });\n }\n if (BUILD12.shadowDom && shadowRoot) {\n let rnIdex = 0;\n const rnLen = shadowRootNodes.length;\n for (rnIdex; rnIdex < rnLen; rnIdex++) {\n shadowRoot.appendChild(shadowRootNodes[rnIdex]);\n }\n Array.from(hostElm.childNodes).forEach((node) => {\n if (node.nodeType === 8 /* CommentNode */ && typeof node[\"s-sn\"] !== \"string\") {\n node.parentNode.removeChild(node);\n }\n });\n }\n hostRef.$hostElement$ = hostElm;\n endHydrate();\n};\nvar clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId, slottedNodes = []) => {\n let childNodeType;\n let childIdSplt;\n let childVNode;\n let i2;\n const scopeId2 = hostElm[\"s-sc\"];\n if (node.nodeType === 1 /* ElementNode */) {\n childNodeType = node.getAttribute(HYDRATE_CHILD_ID);\n if (childNodeType) {\n childIdSplt = childNodeType.split(\".\");\n if (childIdSplt[0] === hostId || childIdSplt[0] === \"0\") {\n childVNode = createSimpleVNode({\n $flags$: 0,\n $hostId$: childIdSplt[0],\n $nodeId$: childIdSplt[1],\n $depth$: childIdSplt[2],\n $index$: childIdSplt[3],\n $tag$: node.tagName.toLowerCase(),\n $elm$: node,\n // If we don't add the initial classes to the VNode, the first `vdom-render.ts` patch\n // won't try to reconcile them. Classes set on the node will be blown away.\n $attrs$: { class: node.className || \"\" }\n });\n childRenderNodes.push(childVNode);\n node.removeAttribute(HYDRATE_CHILD_ID);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n if (BUILD12.scoped && scopeId2) {\n node[\"s-si\"] = scopeId2;\n childVNode.$attrs$.class += \" \" + scopeId2;\n }\n const slotName = childVNode.$elm$.getAttribute(\"s-sn\");\n if (typeof slotName === \"string\") {\n if (childVNode.$tag$ === \"slot-fb\") {\n addSlot(\n slotName,\n childIdSplt[2],\n childVNode,\n node,\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n slottedNodes\n );\n if (BUILD12.scoped && scopeId2) {\n node.classList.add(scopeId2);\n }\n }\n childVNode.$elm$[\"s-sn\"] = slotName;\n childVNode.$elm$.removeAttribute(\"s-sn\");\n }\n if (childVNode.$index$ !== void 0) {\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n parentVNode = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === \"0\") {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n if (node.shadowRoot) {\n for (i2 = node.shadowRoot.childNodes.length - 1; i2 >= 0; i2--) {\n clientHydrate(\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n hostElm,\n node.shadowRoot.childNodes[i2],\n hostId,\n slottedNodes\n );\n }\n }\n const nonShadowNodes = node.__childNodes || node.childNodes;\n for (i2 = nonShadowNodes.length - 1; i2 >= 0; i2--) {\n clientHydrate(\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n hostElm,\n nonShadowNodes[i2],\n hostId,\n slottedNodes\n );\n }\n } else if (node.nodeType === 8 /* CommentNode */) {\n childIdSplt = node.nodeValue.split(\".\");\n if (childIdSplt[1] === hostId || childIdSplt[1] === \"0\") {\n childNodeType = childIdSplt[0];\n childVNode = createSimpleVNode({\n $hostId$: childIdSplt[1],\n $nodeId$: childIdSplt[2],\n $depth$: childIdSplt[3],\n $index$: childIdSplt[4] || \"0\",\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null\n });\n if (childNodeType === TEXT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* TextNode */) {\n childVNode.$text$ = childVNode.$elm$.textContent;\n childRenderNodes.push(childVNode);\n node.remove();\n if (hostId === childVNode.$hostId$) {\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n if (shadowRootNodes && childVNode.$depth$ === \"0\") {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n } else if (childNodeType === COMMENT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 8 /* CommentNode */) {\n childRenderNodes.push(childVNode);\n node.remove();\n }\n } else if (childVNode.$hostId$ === hostId) {\n if (childNodeType === SLOT_NODE_ID) {\n const slotName = node[\"s-sn\"] = childIdSplt[5] || \"\";\n addSlot(\n slotName,\n childIdSplt[2],\n childVNode,\n node,\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n slottedNodes\n );\n } else if (childNodeType === CONTENT_REF_ID) {\n if (BUILD12.shadowDom && shadowRootNodes) {\n node.remove();\n } else if (BUILD12.slotRelocation) {\n hostElm[\"s-cr\"] = node;\n node[\"s-cn\"] = true;\n }\n }\n }\n }\n } else if (parentVNode && parentVNode.$tag$ === \"style\") {\n const vnode = newVNode(null, node.textContent);\n vnode.$elm$ = node;\n vnode.$index$ = \"0\";\n parentVNode.$children$ = [vnode];\n }\n return parentVNode;\n};\nvar initializeDocumentHydrate = (node, orgLocNodes) => {\n if (node.nodeType === 1 /* ElementNode */) {\n const componentId = node[HYDRATE_ID] || node.getAttribute(HYDRATE_ID);\n if (componentId) {\n orgLocNodes.set(componentId, node);\n }\n let i2 = 0;\n if (node.shadowRoot) {\n for (; i2 < node.shadowRoot.childNodes.length; i2++) {\n initializeDocumentHydrate(node.shadowRoot.childNodes[i2], orgLocNodes);\n }\n }\n const nonShadowNodes = node.__childNodes || node.childNodes;\n for (i2 = 0; i2 < nonShadowNodes.length; i2++) {\n initializeDocumentHydrate(nonShadowNodes[i2], orgLocNodes);\n }\n } else if (node.nodeType === 8 /* CommentNode */) {\n const childIdSplt = node.nodeValue.split(\".\");\n if (childIdSplt[0] === ORG_LOCATION_ID) {\n orgLocNodes.set(childIdSplt[1] + \".\" + childIdSplt[2], node);\n node.nodeValue = \"\";\n node[\"s-en\"] = childIdSplt[3];\n }\n }\n};\nvar createSimpleVNode = (vnode) => {\n const defaultVNode = {\n $flags$: 0,\n $hostId$: null,\n $nodeId$: null,\n $depth$: null,\n $index$: \"0\",\n $elm$: null,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null\n };\n return { ...defaultVNode, ...vnode };\n};\nfunction addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNodes, slotNodes, shadowRootNodes, slottedNodes) {\n node[\"s-sr\"] = true;\n childVNode.$name$ = slotName || null;\n childVNode.$tag$ = \"slot\";\n const parentNodeId = (parentVNode == null ? void 0 : parentVNode.$elm$) ? parentVNode.$elm$[\"s-id\"] || parentVNode.$elm$.getAttribute(\"s-id\") : \"\";\n if (BUILD12.shadowDom && shadowRootNodes) {\n const slot = childVNode.$elm$ = doc.createElement(childVNode.$tag$);\n if (childVNode.$name$) {\n childVNode.$elm$.setAttribute(\"name\", slotName);\n }\n if (parentNodeId && parentNodeId !== childVNode.$hostId$) {\n parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);\n } else {\n node.parentNode.insertBefore(childVNode.$elm$, node);\n }\n addSlottedNodes(slottedNodes, slotId, slotName, node, childVNode.$hostId$);\n node.remove();\n if (childVNode.$depth$ === \"0\") {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n } else {\n const slot = childVNode.$elm$;\n const shouldMove = parentNodeId && parentNodeId !== childVNode.$hostId$ && parentVNode.$elm$.shadowRoot;\n addSlottedNodes(slottedNodes, slotId, slotName, node, shouldMove ? parentNodeId : childVNode.$hostId$);\n if (shouldMove) {\n parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);\n }\n childRenderNodes.push(childVNode);\n }\n slotNodes.push(childVNode);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n}\nvar addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {\n let slottedNode = slotNode.nextSibling;\n slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];\n while (slottedNode && ((slottedNode[\"getAttribute\"] && slottedNode.getAttribute(\"slot\") || slottedNode[\"s-sn\"]) === slotName || slotName === \"\" && !slottedNode[\"s-sn\"] && (slottedNode.nodeType === 8 /* CommentNode */ && slottedNode.nodeValue.indexOf(\".\") !== 1 || slottedNode.nodeType === 3 /* TextNode */))) {\n slottedNode[\"s-sn\"] = slotName;\n slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });\n slottedNode = slottedNode.nextSibling;\n }\n};\n\n// src/runtime/initialize-component.ts\nimport { BUILD as BUILD23 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/mode.ts\nvar computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);\nvar setMode = (handler) => modeResolutionChain.push(handler);\nvar getMode = (ref) => getHostRef(ref).$modeName$;\n\n// src/runtime/proxy-component.ts\nimport { BUILD as BUILD22 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/set-value.ts\nimport { BUILD as BUILD21 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/parse-property-value.ts\nimport { BUILD as BUILD13 } from \"@stencil/core/internal/app-data\";\nvar parsePropertyValue = (propValue, propType) => {\n if (propValue != null && !isComplexType(propValue)) {\n if (BUILD13.propBoolean && propType & 4 /* Boolean */) {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n if (BUILD13.propNumber && propType & 2 /* Number */) {\n return parseFloat(propValue);\n }\n if (BUILD13.propString && propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\n\n// src/runtime/update-component.ts\nimport { BUILD as BUILD20, NAMESPACE } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/event-emitter.ts\nimport { BUILD as BUILD15 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/element.ts\nimport { BUILD as BUILD14 } from \"@stencil/core/internal/app-data\";\nvar getElement = (ref) => BUILD14.lazyLoad ? getHostRef(ref).$hostElement$ : ref;\n\n// src/runtime/event-emitter.ts\nvar createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n if (BUILD15.isDev && !elm.isConnected) {\n consoleDevWarn(`The \"${name}\" event was emitted, but the dispatcher node is no longer connected to the dom.`);\n }\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* Bubbles */),\n composed: !!(flags & 2 /* Composed */),\n cancelable: !!(flags & 1 /* Cancellable */),\n detail\n });\n }\n };\n};\nvar emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\n\n// src/runtime/styles.ts\nimport { BUILD as BUILD16 } from \"@stencil/core/internal/app-data\";\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar registerStyle = (scopeId2, cssText, allowCS) => {\n let style = styles.get(scopeId2);\n if (supportsConstructableStylesheets && allowCS) {\n style = style || new CSSStyleSheet();\n if (typeof style === \"string\") {\n style = cssText;\n } else {\n style.replaceSync(cssText);\n }\n } else {\n style = cssText;\n }\n styles.set(scopeId2, style);\n};\nvar addStyle = (styleContainerNode, cmpMeta, mode) => {\n var _a;\n const scopeId2 = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId2);\n if (!BUILD16.attachStyles) {\n return scopeId2;\n }\n styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === \"string\") {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());\n }\n if (!appliedStyles.has(scopeId2)) {\n if (BUILD16.hydrateClientSide && styleContainerNode.host && (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId2}\"]`))) {\n styleElm.innerHTML = style;\n } else {\n styleElm = document.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId2}\"]`) || doc.createElement(\"style\");\n styleElm.innerHTML = style;\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n styleElm.setAttribute(\"nonce\", nonce);\n }\n if ((BUILD16.hydrateServerSide || BUILD16.hotModuleReplacement) && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId2);\n }\n if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {\n if (styleContainerNode.nodeName === \"HEAD\") {\n const preconnectLinks = styleContainerNode.querySelectorAll(\"link[rel=preconnect]\");\n const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector(\"style\");\n styleContainerNode.insertBefore(\n styleElm,\n (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null\n );\n } else if (\"host\" in styleContainerNode) {\n if (supportsConstructableStylesheets) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(style);\n styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];\n } else {\n const existingStyleContainer = styleContainerNode.querySelector(\"style\");\n if (existingStyleContainer) {\n existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;\n } else {\n styleContainerNode.prepend(styleElm);\n }\n }\n } else {\n styleContainerNode.append(styleElm);\n }\n }\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== \"HEAD\") {\n styleContainerNode.insertBefore(styleElm, null);\n }\n }\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n styleElm.innerHTML += SLOT_FB_CSS;\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId2);\n }\n }\n } else if (BUILD16.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId2;\n};\nvar attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime(\"attachStyles\", cmpMeta.$tagName$);\n const scopeId2 = addStyle(\n BUILD16.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),\n cmpMeta,\n hostRef.$modeName$\n );\n if ((BUILD16.shadowDom || BUILD16.scoped) && BUILD16.cssAnnotations && flags & 10 /* needsScopedEncapsulation */ && flags & 2 /* scopedCssEncapsulation */) {\n elm[\"s-sc\"] = scopeId2;\n elm.classList.add(scopeId2 + \"-h\");\n }\n endAttachStyles();\n};\nvar getScopeId = (cmp, mode) => \"sc-\" + (BUILD16.mode && mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + \"-\" + mode : cmp.$tagName$);\n\n// src/runtime/vdom/vdom-render.ts\nimport { BUILD as BUILD19 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/vdom/update-element.ts\nimport { BUILD as BUILD18 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/vdom/set-accessor.ts\nimport { BUILD as BUILD17 } from \"@stencil/core/internal/app-data\";\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (BUILD17.vdomClass && memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n if (BUILD17.hydrateClientSide && elm[\"s-si\"] && initialRender) {\n newClasses.push(elm[\"s-si\"]);\n oldClasses.forEach((c) => {\n if (c.startsWith(elm[\"s-si\"])) newClasses.push(c);\n });\n newClasses = [...new Set(newClasses)];\n classList.add(...newClasses);\n } else {\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n } else if (BUILD17.vdomStyle && memberName === \"style\") {\n if (BUILD17.updatable) {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (!BUILD17.hydrateServerSide && prop.includes(\"-\")) {\n elm.style.removeProperty(prop);\n } else {\n elm.style[prop] = \"\";\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (!BUILD17.hydrateServerSide && prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (BUILD17.vdomKey && memberName === \"key\") {\n } else if (BUILD17.vdomRef && memberName === \"ref\") {\n if (newValue) {\n newValue(elm);\n }\n } else if (BUILD17.vdomListener && (BUILD17.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) && memberName[0] === \"o\" && memberName[1] === \"n\") {\n if (memberName[2] === \"-\") {\n memberName = memberName.slice(3);\n } else if (isMemberInElement(win, ln)) {\n memberName = ln.slice(2);\n } else {\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue || newValue) {\n const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);\n memberName = memberName.replace(CAPTURE_EVENT_REGEX, \"\");\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, capture);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, capture);\n }\n }\n } else if (BUILD17.vdomPropOrAttr) {\n const isComplex = isComplexType(newValue);\n if ((isProp || isComplex && newValue !== null) && !isSvg) {\n try {\n if (!elm.tagName.includes(\"-\")) {\n const n = newValue == null ? \"\" : newValue;\n if (memberName === \"list\") {\n isProp = false;\n } else if (oldValue == null || elm[memberName] != n) {\n if (typeof elm.__lookupSetter__(memberName) === \"function\") {\n elm[memberName] = n;\n } else {\n elm.setAttribute(memberName, n);\n }\n }\n } else if (elm[memberName] !== newValue) {\n elm[memberName] = newValue;\n }\n } catch (e) {\n }\n }\n let xlink = false;\n if (BUILD17.vdomXlink) {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, \"\"))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n if (BUILD17.vdomXlink && xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n } else {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? \"\" : newValue;\n if (BUILD17.vdomXlink && xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n } else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = (value) => {\n if (typeof value === \"object\" && value && \"baseVal\" in value) {\n value = value.baseVal;\n }\n if (!value || typeof value !== \"string\") {\n return [];\n }\n return value.split(parseClassListRegex);\n};\nvar CAPTURE_EVENT_SUFFIX = \"Capture\";\nvar CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + \"$\");\n\n// src/runtime/vdom/update-element.ts\nvar updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {\n const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};\n const newVnodeAttrs = newVnode.$attrs$ || {};\n if (BUILD18.updatable) {\n for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n void 0,\n isSvgMode2,\n newVnode.$flags$,\n isInitialRender\n );\n }\n }\n }\n for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n newVnodeAttrs[memberName],\n isSvgMode2,\n newVnode.$flags$,\n isInitialRender\n );\n }\n};\nfunction sortedAttrNames(attrNames) {\n return attrNames.includes(\"ref\") ? (\n // we need to sort these to ensure that `'ref'` is the last attr\n [...attrNames.filter((attr) => attr !== \"ref\"), \"ref\"]\n ) : (\n // no need to sort, return the original array\n attrNames\n );\n}\n\n// src/runtime/vdom/vdom-render.ts\nvar scopeId;\nvar contentRef;\nvar hostTagName;\nvar useNativeShadowDom = false;\nvar checkSlotFallbackVisibility = false;\nvar checkSlotRelocate = false;\nvar isSvgMode = false;\nvar createElm = (oldParentVNode, newParentVNode, childIndex) => {\n var _a;\n const newVNode2 = newParentVNode.$children$[childIndex];\n let i2 = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (BUILD19.slotRelocation && !useNativeShadowDom) {\n checkSlotRelocate = true;\n if (newVNode2.$tag$ === \"slot\") {\n newVNode2.$flags$ |= newVNode2.$children$ ? (\n // slot element has fallback content\n // still create an element that \"mocks\" the slot element\n 2 /* isSlotFallback */\n ) : (\n // slot element does not have fallback content\n // create an html comment we'll use to always reference\n // where actual slot content should sit next to\n 1 /* isSlotReference */\n );\n }\n }\n if (BUILD19.isDev && newVNode2.$elm$) {\n consoleDevError(\n `The JSX ${newVNode2.$text$ !== null ? `\"${newVNode2.$text$}\" text` : `\"${newVNode2.$tag$}\" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`\n );\n }\n if (BUILD19.vdomText && newVNode2.$text$ !== null) {\n elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);\n } else if (BUILD19.slotRelocation && newVNode2.$flags$ & 1 /* isSlotReference */) {\n elm = newVNode2.$elm$ = BUILD19.isDebug || BUILD19.hydrateServerSide ? slotReferenceDebugNode(newVNode2) : doc.createTextNode(\"\");\n } else {\n if (BUILD19.svg && !isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n elm = newVNode2.$elm$ = BUILD19.svg ? doc.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n !useNativeShadowDom && BUILD19.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n ) : doc.createElement(\n !useNativeShadowDom && BUILD19.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n );\n if (BUILD19.svg && isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n if (BUILD19.vdomAttribute) {\n updateElement(null, newVNode2, isSvgMode);\n }\n if (BUILD19.scoped && isDef(scopeId) && elm[\"s-si\"] !== scopeId) {\n elm.classList.add(elm[\"s-si\"] = scopeId);\n }\n if (newVNode2.$children$) {\n for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {\n childNode = createElm(oldParentVNode, newVNode2, i2);\n if (childNode) {\n elm.appendChild(childNode);\n }\n }\n }\n if (BUILD19.svg) {\n if (newVNode2.$tag$ === \"svg\") {\n isSvgMode = false;\n } else if (elm.tagName === \"foreignObject\") {\n isSvgMode = true;\n }\n }\n }\n elm[\"s-hn\"] = hostTagName;\n if (BUILD19.slotRelocation) {\n if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {\n elm[\"s-sr\"] = true;\n elm[\"s-cr\"] = contentRef;\n elm[\"s-sn\"] = newVNode2.$name$ || \"\";\n elm[\"s-rf\"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {\n if (BUILD19.experimentalSlotFixes) {\n relocateToHostRoot(oldParentVNode.$elm$);\n } else {\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n if (BUILD19.scoped) {\n addRemoveSlotScopedClass(contentRef, elm, newParentVNode.$elm$, oldParentVNode == null ? void 0 : oldParentVNode.$elm$);\n }\n }\n }\n return elm;\n};\nvar relocateToHostRoot = (parentElm) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const host = parentElm.closest(hostTagName.toLowerCase());\n if (host != null) {\n const contentRefNode = Array.from(host.__childNodes || host.childNodes).find(\n (ref) => ref[\"s-cr\"]\n );\n const childNodeArray = Array.from(\n parentElm.__childNodes || parentElm.childNodes\n );\n for (const childNode of contentRefNode ? childNodeArray.reverse() : childNodeArray) {\n if (childNode[\"s-sh\"] != null) {\n insertBefore(host, childNode, contentRefNode != null ? contentRefNode : null);\n childNode[\"s-sh\"] = void 0;\n checkSlotRelocate = true;\n }\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);\n if (parentElm[\"s-sr\"] && BUILD19.experimentalSlotFixes) {\n let node = parentElm;\n while (node = node.nextSibling) {\n if (node && node[\"s-sn\"] === parentElm[\"s-sn\"] && node[\"s-sh\"] === hostTagName) {\n oldSlotChildNodes.push(node);\n }\n }\n }\n for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {\n const childNode = oldSlotChildNodes[i2];\n if (childNode[\"s-hn\"] !== hostTagName && childNode[\"s-ol\"]) {\n insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));\n childNode[\"s-ol\"].remove();\n childNode[\"s-ol\"] = void 0;\n childNode[\"s-sh\"] = void 0;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = BUILD19.slotRelocation && parentElm[\"s-cr\"] && parentElm[\"s-cr\"].parentNode || parentElm;\n let childNode;\n if (BUILD19.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n insertBefore(containerElm, childNode, BUILD19.slotRelocation ? referenceNode(before) : before);\n }\n }\n }\n};\nvar removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n nullifyVNodeRefs(vnode);\n if (elm) {\n if (BUILD19.slotRelocation) {\n checkSlotFallbackVisibility = true;\n if (elm[\"s-ol\"]) {\n elm[\"s-ol\"].remove();\n } else {\n putBackInOriginalLocation(elm, true);\n }\n }\n elm.remove();\n }\n }\n }\n};\nvar updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i2 = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx];\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {\n patch(oldStartVnode, newStartVnode, isInitialRender);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {\n patch(oldEndVnode, newEndVnode, isInitialRender);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {\n if (BUILD19.slotRelocation && (oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode, isInitialRender);\n insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {\n if (BUILD19.slotRelocation && (oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode, isInitialRender);\n insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n idxInOld = -1;\n if (BUILD19.vdomKey) {\n for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {\n if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {\n idxInOld = i2;\n break;\n }\n }\n }\n if (BUILD19.vdomKey && idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);\n } else {\n patch(elmToMove, newStartVnode, isInitialRender);\n oldCh[idxInOld] = void 0;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n } else {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n if (BUILD19.slotRelocation) {\n insertBefore(\n referenceNode(oldStartVnode.$elm$).parentNode,\n node,\n referenceNode(oldStartVnode.$elm$)\n );\n } else {\n insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(\n parentElm,\n newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,\n newVNode2,\n newCh,\n newStartIdx,\n newEndIdx\n );\n } else if (BUILD19.updatable && newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (BUILD19.slotRelocation && leftVNode.$tag$ === \"slot\") {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n if (BUILD19.vdomKey && !isInitialRender) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {\n leftVNode.$key$ = rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nvar referenceNode = (node) => node && node[\"s-ol\"] || node;\nvar patch = (oldVNode, newVNode2, isInitialRender = false) => {\n const elm = newVNode2.$elm$ = oldVNode.$elm$;\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode2.$children$;\n const tag = newVNode2.$tag$;\n const text = newVNode2.$text$;\n let defaultHolder;\n if (!BUILD19.vdomText || text === null) {\n if (BUILD19.svg) {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n if (BUILD19.vdomAttribute || BUILD19.reflect) {\n if (BUILD19.slot && tag === \"slot\" && !useNativeShadowDom) {\n if (BUILD19.experimentalSlotFixes && oldVNode.$name$ !== newVNode2.$name$) {\n newVNode2.$elm$[\"s-sn\"] = newVNode2.$name$ || \"\";\n relocateToHostRoot(newVNode2.$elm$.parentElement);\n }\n } else {\n updateElement(oldVNode, newVNode2, isSvgMode, isInitialRender);\n }\n }\n if (BUILD19.updatable && oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n if (BUILD19.updatable && BUILD19.vdomText && oldVNode.$text$ !== null) {\n elm.textContent = \"\";\n }\n addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);\n } else if (\n // don't do this on initial render as it can cause non-hydrated content to be removed\n !isInitialRender && BUILD19.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (BUILD19.svg && isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n } else if (BUILD19.vdomText && BUILD19.slotRelocation && (defaultHolder = elm[\"s-cr\"])) {\n defaultHolder.parentNode.textContent = text;\n } else if (BUILD19.vdomText && oldVNode.$text$ !== text) {\n elm.data = text;\n }\n};\nvar relocateNodes = [];\nvar markSlotContentForRelocation = (elm) => {\n let node;\n let hostContentNodes;\n let j;\n const children = elm.__childNodes || elm.childNodes;\n for (const childNode of children) {\n if (childNode[\"s-sr\"] && (node = childNode[\"s-cr\"]) && node.parentNode) {\n hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;\n const slotName = childNode[\"s-sn\"];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node[\"s-cn\"] && !node[\"s-nr\"] && node[\"s-hn\"] !== childNode[\"s-hn\"] && (!BUILD19.experimentalSlotFixes || !node[\"s-sh\"] || node[\"s-sh\"] !== childNode[\"s-hn\"])) {\n if (isNodeLocatedInSlot(node, slotName)) {\n let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n checkSlotFallbackVisibility = true;\n node[\"s-sn\"] = node[\"s-sn\"] || slotName;\n if (relocateNodeData) {\n relocateNodeData.$nodeToRelocate$[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodeData.$slotRefNode$ = childNode;\n } else {\n node[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node\n });\n }\n if (node[\"s-sr\"]) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node[\"s-sn\"])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n relocateNodes.push({\n $nodeToRelocate$: node\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* ElementNode */) {\n markSlotContentForRelocation(childNode);\n }\n }\n};\nvar nullifyVNodeRefs = (vNode) => {\n if (BUILD19.vdomRef) {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);\n }\n};\nvar insertBefore = (parent, newNode, reference) => {\n if (BUILD19.scoped && typeof newNode[\"s-sn\"] === \"string\" && !!newNode[\"s-sr\"] && !!newNode[\"s-cr\"]) {\n addRemoveSlotScopedClass(newNode[\"s-cr\"], newNode, parent, newNode.parentElement);\n } else if (BUILD19.experimentalSlotFixes && typeof newNode[\"s-sn\"] === \"string\") {\n if (parent.getRootNode().nodeType !== 11 /* DOCUMENT_FRAGMENT_NODE */) {\n patchParentNode(newNode);\n }\n return parent.insertBefore(newNode, reference);\n }\n if (BUILD19.experimentalSlotFixes && parent.__insertBefore) {\n return parent.__insertBefore(newNode, reference);\n } else {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nfunction addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {\n var _a;\n let scopeId2;\n if (reference && typeof slotNode[\"s-sn\"] === \"string\" && !!slotNode[\"s-sr\"] && reference.parentNode && reference.parentNode[\"s-sc\"] && (scopeId2 = slotNode[\"s-si\"] || reference.parentNode[\"s-sc\"])) {\n const scopeName = slotNode[\"s-sn\"];\n const hostName = slotNode[\"s-hn\"];\n (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + \"-s\");\n if (oldParent && oldParent.classList.contains(scopeId2 + \"-s\")) {\n let child = (oldParent.__childNodes || oldParent.childNodes)[0];\n let found = false;\n while (child) {\n if (child[\"s-sn\"] !== scopeName && child[\"s-hn\"] === hostName && !!child[\"s-sr\"]) {\n found = true;\n break;\n }\n child = child.nextSibling;\n }\n if (!found) oldParent.classList.remove(scopeId2 + \"-s\");\n }\n }\n}\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n var _a, _b, _c, _d, _e;\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n if (BUILD19.isDev && Array.isArray(renderFnResults) && renderFnResults.some(isHost)) {\n throw new Error(`The <Host> must be the single root component.\nLooks like the render() function of \"${hostTagName.toLowerCase()}\" is returning an array that contains the <Host>.\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n <Host>{content}</Host>\n );\n}\n `);\n }\n if (BUILD19.reflect && cmpMeta.$attrsToReflect$) {\n rootVnode.$attrs$ = rootVnode.$attrs$ || {};\n cmpMeta.$attrsToReflect$.map(\n ([propName, attribute]) => rootVnode.$attrs$[attribute] = hostElm[propName]\n );\n }\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n if (hostElm.hasAttribute(key) && ![\"key\", \"ref\", \"style\", \"class\"].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = BUILD19.shadowDom ? hostElm.shadowRoot || hostElm : hostElm;\n if (BUILD19.scoped || BUILD19.shadowDom) {\n scopeId = hostElm[\"s-sc\"];\n }\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;\n if (BUILD19.slotRelocation) {\n contentRef = hostElm[\"s-cr\"];\n checkSlotFallbackVisibility = false;\n }\n patch(oldVNode, rootVnode, isInitialLoad);\n if (BUILD19.slotRelocation) {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n if (checkSlotRelocate) {\n markSlotContentForRelocation(rootVnode.$elm$);\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate[\"s-ol\"]) {\n const orgLocationNode = BUILD19.isDebug || BUILD19.hydrateServerSide ? originalLocationDebugNode(nodeToRelocate) : doc.createTextNode(\"\");\n orgLocationNode[\"s-nr\"] = nodeToRelocate;\n insertBefore(nodeToRelocate.parentNode, nodeToRelocate[\"s-ol\"] = orgLocationNode, nodeToRelocate);\n }\n }\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n const slotRefNode = relocateData.$slotRefNode$;\n if (slotRefNode) {\n const parentNodeRef = slotRefNode.parentNode;\n let insertBeforeNode = slotRefNode.nextSibling;\n if (!BUILD19.hydrateServerSide && (!BUILD19.experimentalSlotFixes || insertBeforeNode && insertBeforeNode.nodeType === 1 /* ElementNode */)) {\n let orgLocationNode = (_a = nodeToRelocate[\"s-ol\"]) == null ? void 0 : _a.previousSibling;\n while (orgLocationNode) {\n let refNode = (_b = orgLocationNode[\"s-nr\"]) != null ? _b : null;\n if (refNode && refNode[\"s-sn\"] === nodeToRelocate[\"s-sn\"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {\n refNode = refNode.nextSibling;\n while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode[\"s-sr\"])) {\n refNode = refNode == null ? void 0 : refNode.nextSibling;\n }\n if (!refNode || !refNode[\"s-nr\"]) {\n insertBeforeNode = refNode;\n break;\n }\n }\n orgLocationNode = orgLocationNode.previousSibling;\n }\n }\n const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;\n const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;\n if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {\n if (nodeToRelocate !== insertBeforeNode) {\n if (!BUILD19.experimentalSlotFixes && !nodeToRelocate[\"s-hn\"] && nodeToRelocate[\"s-ol\"]) {\n nodeToRelocate[\"s-hn\"] = nodeToRelocate[\"s-ol\"].parentNode.nodeName;\n }\n insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);\n if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== \"SLOT-FB\") {\n nodeToRelocate.hidden = (_c = nodeToRelocate[\"s-ih\"]) != null ? _c : false;\n }\n }\n }\n nodeToRelocate && typeof slotRefNode[\"s-rf\"] === \"function\" && slotRefNode[\"s-rf\"](nodeToRelocate);\n } else {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (isInitialLoad) {\n nodeToRelocate[\"s-ih\"] = (_d = nodeToRelocate.hidden) != null ? _d : false;\n }\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n relocateNodes.length = 0;\n }\n if (BUILD19.experimentalScopedSlotChanges && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n const children = rootVnode.$elm$.__childNodes || rootVnode.$elm$.childNodes;\n for (const childNode of children) {\n if (childNode[\"s-hn\"] !== hostTagName && !childNode[\"s-sh\"]) {\n if (isInitialLoad && childNode[\"s-ih\"] == null) {\n childNode[\"s-ih\"] = (_e = childNode.hidden) != null ? _e : false;\n }\n childNode.hidden = true;\n }\n }\n }\n contentRef = void 0;\n};\nvar slotReferenceDebugNode = (slotVNode) => doc.createComment(\n `<slot${slotVNode.$name$ ? ' name=\"' + slotVNode.$name$ + '\"' : \"\"}> (host=${hostTagName.toLowerCase()})`\n);\nvar originalLocationDebugNode = (nodeToRelocate) => doc.createComment(\n `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate[\"s-hn\"]})` : `[${nodeToRelocate.textContent}]`)\n);\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (BUILD20.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent[\"s-p\"]) {\n const index = ancestorComponent[\"s-p\"].push(\n new Promise(\n (r) => hostRef.$onRenderResolve$ = () => {\n ancestorComponent[\"s-p\"].splice(index - 1, 1);\n r();\n }\n )\n );\n }\n};\nvar scheduleUpdate = (hostRef, isInitialLoad) => {\n if (BUILD20.taskQueue && BUILD20.updatable) {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (BUILD20.asyncLoading && hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return BUILD20.taskQueue ? writeTask(dispatch) : dispatch();\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = BUILD20.lazyLoad ? hostRef.$lazyInstance$ : elm;\n if (!instance) {\n throw new Error(\n `Can't render component <${elm.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \\`externalRuntime: true\\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`\n );\n }\n let maybePromise;\n if (isInitialLoad) {\n if (BUILD20.lazyLoad && BUILD20.hostListener) {\n hostRef.$flags$ |= 256 /* isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));\n hostRef.$queuedListeners$ = void 0;\n }\n }\n emitLifecycleEvent(elm, \"componentWillLoad\");\n if (BUILD20.cmpWillLoad) {\n maybePromise = safeCall(instance, \"componentWillLoad\", void 0, elm);\n }\n } else {\n emitLifecycleEvent(elm, \"componentWillUpdate\");\n if (BUILD20.cmpWillUpdate) {\n maybePromise = safeCall(instance, \"componentWillUpdate\", void 0, elm);\n }\n }\n emitLifecycleEvent(elm, \"componentWillRender\");\n if (BUILD20.cmpWillRender) {\n maybePromise = enqueue(maybePromise, () => safeCall(instance, \"componentWillRender\", void 0, elm));\n }\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nvar enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn).catch((err2) => {\n console.error(err2);\n fn();\n}) : fn();\nvar isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === \"function\";\nvar updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime(\"update\", hostRef.$cmpMeta$.$tagName$);\n const rc = elm[\"s-rc\"];\n if (BUILD20.style && isInitialLoad) {\n attachStyles(hostRef);\n }\n const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 1024 /* devOnRender */;\n }\n if (BUILD20.hydrateServerSide) {\n await callRender(hostRef, instance, elm, isInitialLoad);\n } else {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (BUILD20.isDev) {\n hostRef.$renderCount$ = hostRef.$renderCount$ === void 0 ? 1 : hostRef.$renderCount$ + 1;\n hostRef.$flags$ &= ~1024 /* devOnRender */;\n }\n if (BUILD20.hydrateServerSide) {\n try {\n serverSideConnected(elm);\n if (isInitialLoad) {\n if (hostRef.$cmpMeta$.$flags$ & 1 /* shadowDomEncapsulation */) {\n elm[\"s-en\"] = \"\";\n } else if (hostRef.$cmpMeta$.$flags$ & 2 /* scopedCssEncapsulation */) {\n elm[\"s-en\"] = \"c\";\n }\n }\n } catch (e) {\n consoleError(e, elm);\n }\n }\n if (BUILD20.asyncLoading && rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n if (BUILD20.asyncLoading) {\n const childrenPromises = (_a = elm[\"s-p\"]) != null ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n } else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n } else {\n postUpdateComponent(hostRef);\n }\n};\nvar renderingRef = null;\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n const allRenderFn = BUILD20.allRenderFn ? true : false;\n const lazyLoad = BUILD20.lazyLoad ? true : false;\n const taskQueue = BUILD20.taskQueue ? true : false;\n const updatable = BUILD20.updatable ? true : false;\n try {\n renderingRef = instance;\n instance = allRenderFn ? instance.render() : instance.render && instance.render();\n if (updatable && taskQueue) {\n hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;\n }\n if (updatable || lazyLoad) {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n if (BUILD20.hasRenderFn || BUILD20.reflect) {\n if (BUILD20.vdomRender || BUILD20.reflect) {\n if (BUILD20.hydrateServerSide) {\n return Promise.resolve(instance).then((value) => renderVdom(hostRef, value, isInitialLoad));\n } else {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n } else {\n const shadowRoot = elm.shadowRoot;\n if (hostRef.$cmpMeta$.$flags$ & 1 /* shadowDomEncapsulation */) {\n shadowRoot.textContent = instance;\n } else {\n elm.textContent = instance;\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n renderingRef = null;\n return null;\n};\nvar getRenderingRef = () => renderingRef;\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = BUILD20.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (BUILD20.cmpDidRender) {\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 1024 /* devOnRender */;\n }\n safeCall(instance, \"componentDidRender\", void 0, elm);\n if (BUILD20.isDev) {\n hostRef.$flags$ &= ~1024 /* devOnRender */;\n }\n }\n emitLifecycleEvent(elm, \"componentDidRender\");\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n if (BUILD20.asyncLoading && BUILD20.cssAnnotations) {\n addHydratedFlag(elm);\n }\n if (BUILD20.cmpDidLoad) {\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 2048 /* devOnDidLoad */;\n }\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n if (BUILD20.isDev) {\n hostRef.$flags$ &= ~2048 /* devOnDidLoad */;\n }\n }\n emitLifecycleEvent(elm, \"componentDidLoad\");\n endPostUpdate();\n if (BUILD20.asyncLoading) {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad(tagName);\n }\n }\n } else {\n if (BUILD20.cmpDidUpdate) {\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 1024 /* devOnRender */;\n }\n safeCall(instance, \"componentDidUpdate\", void 0, elm);\n if (BUILD20.isDev) {\n hostRef.$flags$ &= ~1024 /* devOnRender */;\n }\n }\n emitLifecycleEvent(elm, \"componentDidUpdate\");\n endPostUpdate();\n }\n if (BUILD20.method && BUILD20.lazyLoad) {\n hostRef.$onInstanceResolve$(elm);\n }\n if (BUILD20.asyncLoading) {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = void 0;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);\n }\n};\nvar forceUpdate = (ref) => {\n if (BUILD20.updatable && (Build.isBrowser || Build.isTesting)) {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n return isConnected;\n }\n return false;\n};\nvar appDidLoad = (who) => {\n if (BUILD20.cssAnnotations) {\n addHydratedFlag(doc.documentElement);\n }\n if (BUILD20.asyncQueue) {\n plt.$flags$ |= 2 /* appLoaded */;\n }\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n if (BUILD20.profile && performance.measure) {\n performance.measure(`[Stencil] ${NAMESPACE} initial load (by ${who})`, \"st:app:start\");\n }\n};\nvar safeCall = (instance, method, arg, elm) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n } catch (e) {\n consoleError(e, elm);\n }\n }\n return void 0;\n};\nvar emitLifecycleEvent = (elm, lifecycleName) => {\n if (BUILD20.lifecycleDOMEvents) {\n emitEvent(elm, \"stencil_\" + lifecycleName, {\n bubbles: true,\n composed: true,\n detail: {\n namespace: NAMESPACE\n }\n });\n }\n};\nvar addHydratedFlag = (elm) => {\n var _a, _b;\n return BUILD20.hydratedClass ? elm.classList.add((_a = BUILD20.hydratedSelectorName) != null ? _a : \"hydrated\") : BUILD20.hydratedAttribute ? elm.setAttribute((_b = BUILD20.hydratedSelectorName) != null ? _b : \"hydrated\", \"\") : void 0;\n};\nvar serverSideConnected = (elm) => {\n const children = elm.children;\n if (children != null) {\n for (let i2 = 0, ii = children.length; i2 < ii; i2++) {\n const childElm = children[i2];\n if (typeof childElm.connectedCallback === \"function\") {\n childElm.connectedCallback();\n }\n serverSideConnected(childElm);\n }\n }\n};\n\n// src/runtime/set-value.ts\nvar getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nvar setValue = (ref, propName, newVal, cmpMeta) => {\n const hostRef = getHostRef(ref);\n if (BUILD21.lazyLoad && !hostRef) {\n throw new Error(\n `Couldn't find host element for \"${cmpMeta.$tagName$}\" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`\n );\n }\n const elm = BUILD21.lazyLoad ? hostRef.$hostElement$ : ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = BUILD21.lazyLoad ? hostRef.$lazyInstance$ : elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!BUILD21.lazyLoad || !(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n if (BUILD21.isDev) {\n if (hostRef.$flags$ & 1024 /* devOnRender */) {\n consoleDevWarn(\n `The state/prop \"${propName}\" changed during rendering. This can potentially lead to infinite-loops and other bugs.`,\n \"\\nElement\",\n elm,\n \"\\nNew value\",\n newVal,\n \"\\nOld value\",\n oldVal\n );\n } else if (hostRef.$flags$ & 2048 /* devOnDidLoad */) {\n consoleDevWarn(\n `The state/prop \"${propName}\" changed during \"componentDidLoad()\", this triggers extra re-renders, try to setup on \"componentWillLoad()\"`,\n \"\\nElement\",\n elm,\n \"\\nNew value\",\n newVal,\n \"\\nOld value\",\n oldVal\n );\n }\n }\n if (!BUILD21.lazyLoad || instance) {\n if (BUILD21.watchCallback && cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n watchMethods.map((watchMethodName) => {\n try {\n instance[watchMethodName](newVal, oldVal, propName);\n } catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if (BUILD21.updatable && (flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n if (BUILD21.cmpShouldUpdate && instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n\n// src/runtime/proxy-component.ts\nvar proxyComponent = (Cstr, cmpMeta, flags) => {\n var _a, _b;\n const prototype = Cstr.prototype;\n if (BUILD22.isTesting) {\n if (prototype.done) {\n return;\n }\n prototype.done = true;\n }\n if (BUILD22.formAssociated && cmpMeta.$flags$ & 64 /* formAssociated */ && flags & 1 /* isElementConstructor */) {\n FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS.forEach((cbName) => {\n const originalFormAssociatedCallback = prototype[cbName];\n Object.defineProperty(prototype, cbName, {\n value(...args) {\n const hostRef = getHostRef(this);\n const instance = BUILD22.lazyLoad ? hostRef.$lazyInstance$ : this;\n if (!instance) {\n hostRef.$onReadyPromise$.then((asyncInstance) => {\n const cb = asyncInstance[cbName];\n typeof cb === \"function\" && cb.call(asyncInstance, ...args);\n });\n } else {\n const cb = BUILD22.lazyLoad ? instance[cbName] : originalFormAssociatedCallback;\n typeof cb === \"function\" && cb.call(instance, ...args);\n }\n }\n });\n });\n }\n if (BUILD22.member && cmpMeta.$members$ || BUILD22.watchCallback && (cmpMeta.$watchers$ || Cstr.watchers)) {\n if (BUILD22.watchCallback && Cstr.watchers && !cmpMeta.$watchers$) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD22.prop || BUILD22.state) && (memberFlags & 31 /* Prop */ || (!BUILD22.lazyLoad || flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {\n const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};\n if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;\n if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;\n if (flags & 1 /* isElementConstructor */ || !origGetter) {\n Object.defineProperty(prototype, memberName, {\n get() {\n if (BUILD22.lazyLoad) {\n if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {\n return getValue(this, memberName);\n }\n const ref = getHostRef(this);\n const instance = ref ? ref.$lazyInstance$ : prototype;\n if (!instance) return;\n return instance[memberName];\n }\n if (!BUILD22.lazyLoad) {\n return origGetter ? origGetter.apply(this) : getValue(this, memberName);\n }\n },\n configurable: true,\n enumerable: true\n });\n }\n Object.defineProperty(prototype, memberName, {\n set(newValue) {\n const ref = getHostRef(this);\n if (BUILD22.isDev) {\n if (\n // we are proxying the instance (not element)\n (flags & 1 /* isElementConstructor */) === 0 && // if the class has a setter, then the Element can update instance values, so ignore\n (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0 && // the element is not constructing\n (ref && ref.$flags$ & 8 /* isConstructingInstance */) === 0 && // the member is a prop\n (memberFlags & 31 /* Prop */) !== 0 && // the member is not mutable\n (memberFlags & 1024 /* Mutable */) === 0\n ) {\n consoleDevWarn(\n `@Prop() \"${memberName}\" on <${cmpMeta.$tagName$}> is immutable but was modified from within the component.\nMore information: https://stenciljs.com/docs/properties#prop-mutability`\n );\n }\n }\n if (origSetter) {\n const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n if (typeof currentValue === \"undefined\" && ref.$instanceValues$.get(memberName)) {\n newValue = ref.$instanceValues$.get(memberName);\n } else if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n if (!BUILD22.lazyLoad) {\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n if (BUILD22.lazyLoad) {\n if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {\n setValue(this, memberName, newValue, cmpMeta);\n if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {\n ref.$onReadyPromise$.then(() => {\n if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {\n ref.$lazyInstance$[memberName] = newValue;\n }\n });\n }\n return;\n }\n const setterSetVal = () => {\n const currentValue = ref.$lazyInstance$[memberName];\n if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, memberFlags);\n setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);\n };\n if (ref.$lazyInstance$) {\n setterSetVal();\n } else {\n ref.$onReadyPromise$.then(() => setterSetVal());\n }\n }\n }\n });\n } else if (BUILD22.lazyLoad && BUILD22.method && flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n var _a2;\n const ref = getHostRef(this);\n return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {\n var _a3;\n return (_a3 = ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);\n });\n }\n });\n }\n });\n if (BUILD22.observeAttribute && (!BUILD22.lazyLoad || flags & 1 /* isElementConstructor */)) {\n const attrNameToPropName = /* @__PURE__ */ new Map();\n prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {\n plt.jmp(() => {\n var _a2;\n const propName = attrNameToPropName.get(attrName);\n if (this.hasOwnProperty(propName) && BUILD22.lazyLoad) {\n newValue = this[propName];\n delete this[propName];\n } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === \"number\" && // cast type to number to avoid TS compiler issues\n this[propName] == newValue) {\n return;\n } else if (propName == null) {\n const hostRef = getHostRef(this);\n const flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {\n const elm = BUILD22.lazyLoad ? hostRef.$hostElement$ : this;\n const instance = BUILD22.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];\n entry == null ? void 0 : entry.forEach((callbackName) => {\n if (instance[callbackName] != null) {\n instance[callbackName].call(instance, newValue, oldValue, attrName);\n }\n });\n }\n return;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\n newValue = newValue === null && typeof this[propName] === \"boolean\" ? false : newValue;\n if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {\n this[propName] = newValue;\n }\n });\n };\n Cstr.observedAttributes = Array.from(\n /* @__PURE__ */ new Set([\n ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),\n ...members.filter(([_, m]) => m[0] & 15 /* HasAttribute */).map(([propName, m]) => {\n var _a2;\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (BUILD22.reflect && m[0] & 512 /* ReflectAttr */) {\n (_a2 = cmpMeta.$attrsToReflect$) == null ? void 0 : _a2.push([propName, attrName]);\n }\n return attrName;\n })\n ])\n );\n }\n }\n return Cstr;\n};\n\n// src/runtime/initialize-component.ts\nvar initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {\n let Cstr;\n if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n if (BUILD23.lazyLoad || BUILD23.hydrateClientSide) {\n const CstrImport = loadModule(cmpMeta, hostRef, hmrVersionId);\n if (CstrImport && \"then\" in CstrImport) {\n const endLoad = uniqueTime(\n `st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`,\n `[Stencil] Load module for <${cmpMeta.$tagName$}>`\n );\n Cstr = await CstrImport;\n endLoad();\n } else {\n Cstr = CstrImport;\n }\n if (!Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (BUILD23.member && !Cstr.isProxied) {\n if (BUILD23.watchCallback) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime(\"createInstance\", cmpMeta.$tagName$);\n if (BUILD23.member) {\n hostRef.$flags$ |= 8 /* isConstructingInstance */;\n }\n try {\n new Cstr(hostRef);\n } catch (e) {\n consoleError(e, elm);\n }\n if (BUILD23.member) {\n hostRef.$flags$ &= ~8 /* isConstructingInstance */;\n }\n if (BUILD23.watchCallback) {\n hostRef.$flags$ |= 128 /* isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else {\n Cstr = elm.constructor;\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n if (BUILD23.style && Cstr && Cstr.style) {\n let style;\n if (typeof Cstr.style === \"string\") {\n style = Cstr.style;\n } else if (BUILD23.mode && typeof Cstr.style !== \"string\") {\n hostRef.$modeName$ = computeMode(elm);\n if (hostRef.$modeName$) {\n style = Cstr.style[hostRef.$modeName$];\n }\n if (BUILD23.hydrateServerSide && hostRef.$modeName$) {\n elm.setAttribute(\"s-mode\", hostRef.$modeName$);\n }\n }\n const scopeId2 = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId2)) {\n const endRegisterStyles = createTime(\"registerStyles\", cmpMeta.$tagName$);\n if (!BUILD23.hydrateServerSide && BUILD23.shadowDom && // TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n BUILD23.shadowDomShim && cmpMeta.$flags$ & 8 /* needsShadowDomShim */) {\n style = await import(\"./shadow-css.js\").then((m) => m.scopeCss(style, scopeId2));\n }\n registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (BUILD23.asyncLoading && ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n if (BUILD23.lazyLoad && BUILD23.connectedCallback) {\n safeCall(instance, \"connectedCallback\", void 0, elm);\n }\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (BUILD24.hostListenerTargetParent) {\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true);\n }\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n let hostId;\n if (BUILD24.hydrateClientSide) {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (BUILD24.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n const scopeId2 = BUILD24.mode ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute(\"s-mode\")) : addStyle(elm.shadowRoot, cmpMeta);\n elm.classList.remove(scopeId2 + \"-h\", scopeId2 + \"-s\");\n } else if (BUILD24.scoped && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n const scopeId2 = getScopeId(cmpMeta, BUILD24.mode ? elm.getAttribute(\"s-mode\") : void 0);\n elm[\"s-sc\"] = scopeId2;\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (BUILD24.slotRelocation && !hostId) {\n if (BUILD24.hydrateServerSide || (BUILD24.slot || BUILD24.shadowDom) && // TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {\n setContentReference(elm);\n }\n }\n if (BUILD24.asyncLoading) {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (BUILD24.hydrateClientSide && ancestorComponent.nodeType === 1 /* ElementNode */ && ancestorComponent.hasAttribute(\"s-id\") && ancestorComponent[\"s-p\"] || ancestorComponent[\"s-p\"]) {\n attachToAncestor(hostRef, hostRef.$ancestorComponent$ = ancestorComponent);\n break;\n }\n }\n }\n if (BUILD24.prop && !BUILD24.hydrateServerSide && cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n if (BUILD24.initializeNextTick) {\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n } else {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n } else {\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));\n }\n }\n endConnected();\n }\n};\nvar setContentReference = (elm) => {\n const contentRefElm = elm[\"s-cr\"] = doc.createComment(\n BUILD24.isDebug ? `content-ref (host=${elm.localName})` : \"\"\n );\n contentRefElm[\"s-cn\"] = true;\n insertBefore(elm, contentRefElm, elm.firstChild);\n};\n\n// src/runtime/disconnected-callback.ts\nimport { BUILD as BUILD25 } from \"@stencil/core/internal/app-data\";\nvar disconnectInstance = (instance, elm) => {\n if (BUILD25.lazyLoad && BUILD25.disconnectedCallback) {\n safeCall(instance, \"disconnectedCallback\", void 0, elm || instance);\n }\n if (BUILD25.cmpDidUnload) {\n safeCall(instance, \"componentDidUnload\", void 0, elm || instance);\n }\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (BUILD25.hostListener) {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = void 0;\n }\n }\n if (!BUILD25.lazyLoad) {\n disconnectInstance(elm);\n } else if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n disconnectInstance(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$, elm));\n }\n }\n if (rootAppliedStyles.has(elm)) {\n rootAppliedStyles.delete(elm);\n }\n if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {\n rootAppliedStyles.delete(elm.shadowRoot);\n }\n};\n\n// src/runtime/bootstrap-custom-element.ts\nvar defineCustomElement = (Cstr, compactMeta) => {\n customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta));\n};\nvar proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1]\n };\n if (BUILD26.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD26.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD26.watchCallback) {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n if (BUILD26.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD26.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;\n }\n if (BUILD26.experimentalSlotFixes) {\n if (BUILD26.scoped && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchPseudoShadowDom(Cstr.prototype);\n }\n } else {\n if (BUILD26.slotChildNodesFix) {\n patchChildSlotNodes(Cstr.prototype);\n }\n if (BUILD26.cloneNodeFix) {\n patchCloneNode(Cstr.prototype);\n }\n if (BUILD26.appendChildSlotFix) {\n patchSlotAppendChild(Cstr.prototype);\n }\n if (BUILD26.scopedSlotTextContentFix && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchTextContent(Cstr.prototype);\n }\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __hasHostListenerAttached: false,\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n if (!this.__hasHostListenerAttached) {\n const hostRef = getHostRef(this);\n addHostEventListeners(this, hostRef, cmpMeta.$listeners$, false);\n this.__hasHostListenerAttached = true;\n }\n connectedCallback(this);\n if (BUILD26.connectedCallback && originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (BUILD26.disconnectedCallback && originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n plt.raf(() => {\n var _a;\n const hostRef = getHostRef(this);\n if (((_a = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$;\n }\n if (this instanceof Node && !this.isConnected) {\n deleteHostRef(this);\n }\n });\n },\n __attachShadow() {\n if (supportsShadow) {\n if (!this.shadowRoot) {\n if (BUILD26.shadowDelegatesFocus) {\n this.attachShadow({\n mode: \"open\",\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */)\n });\n } else {\n this.attachShadow({ mode: \"open\" });\n }\n } else {\n if (this.shadowRoot.mode !== \"open\") {\n throw new Error(\n `Unable to re-use existing shadow root for ${cmpMeta.$tagName$}! Mode is set to ${this.shadowRoot.mode} but Stencil only supports open shadow roots.`\n );\n }\n }\n } else {\n this.shadowRoot = this;\n }\n }\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* isElementConstructor */ | 2 /* proxyState */);\n};\nvar forceModeUpdate = (elm) => {\n if (BUILD26.style && BUILD26.mode && !BUILD26.lazyLoad) {\n const mode = computeMode(elm);\n const hostRef = getHostRef(elm);\n if (hostRef.$modeName$ !== mode) {\n const cmpMeta = hostRef.$cmpMeta$;\n const oldScopeId = elm[\"s-sc\"];\n const scopeId2 = getScopeId(cmpMeta, mode);\n const style = elm.constructor.style[mode];\n const flags = cmpMeta.$flags$;\n if (style) {\n if (!styles.has(scopeId2)) {\n registerStyle(scopeId2, style, !!(flags & 1 /* shadowDomEncapsulation */));\n }\n hostRef.$modeName$ = mode;\n elm.classList.remove(oldScopeId + \"-h\", oldScopeId + \"-s\");\n attachStyles(hostRef);\n forceUpdate(elm);\n }\n }\n }\n};\n\n// src/runtime/bootstrap-lazy.ts\nimport { BUILD as BUILD27 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/hmr-component.ts\nvar hmrStart = (hostElement, cmpMeta, hmrVersionId) => {\n const hostRef = getHostRef(hostElement);\n hostRef.$flags$ = 1 /* hasConnected */;\n initializeComponent(hostElement, hostRef, cmpMeta, hmrVersionId);\n};\n\n// src/runtime/bootstrap-lazy.ts\nvar bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n if (BUILD27.profile && performance.mark) {\n performance.mark(\"st:app:start\");\n }\n installDevTools();\n const endBootstrap = createTime(\"bootstrapLazy\");\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements2 = win.customElements;\n const head = doc.head;\n const metaCharset = /* @__PURE__ */ head.querySelector(\"meta[charset]\");\n const dataStyles = /* @__PURE__ */ doc.createElement(\"style\");\n const deferredConnectedCallbacks = [];\n let appLoadFallback;\n let isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || \"./\", doc.baseURI).href;\n if (BUILD27.asyncQueue) {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* queueSync */;\n }\n }\n if (BUILD27.hydrateClientSide) {\n plt.$flags$ |= 2 /* appLoaded */;\n }\n let hasSlotRelocation = false;\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n var _a2;\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3]\n };\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n hasSlotRelocation = true;\n }\n if (BUILD27.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD27.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD27.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD27.watchCallback) {\n cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};\n }\n if (BUILD27.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;\n }\n const tagName = BUILD27.transformTagName && options.transformTagName ? options.transformTagName(cmpMeta.$tagName$) : cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n super(self);\n this.hasRegisteredEventListeners = false;\n self = this;\n registerHost(self, cmpMeta);\n if (BUILD27.shadowDom && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n if (supportsShadow) {\n if (!self.shadowRoot) {\n if (BUILD27.shadowDelegatesFocus) {\n self.attachShadow({\n mode: \"open\",\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */)\n });\n } else {\n self.attachShadow({ mode: \"open\" });\n }\n } else {\n if (self.shadowRoot.mode !== \"open\") {\n throw new Error(\n `Unable to re-use existing shadow root for ${cmpMeta.$tagName$}! Mode is set to ${self.shadowRoot.mode} but Stencil only supports open shadow roots.`\n );\n }\n }\n } else if (!BUILD27.hydrateServerSide && !(\"shadowRoot\" in self)) {\n self.shadowRoot = self;\n }\n }\n }\n connectedCallback() {\n const hostRef = getHostRef(this);\n if (!this.hasRegisteredEventListeners) {\n this.hasRegisteredEventListeners = true;\n addHostEventListeners(this, hostRef, cmpMeta.$listeners$, false);\n }\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n deferredConnectedCallbacks.push(this);\n } else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n plt.raf(() => {\n var _a3;\n const hostRef = getHostRef(this);\n if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$.$elm$;\n }\n });\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n if (BUILD27.experimentalSlotFixes) {\n if (BUILD27.scoped && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchPseudoShadowDom(HostElement.prototype);\n }\n } else {\n if (BUILD27.slotChildNodesFix) {\n patchChildSlotNodes(HostElement.prototype);\n }\n if (BUILD27.cloneNodeFix) {\n patchCloneNode(HostElement.prototype);\n }\n if (BUILD27.appendChildSlotFix) {\n patchSlotAppendChild(HostElement.prototype);\n }\n if (BUILD27.scopedSlotTextContentFix && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchTextContent(HostElement.prototype);\n }\n }\n if (BUILD27.formAssociated && cmpMeta.$flags$ & 64 /* formAssociated */) {\n HostElement.formAssociated = true;\n }\n if (BUILD27.hotModuleReplacement) {\n HostElement.prototype[\"s-hmr\"] = function(hmrVersionId) {\n hmrStart(this, cmpMeta, hmrVersionId);\n };\n }\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements2.get(tagName)) {\n cmpTags.push(tagName);\n customElements2.define(\n tagName,\n proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */)\n );\n }\n });\n });\n if (cmpTags.length > 0) {\n if (hasSlotRelocation) {\n dataStyles.textContent += SLOT_FB_CSS;\n }\n if (BUILD27.invisiblePrehydration && (BUILD27.hydratedClass || BUILD27.hydratedAttribute)) {\n dataStyles.textContent += cmpTags.sort() + HYDRATED_CSS;\n }\n if (dataStyles.innerHTML.length) {\n dataStyles.setAttribute(\"data-styles\", \"\");\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n dataStyles.setAttribute(\"nonce\", nonce);\n }\n head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n }\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n } else {\n if (BUILD27.profile) {\n plt.jmp(() => appLoadFallback = setTimeout(appDidLoad, 30, \"timeout\"));\n } else {\n plt.jmp(() => appLoadFallback = setTimeout(appDidLoad, 30));\n }\n }\n endBootstrap();\n};\n\n// src/runtime/fragment.ts\nvar Fragment = (_, children) => children;\n\n// src/runtime/host-listener.ts\nimport { BUILD as BUILD28 } from \"@stencil/core/internal/app-data\";\nvar addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (BUILD28.hostListener && listeners) {\n if (BUILD28.hostListenerTargetParent) {\n if (attachParentListeners) {\n listeners = listeners.filter(([flags]) => flags & 32 /* TargetParent */);\n } else {\n listeners = listeners.filter(([flags]) => !(flags & 32 /* TargetParent */));\n }\n }\n listeners.map(([flags, name, method]) => {\n const target = BUILD28.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nvar hostListenerProxy = (hostRef, methodName) => (ev) => {\n var _a;\n try {\n if (BUILD28.lazyLoad) {\n if (hostRef.$flags$ & 256 /* isListenReady */) {\n (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);\n } else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n } else {\n hostRef.$hostElement$[methodName](ev);\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n};\nvar getHostListenerTarget = (elm, flags) => {\n if (BUILD28.hostListenerTargetDocument && flags & 4 /* TargetDocument */) return doc;\n if (BUILD28.hostListenerTargetWindow && flags & 8 /* TargetWindow */) return win;\n if (BUILD28.hostListenerTargetBody && flags & 16 /* TargetBody */) return doc.body;\n if (BUILD28.hostListenerTargetParent && flags & 32 /* TargetParent */ && elm.parentElement)\n return elm.parentElement;\n return elm;\n};\nvar hostListenerOpts = (flags) => supportsListenerOptions ? {\n passive: (flags & 1 /* Passive */) !== 0,\n capture: (flags & 2 /* Capture */) !== 0\n} : (flags & 2 /* Capture */) !== 0;\n\n// src/runtime/nonce.ts\nvar setNonce = (nonce) => plt.$nonce$ = nonce;\n\n// src/runtime/platform-options.ts\nvar setPlatformOptions = (opts) => Object.assign(plt, opts);\n\n// src/runtime/vdom/vdom-annotations.ts\nvar insertVdomAnnotations = (doc2, staticComponents) => {\n if (doc2 != null) {\n const docData = STENCIL_DOC_DATA in doc2 ? doc2[STENCIL_DOC_DATA] : { ...DEFAULT_DOC_DATA };\n docData.staticComponents = new Set(staticComponents);\n const orgLocationNodes = [];\n parseVNodeAnnotations(doc2, doc2.body, docData, orgLocationNodes);\n orgLocationNodes.forEach((orgLocationNode) => {\n var _a;\n if (orgLocationNode != null && orgLocationNode[\"s-nr\"]) {\n const nodeRef = orgLocationNode[\"s-nr\"];\n let hostId = nodeRef[\"s-host-id\"];\n let nodeId = nodeRef[\"s-node-id\"];\n let childId = `${hostId}.${nodeId}`;\n if (hostId == null) {\n hostId = 0;\n docData.rootLevelIds++;\n nodeId = docData.rootLevelIds;\n childId = `${hostId}.${nodeId}`;\n if (nodeRef.nodeType === 1 /* ElementNode */) {\n nodeRef.setAttribute(HYDRATE_CHILD_ID, childId);\n if (typeof nodeRef[\"s-sn\"] === \"string\" && !nodeRef.getAttribute(\"slot\")) {\n nodeRef.setAttribute(\"s-sn\", nodeRef[\"s-sn\"]);\n }\n } else if (nodeRef.nodeType === 3 /* TextNode */) {\n if (hostId === 0) {\n const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();\n if (textContent === \"\") {\n orgLocationNode.remove();\n return;\n }\n }\n const commentBeforeTextNode = doc2.createComment(childId);\n commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`;\n insertBefore(nodeRef.parentNode, commentBeforeTextNode, nodeRef);\n } else if (nodeRef.nodeType === 8 /* CommentNode */) {\n const commentBeforeTextNode = doc2.createComment(childId);\n commentBeforeTextNode.nodeValue = `${COMMENT_NODE_ID}.${childId}`;\n nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef);\n }\n }\n let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`;\n const orgLocationParentNode = orgLocationNode.parentElement;\n if (orgLocationParentNode) {\n if (orgLocationParentNode[\"s-en\"] === \"\") {\n orgLocationNodeId += `.`;\n } else if (orgLocationParentNode[\"s-en\"] === \"c\") {\n orgLocationNodeId += `.c`;\n }\n }\n orgLocationNode.nodeValue = orgLocationNodeId;\n }\n });\n }\n};\nvar parseVNodeAnnotations = (doc2, node, docData, orgLocationNodes) => {\n var _a;\n if (node == null) {\n return;\n }\n if (node[\"s-nr\"] != null) {\n orgLocationNodes.push(node);\n }\n if (node.nodeType === 1 /* ElementNode */) {\n const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];\n childNodes.forEach((childNode) => {\n const hostRef = getHostRef(childNode);\n if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {\n const cmpData = {\n nodeIds: 0\n };\n insertVNodeAnnotations(doc2, childNode, hostRef.$vnode$, docData, cmpData);\n }\n parseVNodeAnnotations(doc2, childNode, docData, orgLocationNodes);\n });\n }\n};\nvar insertVNodeAnnotations = (doc2, hostElm, vnode, docData, cmpData) => {\n if (vnode != null) {\n const hostId = ++docData.hostIds;\n hostElm.setAttribute(HYDRATE_ID, hostId);\n if (hostElm[\"s-cr\"] != null) {\n hostElm[\"s-cr\"].nodeValue = `${CONTENT_REF_ID}.${hostId}`;\n }\n if (vnode.$children$ != null) {\n const depth = 0;\n vnode.$children$.forEach((vnodeChild, index) => {\n insertChildVNodeAnnotations(doc2, vnodeChild, cmpData, hostId, depth, index);\n });\n }\n if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute(HYDRATE_CHILD_ID)) {\n const parent = hostElm.parentElement;\n if (parent && parent.childNodes) {\n const parentChildNodes = Array.from(parent.childNodes);\n const comment = parentChildNodes.find(\n (node) => node.nodeType === 8 /* CommentNode */ && node[\"s-sr\"]\n );\n if (comment) {\n const index = parentChildNodes.indexOf(hostElm) - 1;\n vnode.$elm$.setAttribute(\n HYDRATE_CHILD_ID,\n `${comment[\"s-host-id\"]}.${comment[\"s-node-id\"]}.0.${index}`\n );\n }\n }\n }\n }\n};\nvar insertChildVNodeAnnotations = (doc2, vnodeChild, cmpData, hostId, depth, index) => {\n const childElm = vnodeChild.$elm$;\n if (childElm == null) {\n return;\n }\n const nodeId = cmpData.nodeIds++;\n const childId = `${hostId}.${nodeId}.${depth}.${index}`;\n childElm[\"s-host-id\"] = hostId;\n childElm[\"s-node-id\"] = nodeId;\n if (childElm.nodeType === 1 /* ElementNode */) {\n childElm.setAttribute(HYDRATE_CHILD_ID, childId);\n if (typeof childElm[\"s-sn\"] === \"string\" && !childElm.getAttribute(\"slot\")) {\n childElm.setAttribute(\"s-sn\", childElm[\"s-sn\"]);\n }\n } else if (childElm.nodeType === 3 /* TextNode */) {\n const parentNode = childElm.parentNode;\n const nodeName = parentNode == null ? void 0 : parentNode.nodeName;\n if (nodeName !== \"STYLE\" && nodeName !== \"SCRIPT\") {\n const textNodeId = `${TEXT_NODE_ID}.${childId}`;\n const commentBeforeTextNode = doc2.createComment(textNodeId);\n insertBefore(parentNode, commentBeforeTextNode, childElm);\n }\n } else if (childElm.nodeType === 8 /* CommentNode */) {\n if (childElm[\"s-sr\"]) {\n const slotName = childElm[\"s-sn\"] || \"\";\n const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`;\n childElm.nodeValue = slotNodeId;\n }\n }\n if (vnodeChild.$children$ != null) {\n const childDepth = depth + 1;\n vnodeChild.$children$.forEach((vnode, index2) => {\n insertChildVNodeAnnotations(doc2, vnode, cmpData, hostId, childDepth, index2);\n });\n }\n};\nexport {\n BUILD29 as BUILD,\n Build,\n Env,\n Fragment,\n H,\n H as HTMLElement,\n Host,\n NAMESPACE2 as NAMESPACE,\n STENCIL_DEV_MODE,\n addHostEventListeners,\n bootstrapLazy,\n cmpModules,\n connectedCallback,\n consoleDevError,\n consoleDevInfo,\n consoleDevWarn,\n consoleError,\n createEvent,\n defineCustomElement,\n deleteHostRef,\n disconnectedCallback,\n doc,\n forceModeUpdate,\n forceUpdate,\n getAssetPath,\n getElement,\n getHostRef,\n getMode,\n getRenderingRef,\n getValue,\n h,\n insertVdomAnnotations,\n isMemberInElement,\n loadModule,\n modeResolutionChain,\n nextTick,\n parsePropertyValue,\n plt,\n postUpdateComponent,\n promiseResolve,\n proxyComponent,\n proxyCustomElement,\n readTask,\n registerHost,\n registerInstance,\n renderVdom,\n setAssetPath,\n setErrorHandler,\n setMode,\n setNonce,\n setPlatformHelpers,\n setPlatformOptions,\n setValue,\n styles,\n supportsConstructableStylesheets,\n supportsListenerOptions,\n supportsShadow,\n win,\n writeTask\n};\n","import { renderVdom } from '@stencil/core/internal/client';\nimport type { VNode } from '@stencil/core';\nimport { ArgsType } from './index.conf';\nimport { JsonDocs, JsonDocsComponent, JsonDocsProp } from '@stencil/core/internal';\n\n/**\n * Render attribute on the given element\n * @param element - targeted to render attribute\n * @param name - of the attribute\n * @param value - of the attribute\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst renderAttribute = (element: HTMLElement, name: string, value: any): void => {\n if ([null, undefined, '', false].includes(value) || ['innerHTML', 'style'].includes(name)) return;\n\n element.setAttribute(name, !['object', 'function'].includes(typeof value) ? value : `/!\\\\ Object props are not rendered in the code example`);\n};\n\n/**\n * Render new element in parent element\n * @param parentNode - HTML element\n * @param tagName - of the new element\n * @param attributes - of the new element\n * @param children - of the new element\n * @param text - of the new element\n */\nconst renderElement = (parentNode: HTMLElement, tagName: VNode['$tag$'], attributes: VNode['$attrs$'], children: VNode[], text: VNode['$text$']): void => {\n // render HTML\n if (tagName && typeof tagName === 'string') {\n const element = document.createElement(tagName);\n Object.keys(attributes || {}).forEach(attr => {\n renderAttribute(element, attr, attributes[attr]);\n });\n\n children?.forEach(child => {\n renderElement(element, child.$tag$, child.$attrs$, child.$children$, child.$text$);\n });\n\n if (attributes?.innerHTML) element.innerHTML = attributes.innerHTML;\n\n parentNode.appendChild(element);\n }\n // render text\n if (text) {\n parentNode.innerHTML = text;\n }\n};\n\n/**\n * Filter default argument on component argument to prevent them to be rendered\n * @param args - all possible args with custom values\n * @param defaultValues - component default args values\n * @returns filtres args\n * @example\n * ```ts\n * import { filterArgs } from '@mgdis/stencil-helpers';\n * const Template = (args: MgBadgeType): HTMLElement => <mg-badge {...filterArgs(args, { variant: variants[0] })}></mg-badge>;\n * ```\n */\nexport const filterArgs = <T>(args: T, defaultValues?: Partial<T>): T => {\n const filteredArgs = {} as { [key: string]: unknown };\n if (typeof args !== 'object') {\n throw new Error(\"filterArgs - args isn't an object.\");\n }\n for (const k in args) {\n if (!k.startsWith('slot')) {\n const arg = args[k];\n // Change camelCase k to kebab-case\n const key = k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n if (!defaultValues || !Object.keys(defaultValues).includes(k) || defaultValues[k] !== arg) {\n filteredArgs[key] = arg;\n }\n }\n }\n return filteredArgs as T;\n};\n\n/**\n * Storybook stencil wrapper. Used to target element with `storybook-root` id and render virtual DOM inside.\n * @param storyFn - storybook render function\n * @param context - storybook context\n * @returns rendered element\n * @example\n * ```ts\n * // .storybook/preview.ts\n * import { stencilWrapper } from '@mgdis/stencil-helpers';\n * export const decorators: Preview['decorators'] = [stencilWrapper];\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const stencilWrapper = (storyFn: (ctx: any) => void, context: ArgsType): Element | undefined => {\n const host = document.getElementById('storybook-root');\n if (host === null) return;\n\n // update local switcher based on context variable\n document.querySelector('[lang]')?.setAttribute('lang', (context.globals as { locale: string })?.locale || 'en');\n\n renderVdom(\n {\n $ancestorComponent$: undefined,\n $flags$: 0,\n $modeName$: undefined,\n $cmpMeta$: {\n $flags$: 0,\n $tagName$: host.tagName,\n },\n $hostElement$: host,\n },\n storyFn(context),\n );\n return host.children[host.children.length - 1];\n};\n\n/**\n * Get story HTML from virtual DOM.\n * Mainly used to render, component code exemple in stories.\n * @param vitualNode - story virtual DOM\n * @returns stringified rendered HTML\n * @example\n * ```ts\n * // .storybook/preview.ts\n * import { getStoryHTML } from '@mgdis/stencil-helpers';\n *\n * export const parameters: Preview['parameters'] = {\n * docs: {\n * extractArgTypes,\n * extractComponentDescription,\n * transformSource: (_, ctx) => getStoryHTML(ctx.originalStoryFn(ctx.args)),\n * },\n * };\n * ```\n */\nexport const getStoryHTML = ({ $tag$, $attrs$, $children$, $text$ }: VNode): string => {\n const host = document.createElement('div');\n\n renderElement(host, $tag$, $attrs$, $children$, $text$);\n\n return host.innerHTML;\n};\n\n/**\n * Retrieve Component Storybook URL from file path\n * @param storybookBaseUrl - Storybook Base URL\n * @param filePath - Component file path\n * @returns Component Storybook URL\n */\nexport const getStorybookUrl = (storybookBaseUrl: string, filePath: string | undefined): string | undefined => {\n if (!filePath) {\n return;\n }\n const split = filePath.split('/');\n return `${storybookBaseUrl}${split.slice(2, split.length - 1).join('-')}--docs`;\n};\n\nexport class StorybookPreview {\n /**\n * JsonDocs\n */\n jsonDoc: JsonDocs;\n\n constructor(jsonDoc: JsonDocs) {\n this.jsonDoc = jsonDoc;\n }\n\n /**\n * Get component data from the jsonDoc\n * @param tagName - tag name we want to get the data from\n * @returns component data\n */\n #getComponentData = (tagName: string): JsonDocsComponent | undefined => {\n return this.jsonDoc.components.find(component => component.tag === tagName);\n };\n\n /**\n * Get the control for the given prop\n * Based on https://storybook.js.org/docs/api/arg-types#controltype\n * @param prop - prop to get control for\n * @returns control type and options if applicable\n */\n #getPropControl = (prop: JsonDocsProp) => {\n // Get types\n const types: (string | undefined)[] = prop.type\n .replace(/\"([^\"]+)\"/g, '$1') // Remove quotes\n .replace(/\\s/g, '') // Remove all whitespace for simplicity\n .replace(/\\(.*?\\)/g, match => match.replace(/\\|/g, ' OR ')) // Replace '|' inside parentheses\n .split('|')\n .map(type => type.trim().replace(/ OR /g, '|')); // Revert ' OR ' back to '|'\n\n // Return control and options\n if (prop.type === 'string') {\n return { control: { type: 'text' } };\n } else if (prop.type === 'number') {\n return { control: { type: 'number' } };\n } else if (prop.type === 'boolean') {\n return { control: { type: 'boolean' } };\n } else if (prop.type.startsWith('{') && prop.type.endsWith('}')) {\n return { control: { type: 'object' } };\n } else if (types.length > 1) {\n // Manage case when multiple types are possible\n if (types.includes('string')) {\n return { control: { type: 'text' } };\n } else if (types.every(type => type?.includes('[]'))) {\n return { control: { type: 'object' } };\n } else {\n // Add the posibility to set undefined\n types.unshift(undefined);\n return { control: { type: 'select' }, options: types };\n }\n } else return { control: { type: 'object' } };\n };\n\n /**\n * Extract component arg types from the component data\n * @param tagName - tag name we want to extract the arg types from\n * @returns component arg types\n */\n extractArgTypes = (tagName: string) => {\n const componentData = this.#getComponentData(tagName);\n\n // Extract props arg types\n const componentPropsArgTypes = componentData?.props.reduce((acc, prop) => {\n // Get Controls\n const { control, options } = this.#getPropControl(prop);\n // Set Component ArgTypes\n return {\n ...acc,\n [prop.name]: {\n name: prop.attr || prop.name,\n description: prop.docs,\n type: { required: prop.required },\n table: {\n category: 'props',\n type: { summary: prop.type },\n defaultValue: { summary: prop.default },\n },\n control,\n options,\n },\n };\n }, {});\n\n // Extract events arg types\n const componentEventsArgTypes = componentData?.events.reduce(\n (acc, event) => ({\n ...acc,\n [event.event]: {\n name: event.event,\n description: event.docs,\n table: {\n category: 'events',\n type: { summary: event.detail },\n },\n },\n }),\n {},\n );\n\n // Extracts Methods arg types\n const componentMethodsArgTypes = componentData?.methods.reduce(\n (acc, method) => ({\n ...acc,\n [method.name]: {\n name: method.name,\n description: method.docs,\n table: {\n category: 'methods',\n type: { summary: method.signature },\n },\n },\n }),\n {},\n );\n\n // Extracts Slots arg types\n const componentSlotsArgTypes = componentData?.slots.reduce(\n (acc, slot) => ({\n ...acc,\n [slot.name]: {\n name: slot.name !== '' ? slot.name : 'default', // default slot are unnamed\n description: slot.docs,\n table: {\n category: 'slots',\n type: { summary: undefined },\n },\n },\n }),\n {},\n );\n\n // Extracts CSS Properties arg types\n const componentCSSPropArgTypes = componentData?.styles.reduce(\n (acc, style) => ({\n ...acc,\n [style.name]: {\n name: style.name,\n description: style.docs,\n table: {\n category: 'custom properties',\n type: { summary: undefined },\n },\n },\n }),\n {},\n );\n\n // Extract component dependencies\n const componentDependencies = componentData?.dependencies.reduce((acc, dependency) => {\n const dependencyData = this.#getComponentData(dependency);\n return {\n ...acc,\n [dependency]: {\n name: dependency,\n description: `<a href=\"./?path=/docs/${getStorybookUrl('', dependencyData?.filePath)}\">View Component Documentation</a>`,\n table: {\n category: 'depends on',\n type: { summary: undefined },\n },\n },\n };\n }, {});\n\n // Extract dependents components\n const componentDependents = componentData?.dependents.reduce((acc, dependent) => {\n const dependentData = this.#getComponentData(dependent);\n return {\n ...acc,\n [dependent]: {\n name: dependent,\n description: `<a href=\"./?path=/docs/${getStorybookUrl('', dependentData?.filePath)}\">View Component Documentation</a>`,\n table: {\n category: 'used by',\n type: { summary: undefined },\n },\n },\n };\n }, {});\n\n return {\n ...componentPropsArgTypes,\n ...componentEventsArgTypes,\n ...componentMethodsArgTypes,\n ...componentSlotsArgTypes,\n ...componentCSSPropArgTypes,\n ...componentDependencies,\n ...componentDependents,\n };\n };\n\n /**\n * Extract component description from the component data\n * @param tagName - tag name we want to extract the description from\n * @returns component description\n */\n extractComponentDescription = (tagName: string) => {\n const componentData = this.#getComponentData(tagName);\n return componentData?.readme || componentData?.docs;\n };\n}\n","import { JsonDocs, JsonDocsComponent, JsonDocsProp } from '@stencil/core/internal';\nimport { getStorybookUrl } from '../storybook';\n\n/**\n * Retrieve Component source URL from file path\n * @param sourcesBaseUrl - Source base URL\n * @param filePath - Component file path\n * @returns Component source URL\n */\nconst getSourcesUrl = (sourcesBaseUrl: string, filePath: string | undefined): string | undefined => {\n if (!filePath) {\n return;\n }\n return `${sourcesBaseUrl}${filePath}`;\n};\n\n/**\n * Get Component element description\n * @param component - Component\n * @returns Component element description\n */\nconst getElementDescription = (component: JsonDocsComponent): string => {\n // Init description\n let description = component.overview ? `${component.overview}\\n\\n` : '';\n // Attributes\n const attributes = component.props.filter(({ attr }) => attr !== undefined);\n if (attributes.length) {\n description += `Attributes:\\n`;\n description += attributes.map(({ attr, docs }) => `- \\`${attr}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Properties\n const properties = component.props.filter(({ attr }) => attr === undefined);\n if (properties.length) {\n description += `Properties:\\n`;\n description += properties.map(({ name, docs }) => `- \\`${name}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Methods\n if (component.methods.length) {\n description += `Methods:\\n`;\n description += component.methods.map(({ name, docs }) => `- \\`${name}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Events\n if (component.events.length) {\n description += `Events:\\n`;\n description += component.events.map(({ event, docs }) => `- \\`${event}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Listeners\n if (component.listeners.length) {\n description += `Listeners:\\n`;\n description += component.listeners.map(({ event }) => `- \\`${event}\\`\\n`).join('');\n description += '\\n';\n }\n // Slots\n if (component.slots.length) {\n description += `Slots:\\n`;\n description += component.slots.map(({ name, docs }) => `- \\`${name}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Return\n return description;\n};\n\n/**\n * Get Props Description\n * @param prop - Component Property\n * @returns Props Description\n */\nconst getAttributeDescription = (prop: JsonDocsProp): string => {\n return `${prop.docs}\\n\\nType: \\`${prop.type}\\``;\n};\n\n/**\n * Generate Web Types metadata for IntelliJ's IDE\n * @param name - Library name\n * @param version - Library version\n * @param jsonDocs - Stencil JSON doc\n * @param storybookBaseUrl - Storybook Base Url\n * @returns Web Types metadata\n * @example\n * ```ts\n * const webTypesJson = webTypesGenerator('@mgdis/mg-components', '1.0.0', jsonDocs, 'https://storybook.example.com');\n * ```\n */\nexport const webTypesGenerator = (name: string, version: string, jsonDocs: JsonDocs, storybookBaseUrl: string) => ({\n '$schema': 'https://json.schemastore.org/web-types',\n name,\n version,\n 'description-markup': 'markdown',\n 'contributions': {\n html: {\n elements: jsonDocs.components.map(component => {\n const docUrl = getStorybookUrl(storybookBaseUrl, component.filePath);\n return {\n 'name': component.tag,\n 'description': getElementDescription(component),\n 'doc-url': docUrl,\n 'attributes': component.props\n .filter(prop => prop.attr)\n .map(prop => ({\n 'name': prop.attr,\n 'description': getAttributeDescription(prop),\n 'doc-url': docUrl,\n 'value': {\n type: prop.type,\n default: prop.default,\n required: prop.required,\n },\n })),\n 'js': {\n properties: component.props.map(prop => ({\n 'name': prop.name,\n 'description': getAttributeDescription(prop),\n 'doc-url': docUrl,\n 'value': {\n type: prop.type,\n default: prop.default,\n required: prop.required,\n },\n })),\n events: component.events.map(event => ({\n name: event.event,\n description: event.docs,\n })),\n },\n 'css': {\n properties: component.styles.map(style => ({\n name: style.name,\n description: style.docs,\n })),\n },\n };\n }),\n },\n },\n});\n\n/**\n * Create Storybook Reference\n * @param storybookBaseUrl - Storybook Base Url\n * @param filePath - Component file path\n * @returns Storybook Reference\n */\nconst getReferences = (storybookBaseUrl: string, sourceBaseUrl: string, filePath: string | undefined) => {\n return [\n { name: 'Storybook', url: getStorybookUrl(storybookBaseUrl, filePath) },\n { name: 'Sources', url: getSourcesUrl(sourceBaseUrl, filePath) },\n ];\n};\n\n/**\n * Get Property possible values\n * @param prop - Component Property\n * @returns Property possible values\n */\nconst getValues = (prop: JsonDocsProp): unknown[] | undefined => {\n // Only values Array where all objects have a value seems to be usefull\n if (prop.values.some(({ value }) => value === undefined)) {\n return;\n }\n return prop.values.map(({ value }) => ({ name: value }));\n};\n\n/**\n * Generate custom HTML datasets for VS Code\n * @param jsonDocs - Stencil JSON doc\n * @param storybookBaseUrl - Storybook Base Url\n * @returns custom HTML datasets\n * @example\n * ```ts\n * const customDataJson = vsCodeGenerator(jsonDocs, 'https://storybook.example.com', 'https://sources.example.com');\n * ```\n */\nexport const vsCodeGenerator = (jsonDocs: JsonDocs, storybookBaseUrl: string, sourceBaseUrl: string) => ({\n version: 1.1,\n tags: jsonDocs.components.map(component => {\n const references = getReferences(storybookBaseUrl, sourceBaseUrl, component.filePath);\n return {\n name: component.tag,\n description: getElementDescription(component),\n attributes: component.props.map(prop => ({\n name: prop.attr || prop.name,\n description: getAttributeDescription(prop),\n values: getValues(prop),\n references,\n })),\n references,\n };\n }),\n globalAttributes: [],\n valueSets: [],\n});\n\n/**\n * Generate custom CSS datasets for VS Code\n * @param jsonDocs - Stencil JSON doc\n * @returns custom CSS datasets\n * @example\n * ```ts\n * const customDataJson = vsCodeCssGenerator(jsonDocs);\n * ```\n */\nexport const vsCodeCssGenerator = (jsonDocs: JsonDocs) => ({\n version: 1.1,\n properties: jsonDocs.components.flatMap(component =>\n component.styles.map(style => ({\n name: style.name,\n description: style.docs,\n })),\n ),\n});\n","import type { ObjectType } from '../types';\n\n/**\n * Gets the date pattern based on the specified locale.\n * @param locale - the locale to refer to\n * @returns date pattern\n * @example\n * ```ts\n * getLocaleDatePattern('fr') // 'dd/mm/yyyy'\n * ```\n */\nexport const getLocaleDatePattern = (locale: string) => {\n const year = { value: '2023', pattern: 'yyyy' };\n const month = { value: '12', pattern: 'mm' };\n const day = { value: '24', pattern: 'dd' };\n return localeDate([year.value, month.value, day.value].join('-'), locale, { timeZone: 'UTC' })\n .replace(year.value, year.pattern)\n .replace(month.value, month.pattern)\n .replace(day.value, day.pattern);\n};\n\n/**\n * Formats a date object to a string with the pattern 'YYYY-MM-DD'.\n * @param date - date to parse\n * @returns string date with pattern 'YYYY-MM-DD'\n * @example\n * ```ts\n * dateToString(new Date('2023-12-24')) // '2023-12-24'\n * ```\n */\nexport const dateToString = (date: Date): string | undefined => date.toISOString().split('T')[0];\n\n/**\n * Get locale and messages\n * We load the defined locale but for now we only support the first subtag for messages\n * @param element - element we need to get the language\n * @param messages - messages to use\n * @param defaultLocale - default messages locale\n * @returns messages object\n */\nconst getLocaleMessages = (element: HTMLElement, messages: ObjectType, defaultLocale: string): { locale: string; messages: ObjectType } => {\n // Get local\n const closestLangAttribute: HTMLElement | null = element.closest('[lang]');\n const closestLang: string[] = Intl.NumberFormat.supportedLocalesOf(closestLangAttribute?.lang as string);\n const locale = closestLang.length > 0 && typeof closestLang[0] === 'string' ? closestLang[0] : navigator.language || defaultLocale;\n // Only keep first subtag\n const localeSubtag = locale.split('-').shift() as string;\n\n // If messages is empty, return a default object\n if (Object.keys(messages).length === 0) {\n return {\n locale,\n messages: { lang: defaultLocale },\n };\n }\n\n // Return\n return {\n locale,\n messages: (messages[localeSubtag] || messages[defaultLocale] || { lang: defaultLocale }) as ObjectType,\n };\n};\n\n/**\n * Format number to the locale currency\n * @param number - number to format\n * @param locale - locale to apply\n * @param currency - currency to apply\n * @returns formatted currency\n * @example\n * ```ts\n * localeCurrency(1234567890.12, 'fr', 'EUR') // '1 234 567 890,12\\xa0€'\n * ```\n */\nexport const localeCurrency = (number: number, locale: string, currency: string): string => new Intl.NumberFormat(locale, { style: 'currency', currency }).format(number);\n\n/**\n * Format number to locale\n * @param number - number to format\n * @param locale - locale to apply\n * @param decimalLength - decimal length to apply\n * @returns formatted number\n * @example\n * ```ts\n * localeNumber(1234567890.12, 'fr') // 1 234 567 890,12\n * ```\n */\nexport const localeNumber = (number: number, locale: string, decimalLength: number = 0): string =>\n new Intl.NumberFormat(locale, { minimumFractionDigits: decimalLength }).format(decimalLength > 0 ? Number(number?.toFixed(decimalLength)) : number);\n\n/**\n * Format number as percentage based on locale\n * @param number - number to format\n * @param locale - locale to apply\n * @param decimalLength - decimal length to apply\n * @returns formatted percentage\n * @example\n * ```ts\n * localePercent(0.42, 'fr', 2) // '42,00 %'\n * localePercent(0.42, 'en', 2) // '42.00%'\n * ```\n */\nexport const localePercent = (number: number, locale: string, decimalLength: number = 0): string => {\n return new Intl.NumberFormat(locale, {\n style: 'percent',\n minimumFractionDigits: decimalLength,\n maximumFractionDigits: decimalLength,\n }).format(number);\n};\n\n/**\n * Format number with standardized unit based on locale using Intl unit formatting\n * @param number - number to format\n * @param locale - locale to apply\n * @param unit - standardized unit (e.g., 'kilometer', 'kilogram', 'celsius')\n * @param unitDisplay - how to display the unit ('short', 'long', 'narrow')\n * @param decimalLength - decimal length to apply\n * @returns formatted number with localized unit\n * @example\n * ```ts\n * localeUnit(1234567890.12, 'fr', 'kilometer') // '1 234 567 890,12 km'\n * localeUnit(23, 'fr', 'celsius') // '23 °C'\n * localeUnit(10, 'fr', 'kilometer', 0, 'long') // '10 kilomètres'\n * ```\n */\nexport const localeUnit = (\n number: number,\n locale: string,\n unit: Intl.NumberFormatOptions['unit'],\n unitDisplay: Intl.NumberFormatOptions['unitDisplay'] = 'short',\n decimalLength: number = 0,\n): string => {\n return new Intl.NumberFormat(locale, {\n style: 'unit',\n unit,\n unitDisplay,\n minimumFractionDigits: decimalLength,\n maximumFractionDigits: decimalLength,\n }).format(number);\n};\n\n/**\n * Date RegExp, usefull to test if string is a follow the date pattern\n * @example\n * ```ts\n * dateRegExp.test('mystring') // false\n * dateRegExp.test('2020-12-31') // true\n * ```\n */\nexport const dateRegExp = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$/;\n\n/**\n * Locale date format\n * @param date - date to format\n * @param locale - locale to apply\n * @param config - DateTimeFormatOptions object to apply\n * @returns formatted date\n * @example\n * ```ts\n * localeDate('2022-06-02', 'fr') // '02/06/2022'\n * ```\n */\nexport const localeDate = (date: string | undefined, locale: string, config?: Intl.DateTimeFormatOptions): string =>\n typeof date !== 'string' || date === '' || !dateRegExp.test(date) ? '' : new Intl.DateTimeFormat(locale, config).format(new Date(date));\n\n/**\n * Get Intl object\n * @param messages - locales to render in object format. `ex: { en: { porp: \"test\" }, fr: { porp: \"test\" }}`.\n * @param defaultLocale - fallback locale to render. `ex: 'en'`.\n * @returns from the element passed in return function you will get the matching messages object\n * @example\n * ```ts\n * import en from './en/messages.json';\n * import fr from './fr/messages.json';\n * import { defineLocales } from '@mgdis/stencil-helpers';\n *\n * const defaultLocale = 'en';\n * const messages = { en, fr };\n *\n * export const initLocales = defineLocales(messages, defaultLocale);\n * ```\n */\nexport const defineLocales =\n (messages: ObjectType, defaultLocale: 'fr' | 'en' | string) =>\n (element: HTMLElement): { locale: string; messages: ObjectType } =>\n getLocaleMessages(element, messages, defaultLocale);\n","import type { SetupMutationObserverMockParams, setupResizeObserverMockParams } from './unit.conf';\n\n/**\n * Utility function that mocks the `MutationObserver` API. Recommended to execute inside `beforeEach`.\n * @param mutationObserverMock - Parameter that is sent to the `Object.defineProperty`\n * overwrite method. `jest.fn()` mock functions can be passed here if the goal is to not only\n * mock the mutation observer, but its methods.\n * You can manually fire an intersection entry:\n * @param mutationObserverMock - configuration object\n * @returns Mocked MutationObserver\n * @example\n * ```\n * let fireMo;\n * setupMutationObserverMock({\n * observe: function () {\n * fireMo = this.cb;\n * },\n * });\n * ...\n * fireMo([{ type: 'childList', addedNodes: [AMockElemenet, AnotherMockElemenet], target: yourMockElemenet }]);;\n * ```\n */\nexport const setupMutationObserverMock = ({ disconnect, observe, takeRecords }: SetupMutationObserverMockParams): typeof MutationObserver => {\n class MockMutationObserver implements MutationObserver {\n /**\n *\n */\n disconnect: () => void = disconnect;\n /**\n *\n */\n observe: (target: Node, options?: MutationObserverInit) => void = observe;\n /**\n *\n */\n takeRecords: () => MutationRecord[] = takeRecords;\n /**\n *\n */\n cb: MutationCallback;\n constructor(fn: MutationCallback) {\n this.cb = fn;\n }\n }\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'MutationObserver', {\n writable: true,\n configurable: true,\n value: MockMutationObserver,\n });\n });\n\n return MockMutationObserver;\n};\n\n/**\n * Utility function that mocks the `ResizeObserver` API. Recommended to execute inside `beforeEach`.\n * @param resizeObserverMock - Parameter that is sent to the `Object.defineProperty`\n * overwrite method. `jest.fn()` mock functions can be passed here if the goal is to not only\n * mock the resize observer, but its methods.\n * You can manually fire an intersection entry:\n * @param resizeObserverMock - configuration object\n * @returns Mocked ResizeObserver\n * @example\n * ```\n * let fireRo;\n * setupResizeObserverMock({\n * observe: function () {\n * fireRo = this.cb;\n * },\n * });\n * ...\n * fireRo([{\n * borderBoxSize: ResizeObserverSize[],\n * contentBoxSize: ResizeObserverSize[],\n * contentRect: DOMRectReadOnly,\n * devicePixelContentBoxSize: ResizeObserverSize[],\n * target: yourMockElemenet\n * }]);;\n * ```\n */\nexport const setupResizeObserverMock = ({ disconnect, observe }: setupResizeObserverMockParams): typeof ResizeObserver => {\n class MockResizeObserver implements ResizeObserver {\n /**\n *\n */\n disconnect: () => void = disconnect;\n /**\n *\n */\n observe: (target: Element, options?: ResizeObserverOptions) => void = observe;\n /**\n *\n */\n unobserve!: () => void;\n /**\n *\n */\n cb: ResizeObserverCallback;\n constructor(fn: ResizeObserverCallback) {\n this.cb = fn;\n }\n }\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'ResizeObserver', {\n writable: true,\n configurable: true,\n value: MockResizeObserver,\n });\n });\n\n return MockResizeObserver;\n};\n\nclass MockCustomEvent extends Event {\n /**\n *\n */\n detail: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n}\n\n/**\n * Utility function that mocks the `SubmitEvent` API. Recommended to execute inside `beforeEach`.\n * @example\n * ```\n * setupSubmitEventMock();\n * ```\n * @returns custom event mock\n */\nexport const setupSubmitEventMock = (): typeof MockCustomEvent => {\n class SubmitEvent extends MockCustomEvent {}\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'SubmitEvent', {\n writable: true,\n configurable: true,\n value: SubmitEvent,\n });\n });\n\n return SubmitEvent;\n};\n\n/**\n * Utility function that mocks the `requestAnimationFrame` API. Recommended to execute inside `test`.\n * @example\n * ```\n * setUpRequestAnimationFrameMock(jest.runOnlyPendingTimers);\n * ```\n * @param faketimer - recommended to use jest.runOnlyPendingTimers()\n * @returns custom setUpRequestAnimationFrameMock mock\n */\nexport const setUpRequestAnimationFrameMock = (faketimer:() => void): typeof requestAnimationFrame => {\n const requestAnimationFrame = (callback: FrameRequestCallback) => {\n setTimeout(callback, 1);\n faketimer();\n return 0;\n };\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'requestAnimationFrame', {\n writable: true,\n configurable: true,\n value: requestAnimationFrame,\n });\n });\n\n return requestAnimationFrame;\n}\n\n"],"names":["createID","prefix","length","randomBytes","hexString","byte","isValideID","newValue","isValidString","ClassList","classlist","__publicField","className","index","allItemsAreString","items","item","isTagName","element","tagNames","focusableElements","getWindows","localWindow","parentWindows","getParentWindows","childWindows","getChildWindows","windows","parentWindow","err","childWindow","value","toString","isValidNumber","cleanString","text","nextTick","callback","BUILD","__defProp","__export","target","all","name","SVG_NS","HTML_NS","isMemberInElement","elm","memberName","XLINK_NS","win","doc","plt","h2","el","eventName","listener","opts","isDef","v","isComplexType","o","result_exports","map","ok","unwrap","unwrapErr","result","fn","val","newVal","updateFallbackSlotVisibility","childNodes","getHostSlotNodes","slotNode","_a","getHostSlotChildNodes","childNode","hostName","slotName","i2","slottedNodes","node","includeSlot","isNodeLocatedInSlot","nodeToRelocate","h","nodeName","vnodeData","children","child","key","simple","lastSimple","vNodeChildren","walk","c","newVNode","vnode","tag","Host","isHost","setAccessor","oldValue","isSvg","flags","initialRender","isProp","ln","classList","oldClasses","parseClassList","newClasses","prop","capture","CAPTURE_EVENT_SUFFIX","CAPTURE_EVENT_REGEX","isComplex","n","xlink","parseClassListRegex","updateElement","oldVnode","newVnode","isSvgMode2","isInitialRender","oldVnodeAttrs","newVnodeAttrs","sortedAttrNames","attrNames","attr","scopeId","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","createElm","oldParentVNode","newParentVNode","childIndex","newVNode2","oldVNode","BUILD19","putBackInOriginalLocation","addRemoveSlotScopedClass","parentElm","recursive","oldSlotChildNodes","insertBefore","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","removeVnodes","nullifyVNodeRefs","updateChildren","oldCh","newCh","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","elmToMove","isSameVnode","patch","leftVNode","rightVNode","oldChildren","newChildren","defaultHolder","relocateNodes","markSlotContentForRelocation","hostContentNodes","j","relocateNodeData","r","relocateNode","vNode","parent","newNode","reference","newParent","oldParent","scopeId2","scopeName","found","renderVdom","hostRef","renderFnResults","isInitialLoad","_b","_c","_d","_e","hostElm","cmpMeta","rootVnode","propName","attribute","relocateData","orgLocationNode","slotRefNode","parentNodeRef","insertBeforeNode","refNode","nextSibling","renderAttribute","renderElement","parentNode","tagName","attributes","filterArgs","args","defaultValues","filteredArgs","k","arg","stencilWrapper","storyFn","context","host","getStoryHTML","$tag$","$attrs$","$children$","$text$","getStorybookUrl","storybookBaseUrl","filePath","split","_getComponentData","_getPropControl","StorybookPreview","jsonDoc","__privateAdd","component","types","match","type","componentData","__privateGet","componentPropsArgTypes","acc","control","options","componentEventsArgTypes","event","componentMethodsArgTypes","method","componentSlotsArgTypes","slot","componentCSSPropArgTypes","style","componentDependencies","dependency","dependencyData","componentDependents","dependent","dependentData","getSourcesUrl","sourcesBaseUrl","getElementDescription","description","docs","properties","getAttributeDescription","webTypesGenerator","version","jsonDocs","docUrl","getReferences","sourceBaseUrl","getValues","vsCodeGenerator","references","vsCodeCssGenerator","getLocaleDatePattern","locale","year","month","day","localeDate","dateToString","date","getLocaleMessages","messages","defaultLocale","closestLangAttribute","closestLang","localeSubtag","localeCurrency","number","currency","localeNumber","decimalLength","localePercent","localeUnit","unit","unitDisplay","dateRegExp","config","defineLocales","setupMutationObserverMock","disconnect","observe","takeRecords","MockMutationObserver","setupResizeObserverMock","MockResizeObserver","MockCustomEvent","setupSubmitEventMock","SubmitEvent","setUpRequestAnimationFrameMock","faketimer","requestAnimationFrame"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/components/index.ts","../../../node_modules/.pnpm/@stencil+core@4.25.1/node_modules/@stencil/core/internal/app-data/index.js","../../../node_modules/.pnpm/@stencil+core@4.25.1/node_modules/@stencil/core/internal/client/index.js","../src/storybook/index.ts","../src/ide/index.ts","../src/locale/index.ts","../src/tests/unit.ts"],"sourcesContent":["/**\n * Create random ID\n * @param prefix - add prefix to created ID\n * @param length - ID length\n * @returns ID\n */\nexport const createID = (prefix = '', length = 10): string => {\n const randomBytes = new Uint8Array(length);\n\n crypto.getRandomValues(randomBytes);\n\n const hexString = Array.from(randomBytes)\n .map(byte => byte.toString(16).padStart(2, '0'))\n .join('')\n .slice(0, length);\n\n return prefix !== '' ? `${prefix}-${hexString}` : hexString;\n};\n\n/**\n * Validate html `id` format\n * @param newValue - id value to validate\n * @returns true if `id` is valid\n */\nexport const isValideID = (newValue: unknown): boolean => isValidString(newValue) && /^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.exec(newValue) !== null;\n\n/**\n * Class to manage component classlist\n */\nexport class ClassList {\n /**\n * Available classes\n */\n classes: string[];\n\n constructor(classlist: string[] = []) {\n this.classes = classlist;\n }\n\n /**\n * Add class\n * @param className - class name to add\n */\n add = (className: string): void => {\n if (!this.has(className)) {\n this.classes.push(className);\n }\n };\n\n /**\n * Delete class\n * @param className - class name to delete\n */\n delete = (className: string): void => {\n const index = this.classes.indexOf(className);\n if (index > -1) {\n this.classes.splice(index, 1);\n }\n };\n\n /**\n * Check if class exist in list\n * @param className - class name to check\n * @returns class name is in the list\n */\n has = (className: string): boolean => {\n return this.classes.includes(className);\n };\n\n /**\n * Join classes seperated by spaces\n * @returns joined values\n */\n join = (): string => {\n return this.classes.join(' ');\n };\n}\n\n/**\n * Typeguard function to check if all array items are strings.\n * @param items - items to check\n * @returns `true` if all items are strings\n */\nexport const allItemsAreString = (items: unknown): items is string[] => Array.isArray(items) && items.every(item => typeof item === 'string');\n\n/**\n * Check if element belongs to the given tagNames list\n * @param element - element to check\n * @param tagNames - allowed tag names list\n * @returns `true` if element tagName is in the tagNames list\n */\nexport const isTagName = (element: Element, tagNames: string[]): boolean => {\n return tagNames.includes(element?.tagName.toLowerCase());\n};\n\n/**\n * CSS selector to select focusable elements.\n * @example\n * ```ts\n * const allFocusableElements: HTMLElement[] = Array.from(this.element.querySelectorAll(focusableElements));\n * ```\n */\nexport const focusableElements = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]), [identifier], mg-button';\n\n/**\n * Get windows\n * @param localWindow - the window we are lookink for other windows\n * @returns The list of windows found\n */\nexport const getWindows = (localWindow: Window): Window[] => {\n const parentWindows = getParentWindows(localWindow);\n const childWindows = getChildWindows(localWindow);\n return [localWindow, ...parentWindows, ...childWindows];\n};\n\n/**\n * Get parent windows\n * @param localWindow - the window we are lookink for parents\n * @param windows - The list of allready found windows\n * @returns The list of windows found\n */\nexport const getParentWindows = (localWindow: Window, windows: Window[] = []): Window[] => {\n // Check if is in iframe\n if (localWindow.self !== localWindow.top) {\n // Check if we have permission to access parent\n try {\n const parentWindow: Window = localWindow.parent;\n if (parentWindow) {\n windows.push(parentWindow);\n return getParentWindows(parentWindow, windows);\n } else return windows;\n } catch (err) {\n console.error('Different hosts between iframes:', err);\n return windows;\n }\n }\n return windows;\n};\n\n/**\n * Get child windows\n * @param localWindow - the window we are lookink for children\n * @param windows - The list of allready found windows\n * @returns The list of windows found\n */\nconst getChildWindows = (localWindow: Window, windows: Window[] = []): Window[] => {\n if (localWindow.frames.length > 0) {\n for (const childWindow of Array.from(localWindow.frames)) {\n windows.push(childWindow);\n getChildWindows(childWindow, windows);\n }\n }\n return windows;\n};\n\n/**\n * Validate string\n * @param value - value to check\n * @returns `true` if string is valid\n */\nexport const isValidString = (value: unknown): value is string => typeof value === 'string' && value.trim() !== '';\n\n/**\n * Stringify value\n * @param value - value to stringify\n * @returns stringified value\n */\nexport const toString = (value: unknown): string => {\n if (typeof value === 'object') return JSON.stringify(value);\n else return `${value}`;\n};\n\n/**\n * Validate number\n * @param value - value to check\n * @returns `true` if number is valid\n */\nexport const isValidNumber = (value: unknown): value is number => typeof value === 'number' && !Number.isNaN(value);\n\n/**\n * Cleans string characters by removing special characters and converting to lowercase.\n * @param text - text to clean\n * @returns cleaned string\n * @example\n * ```ts\n * cleanString('âäàçéèêñù') // 'aaaceeenu'\n * cleanString('BATMAN') // 'batman'\n * ```\n */\nexport const cleanString = (text: string): string =>\n typeof text === 'string'\n ? text\n .toLocaleLowerCase()\n .normalize('NFD')\n .replaceAll(/[\\u0300-\\u036f]/g, '')\n : text;\n\n/**\n * Use to process code next tick in the event loop\n * @param callback - code to excute on next tick\n * @returns differed code excution\n */\nexport const nextTick = async (callback: () => void): Promise<void> => callback();\n","// src/app-data/index.ts\nvar BUILD = {\n allRenderFn: false,\n cmpDidLoad: true,\n cmpDidUnload: false,\n cmpDidUpdate: true,\n cmpDidRender: true,\n cmpWillLoad: true,\n cmpWillUpdate: true,\n cmpWillRender: true,\n connectedCallback: true,\n disconnectedCallback: true,\n element: true,\n event: true,\n hasRenderFn: true,\n lifecycle: true,\n hostListener: true,\n hostListenerTargetWindow: true,\n hostListenerTargetDocument: true,\n hostListenerTargetBody: true,\n hostListenerTargetParent: false,\n hostListenerTarget: true,\n member: true,\n method: true,\n mode: true,\n observeAttribute: true,\n prop: true,\n propMutable: true,\n reflect: true,\n scoped: true,\n shadowDom: true,\n slot: true,\n cssAnnotations: true,\n state: true,\n style: true,\n formAssociated: false,\n svg: true,\n updatable: true,\n vdomAttribute: true,\n vdomXlink: true,\n vdomClass: true,\n vdomFunctional: true,\n vdomKey: true,\n vdomListener: true,\n vdomRef: true,\n vdomPropOrAttr: true,\n vdomRender: true,\n vdomStyle: true,\n vdomText: true,\n watchCallback: true,\n taskQueue: true,\n hotModuleReplacement: false,\n isDebug: false,\n isDev: false,\n isTesting: false,\n hydrateServerSide: false,\n hydrateClientSide: false,\n lifecycleDOMEvents: false,\n lazyLoad: false,\n profile: false,\n slotRelocation: true,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n appendChildSlotFix: false,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n cloneNodeFix: false,\n hydratedAttribute: false,\n hydratedClass: true,\n // TODO(STENCIL-1305): remove this option\n scriptDataOpts: false,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n scopedSlotTextContentFix: false,\n // TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n shadowDomShim: false,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n slotChildNodesFix: false,\n invisiblePrehydration: true,\n propBoolean: true,\n propNumber: true,\n propString: true,\n constructableCSS: true,\n cmpShouldUpdate: true,\n devTools: false,\n shadowDelegatesFocus: true,\n initializeNextTick: false,\n asyncLoading: true,\n asyncQueue: false,\n transformTagName: false,\n attachStyles: true,\n // TODO(STENCIL-914): remove this option when `experimentalSlotFixes` is the default behavior\n experimentalSlotFixes: false\n};\nvar Env = {};\nvar NAMESPACE = (\n /* default */\n \"app\"\n);\nexport {\n BUILD,\n Env,\n NAMESPACE\n};\n","/*\n Stencil Client Platform v4.25.1 | MIT Licensed | https://stenciljs.com\n */\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/client/client-build.ts\nimport { BUILD } from \"@stencil/core/internal/app-data\";\nvar Build = {\n isDev: BUILD.isDev ? true : false,\n isBrowser: true,\n isServer: false,\n isTesting: BUILD.isTesting ? true : false\n};\n\n// src/client/client-host-ref.ts\nimport { BUILD as BUILD3 } from \"@stencil/core/internal/app-data\";\n\n// src/utils/es2022-rewire-class-members.ts\nimport { BUILD as BUILD2 } from \"@stencil/core/internal/app-data\";\n\n// src/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\n\n// src/utils/es2022-rewire-class-members.ts\nvar reWireGetterSetter = (instance, hostRef) => {\n var _a;\n const cmpMeta = hostRef.$cmpMeta$;\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD2.state || BUILD2.prop) && (memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(instance), memberName);\n Object.defineProperty(instance, memberName, {\n get() {\n return ogDescriptor.get.call(this);\n },\n set(newValue) {\n ogDescriptor.set.call(this, newValue);\n },\n configurable: true,\n enumerable: true\n });\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\n\n// src/client/client-host-ref.ts\nvar hostRefs = BUILD3.hotModuleReplacement ? window.__STENCIL_HOSTREFS__ || (window.__STENCIL_HOSTREFS__ = /* @__PURE__ */ new WeakMap()) : /* @__PURE__ */ new WeakMap();\nvar deleteHostRef = (ref) => hostRefs.delete(ref);\nvar getHostRef = (ref) => hostRefs.get(ref);\nvar registerInstance = (lazyInstance, hostRef) => {\n hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);\n if (BUILD3.modernPropertyDecls && (BUILD3.state || BUILD3.prop)) {\n reWireGetterSetter(lazyInstance, hostRef);\n }\n};\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map()\n };\n if (BUILD3.isDev) {\n hostRef.$renderCount$ = 0;\n }\n if (BUILD3.method && BUILD3.lazyLoad) {\n hostRef.$onInstancePromise$ = new Promise((r) => hostRef.$onInstanceResolve$ = r);\n }\n if (BUILD3.asyncLoading) {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n const ref = hostRefs.set(hostElement, hostRef);\n if (!BUILD3.lazyLoad && BUILD3.modernPropertyDecls && (BUILD3.state || BUILD3.prop)) {\n reWireGetterSetter(hostElement, hostRef);\n }\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\n\n// src/client/client-load-module.ts\nimport { BUILD as BUILD5 } from \"@stencil/core/internal/app-data\";\n\n// src/client/client-log.ts\nimport { BUILD as BUILD4 } from \"@stencil/core/internal/app-data\";\nvar customError;\nvar consoleError = (e, el) => (customError || console.error)(e, el);\nvar STENCIL_DEV_MODE = BUILD4.isTesting ? [\"STENCIL:\"] : [\n \"%cstencil\",\n \"color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px\"\n];\nvar consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m);\nvar consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m);\nvar consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m);\nvar setErrorHandler = (handler) => customError = handler;\n\n// src/client/client-load-module.ts\nvar cmpModules = /* @__PURE__ */ new Map();\nvar MODULE_IMPORT_PREFIX = \"./\";\nvar loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n const exportName = cmpMeta.$tagName$.replace(/-/g, \"_\");\n const bundleId = cmpMeta.$lazyBundleId$;\n if (BUILD5.isDev && typeof bundleId !== \"string\") {\n consoleDevError(\n `Trying to lazily load component <${cmpMeta.$tagName$}> with style mode \"${hostRef.$modeName$}\", but it does not exist.`\n );\n return void 0;\n } else if (!bundleId) {\n return void 0;\n }\n const module = !BUILD5.hotModuleReplacement ? cmpModules.get(bundleId) : false;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${BUILD5.hotModuleReplacement && hmrVersionId ? \"?s-hmr=\" + hmrVersionId : \"\"}`\n ).then(\n (importedModule) => {\n if (!BUILD5.hotModuleReplacement) {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n },\n (e) => {\n consoleError(e, hostRef.$hostElement$);\n }\n );\n};\n\n// src/client/client-style.ts\nvar styles = /* @__PURE__ */ new Map();\nvar modeResolutionChain = [];\n\n// src/client/client-task-queue.ts\nimport { BUILD as BUILD7 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/runtime-constants.ts\nvar CONTENT_REF_ID = \"r\";\nvar ORG_LOCATION_ID = \"o\";\nvar SLOT_NODE_ID = \"s\";\nvar TEXT_NODE_ID = \"t\";\nvar COMMENT_NODE_ID = \"c\";\nvar HYDRATE_ID = \"s-id\";\nvar HYDRATED_STYLE_ID = \"sty-id\";\nvar HYDRATE_CHILD_ID = \"c-id\";\nvar HYDRATED_CSS = \"{visibility:hidden}.hydrated{visibility:inherit}\";\nvar STENCIL_DOC_DATA = \"_stencilDocData\";\nvar DEFAULT_DOC_DATA = {\n hostIds: 0,\n rootLevelIds: 0,\n staticComponents: /* @__PURE__ */ new Set()\n};\nvar SLOT_FB_CSS = \"slot-fb{display:contents}slot-fb[hidden]{display:none}\";\nvar XLINK_NS = \"http://www.w3.org/1999/xlink\";\nvar FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS = [\n \"formAssociatedCallback\",\n \"formResetCallback\",\n \"formDisabledCallback\",\n \"formStateRestoreCallback\"\n];\n\n// src/client/client-window.ts\nimport { BUILD as BUILD6 } from \"@stencil/core/internal/app-data\";\nvar win = typeof window !== \"undefined\" ? window : {};\nvar doc = win.document || { head: {} };\nvar H = win.HTMLElement || class {\n};\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: \"\",\n jmp: (h2) => h2(),\n raf: (h2) => requestAnimationFrame(h2),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts)\n};\nvar setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nvar supportsShadow = BUILD6.shadowDom;\nvar supportsListenerOptions = /* @__PURE__ */ (() => {\n let supportsListenerOptions2 = false;\n try {\n doc.addEventListener(\n \"e\",\n null,\n Object.defineProperty({}, \"passive\", {\n get() {\n supportsListenerOptions2 = true;\n }\n })\n );\n } catch (e) {\n }\n return supportsListenerOptions2;\n})();\nvar promiseResolve = (v) => Promise.resolve(v);\nvar supportsConstructableStylesheets = BUILD6.constructableCSS ? /* @__PURE__ */ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === \"function\";\n } catch (e) {\n }\n return false;\n})() : false;\n\n// src/client/client-task-queue.ts\nvar queueCongestion = 0;\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueDomWritesLow = [];\nvar queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n } else {\n plt.raf(flush);\n }\n }\n};\nvar consume = (queue) => {\n for (let i2 = 0; i2 < queue.length; i2++) {\n try {\n queue[i2](performance.now());\n } catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar consumeTimeout = (queue, timeout) => {\n let i2 = 0;\n let ts = 0;\n while (i2 < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i2++](ts);\n } catch (e) {\n consoleError(e);\n }\n }\n if (i2 === queue.length) {\n queue.length = 0;\n } else if (i2 !== 0) {\n queue.splice(0, i2);\n }\n};\nvar flush = () => {\n if (BUILD7.asyncQueue) {\n queueCongestion++;\n }\n consume(queueDomReads);\n if (BUILD7.asyncQueue) {\n const timeout = (plt.$flags$ & 6 /* queueMask */) === 2 /* appLoaded */ ? performance.now() + 14 * Math.ceil(queueCongestion * (1 / 10)) : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push(...queueDomWrites);\n queueDomWrites.length = 0;\n }\n if (queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0) {\n plt.raf(flush);\n } else {\n queueCongestion = 0;\n }\n } else {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar readTask = /* @__PURE__ */ queueTask(queueDomReads, false);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\n\n// src/client/index.ts\nimport { BUILD as BUILD29, Env, NAMESPACE as NAMESPACE2 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/asset-path.ts\nvar getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nvar setAssetPath = (path) => plt.$resourcesUrl$ = path;\n\n// src/runtime/bootstrap-custom-element.ts\nimport { BUILD as BUILD26 } from \"@stencil/core/internal/app-data\";\n\n// src/utils/helpers.ts\nvar isDef = (v) => v != null && v !== void 0;\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// src/utils/query-nonce-meta-tag-content.ts\nfunction queryNonceMetaTagContent(doc2) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc2.head) == null ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) == null ? void 0 : _b.getAttribute(\"content\")) != null ? _c : void 0;\n}\n\n// src/utils/result.ts\nvar result_exports = {};\n__export(result_exports, {\n err: () => err,\n map: () => map,\n ok: () => ok,\n unwrap: () => unwrap,\n unwrapErr: () => unwrapErr\n});\nvar ok = (value) => ({\n isOk: true,\n isErr: false,\n value\n});\nvar err = (value) => ({\n isOk: false,\n isErr: true,\n value\n});\nfunction map(result, fn) {\n if (result.isOk) {\n const val = fn(result.value);\n if (val instanceof Promise) {\n return val.then((newVal) => ok(newVal));\n } else {\n return ok(val);\n }\n }\n if (result.isErr) {\n const value = result.value;\n return err(value);\n }\n throw \"should never get here\";\n}\nvar unwrap = (result) => {\n if (result.isOk) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar unwrapErr = (result) => {\n if (result.isErr) {\n return result.value;\n } else {\n throw result.value;\n }\n};\n\n// src/runtime/connected-callback.ts\nimport { BUILD as BUILD24 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/client-hydrate.ts\nimport { BUILD as BUILD12 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/dom-extras.ts\nimport { BUILD as BUILD9 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/slot-polyfill-utils.ts\nimport { BUILD as BUILD8 } from \"@stencil/core/internal/app-data\";\nvar updateFallbackSlotVisibility = (elm) => {\n const childNodes = elm.__childNodes || elm.childNodes;\n if (elm.tagName && elm.tagName.includes(\"-\") && elm[\"s-cr\"] && elm.tagName !== \"SLOT-FB\") {\n getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {\n var _a;\n if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === \"SLOT-FB\") {\n if ((_a = getHostSlotChildNodes(slotNode, slotNode[\"s-sn\"], false)) == null ? void 0 : _a.length) {\n slotNode.hidden = true;\n } else {\n slotNode.hidden = false;\n }\n }\n });\n }\n for (const childNode of childNodes) {\n if (childNode.nodeType === 1 /* ElementNode */ && (childNode.__childNodes || childNode.childNodes).length) {\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nvar getSlottedChildNodes = (childNodes) => {\n const result = [];\n for (let i2 = 0; i2 < childNodes.length; i2++) {\n const slottedNode = childNodes[i2][\"s-nr\"] || void 0;\n if (slottedNode && slottedNode.isConnected) {\n result.push(slottedNode);\n }\n }\n return result;\n};\nfunction getHostSlotNodes(childNodes, hostName, slotName) {\n let i2 = 0;\n let slottedNodes = [];\n let childNode;\n for (; i2 < childNodes.length; i2++) {\n childNode = childNodes[i2];\n if (childNode[\"s-sr\"] && childNode[\"s-hn\"] === hostName && (slotName === void 0 || childNode[\"s-sn\"] === slotName)) {\n slottedNodes.push(childNode);\n if (typeof slotName !== \"undefined\") return slottedNodes;\n }\n slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];\n }\n return slottedNodes;\n}\nvar getHostSlotChildNodes = (node, slotName, includeSlot = true) => {\n const childNodes = [];\n if (includeSlot && node[\"s-sr\"] || !node[\"s-sr\"]) childNodes.push(node);\n while ((node = node.nextSibling) && node[\"s-sn\"] === slotName) {\n childNodes.push(node);\n }\n return childNodes;\n};\nvar isNodeLocatedInSlot = (nodeToRelocate, slotName) => {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (nodeToRelocate.getAttribute(\"slot\") === null && slotName === \"\") {\n return true;\n }\n if (nodeToRelocate.getAttribute(\"slot\") === slotName) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate[\"s-sn\"] === slotName) {\n return true;\n }\n return slotName === \"\";\n};\nvar addSlotRelocateNode = (newChild, slotNode, prepend, position) => {\n let slottedNodeLocation;\n if (newChild[\"s-ol\"] && newChild[\"s-ol\"].isConnected) {\n slottedNodeLocation = newChild[\"s-ol\"];\n } else {\n slottedNodeLocation = document.createTextNode(\"\");\n slottedNodeLocation[\"s-nr\"] = newChild;\n }\n if (!slotNode[\"s-cr\"] || !slotNode[\"s-cr\"].parentNode) return;\n const parent = slotNode[\"s-cr\"].parentNode;\n const appendMethod = prepend ? parent.__prepend || parent.prepend : parent.__appendChild || parent.appendChild;\n if (typeof position !== \"undefined\") {\n if (BUILD8.hydrateClientSide) {\n slottedNodeLocation[\"s-oo\"] = position;\n const childNodes = parent.__childNodes || parent.childNodes;\n const slotRelocateNodes = [slottedNodeLocation];\n childNodes.forEach((n) => {\n if (n[\"s-nr\"]) slotRelocateNodes.push(n);\n });\n slotRelocateNodes.sort((a, b) => {\n if (!a[\"s-oo\"] || a[\"s-oo\"] < b[\"s-oo\"]) return -1;\n else if (!b[\"s-oo\"] || b[\"s-oo\"] < a[\"s-oo\"]) return 1;\n return 0;\n });\n slotRelocateNodes.forEach((n) => appendMethod.call(parent, n));\n }\n } else {\n appendMethod.call(parent, slottedNodeLocation);\n }\n newChild[\"s-ol\"] = slottedNodeLocation;\n newChild[\"s-sh\"] = slotNode[\"s-hn\"];\n};\nvar getSlotName = (node) => node[\"s-sn\"] || node.nodeType === 1 && node.getAttribute(\"slot\") || \"\";\n\n// src/runtime/dom-extras.ts\nvar patchPseudoShadowDom = (hostElementPrototype) => {\n patchCloneNode(hostElementPrototype);\n patchSlotAppendChild(hostElementPrototype);\n patchSlotAppend(hostElementPrototype);\n patchSlotPrepend(hostElementPrototype);\n patchSlotInsertAdjacentElement(hostElementPrototype);\n patchSlotInsertAdjacentHTML(hostElementPrototype);\n patchSlotInsertAdjacentText(hostElementPrototype);\n patchInsertBefore(hostElementPrototype);\n patchTextContent(hostElementPrototype);\n patchChildSlotNodes(hostElementPrototype);\n patchSlotRemoveChild(hostElementPrototype);\n};\nvar patchCloneNode = (HostElementPrototype) => {\n const orgCloneNode = HostElementPrototype.cloneNode;\n HostElementPrototype.cloneNode = function(deep) {\n const srcNode = this;\n const isShadowDom = BUILD9.shadowDom ? srcNode.shadowRoot && supportsShadow : false;\n const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false);\n if (BUILD9.slot && !isShadowDom && deep) {\n let i2 = 0;\n let slotted, nonStencilNode;\n const stencilPrivates = [\n \"s-id\",\n \"s-cr\",\n \"s-lr\",\n \"s-rc\",\n \"s-sc\",\n \"s-p\",\n \"s-cn\",\n \"s-sr\",\n \"s-sn\",\n \"s-hn\",\n \"s-ol\",\n \"s-nr\",\n \"s-si\",\n \"s-rf\",\n \"s-scs\"\n ];\n const childNodes = this.__childNodes || this.childNodes;\n for (; i2 < childNodes.length; i2++) {\n slotted = childNodes[i2][\"s-nr\"];\n nonStencilNode = stencilPrivates.every((privateField) => !childNodes[i2][privateField]);\n if (slotted) {\n if (BUILD9.appendChildSlotFix && clonedNode.__appendChild) {\n clonedNode.__appendChild(slotted.cloneNode(true));\n } else {\n clonedNode.appendChild(slotted.cloneNode(true));\n }\n }\n if (nonStencilNode) {\n clonedNode.appendChild(childNodes[i2].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nvar patchSlotAppendChild = (HostElementPrototype) => {\n HostElementPrototype.__appendChild = HostElementPrototype.appendChild;\n HostElementPrototype.appendChild = function(newChild) {\n const slotName = newChild[\"s-sn\"] = getSlotName(newChild);\n const slotNode = getHostSlotNodes(this.__childNodes || this.childNodes, this.tagName, slotName)[0];\n if (slotNode) {\n addSlotRelocateNode(newChild, slotNode);\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[slotChildNodes.length - 1];\n const parent = intrnlCall(appendAfter, \"parentNode\");\n let insertedNode;\n if (parent.__insertBefore) {\n insertedNode = parent.__insertBefore(newChild, appendAfter.nextSibling);\n } else {\n insertedNode = parent.insertBefore(newChild, appendAfter.nextSibling);\n }\n updateFallbackSlotVisibility(this);\n return insertedNode;\n }\n return this.__appendChild(newChild);\n };\n};\nvar patchSlotRemoveChild = (ElementPrototype) => {\n ElementPrototype.__removeChild = ElementPrototype.removeChild;\n ElementPrototype.removeChild = function(toRemove) {\n if (toRemove && typeof toRemove[\"s-sn\"] !== \"undefined\") {\n const childNodes = this.__childNodes || this.childNodes;\n const slotNode = getHostSlotNodes(childNodes, this.tagName, toRemove[\"s-sn\"]);\n if (slotNode && toRemove.isConnected) {\n toRemove.remove();\n updateFallbackSlotVisibility(this);\n return;\n }\n }\n return this.__removeChild(toRemove);\n };\n};\nvar patchSlotPrepend = (HostElementPrototype) => {\n HostElementPrototype.__prepend = HostElementPrototype.prepend;\n HostElementPrototype.prepend = function(...newChildren) {\n newChildren.forEach((newChild) => {\n if (typeof newChild === \"string\") {\n newChild = this.ownerDocument.createTextNode(newChild);\n }\n const slotName = newChild[\"s-sn\"] = getSlotName(newChild);\n const childNodes = this.__childNodes || this.childNodes;\n const slotNode = getHostSlotNodes(childNodes, this.tagName, slotName)[0];\n if (slotNode) {\n addSlotRelocateNode(newChild, slotNode, true);\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[0];\n const parent = intrnlCall(appendAfter, \"parentNode\");\n if (parent.__insertBefore) {\n return parent.__insertBefore(newChild, intrnlCall(appendAfter, \"nextSibling\"));\n } else {\n return parent.insertBefore(newChild, intrnlCall(appendAfter, \"nextSibling\"));\n }\n }\n if (newChild.nodeType === 1 && !!newChild.getAttribute(\"slot\")) {\n newChild.hidden = true;\n }\n return HostElementPrototype.__prepend(newChild);\n });\n };\n};\nvar patchSlotAppend = (HostElementPrototype) => {\n HostElementPrototype.__append = HostElementPrototype.append;\n HostElementPrototype.append = function(...newChildren) {\n newChildren.forEach((newChild) => {\n if (typeof newChild === \"string\") {\n newChild = this.ownerDocument.createTextNode(newChild);\n }\n this.appendChild(newChild);\n });\n };\n};\nvar patchSlotInsertAdjacentHTML = (HostElementPrototype) => {\n const originalInsertAdjacentHtml = HostElementPrototype.insertAdjacentHTML;\n HostElementPrototype.insertAdjacentHTML = function(position, text) {\n if (position !== \"afterbegin\" && position !== \"beforeend\") {\n return originalInsertAdjacentHtml.call(this, position, text);\n }\n const container = this.ownerDocument.createElement(\"_\");\n let node;\n container.innerHTML = text;\n if (position === \"afterbegin\") {\n while (node = container.firstChild) {\n this.prepend(node);\n }\n } else if (position === \"beforeend\") {\n while (node = container.firstChild) {\n this.append(node);\n }\n }\n };\n};\nvar patchSlotInsertAdjacentText = (HostElementPrototype) => {\n HostElementPrototype.insertAdjacentText = function(position, text) {\n this.insertAdjacentHTML(position, text);\n };\n};\nvar patchInsertBefore = (HostElementPrototype) => {\n const eleProto = HostElementPrototype;\n if (eleProto.__insertBefore) return;\n eleProto.__insertBefore = HostElementPrototype.insertBefore;\n HostElementPrototype.insertBefore = function(newChild, currentChild) {\n const slotName = newChild[\"s-sn\"] = getSlotName(newChild);\n const slotNode = getHostSlotNodes(this.__childNodes, this.tagName, slotName)[0];\n const slottedNodes = this.__childNodes ? this.childNodes : getSlottedChildNodes(this.childNodes);\n if (slotNode) {\n let found = false;\n slottedNodes.forEach((childNode) => {\n if (childNode === currentChild || currentChild === null) {\n found = true;\n if (currentChild === null || slotName !== currentChild[\"s-sn\"]) {\n this.appendChild(newChild);\n return;\n }\n if (slotName === currentChild[\"s-sn\"]) {\n addSlotRelocateNode(newChild, slotNode);\n const parent = intrnlCall(currentChild, \"parentNode\");\n if (parent.__insertBefore) {\n parent.__insertBefore(newChild, currentChild);\n } else {\n parent.insertBefore(newChild, currentChild);\n }\n }\n return;\n }\n });\n if (found) return newChild;\n }\n return this.__insertBefore(newChild, currentChild);\n };\n};\nvar patchSlotInsertAdjacentElement = (HostElementPrototype) => {\n const originalInsertAdjacentElement = HostElementPrototype.insertAdjacentElement;\n HostElementPrototype.insertAdjacentElement = function(position, element) {\n if (position !== \"afterbegin\" && position !== \"beforeend\") {\n return originalInsertAdjacentElement.call(this, position, element);\n }\n if (position === \"afterbegin\") {\n this.prepend(element);\n return element;\n } else if (position === \"beforeend\") {\n this.append(element);\n return element;\n }\n return element;\n };\n};\nvar patchTextContent = (hostElementPrototype) => {\n patchHostOriginalAccessor(\"textContent\", hostElementPrototype);\n Object.defineProperty(hostElementPrototype, \"textContent\", {\n get: function() {\n let text = \"\";\n const childNodes = this.__childNodes ? this.childNodes : getSlottedChildNodes(this.childNodes);\n childNodes.forEach((node) => text += node.textContent || \"\");\n return text;\n },\n set: function(value) {\n const childNodes = this.__childNodes ? this.childNodes : getSlottedChildNodes(this.childNodes);\n childNodes.forEach((node) => {\n if (node[\"s-ol\"]) node[\"s-ol\"].remove();\n node.remove();\n });\n this.insertAdjacentHTML(\"beforeend\", value);\n }\n });\n};\nvar patchChildSlotNodes = (elm) => {\n class FakeNodeList extends Array {\n item(n) {\n return this[n];\n }\n }\n patchHostOriginalAccessor(\"children\", elm);\n Object.defineProperty(elm, \"children\", {\n get() {\n return this.childNodes.filter((n) => n.nodeType === 1);\n }\n });\n Object.defineProperty(elm, \"childElementCount\", {\n get() {\n return this.children.length;\n }\n });\n patchHostOriginalAccessor(\"firstChild\", elm);\n Object.defineProperty(elm, \"firstChild\", {\n get() {\n return this.childNodes[0];\n }\n });\n patchHostOriginalAccessor(\"lastChild\", elm);\n Object.defineProperty(elm, \"lastChild\", {\n get() {\n return this.childNodes[this.childNodes.length - 1];\n }\n });\n patchHostOriginalAccessor(\"childNodes\", elm);\n Object.defineProperty(elm, \"childNodes\", {\n get() {\n const result = new FakeNodeList();\n result.push(...getSlottedChildNodes(this.__childNodes));\n return result;\n }\n });\n};\nvar patchSlottedNode = (node) => {\n if (!node || node.__nextSibling || !globalThis.Node) return;\n patchNextSibling(node);\n patchPreviousSibling(node);\n patchParentNode(node);\n if (node.nodeType === Node.ELEMENT_NODE) {\n patchNextElementSibling(node);\n patchPreviousElementSibling(node);\n }\n};\nvar patchNextSibling = (node) => {\n if (!node || node.__nextSibling) return;\n patchHostOriginalAccessor(\"nextSibling\", node);\n Object.defineProperty(node, \"nextSibling\", {\n get: function() {\n var _a;\n const parentNodes = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.childNodes;\n const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);\n if (parentNodes && index > -1) {\n return parentNodes[index + 1];\n }\n return this.__nextSibling;\n }\n });\n};\nvar patchNextElementSibling = (element) => {\n if (!element || element.__nextElementSibling) return;\n patchHostOriginalAccessor(\"nextElementSibling\", element);\n Object.defineProperty(element, \"nextElementSibling\", {\n get: function() {\n var _a;\n const parentEles = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.children;\n const index = parentEles == null ? void 0 : parentEles.indexOf(this);\n if (parentEles && index > -1) {\n return parentEles[index + 1];\n }\n return this.__nextElementSibling;\n }\n });\n};\nvar patchPreviousSibling = (node) => {\n if (!node || node.__previousSibling) return;\n patchHostOriginalAccessor(\"previousSibling\", node);\n Object.defineProperty(node, \"previousSibling\", {\n get: function() {\n var _a;\n const parentNodes = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.childNodes;\n const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);\n if (parentNodes && index > -1) {\n return parentNodes[index - 1];\n }\n return this.__previousSibling;\n }\n });\n};\nvar patchPreviousElementSibling = (element) => {\n if (!element || element.__previousElementSibling) return;\n patchHostOriginalAccessor(\"previousElementSibling\", element);\n Object.defineProperty(element, \"previousElementSibling\", {\n get: function() {\n var _a;\n const parentNodes = (_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode.children;\n const index = parentNodes == null ? void 0 : parentNodes.indexOf(this);\n if (parentNodes && index > -1) {\n return parentNodes[index - 1];\n }\n return this.__previousElementSibling;\n }\n });\n};\nvar patchParentNode = (node) => {\n if (!node || node.__parentNode) return;\n patchHostOriginalAccessor(\"parentNode\", node);\n Object.defineProperty(node, \"parentNode\", {\n get: function() {\n var _a;\n return ((_a = this[\"s-ol\"]) == null ? void 0 : _a.parentNode) || this.__parentNode;\n },\n set: function(value) {\n this.__parentNode = value;\n }\n });\n};\nvar validElementPatches = [\"children\", \"nextElementSibling\", \"previousElementSibling\"];\nvar validNodesPatches = [\n \"childNodes\",\n \"firstChild\",\n \"lastChild\",\n \"nextSibling\",\n \"previousSibling\",\n \"textContent\",\n \"parentNode\"\n];\nfunction patchHostOriginalAccessor(accessorName, node) {\n let accessor;\n if (validElementPatches.includes(accessorName)) {\n accessor = Object.getOwnPropertyDescriptor(Element.prototype, accessorName);\n } else if (validNodesPatches.includes(accessorName)) {\n accessor = Object.getOwnPropertyDescriptor(Node.prototype, accessorName);\n }\n if (!accessor) {\n accessor = Object.getOwnPropertyDescriptor(node, accessorName);\n }\n if (accessor) Object.defineProperty(node, \"__\" + accessorName, accessor);\n}\nfunction intrnlCall(node, method) {\n if (\"__\" + method in node) {\n return node[\"__\" + method];\n } else {\n return node[method];\n }\n}\n\n// src/runtime/profile.ts\nimport { BUILD as BUILD10 } from \"@stencil/core/internal/app-data\";\nvar i = 0;\nvar createTime = (fnName, tagName = \"\") => {\n if (BUILD10.profile && performance.mark) {\n const key = `st:${fnName}:${tagName}:${i++}`;\n performance.mark(key);\n return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key);\n } else {\n return () => {\n return;\n };\n }\n};\nvar uniqueTime = (key, measureText) => {\n if (BUILD10.profile && performance.mark) {\n if (performance.getEntriesByName(key, \"mark\").length === 0) {\n performance.mark(key);\n }\n return () => {\n if (performance.getEntriesByName(measureText, \"measure\").length === 0) {\n performance.measure(measureText, key);\n }\n };\n } else {\n return () => {\n return;\n };\n }\n};\nvar inspect = (ref) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return void 0;\n }\n const flags = hostRef.$flags$;\n const hostElement = hostRef.$hostElement$;\n return {\n renderCount: hostRef.$renderCount$,\n flags: {\n hasRendered: !!(flags & 2 /* hasRendered */),\n hasConnected: !!(flags & 1 /* hasConnected */),\n isWaitingForChildren: !!(flags & 4 /* isWaitingForChildren */),\n isConstructingInstance: !!(flags & 8 /* isConstructingInstance */),\n isQueuedForUpdate: !!(flags & 16 /* isQueuedForUpdate */),\n hasInitializedComponent: !!(flags & 32 /* hasInitializedComponent */),\n hasLoadedComponent: !!(flags & 64 /* hasLoadedComponent */),\n isWatchReady: !!(flags & 128 /* isWatchReady */),\n isListenReady: !!(flags & 256 /* isListenReady */),\n needsRerender: !!(flags & 512 /* needsRerender */)\n },\n instanceValues: hostRef.$instanceValues$,\n ancestorComponent: hostRef.$ancestorComponent$,\n hostElement,\n lazyInstance: hostRef.$lazyInstance$,\n vnode: hostRef.$vnode$,\n modeName: hostRef.$modeName$,\n onReadyPromise: hostRef.$onReadyPromise$,\n onReadyResolve: hostRef.$onReadyResolve$,\n onInstancePromise: hostRef.$onInstancePromise$,\n onInstanceResolve: hostRef.$onInstanceResolve$,\n onRenderResolve: hostRef.$onRenderResolve$,\n queuedListeners: hostRef.$queuedListeners$,\n rmListeners: hostRef.$rmListeners$,\n [\"s-id\"]: hostElement[\"s-id\"],\n [\"s-cr\"]: hostElement[\"s-cr\"],\n [\"s-lr\"]: hostElement[\"s-lr\"],\n [\"s-p\"]: hostElement[\"s-p\"],\n [\"s-rc\"]: hostElement[\"s-rc\"],\n [\"s-sc\"]: hostElement[\"s-sc\"]\n };\n};\nvar installDevTools = () => {\n if (BUILD10.devTools) {\n const stencil = win.stencil = win.stencil || {};\n const originalInspect = stencil.inspect;\n stencil.inspect = (ref) => {\n let result = inspect(ref);\n if (!result && typeof originalInspect === \"function\") {\n result = originalInspect(ref);\n }\n return result;\n };\n }\n};\n\n// src/runtime/vdom/h.ts\nimport { BUILD as BUILD11 } from \"@stencil/core/internal/app-data\";\nvar h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i2 = 0; i2 < c.length; i2++) {\n child = c[i2];\n if (Array.isArray(child)) {\n walk(child);\n } else if (child != null && typeof child !== \"boolean\") {\n if (simple = typeof nodeName !== \"function\" && !isComplexType(child)) {\n child = String(child);\n } else if (BUILD11.isDev && typeof nodeName !== \"function\" && child.$flags$ === void 0) {\n consoleDevError(`vNode passed as children has unexpected type.\nMake sure it's using the correct h() function.\nEmpty objects can also be the cause, look for JSX comments that became objects.`);\n }\n if (simple && lastSimple) {\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n } else {\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (BUILD11.isDev && nodeName === \"input\") {\n validateInputProperties(vnodeData);\n }\n if (BUILD11.vdomKey && vnodeData.key) {\n key = vnodeData.key;\n }\n if (BUILD11.slotRelocation && vnodeData.name) {\n slotName = vnodeData.name;\n }\n if (BUILD11.vdomClass) {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class = typeof classData !== \"object\" ? classData : Object.keys(classData).filter((k) => classData[k]).join(\" \");\n }\n }\n }\n if (BUILD11.isDev && vNodeChildren.some(isHost)) {\n consoleDevError(`The <Host> must be the single root component. Make sure:\n- You are NOT using hostData() and <Host> in the same component.\n- <Host> is used once, and it's the single root component of the render() function.`);\n }\n if (BUILD11.vdomFunctional && typeof nodeName === \"function\") {\n return nodeName(\n vnodeData === null ? {} : vnodeData,\n vNodeChildren,\n vdomFnUtils\n );\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n if (BUILD11.vdomKey) {\n vnode.$key$ = key;\n }\n if (BUILD11.slotRelocation) {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nvar newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null\n };\n if (BUILD11.vdomAttribute) {\n vnode.$attrs$ = null;\n }\n if (BUILD11.vdomKey) {\n vnode.$key$ = null;\n }\n if (BUILD11.slotRelocation) {\n vnode.$name$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = (node) => node && node.$tag$ === Host;\nvar vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate)\n};\nvar convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$\n});\nvar convertToPrivate = (node) => {\n if (typeof node.vtag === \"function\") {\n const vnodeData = { ...node.vattrs };\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...node.vchildren || []);\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\nvar validateInputProperties = (inputElm) => {\n const props = Object.keys(inputElm);\n const value = props.indexOf(\"value\");\n if (value === -1) {\n return;\n }\n const typeIndex = props.indexOf(\"type\");\n const minIndex = props.indexOf(\"min\");\n const maxIndex = props.indexOf(\"max\");\n const stepIndex = props.indexOf(\"step\");\n if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) {\n consoleDevWarn(`The \"value\" prop of <input> should be set after \"min\", \"max\", \"type\" and \"step\"`);\n }\n};\n\n// src/runtime/client-hydrate.ts\nvar initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n const endHydrate = createTime(\"hydrateClient\", tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const slottedNodes = [];\n const shadowRootNodes = BUILD12.shadowDom && shadowRoot ? [] : null;\n const vnode = newVNode(tagName, null);\n vnode.$elm$ = hostElm;\n let scopeId2;\n if (BUILD12.scoped) {\n const cmpMeta = hostRef.$cmpMeta$;\n if (cmpMeta && cmpMeta.$flags$ & 10 /* needsScopedEncapsulation */ && hostElm[\"s-sc\"]) {\n scopeId2 = hostElm[\"s-sc\"];\n hostElm.classList.add(scopeId2 + \"-h\");\n } else if (hostElm[\"s-sc\"]) {\n delete hostElm[\"s-sc\"];\n }\n }\n if (!plt.$orgLocNodes$) {\n initializeDocumentHydrate(doc.body, plt.$orgLocNodes$ = /* @__PURE__ */ new Map());\n }\n hostElm[HYDRATE_ID] = hostId;\n hostElm.removeAttribute(HYDRATE_ID);\n hostRef.$vnode$ = clientHydrate(\n vnode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n hostElm,\n hostElm,\n hostId,\n slottedNodes\n );\n let crIndex = 0;\n const crLength = childRenderNodes.length;\n let childRenderNode;\n for (crIndex; crIndex < crLength; crIndex++) {\n childRenderNode = childRenderNodes[crIndex];\n const orgLocationId = childRenderNode.$hostId$ + \".\" + childRenderNode.$nodeId$;\n const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);\n const node = childRenderNode.$elm$;\n if (!shadowRoot) {\n node[\"s-hn\"] = tagName.toUpperCase();\n if (childRenderNode.$tag$ === \"slot\") {\n node[\"s-cr\"] = hostElm[\"s-cr\"];\n }\n }\n if (childRenderNode.$tag$ === \"slot\") {\n if (childRenderNode.$children$) {\n childRenderNode.$flags$ |= 2 /* isSlotFallback */;\n if (!childRenderNode.$elm$.childNodes.length) {\n childRenderNode.$children$.forEach((c) => {\n childRenderNode.$elm$.appendChild(c.$elm$);\n });\n }\n } else {\n childRenderNode.$flags$ |= 1 /* isSlotReference */;\n }\n }\n if (orgLocationNode && orgLocationNode.isConnected) {\n if (shadowRoot && orgLocationNode[\"s-en\"] === \"\") {\n orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);\n }\n orgLocationNode.parentNode.removeChild(orgLocationNode);\n if (!shadowRoot) {\n node[\"s-oo\"] = parseInt(childRenderNode.$nodeId$);\n }\n }\n plt.$orgLocNodes$.delete(orgLocationId);\n }\n const hosts = [];\n const snLen = slottedNodes.length;\n let snIndex = 0;\n let slotGroup;\n let snGroupIdx;\n let snGroupLen;\n let slottedItem;\n for (snIndex; snIndex < snLen; snIndex++) {\n slotGroup = slottedNodes[snIndex];\n if (!slotGroup || !slotGroup.length) continue;\n snGroupLen = slotGroup.length;\n snGroupIdx = 0;\n for (snGroupIdx; snGroupIdx < snGroupLen; snGroupIdx++) {\n slottedItem = slotGroup[snGroupIdx];\n if (!hosts[slottedItem.hostId]) {\n hosts[slottedItem.hostId] = plt.$orgLocNodes$.get(slottedItem.hostId);\n }\n if (!hosts[slottedItem.hostId]) continue;\n const hostEle = hosts[slottedItem.hostId];\n if (!hostEle.shadowRoot || !shadowRoot) {\n slottedItem.slot[\"s-cr\"] = hostEle[\"s-cr\"];\n if (!slottedItem.slot[\"s-cr\"] && hostEle.shadowRoot) {\n slottedItem.slot[\"s-cr\"] = hostEle;\n } else {\n slottedItem.slot[\"s-cr\"] = (hostEle.__childNodes || hostEle.childNodes)[0];\n }\n addSlotRelocateNode(slottedItem.node, slottedItem.slot, false, slottedItem.node[\"s-oo\"]);\n if (BUILD12.experimentalSlotFixes) {\n patchSlottedNode(slottedItem.node);\n }\n }\n if (hostEle.shadowRoot && slottedItem.node.parentElement !== hostEle) {\n hostEle.appendChild(slottedItem.node);\n }\n }\n }\n if (BUILD12.scoped && scopeId2 && slotNodes.length) {\n slotNodes.forEach((slot) => {\n slot.$elm$.parentElement.classList.add(scopeId2 + \"-s\");\n });\n }\n if (BUILD12.shadowDom && shadowRoot) {\n let rnIdex = 0;\n const rnLen = shadowRootNodes.length;\n for (rnIdex; rnIdex < rnLen; rnIdex++) {\n shadowRoot.appendChild(shadowRootNodes[rnIdex]);\n }\n Array.from(hostElm.childNodes).forEach((node) => {\n if (node.nodeType === 8 /* CommentNode */ && typeof node[\"s-sn\"] !== \"string\") {\n node.parentNode.removeChild(node);\n }\n });\n }\n hostRef.$hostElement$ = hostElm;\n endHydrate();\n};\nvar clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId, slottedNodes = []) => {\n let childNodeType;\n let childIdSplt;\n let childVNode;\n let i2;\n const scopeId2 = hostElm[\"s-sc\"];\n if (node.nodeType === 1 /* ElementNode */) {\n childNodeType = node.getAttribute(HYDRATE_CHILD_ID);\n if (childNodeType) {\n childIdSplt = childNodeType.split(\".\");\n if (childIdSplt[0] === hostId || childIdSplt[0] === \"0\") {\n childVNode = createSimpleVNode({\n $flags$: 0,\n $hostId$: childIdSplt[0],\n $nodeId$: childIdSplt[1],\n $depth$: childIdSplt[2],\n $index$: childIdSplt[3],\n $tag$: node.tagName.toLowerCase(),\n $elm$: node,\n // If we don't add the initial classes to the VNode, the first `vdom-render.ts` patch\n // won't try to reconcile them. Classes set on the node will be blown away.\n $attrs$: { class: node.className || \"\" }\n });\n childRenderNodes.push(childVNode);\n node.removeAttribute(HYDRATE_CHILD_ID);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n if (BUILD12.scoped && scopeId2) {\n node[\"s-si\"] = scopeId2;\n childVNode.$attrs$.class += \" \" + scopeId2;\n }\n const slotName = childVNode.$elm$.getAttribute(\"s-sn\");\n if (typeof slotName === \"string\") {\n if (childVNode.$tag$ === \"slot-fb\") {\n addSlot(\n slotName,\n childIdSplt[2],\n childVNode,\n node,\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n slottedNodes\n );\n if (BUILD12.scoped && scopeId2) {\n node.classList.add(scopeId2);\n }\n }\n childVNode.$elm$[\"s-sn\"] = slotName;\n childVNode.$elm$.removeAttribute(\"s-sn\");\n }\n if (childVNode.$index$ !== void 0) {\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n parentVNode = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === \"0\") {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n if (node.shadowRoot) {\n for (i2 = node.shadowRoot.childNodes.length - 1; i2 >= 0; i2--) {\n clientHydrate(\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n hostElm,\n node.shadowRoot.childNodes[i2],\n hostId,\n slottedNodes\n );\n }\n }\n const nonShadowNodes = node.__childNodes || node.childNodes;\n for (i2 = nonShadowNodes.length - 1; i2 >= 0; i2--) {\n clientHydrate(\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n hostElm,\n nonShadowNodes[i2],\n hostId,\n slottedNodes\n );\n }\n } else if (node.nodeType === 8 /* CommentNode */) {\n childIdSplt = node.nodeValue.split(\".\");\n if (childIdSplt[1] === hostId || childIdSplt[1] === \"0\") {\n childNodeType = childIdSplt[0];\n childVNode = createSimpleVNode({\n $hostId$: childIdSplt[1],\n $nodeId$: childIdSplt[2],\n $depth$: childIdSplt[3],\n $index$: childIdSplt[4] || \"0\",\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null\n });\n if (childNodeType === TEXT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* TextNode */) {\n childVNode.$text$ = childVNode.$elm$.textContent;\n childRenderNodes.push(childVNode);\n node.remove();\n if (hostId === childVNode.$hostId$) {\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n if (shadowRootNodes && childVNode.$depth$ === \"0\") {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n } else if (childNodeType === COMMENT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 8 /* CommentNode */) {\n childRenderNodes.push(childVNode);\n node.remove();\n }\n } else if (childVNode.$hostId$ === hostId) {\n if (childNodeType === SLOT_NODE_ID) {\n const slotName = node[\"s-sn\"] = childIdSplt[5] || \"\";\n addSlot(\n slotName,\n childIdSplt[2],\n childVNode,\n node,\n parentVNode,\n childRenderNodes,\n slotNodes,\n shadowRootNodes,\n slottedNodes\n );\n } else if (childNodeType === CONTENT_REF_ID) {\n if (BUILD12.shadowDom && shadowRootNodes) {\n node.remove();\n } else if (BUILD12.slotRelocation) {\n hostElm[\"s-cr\"] = node;\n node[\"s-cn\"] = true;\n }\n }\n }\n }\n } else if (parentVNode && parentVNode.$tag$ === \"style\") {\n const vnode = newVNode(null, node.textContent);\n vnode.$elm$ = node;\n vnode.$index$ = \"0\";\n parentVNode.$children$ = [vnode];\n }\n return parentVNode;\n};\nvar initializeDocumentHydrate = (node, orgLocNodes) => {\n if (node.nodeType === 1 /* ElementNode */) {\n const componentId = node[HYDRATE_ID] || node.getAttribute(HYDRATE_ID);\n if (componentId) {\n orgLocNodes.set(componentId, node);\n }\n let i2 = 0;\n if (node.shadowRoot) {\n for (; i2 < node.shadowRoot.childNodes.length; i2++) {\n initializeDocumentHydrate(node.shadowRoot.childNodes[i2], orgLocNodes);\n }\n }\n const nonShadowNodes = node.__childNodes || node.childNodes;\n for (i2 = 0; i2 < nonShadowNodes.length; i2++) {\n initializeDocumentHydrate(nonShadowNodes[i2], orgLocNodes);\n }\n } else if (node.nodeType === 8 /* CommentNode */) {\n const childIdSplt = node.nodeValue.split(\".\");\n if (childIdSplt[0] === ORG_LOCATION_ID) {\n orgLocNodes.set(childIdSplt[1] + \".\" + childIdSplt[2], node);\n node.nodeValue = \"\";\n node[\"s-en\"] = childIdSplt[3];\n }\n }\n};\nvar createSimpleVNode = (vnode) => {\n const defaultVNode = {\n $flags$: 0,\n $hostId$: null,\n $nodeId$: null,\n $depth$: null,\n $index$: \"0\",\n $elm$: null,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null\n };\n return { ...defaultVNode, ...vnode };\n};\nfunction addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNodes, slotNodes, shadowRootNodes, slottedNodes) {\n node[\"s-sr\"] = true;\n childVNode.$name$ = slotName || null;\n childVNode.$tag$ = \"slot\";\n const parentNodeId = (parentVNode == null ? void 0 : parentVNode.$elm$) ? parentVNode.$elm$[\"s-id\"] || parentVNode.$elm$.getAttribute(\"s-id\") : \"\";\n if (BUILD12.shadowDom && shadowRootNodes) {\n const slot = childVNode.$elm$ = doc.createElement(childVNode.$tag$);\n if (childVNode.$name$) {\n childVNode.$elm$.setAttribute(\"name\", slotName);\n }\n if (parentNodeId && parentNodeId !== childVNode.$hostId$) {\n parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);\n } else {\n node.parentNode.insertBefore(childVNode.$elm$, node);\n }\n addSlottedNodes(slottedNodes, slotId, slotName, node, childVNode.$hostId$);\n node.remove();\n if (childVNode.$depth$ === \"0\") {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n } else {\n const slot = childVNode.$elm$;\n const shouldMove = parentNodeId && parentNodeId !== childVNode.$hostId$ && parentVNode.$elm$.shadowRoot;\n addSlottedNodes(slottedNodes, slotId, slotName, node, shouldMove ? parentNodeId : childVNode.$hostId$);\n if (shouldMove) {\n parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);\n }\n childRenderNodes.push(childVNode);\n }\n slotNodes.push(childVNode);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n}\nvar addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {\n let slottedNode = slotNode.nextSibling;\n slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];\n while (slottedNode && ((slottedNode[\"getAttribute\"] && slottedNode.getAttribute(\"slot\") || slottedNode[\"s-sn\"]) === slotName || slotName === \"\" && !slottedNode[\"s-sn\"] && (slottedNode.nodeType === 8 /* CommentNode */ && slottedNode.nodeValue.indexOf(\".\") !== 1 || slottedNode.nodeType === 3 /* TextNode */))) {\n slottedNode[\"s-sn\"] = slotName;\n slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });\n slottedNode = slottedNode.nextSibling;\n }\n};\n\n// src/runtime/initialize-component.ts\nimport { BUILD as BUILD23 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/mode.ts\nvar computeMode = (elm) => modeResolutionChain.map((h2) => h2(elm)).find((m) => !!m);\nvar setMode = (handler) => modeResolutionChain.push(handler);\nvar getMode = (ref) => getHostRef(ref).$modeName$;\n\n// src/runtime/proxy-component.ts\nimport { BUILD as BUILD22 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/set-value.ts\nimport { BUILD as BUILD21 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/parse-property-value.ts\nimport { BUILD as BUILD13 } from \"@stencil/core/internal/app-data\";\nvar parsePropertyValue = (propValue, propType) => {\n if (propValue != null && !isComplexType(propValue)) {\n if (BUILD13.propBoolean && propType & 4 /* Boolean */) {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n if (BUILD13.propNumber && propType & 2 /* Number */) {\n return parseFloat(propValue);\n }\n if (BUILD13.propString && propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\n\n// src/runtime/update-component.ts\nimport { BUILD as BUILD20, NAMESPACE } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/event-emitter.ts\nimport { BUILD as BUILD15 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/element.ts\nimport { BUILD as BUILD14 } from \"@stencil/core/internal/app-data\";\nvar getElement = (ref) => BUILD14.lazyLoad ? getHostRef(ref).$hostElement$ : ref;\n\n// src/runtime/event-emitter.ts\nvar createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n if (BUILD15.isDev && !elm.isConnected) {\n consoleDevWarn(`The \"${name}\" event was emitted, but the dispatcher node is no longer connected to the dom.`);\n }\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* Bubbles */),\n composed: !!(flags & 2 /* Composed */),\n cancelable: !!(flags & 1 /* Cancellable */),\n detail\n });\n }\n };\n};\nvar emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\n\n// src/runtime/styles.ts\nimport { BUILD as BUILD16 } from \"@stencil/core/internal/app-data\";\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar registerStyle = (scopeId2, cssText, allowCS) => {\n let style = styles.get(scopeId2);\n if (supportsConstructableStylesheets && allowCS) {\n style = style || new CSSStyleSheet();\n if (typeof style === \"string\") {\n style = cssText;\n } else {\n style.replaceSync(cssText);\n }\n } else {\n style = cssText;\n }\n styles.set(scopeId2, style);\n};\nvar addStyle = (styleContainerNode, cmpMeta, mode) => {\n var _a;\n const scopeId2 = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId2);\n if (!BUILD16.attachStyles) {\n return scopeId2;\n }\n styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === \"string\") {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());\n }\n if (!appliedStyles.has(scopeId2)) {\n if (BUILD16.hydrateClientSide && styleContainerNode.host && (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId2}\"]`))) {\n styleElm.innerHTML = style;\n } else {\n styleElm = document.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId2}\"]`) || doc.createElement(\"style\");\n styleElm.innerHTML = style;\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n styleElm.setAttribute(\"nonce\", nonce);\n }\n if ((BUILD16.hydrateServerSide || BUILD16.hotModuleReplacement) && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId2);\n }\n if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {\n if (styleContainerNode.nodeName === \"HEAD\") {\n const preconnectLinks = styleContainerNode.querySelectorAll(\"link[rel=preconnect]\");\n const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector(\"style\");\n styleContainerNode.insertBefore(\n styleElm,\n (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null\n );\n } else if (\"host\" in styleContainerNode) {\n if (supportsConstructableStylesheets) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(style);\n styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];\n } else {\n const existingStyleContainer = styleContainerNode.querySelector(\"style\");\n if (existingStyleContainer) {\n existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;\n } else {\n styleContainerNode.prepend(styleElm);\n }\n }\n } else {\n styleContainerNode.append(styleElm);\n }\n }\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== \"HEAD\") {\n styleContainerNode.insertBefore(styleElm, null);\n }\n }\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n styleElm.innerHTML += SLOT_FB_CSS;\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId2);\n }\n }\n } else if (BUILD16.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId2;\n};\nvar attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime(\"attachStyles\", cmpMeta.$tagName$);\n const scopeId2 = addStyle(\n BUILD16.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),\n cmpMeta,\n hostRef.$modeName$\n );\n if ((BUILD16.shadowDom || BUILD16.scoped) && BUILD16.cssAnnotations && flags & 10 /* needsScopedEncapsulation */ && flags & 2 /* scopedCssEncapsulation */) {\n elm[\"s-sc\"] = scopeId2;\n elm.classList.add(scopeId2 + \"-h\");\n }\n endAttachStyles();\n};\nvar getScopeId = (cmp, mode) => \"sc-\" + (BUILD16.mode && mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + \"-\" + mode : cmp.$tagName$);\n\n// src/runtime/vdom/vdom-render.ts\nimport { BUILD as BUILD19 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/vdom/update-element.ts\nimport { BUILD as BUILD18 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/vdom/set-accessor.ts\nimport { BUILD as BUILD17 } from \"@stencil/core/internal/app-data\";\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (BUILD17.vdomClass && memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n if (BUILD17.hydrateClientSide && elm[\"s-si\"] && initialRender) {\n newClasses.push(elm[\"s-si\"]);\n oldClasses.forEach((c) => {\n if (c.startsWith(elm[\"s-si\"])) newClasses.push(c);\n });\n newClasses = [...new Set(newClasses)];\n classList.add(...newClasses);\n } else {\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n } else if (BUILD17.vdomStyle && memberName === \"style\") {\n if (BUILD17.updatable) {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (!BUILD17.hydrateServerSide && prop.includes(\"-\")) {\n elm.style.removeProperty(prop);\n } else {\n elm.style[prop] = \"\";\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (!BUILD17.hydrateServerSide && prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (BUILD17.vdomKey && memberName === \"key\") {\n } else if (BUILD17.vdomRef && memberName === \"ref\") {\n if (newValue) {\n newValue(elm);\n }\n } else if (BUILD17.vdomListener && (BUILD17.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) && memberName[0] === \"o\" && memberName[1] === \"n\") {\n if (memberName[2] === \"-\") {\n memberName = memberName.slice(3);\n } else if (isMemberInElement(win, ln)) {\n memberName = ln.slice(2);\n } else {\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue || newValue) {\n const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);\n memberName = memberName.replace(CAPTURE_EVENT_REGEX, \"\");\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, capture);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, capture);\n }\n }\n } else if (BUILD17.vdomPropOrAttr) {\n const isComplex = isComplexType(newValue);\n if ((isProp || isComplex && newValue !== null) && !isSvg) {\n try {\n if (!elm.tagName.includes(\"-\")) {\n const n = newValue == null ? \"\" : newValue;\n if (memberName === \"list\") {\n isProp = false;\n } else if (oldValue == null || elm[memberName] != n) {\n if (typeof elm.__lookupSetter__(memberName) === \"function\") {\n elm[memberName] = n;\n } else {\n elm.setAttribute(memberName, n);\n }\n }\n } else if (elm[memberName] !== newValue) {\n elm[memberName] = newValue;\n }\n } catch (e) {\n }\n }\n let xlink = false;\n if (BUILD17.vdomXlink) {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, \"\"))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n if (BUILD17.vdomXlink && xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n } else {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? \"\" : newValue;\n if (BUILD17.vdomXlink && xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n } else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = (value) => {\n if (typeof value === \"object\" && value && \"baseVal\" in value) {\n value = value.baseVal;\n }\n if (!value || typeof value !== \"string\") {\n return [];\n }\n return value.split(parseClassListRegex);\n};\nvar CAPTURE_EVENT_SUFFIX = \"Capture\";\nvar CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + \"$\");\n\n// src/runtime/vdom/update-element.ts\nvar updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {\n const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};\n const newVnodeAttrs = newVnode.$attrs$ || {};\n if (BUILD18.updatable) {\n for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n void 0,\n isSvgMode2,\n newVnode.$flags$,\n isInitialRender\n );\n }\n }\n }\n for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n newVnodeAttrs[memberName],\n isSvgMode2,\n newVnode.$flags$,\n isInitialRender\n );\n }\n};\nfunction sortedAttrNames(attrNames) {\n return attrNames.includes(\"ref\") ? (\n // we need to sort these to ensure that `'ref'` is the last attr\n [...attrNames.filter((attr) => attr !== \"ref\"), \"ref\"]\n ) : (\n // no need to sort, return the original array\n attrNames\n );\n}\n\n// src/runtime/vdom/vdom-render.ts\nvar scopeId;\nvar contentRef;\nvar hostTagName;\nvar useNativeShadowDom = false;\nvar checkSlotFallbackVisibility = false;\nvar checkSlotRelocate = false;\nvar isSvgMode = false;\nvar createElm = (oldParentVNode, newParentVNode, childIndex) => {\n var _a;\n const newVNode2 = newParentVNode.$children$[childIndex];\n let i2 = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (BUILD19.slotRelocation && !useNativeShadowDom) {\n checkSlotRelocate = true;\n if (newVNode2.$tag$ === \"slot\") {\n newVNode2.$flags$ |= newVNode2.$children$ ? (\n // slot element has fallback content\n // still create an element that \"mocks\" the slot element\n 2 /* isSlotFallback */\n ) : (\n // slot element does not have fallback content\n // create an html comment we'll use to always reference\n // where actual slot content should sit next to\n 1 /* isSlotReference */\n );\n }\n }\n if (BUILD19.isDev && newVNode2.$elm$) {\n consoleDevError(\n `The JSX ${newVNode2.$text$ !== null ? `\"${newVNode2.$text$}\" text` : `\"${newVNode2.$tag$}\" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`\n );\n }\n if (BUILD19.vdomText && newVNode2.$text$ !== null) {\n elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);\n } else if (BUILD19.slotRelocation && newVNode2.$flags$ & 1 /* isSlotReference */) {\n elm = newVNode2.$elm$ = BUILD19.isDebug || BUILD19.hydrateServerSide ? slotReferenceDebugNode(newVNode2) : doc.createTextNode(\"\");\n } else {\n if (BUILD19.svg && !isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n elm = newVNode2.$elm$ = BUILD19.svg ? doc.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n !useNativeShadowDom && BUILD19.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n ) : doc.createElement(\n !useNativeShadowDom && BUILD19.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n );\n if (BUILD19.svg && isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n if (BUILD19.vdomAttribute) {\n updateElement(null, newVNode2, isSvgMode);\n }\n if (BUILD19.scoped && isDef(scopeId) && elm[\"s-si\"] !== scopeId) {\n elm.classList.add(elm[\"s-si\"] = scopeId);\n }\n if (newVNode2.$children$) {\n for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {\n childNode = createElm(oldParentVNode, newVNode2, i2);\n if (childNode) {\n elm.appendChild(childNode);\n }\n }\n }\n if (BUILD19.svg) {\n if (newVNode2.$tag$ === \"svg\") {\n isSvgMode = false;\n } else if (elm.tagName === \"foreignObject\") {\n isSvgMode = true;\n }\n }\n }\n elm[\"s-hn\"] = hostTagName;\n if (BUILD19.slotRelocation) {\n if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {\n elm[\"s-sr\"] = true;\n elm[\"s-cr\"] = contentRef;\n elm[\"s-sn\"] = newVNode2.$name$ || \"\";\n elm[\"s-rf\"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {\n if (BUILD19.experimentalSlotFixes) {\n relocateToHostRoot(oldParentVNode.$elm$);\n } else {\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n if (BUILD19.scoped) {\n addRemoveSlotScopedClass(contentRef, elm, newParentVNode.$elm$, oldParentVNode == null ? void 0 : oldParentVNode.$elm$);\n }\n }\n }\n return elm;\n};\nvar relocateToHostRoot = (parentElm) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const host = parentElm.closest(hostTagName.toLowerCase());\n if (host != null) {\n const contentRefNode = Array.from(host.__childNodes || host.childNodes).find(\n (ref) => ref[\"s-cr\"]\n );\n const childNodeArray = Array.from(\n parentElm.__childNodes || parentElm.childNodes\n );\n for (const childNode of contentRefNode ? childNodeArray.reverse() : childNodeArray) {\n if (childNode[\"s-sh\"] != null) {\n insertBefore(host, childNode, contentRefNode != null ? contentRefNode : null);\n childNode[\"s-sh\"] = void 0;\n checkSlotRelocate = true;\n }\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);\n if (parentElm[\"s-sr\"] && BUILD19.experimentalSlotFixes) {\n let node = parentElm;\n while (node = node.nextSibling) {\n if (node && node[\"s-sn\"] === parentElm[\"s-sn\"] && node[\"s-sh\"] === hostTagName) {\n oldSlotChildNodes.push(node);\n }\n }\n }\n for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {\n const childNode = oldSlotChildNodes[i2];\n if (childNode[\"s-hn\"] !== hostTagName && childNode[\"s-ol\"]) {\n insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));\n childNode[\"s-ol\"].remove();\n childNode[\"s-ol\"] = void 0;\n childNode[\"s-sh\"] = void 0;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = BUILD19.slotRelocation && parentElm[\"s-cr\"] && parentElm[\"s-cr\"].parentNode || parentElm;\n let childNode;\n if (BUILD19.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n insertBefore(containerElm, childNode, BUILD19.slotRelocation ? referenceNode(before) : before);\n }\n }\n }\n};\nvar removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n nullifyVNodeRefs(vnode);\n if (elm) {\n if (BUILD19.slotRelocation) {\n checkSlotFallbackVisibility = true;\n if (elm[\"s-ol\"]) {\n elm[\"s-ol\"].remove();\n } else {\n putBackInOriginalLocation(elm, true);\n }\n }\n elm.remove();\n }\n }\n }\n};\nvar updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i2 = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx];\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {\n patch(oldStartVnode, newStartVnode, isInitialRender);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {\n patch(oldEndVnode, newEndVnode, isInitialRender);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {\n if (BUILD19.slotRelocation && (oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode, isInitialRender);\n insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {\n if (BUILD19.slotRelocation && (oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode, isInitialRender);\n insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n idxInOld = -1;\n if (BUILD19.vdomKey) {\n for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {\n if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {\n idxInOld = i2;\n break;\n }\n }\n }\n if (BUILD19.vdomKey && idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);\n } else {\n patch(elmToMove, newStartVnode, isInitialRender);\n oldCh[idxInOld] = void 0;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n } else {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n if (BUILD19.slotRelocation) {\n insertBefore(\n referenceNode(oldStartVnode.$elm$).parentNode,\n node,\n referenceNode(oldStartVnode.$elm$)\n );\n } else {\n insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(\n parentElm,\n newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,\n newVNode2,\n newCh,\n newStartIdx,\n newEndIdx\n );\n } else if (BUILD19.updatable && newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (BUILD19.slotRelocation && leftVNode.$tag$ === \"slot\") {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n if (BUILD19.vdomKey && !isInitialRender) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {\n leftVNode.$key$ = rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nvar referenceNode = (node) => node && node[\"s-ol\"] || node;\nvar patch = (oldVNode, newVNode2, isInitialRender = false) => {\n const elm = newVNode2.$elm$ = oldVNode.$elm$;\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode2.$children$;\n const tag = newVNode2.$tag$;\n const text = newVNode2.$text$;\n let defaultHolder;\n if (!BUILD19.vdomText || text === null) {\n if (BUILD19.svg) {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n if (BUILD19.vdomAttribute || BUILD19.reflect) {\n if (BUILD19.slot && tag === \"slot\" && !useNativeShadowDom) {\n if (BUILD19.experimentalSlotFixes && oldVNode.$name$ !== newVNode2.$name$) {\n newVNode2.$elm$[\"s-sn\"] = newVNode2.$name$ || \"\";\n relocateToHostRoot(newVNode2.$elm$.parentElement);\n }\n } else {\n updateElement(oldVNode, newVNode2, isSvgMode, isInitialRender);\n }\n }\n if (BUILD19.updatable && oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n if (BUILD19.updatable && BUILD19.vdomText && oldVNode.$text$ !== null) {\n elm.textContent = \"\";\n }\n addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);\n } else if (\n // don't do this on initial render as it can cause non-hydrated content to be removed\n !isInitialRender && BUILD19.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (BUILD19.svg && isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n } else if (BUILD19.vdomText && BUILD19.slotRelocation && (defaultHolder = elm[\"s-cr\"])) {\n defaultHolder.parentNode.textContent = text;\n } else if (BUILD19.vdomText && oldVNode.$text$ !== text) {\n elm.data = text;\n }\n};\nvar relocateNodes = [];\nvar markSlotContentForRelocation = (elm) => {\n let node;\n let hostContentNodes;\n let j;\n const children = elm.__childNodes || elm.childNodes;\n for (const childNode of children) {\n if (childNode[\"s-sr\"] && (node = childNode[\"s-cr\"]) && node.parentNode) {\n hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;\n const slotName = childNode[\"s-sn\"];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node[\"s-cn\"] && !node[\"s-nr\"] && node[\"s-hn\"] !== childNode[\"s-hn\"] && (!BUILD19.experimentalSlotFixes || !node[\"s-sh\"] || node[\"s-sh\"] !== childNode[\"s-hn\"])) {\n if (isNodeLocatedInSlot(node, slotName)) {\n let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n checkSlotFallbackVisibility = true;\n node[\"s-sn\"] = node[\"s-sn\"] || slotName;\n if (relocateNodeData) {\n relocateNodeData.$nodeToRelocate$[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodeData.$slotRefNode$ = childNode;\n } else {\n node[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node\n });\n }\n if (node[\"s-sr\"]) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node[\"s-sn\"])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n relocateNodes.push({\n $nodeToRelocate$: node\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* ElementNode */) {\n markSlotContentForRelocation(childNode);\n }\n }\n};\nvar nullifyVNodeRefs = (vNode) => {\n if (BUILD19.vdomRef) {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);\n }\n};\nvar insertBefore = (parent, newNode, reference) => {\n if (BUILD19.scoped && typeof newNode[\"s-sn\"] === \"string\" && !!newNode[\"s-sr\"] && !!newNode[\"s-cr\"]) {\n addRemoveSlotScopedClass(newNode[\"s-cr\"], newNode, parent, newNode.parentElement);\n } else if (BUILD19.experimentalSlotFixes && typeof newNode[\"s-sn\"] === \"string\") {\n if (parent.getRootNode().nodeType !== 11 /* DOCUMENT_FRAGMENT_NODE */) {\n patchParentNode(newNode);\n }\n return parent.insertBefore(newNode, reference);\n }\n if (BUILD19.experimentalSlotFixes && parent.__insertBefore) {\n return parent.__insertBefore(newNode, reference);\n } else {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nfunction addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {\n var _a;\n let scopeId2;\n if (reference && typeof slotNode[\"s-sn\"] === \"string\" && !!slotNode[\"s-sr\"] && reference.parentNode && reference.parentNode[\"s-sc\"] && (scopeId2 = slotNode[\"s-si\"] || reference.parentNode[\"s-sc\"])) {\n const scopeName = slotNode[\"s-sn\"];\n const hostName = slotNode[\"s-hn\"];\n (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + \"-s\");\n if (oldParent && oldParent.classList.contains(scopeId2 + \"-s\")) {\n let child = (oldParent.__childNodes || oldParent.childNodes)[0];\n let found = false;\n while (child) {\n if (child[\"s-sn\"] !== scopeName && child[\"s-hn\"] === hostName && !!child[\"s-sr\"]) {\n found = true;\n break;\n }\n child = child.nextSibling;\n }\n if (!found) oldParent.classList.remove(scopeId2 + \"-s\");\n }\n }\n}\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n var _a, _b, _c, _d, _e;\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n if (BUILD19.isDev && Array.isArray(renderFnResults) && renderFnResults.some(isHost)) {\n throw new Error(`The <Host> must be the single root component.\nLooks like the render() function of \"${hostTagName.toLowerCase()}\" is returning an array that contains the <Host>.\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n <Host>{content}</Host>\n );\n}\n `);\n }\n if (BUILD19.reflect && cmpMeta.$attrsToReflect$) {\n rootVnode.$attrs$ = rootVnode.$attrs$ || {};\n cmpMeta.$attrsToReflect$.map(\n ([propName, attribute]) => rootVnode.$attrs$[attribute] = hostElm[propName]\n );\n }\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n if (hostElm.hasAttribute(key) && ![\"key\", \"ref\", \"style\", \"class\"].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = BUILD19.shadowDom ? hostElm.shadowRoot || hostElm : hostElm;\n if (BUILD19.scoped || BUILD19.shadowDom) {\n scopeId = hostElm[\"s-sc\"];\n }\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;\n if (BUILD19.slotRelocation) {\n contentRef = hostElm[\"s-cr\"];\n checkSlotFallbackVisibility = false;\n }\n patch(oldVNode, rootVnode, isInitialLoad);\n if (BUILD19.slotRelocation) {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n if (checkSlotRelocate) {\n markSlotContentForRelocation(rootVnode.$elm$);\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate[\"s-ol\"]) {\n const orgLocationNode = BUILD19.isDebug || BUILD19.hydrateServerSide ? originalLocationDebugNode(nodeToRelocate) : doc.createTextNode(\"\");\n orgLocationNode[\"s-nr\"] = nodeToRelocate;\n insertBefore(nodeToRelocate.parentNode, nodeToRelocate[\"s-ol\"] = orgLocationNode, nodeToRelocate);\n }\n }\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n const slotRefNode = relocateData.$slotRefNode$;\n if (slotRefNode) {\n const parentNodeRef = slotRefNode.parentNode;\n let insertBeforeNode = slotRefNode.nextSibling;\n if (!BUILD19.hydrateServerSide && (!BUILD19.experimentalSlotFixes || insertBeforeNode && insertBeforeNode.nodeType === 1 /* ElementNode */)) {\n let orgLocationNode = (_a = nodeToRelocate[\"s-ol\"]) == null ? void 0 : _a.previousSibling;\n while (orgLocationNode) {\n let refNode = (_b = orgLocationNode[\"s-nr\"]) != null ? _b : null;\n if (refNode && refNode[\"s-sn\"] === nodeToRelocate[\"s-sn\"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {\n refNode = refNode.nextSibling;\n while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode[\"s-sr\"])) {\n refNode = refNode == null ? void 0 : refNode.nextSibling;\n }\n if (!refNode || !refNode[\"s-nr\"]) {\n insertBeforeNode = refNode;\n break;\n }\n }\n orgLocationNode = orgLocationNode.previousSibling;\n }\n }\n const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;\n const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;\n if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {\n if (nodeToRelocate !== insertBeforeNode) {\n if (!BUILD19.experimentalSlotFixes && !nodeToRelocate[\"s-hn\"] && nodeToRelocate[\"s-ol\"]) {\n nodeToRelocate[\"s-hn\"] = nodeToRelocate[\"s-ol\"].parentNode.nodeName;\n }\n insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);\n if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== \"SLOT-FB\") {\n nodeToRelocate.hidden = (_c = nodeToRelocate[\"s-ih\"]) != null ? _c : false;\n }\n }\n }\n nodeToRelocate && typeof slotRefNode[\"s-rf\"] === \"function\" && slotRefNode[\"s-rf\"](nodeToRelocate);\n } else {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (isInitialLoad) {\n nodeToRelocate[\"s-ih\"] = (_d = nodeToRelocate.hidden) != null ? _d : false;\n }\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n relocateNodes.length = 0;\n }\n if (BUILD19.experimentalScopedSlotChanges && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n const children = rootVnode.$elm$.__childNodes || rootVnode.$elm$.childNodes;\n for (const childNode of children) {\n if (childNode[\"s-hn\"] !== hostTagName && !childNode[\"s-sh\"]) {\n if (isInitialLoad && childNode[\"s-ih\"] == null) {\n childNode[\"s-ih\"] = (_e = childNode.hidden) != null ? _e : false;\n }\n childNode.hidden = true;\n }\n }\n }\n contentRef = void 0;\n};\nvar slotReferenceDebugNode = (slotVNode) => doc.createComment(\n `<slot${slotVNode.$name$ ? ' name=\"' + slotVNode.$name$ + '\"' : \"\"}> (host=${hostTagName.toLowerCase()})`\n);\nvar originalLocationDebugNode = (nodeToRelocate) => doc.createComment(\n `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate[\"s-hn\"]})` : `[${nodeToRelocate.textContent}]`)\n);\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (BUILD20.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent[\"s-p\"]) {\n const index = ancestorComponent[\"s-p\"].push(\n new Promise(\n (r) => hostRef.$onRenderResolve$ = () => {\n ancestorComponent[\"s-p\"].splice(index - 1, 1);\n r();\n }\n )\n );\n }\n};\nvar scheduleUpdate = (hostRef, isInitialLoad) => {\n if (BUILD20.taskQueue && BUILD20.updatable) {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (BUILD20.asyncLoading && hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return BUILD20.taskQueue ? writeTask(dispatch) : dispatch();\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = BUILD20.lazyLoad ? hostRef.$lazyInstance$ : elm;\n if (!instance) {\n throw new Error(\n `Can't render component <${elm.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \\`externalRuntime: true\\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`\n );\n }\n let maybePromise;\n if (isInitialLoad) {\n if (BUILD20.lazyLoad && BUILD20.hostListener) {\n hostRef.$flags$ |= 256 /* isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));\n hostRef.$queuedListeners$ = void 0;\n }\n }\n emitLifecycleEvent(elm, \"componentWillLoad\");\n if (BUILD20.cmpWillLoad) {\n maybePromise = safeCall(instance, \"componentWillLoad\", void 0, elm);\n }\n } else {\n emitLifecycleEvent(elm, \"componentWillUpdate\");\n if (BUILD20.cmpWillUpdate) {\n maybePromise = safeCall(instance, \"componentWillUpdate\", void 0, elm);\n }\n }\n emitLifecycleEvent(elm, \"componentWillRender\");\n if (BUILD20.cmpWillRender) {\n maybePromise = enqueue(maybePromise, () => safeCall(instance, \"componentWillRender\", void 0, elm));\n }\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nvar enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn).catch((err2) => {\n console.error(err2);\n fn();\n}) : fn();\nvar isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === \"function\";\nvar updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime(\"update\", hostRef.$cmpMeta$.$tagName$);\n const rc = elm[\"s-rc\"];\n if (BUILD20.style && isInitialLoad) {\n attachStyles(hostRef);\n }\n const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 1024 /* devOnRender */;\n }\n if (BUILD20.hydrateServerSide) {\n await callRender(hostRef, instance, elm, isInitialLoad);\n } else {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (BUILD20.isDev) {\n hostRef.$renderCount$ = hostRef.$renderCount$ === void 0 ? 1 : hostRef.$renderCount$ + 1;\n hostRef.$flags$ &= ~1024 /* devOnRender */;\n }\n if (BUILD20.hydrateServerSide) {\n try {\n serverSideConnected(elm);\n if (isInitialLoad) {\n if (hostRef.$cmpMeta$.$flags$ & 1 /* shadowDomEncapsulation */) {\n elm[\"s-en\"] = \"\";\n } else if (hostRef.$cmpMeta$.$flags$ & 2 /* scopedCssEncapsulation */) {\n elm[\"s-en\"] = \"c\";\n }\n }\n } catch (e) {\n consoleError(e, elm);\n }\n }\n if (BUILD20.asyncLoading && rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n if (BUILD20.asyncLoading) {\n const childrenPromises = (_a = elm[\"s-p\"]) != null ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n } else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n } else {\n postUpdateComponent(hostRef);\n }\n};\nvar renderingRef = null;\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n const allRenderFn = BUILD20.allRenderFn ? true : false;\n const lazyLoad = BUILD20.lazyLoad ? true : false;\n const taskQueue = BUILD20.taskQueue ? true : false;\n const updatable = BUILD20.updatable ? true : false;\n try {\n renderingRef = instance;\n instance = allRenderFn ? instance.render() : instance.render && instance.render();\n if (updatable && taskQueue) {\n hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;\n }\n if (updatable || lazyLoad) {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n if (BUILD20.hasRenderFn || BUILD20.reflect) {\n if (BUILD20.vdomRender || BUILD20.reflect) {\n if (BUILD20.hydrateServerSide) {\n return Promise.resolve(instance).then((value) => renderVdom(hostRef, value, isInitialLoad));\n } else {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n } else {\n const shadowRoot = elm.shadowRoot;\n if (hostRef.$cmpMeta$.$flags$ & 1 /* shadowDomEncapsulation */) {\n shadowRoot.textContent = instance;\n } else {\n elm.textContent = instance;\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n renderingRef = null;\n return null;\n};\nvar getRenderingRef = () => renderingRef;\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = BUILD20.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (BUILD20.cmpDidRender) {\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 1024 /* devOnRender */;\n }\n safeCall(instance, \"componentDidRender\", void 0, elm);\n if (BUILD20.isDev) {\n hostRef.$flags$ &= ~1024 /* devOnRender */;\n }\n }\n emitLifecycleEvent(elm, \"componentDidRender\");\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n if (BUILD20.asyncLoading && BUILD20.cssAnnotations) {\n addHydratedFlag(elm);\n }\n if (BUILD20.cmpDidLoad) {\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 2048 /* devOnDidLoad */;\n }\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n if (BUILD20.isDev) {\n hostRef.$flags$ &= ~2048 /* devOnDidLoad */;\n }\n }\n emitLifecycleEvent(elm, \"componentDidLoad\");\n endPostUpdate();\n if (BUILD20.asyncLoading) {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad(tagName);\n }\n }\n } else {\n if (BUILD20.cmpDidUpdate) {\n if (BUILD20.isDev) {\n hostRef.$flags$ |= 1024 /* devOnRender */;\n }\n safeCall(instance, \"componentDidUpdate\", void 0, elm);\n if (BUILD20.isDev) {\n hostRef.$flags$ &= ~1024 /* devOnRender */;\n }\n }\n emitLifecycleEvent(elm, \"componentDidUpdate\");\n endPostUpdate();\n }\n if (BUILD20.method && BUILD20.lazyLoad) {\n hostRef.$onInstanceResolve$(elm);\n }\n if (BUILD20.asyncLoading) {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = void 0;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);\n }\n};\nvar forceUpdate = (ref) => {\n if (BUILD20.updatable && (Build.isBrowser || Build.isTesting)) {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n return isConnected;\n }\n return false;\n};\nvar appDidLoad = (who) => {\n if (BUILD20.cssAnnotations) {\n addHydratedFlag(doc.documentElement);\n }\n if (BUILD20.asyncQueue) {\n plt.$flags$ |= 2 /* appLoaded */;\n }\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n if (BUILD20.profile && performance.measure) {\n performance.measure(`[Stencil] ${NAMESPACE} initial load (by ${who})`, \"st:app:start\");\n }\n};\nvar safeCall = (instance, method, arg, elm) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n } catch (e) {\n consoleError(e, elm);\n }\n }\n return void 0;\n};\nvar emitLifecycleEvent = (elm, lifecycleName) => {\n if (BUILD20.lifecycleDOMEvents) {\n emitEvent(elm, \"stencil_\" + lifecycleName, {\n bubbles: true,\n composed: true,\n detail: {\n namespace: NAMESPACE\n }\n });\n }\n};\nvar addHydratedFlag = (elm) => {\n var _a, _b;\n return BUILD20.hydratedClass ? elm.classList.add((_a = BUILD20.hydratedSelectorName) != null ? _a : \"hydrated\") : BUILD20.hydratedAttribute ? elm.setAttribute((_b = BUILD20.hydratedSelectorName) != null ? _b : \"hydrated\", \"\") : void 0;\n};\nvar serverSideConnected = (elm) => {\n const children = elm.children;\n if (children != null) {\n for (let i2 = 0, ii = children.length; i2 < ii; i2++) {\n const childElm = children[i2];\n if (typeof childElm.connectedCallback === \"function\") {\n childElm.connectedCallback();\n }\n serverSideConnected(childElm);\n }\n }\n};\n\n// src/runtime/set-value.ts\nvar getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nvar setValue = (ref, propName, newVal, cmpMeta) => {\n const hostRef = getHostRef(ref);\n if (BUILD21.lazyLoad && !hostRef) {\n throw new Error(\n `Couldn't find host element for \"${cmpMeta.$tagName$}\" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`\n );\n }\n const elm = BUILD21.lazyLoad ? hostRef.$hostElement$ : ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = BUILD21.lazyLoad ? hostRef.$lazyInstance$ : elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!BUILD21.lazyLoad || !(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n if (BUILD21.isDev) {\n if (hostRef.$flags$ & 1024 /* devOnRender */) {\n consoleDevWarn(\n `The state/prop \"${propName}\" changed during rendering. This can potentially lead to infinite-loops and other bugs.`,\n \"\\nElement\",\n elm,\n \"\\nNew value\",\n newVal,\n \"\\nOld value\",\n oldVal\n );\n } else if (hostRef.$flags$ & 2048 /* devOnDidLoad */) {\n consoleDevWarn(\n `The state/prop \"${propName}\" changed during \"componentDidLoad()\", this triggers extra re-renders, try to setup on \"componentWillLoad()\"`,\n \"\\nElement\",\n elm,\n \"\\nNew value\",\n newVal,\n \"\\nOld value\",\n oldVal\n );\n }\n }\n if (!BUILD21.lazyLoad || instance) {\n if (BUILD21.watchCallback && cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n watchMethods.map((watchMethodName) => {\n try {\n instance[watchMethodName](newVal, oldVal, propName);\n } catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if (BUILD21.updatable && (flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n if (BUILD21.cmpShouldUpdate && instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n\n// src/runtime/proxy-component.ts\nvar proxyComponent = (Cstr, cmpMeta, flags) => {\n var _a, _b;\n const prototype = Cstr.prototype;\n if (BUILD22.isTesting) {\n if (prototype.done) {\n return;\n }\n prototype.done = true;\n }\n if (BUILD22.formAssociated && cmpMeta.$flags$ & 64 /* formAssociated */ && flags & 1 /* isElementConstructor */) {\n FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS.forEach((cbName) => {\n const originalFormAssociatedCallback = prototype[cbName];\n Object.defineProperty(prototype, cbName, {\n value(...args) {\n const hostRef = getHostRef(this);\n const instance = BUILD22.lazyLoad ? hostRef.$lazyInstance$ : this;\n if (!instance) {\n hostRef.$onReadyPromise$.then((asyncInstance) => {\n const cb = asyncInstance[cbName];\n typeof cb === \"function\" && cb.call(asyncInstance, ...args);\n });\n } else {\n const cb = BUILD22.lazyLoad ? instance[cbName] : originalFormAssociatedCallback;\n typeof cb === \"function\" && cb.call(instance, ...args);\n }\n }\n });\n });\n }\n if (BUILD22.member && cmpMeta.$members$ || BUILD22.watchCallback && (cmpMeta.$watchers$ || Cstr.watchers)) {\n if (BUILD22.watchCallback && Cstr.watchers && !cmpMeta.$watchers$) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD22.prop || BUILD22.state) && (memberFlags & 31 /* Prop */ || (!BUILD22.lazyLoad || flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {\n const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};\n if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;\n if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;\n if (flags & 1 /* isElementConstructor */ || !origGetter) {\n Object.defineProperty(prototype, memberName, {\n get() {\n if (BUILD22.lazyLoad) {\n if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {\n return getValue(this, memberName);\n }\n const ref = getHostRef(this);\n const instance = ref ? ref.$lazyInstance$ : prototype;\n if (!instance) return;\n return instance[memberName];\n }\n if (!BUILD22.lazyLoad) {\n return origGetter ? origGetter.apply(this) : getValue(this, memberName);\n }\n },\n configurable: true,\n enumerable: true\n });\n }\n Object.defineProperty(prototype, memberName, {\n set(newValue) {\n const ref = getHostRef(this);\n if (BUILD22.isDev) {\n if (\n // we are proxying the instance (not element)\n (flags & 1 /* isElementConstructor */) === 0 && // if the class has a setter, then the Element can update instance values, so ignore\n (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0 && // the element is not constructing\n (ref && ref.$flags$ & 8 /* isConstructingInstance */) === 0 && // the member is a prop\n (memberFlags & 31 /* Prop */) !== 0 && // the member is not mutable\n (memberFlags & 1024 /* Mutable */) === 0\n ) {\n consoleDevWarn(\n `@Prop() \"${memberName}\" on <${cmpMeta.$tagName$}> is immutable but was modified from within the component.\nMore information: https://stenciljs.com/docs/properties#prop-mutability`\n );\n }\n }\n if (origSetter) {\n const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n if (typeof currentValue === \"undefined\" && ref.$instanceValues$.get(memberName)) {\n newValue = ref.$instanceValues$.get(memberName);\n } else if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n if (!BUILD22.lazyLoad) {\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n if (BUILD22.lazyLoad) {\n if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {\n setValue(this, memberName, newValue, cmpMeta);\n if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {\n ref.$onReadyPromise$.then(() => {\n if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {\n ref.$lazyInstance$[memberName] = newValue;\n }\n });\n }\n return;\n }\n const setterSetVal = () => {\n const currentValue = ref.$lazyInstance$[memberName];\n if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, memberFlags);\n setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);\n };\n if (ref.$lazyInstance$) {\n setterSetVal();\n } else {\n ref.$onReadyPromise$.then(() => setterSetVal());\n }\n }\n }\n });\n } else if (BUILD22.lazyLoad && BUILD22.method && flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n var _a2;\n const ref = getHostRef(this);\n return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {\n var _a3;\n return (_a3 = ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);\n });\n }\n });\n }\n });\n if (BUILD22.observeAttribute && (!BUILD22.lazyLoad || flags & 1 /* isElementConstructor */)) {\n const attrNameToPropName = /* @__PURE__ */ new Map();\n prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {\n plt.jmp(() => {\n var _a2;\n const propName = attrNameToPropName.get(attrName);\n if (this.hasOwnProperty(propName) && BUILD22.lazyLoad) {\n newValue = this[propName];\n delete this[propName];\n } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === \"number\" && // cast type to number to avoid TS compiler issues\n this[propName] == newValue) {\n return;\n } else if (propName == null) {\n const hostRef = getHostRef(this);\n const flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {\n const elm = BUILD22.lazyLoad ? hostRef.$hostElement$ : this;\n const instance = BUILD22.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];\n entry == null ? void 0 : entry.forEach((callbackName) => {\n if (instance[callbackName] != null) {\n instance[callbackName].call(instance, newValue, oldValue, attrName);\n }\n });\n }\n return;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\n newValue = newValue === null && typeof this[propName] === \"boolean\" ? false : newValue;\n if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {\n this[propName] = newValue;\n }\n });\n };\n Cstr.observedAttributes = Array.from(\n /* @__PURE__ */ new Set([\n ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),\n ...members.filter(([_, m]) => m[0] & 15 /* HasAttribute */).map(([propName, m]) => {\n var _a2;\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (BUILD22.reflect && m[0] & 512 /* ReflectAttr */) {\n (_a2 = cmpMeta.$attrsToReflect$) == null ? void 0 : _a2.push([propName, attrName]);\n }\n return attrName;\n })\n ])\n );\n }\n }\n return Cstr;\n};\n\n// src/runtime/initialize-component.ts\nvar initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {\n let Cstr;\n if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n if (BUILD23.lazyLoad || BUILD23.hydrateClientSide) {\n const CstrImport = loadModule(cmpMeta, hostRef, hmrVersionId);\n if (CstrImport && \"then\" in CstrImport) {\n const endLoad = uniqueTime(\n `st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`,\n `[Stencil] Load module for <${cmpMeta.$tagName$}>`\n );\n Cstr = await CstrImport;\n endLoad();\n } else {\n Cstr = CstrImport;\n }\n if (!Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (BUILD23.member && !Cstr.isProxied) {\n if (BUILD23.watchCallback) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime(\"createInstance\", cmpMeta.$tagName$);\n if (BUILD23.member) {\n hostRef.$flags$ |= 8 /* isConstructingInstance */;\n }\n try {\n new Cstr(hostRef);\n } catch (e) {\n consoleError(e, elm);\n }\n if (BUILD23.member) {\n hostRef.$flags$ &= ~8 /* isConstructingInstance */;\n }\n if (BUILD23.watchCallback) {\n hostRef.$flags$ |= 128 /* isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else {\n Cstr = elm.constructor;\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n if (BUILD23.style && Cstr && Cstr.style) {\n let style;\n if (typeof Cstr.style === \"string\") {\n style = Cstr.style;\n } else if (BUILD23.mode && typeof Cstr.style !== \"string\") {\n hostRef.$modeName$ = computeMode(elm);\n if (hostRef.$modeName$) {\n style = Cstr.style[hostRef.$modeName$];\n }\n if (BUILD23.hydrateServerSide && hostRef.$modeName$) {\n elm.setAttribute(\"s-mode\", hostRef.$modeName$);\n }\n }\n const scopeId2 = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId2)) {\n const endRegisterStyles = createTime(\"registerStyles\", cmpMeta.$tagName$);\n if (!BUILD23.hydrateServerSide && BUILD23.shadowDom && // TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n BUILD23.shadowDomShim && cmpMeta.$flags$ & 8 /* needsShadowDomShim */) {\n style = await import(\"./shadow-css.js\").then((m) => m.scopeCss(style, scopeId2));\n }\n registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (BUILD23.asyncLoading && ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n if (BUILD23.lazyLoad && BUILD23.connectedCallback) {\n safeCall(instance, \"connectedCallback\", void 0, elm);\n }\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (BUILD24.hostListenerTargetParent) {\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true);\n }\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n let hostId;\n if (BUILD24.hydrateClientSide) {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (BUILD24.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n const scopeId2 = BUILD24.mode ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute(\"s-mode\")) : addStyle(elm.shadowRoot, cmpMeta);\n elm.classList.remove(scopeId2 + \"-h\", scopeId2 + \"-s\");\n } else if (BUILD24.scoped && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n const scopeId2 = getScopeId(cmpMeta, BUILD24.mode ? elm.getAttribute(\"s-mode\") : void 0);\n elm[\"s-sc\"] = scopeId2;\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (BUILD24.slotRelocation && !hostId) {\n if (BUILD24.hydrateServerSide || (BUILD24.slot || BUILD24.shadowDom) && // TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {\n setContentReference(elm);\n }\n }\n if (BUILD24.asyncLoading) {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (BUILD24.hydrateClientSide && ancestorComponent.nodeType === 1 /* ElementNode */ && ancestorComponent.hasAttribute(\"s-id\") && ancestorComponent[\"s-p\"] || ancestorComponent[\"s-p\"]) {\n attachToAncestor(hostRef, hostRef.$ancestorComponent$ = ancestorComponent);\n break;\n }\n }\n }\n if (BUILD24.prop && !BUILD24.hydrateServerSide && cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n if (BUILD24.initializeNextTick) {\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n } else {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n } else {\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));\n }\n }\n endConnected();\n }\n};\nvar setContentReference = (elm) => {\n const contentRefElm = elm[\"s-cr\"] = doc.createComment(\n BUILD24.isDebug ? `content-ref (host=${elm.localName})` : \"\"\n );\n contentRefElm[\"s-cn\"] = true;\n insertBefore(elm, contentRefElm, elm.firstChild);\n};\n\n// src/runtime/disconnected-callback.ts\nimport { BUILD as BUILD25 } from \"@stencil/core/internal/app-data\";\nvar disconnectInstance = (instance, elm) => {\n if (BUILD25.lazyLoad && BUILD25.disconnectedCallback) {\n safeCall(instance, \"disconnectedCallback\", void 0, elm || instance);\n }\n if (BUILD25.cmpDidUnload) {\n safeCall(instance, \"componentDidUnload\", void 0, elm || instance);\n }\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (BUILD25.hostListener) {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = void 0;\n }\n }\n if (!BUILD25.lazyLoad) {\n disconnectInstance(elm);\n } else if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n disconnectInstance(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$, elm));\n }\n }\n if (rootAppliedStyles.has(elm)) {\n rootAppliedStyles.delete(elm);\n }\n if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {\n rootAppliedStyles.delete(elm.shadowRoot);\n }\n};\n\n// src/runtime/bootstrap-custom-element.ts\nvar defineCustomElement = (Cstr, compactMeta) => {\n customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta));\n};\nvar proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1]\n };\n if (BUILD26.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD26.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD26.watchCallback) {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n if (BUILD26.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD26.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;\n }\n if (BUILD26.experimentalSlotFixes) {\n if (BUILD26.scoped && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchPseudoShadowDom(Cstr.prototype);\n }\n } else {\n if (BUILD26.slotChildNodesFix) {\n patchChildSlotNodes(Cstr.prototype);\n }\n if (BUILD26.cloneNodeFix) {\n patchCloneNode(Cstr.prototype);\n }\n if (BUILD26.appendChildSlotFix) {\n patchSlotAppendChild(Cstr.prototype);\n }\n if (BUILD26.scopedSlotTextContentFix && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchTextContent(Cstr.prototype);\n }\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __hasHostListenerAttached: false,\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n if (!this.__hasHostListenerAttached) {\n const hostRef = getHostRef(this);\n addHostEventListeners(this, hostRef, cmpMeta.$listeners$, false);\n this.__hasHostListenerAttached = true;\n }\n connectedCallback(this);\n if (BUILD26.connectedCallback && originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (BUILD26.disconnectedCallback && originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n plt.raf(() => {\n var _a;\n const hostRef = getHostRef(this);\n if (((_a = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$;\n }\n if (this instanceof Node && !this.isConnected) {\n deleteHostRef(this);\n }\n });\n },\n __attachShadow() {\n if (supportsShadow) {\n if (!this.shadowRoot) {\n if (BUILD26.shadowDelegatesFocus) {\n this.attachShadow({\n mode: \"open\",\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */)\n });\n } else {\n this.attachShadow({ mode: \"open\" });\n }\n } else {\n if (this.shadowRoot.mode !== \"open\") {\n throw new Error(\n `Unable to re-use existing shadow root for ${cmpMeta.$tagName$}! Mode is set to ${this.shadowRoot.mode} but Stencil only supports open shadow roots.`\n );\n }\n }\n } else {\n this.shadowRoot = this;\n }\n }\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* isElementConstructor */ | 2 /* proxyState */);\n};\nvar forceModeUpdate = (elm) => {\n if (BUILD26.style && BUILD26.mode && !BUILD26.lazyLoad) {\n const mode = computeMode(elm);\n const hostRef = getHostRef(elm);\n if (hostRef.$modeName$ !== mode) {\n const cmpMeta = hostRef.$cmpMeta$;\n const oldScopeId = elm[\"s-sc\"];\n const scopeId2 = getScopeId(cmpMeta, mode);\n const style = elm.constructor.style[mode];\n const flags = cmpMeta.$flags$;\n if (style) {\n if (!styles.has(scopeId2)) {\n registerStyle(scopeId2, style, !!(flags & 1 /* shadowDomEncapsulation */));\n }\n hostRef.$modeName$ = mode;\n elm.classList.remove(oldScopeId + \"-h\", oldScopeId + \"-s\");\n attachStyles(hostRef);\n forceUpdate(elm);\n }\n }\n }\n};\n\n// src/runtime/bootstrap-lazy.ts\nimport { BUILD as BUILD27 } from \"@stencil/core/internal/app-data\";\n\n// src/runtime/hmr-component.ts\nvar hmrStart = (hostElement, cmpMeta, hmrVersionId) => {\n const hostRef = getHostRef(hostElement);\n hostRef.$flags$ = 1 /* hasConnected */;\n initializeComponent(hostElement, hostRef, cmpMeta, hmrVersionId);\n};\n\n// src/runtime/bootstrap-lazy.ts\nvar bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n if (BUILD27.profile && performance.mark) {\n performance.mark(\"st:app:start\");\n }\n installDevTools();\n const endBootstrap = createTime(\"bootstrapLazy\");\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements2 = win.customElements;\n const head = doc.head;\n const metaCharset = /* @__PURE__ */ head.querySelector(\"meta[charset]\");\n const dataStyles = /* @__PURE__ */ doc.createElement(\"style\");\n const deferredConnectedCallbacks = [];\n let appLoadFallback;\n let isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || \"./\", doc.baseURI).href;\n if (BUILD27.asyncQueue) {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* queueSync */;\n }\n }\n if (BUILD27.hydrateClientSide) {\n plt.$flags$ |= 2 /* appLoaded */;\n }\n let hasSlotRelocation = false;\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n var _a2;\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3]\n };\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n hasSlotRelocation = true;\n }\n if (BUILD27.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD27.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD27.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD27.watchCallback) {\n cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};\n }\n if (BUILD27.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;\n }\n const tagName = BUILD27.transformTagName && options.transformTagName ? options.transformTagName(cmpMeta.$tagName$) : cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n super(self);\n this.hasRegisteredEventListeners = false;\n self = this;\n registerHost(self, cmpMeta);\n if (BUILD27.shadowDom && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n if (supportsShadow) {\n if (!self.shadowRoot) {\n if (BUILD27.shadowDelegatesFocus) {\n self.attachShadow({\n mode: \"open\",\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */)\n });\n } else {\n self.attachShadow({ mode: \"open\" });\n }\n } else {\n if (self.shadowRoot.mode !== \"open\") {\n throw new Error(\n `Unable to re-use existing shadow root for ${cmpMeta.$tagName$}! Mode is set to ${self.shadowRoot.mode} but Stencil only supports open shadow roots.`\n );\n }\n }\n } else if (!BUILD27.hydrateServerSide && !(\"shadowRoot\" in self)) {\n self.shadowRoot = self;\n }\n }\n }\n connectedCallback() {\n const hostRef = getHostRef(this);\n if (!this.hasRegisteredEventListeners) {\n this.hasRegisteredEventListeners = true;\n addHostEventListeners(this, hostRef, cmpMeta.$listeners$, false);\n }\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n deferredConnectedCallbacks.push(this);\n } else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n plt.raf(() => {\n var _a3;\n const hostRef = getHostRef(this);\n if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$.$elm$;\n }\n });\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n if (BUILD27.experimentalSlotFixes) {\n if (BUILD27.scoped && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchPseudoShadowDom(HostElement.prototype);\n }\n } else {\n if (BUILD27.slotChildNodesFix) {\n patchChildSlotNodes(HostElement.prototype);\n }\n if (BUILD27.cloneNodeFix) {\n patchCloneNode(HostElement.prototype);\n }\n if (BUILD27.appendChildSlotFix) {\n patchSlotAppendChild(HostElement.prototype);\n }\n if (BUILD27.scopedSlotTextContentFix && cmpMeta.$flags$ & 2 /* scopedCssEncapsulation */) {\n patchTextContent(HostElement.prototype);\n }\n }\n if (BUILD27.formAssociated && cmpMeta.$flags$ & 64 /* formAssociated */) {\n HostElement.formAssociated = true;\n }\n if (BUILD27.hotModuleReplacement) {\n HostElement.prototype[\"s-hmr\"] = function(hmrVersionId) {\n hmrStart(this, cmpMeta, hmrVersionId);\n };\n }\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements2.get(tagName)) {\n cmpTags.push(tagName);\n customElements2.define(\n tagName,\n proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */)\n );\n }\n });\n });\n if (cmpTags.length > 0) {\n if (hasSlotRelocation) {\n dataStyles.textContent += SLOT_FB_CSS;\n }\n if (BUILD27.invisiblePrehydration && (BUILD27.hydratedClass || BUILD27.hydratedAttribute)) {\n dataStyles.textContent += cmpTags.sort() + HYDRATED_CSS;\n }\n if (dataStyles.innerHTML.length) {\n dataStyles.setAttribute(\"data-styles\", \"\");\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n dataStyles.setAttribute(\"nonce\", nonce);\n }\n head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n }\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n } else {\n if (BUILD27.profile) {\n plt.jmp(() => appLoadFallback = setTimeout(appDidLoad, 30, \"timeout\"));\n } else {\n plt.jmp(() => appLoadFallback = setTimeout(appDidLoad, 30));\n }\n }\n endBootstrap();\n};\n\n// src/runtime/fragment.ts\nvar Fragment = (_, children) => children;\n\n// src/runtime/host-listener.ts\nimport { BUILD as BUILD28 } from \"@stencil/core/internal/app-data\";\nvar addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (BUILD28.hostListener && listeners) {\n if (BUILD28.hostListenerTargetParent) {\n if (attachParentListeners) {\n listeners = listeners.filter(([flags]) => flags & 32 /* TargetParent */);\n } else {\n listeners = listeners.filter(([flags]) => !(flags & 32 /* TargetParent */));\n }\n }\n listeners.map(([flags, name, method]) => {\n const target = BUILD28.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nvar hostListenerProxy = (hostRef, methodName) => (ev) => {\n var _a;\n try {\n if (BUILD28.lazyLoad) {\n if (hostRef.$flags$ & 256 /* isListenReady */) {\n (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);\n } else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n } else {\n hostRef.$hostElement$[methodName](ev);\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n};\nvar getHostListenerTarget = (elm, flags) => {\n if (BUILD28.hostListenerTargetDocument && flags & 4 /* TargetDocument */) return doc;\n if (BUILD28.hostListenerTargetWindow && flags & 8 /* TargetWindow */) return win;\n if (BUILD28.hostListenerTargetBody && flags & 16 /* TargetBody */) return doc.body;\n if (BUILD28.hostListenerTargetParent && flags & 32 /* TargetParent */ && elm.parentElement)\n return elm.parentElement;\n return elm;\n};\nvar hostListenerOpts = (flags) => supportsListenerOptions ? {\n passive: (flags & 1 /* Passive */) !== 0,\n capture: (flags & 2 /* Capture */) !== 0\n} : (flags & 2 /* Capture */) !== 0;\n\n// src/runtime/nonce.ts\nvar setNonce = (nonce) => plt.$nonce$ = nonce;\n\n// src/runtime/platform-options.ts\nvar setPlatformOptions = (opts) => Object.assign(plt, opts);\n\n// src/runtime/vdom/vdom-annotations.ts\nvar insertVdomAnnotations = (doc2, staticComponents) => {\n if (doc2 != null) {\n const docData = STENCIL_DOC_DATA in doc2 ? doc2[STENCIL_DOC_DATA] : { ...DEFAULT_DOC_DATA };\n docData.staticComponents = new Set(staticComponents);\n const orgLocationNodes = [];\n parseVNodeAnnotations(doc2, doc2.body, docData, orgLocationNodes);\n orgLocationNodes.forEach((orgLocationNode) => {\n var _a;\n if (orgLocationNode != null && orgLocationNode[\"s-nr\"]) {\n const nodeRef = orgLocationNode[\"s-nr\"];\n let hostId = nodeRef[\"s-host-id\"];\n let nodeId = nodeRef[\"s-node-id\"];\n let childId = `${hostId}.${nodeId}`;\n if (hostId == null) {\n hostId = 0;\n docData.rootLevelIds++;\n nodeId = docData.rootLevelIds;\n childId = `${hostId}.${nodeId}`;\n if (nodeRef.nodeType === 1 /* ElementNode */) {\n nodeRef.setAttribute(HYDRATE_CHILD_ID, childId);\n if (typeof nodeRef[\"s-sn\"] === \"string\" && !nodeRef.getAttribute(\"slot\")) {\n nodeRef.setAttribute(\"s-sn\", nodeRef[\"s-sn\"]);\n }\n } else if (nodeRef.nodeType === 3 /* TextNode */) {\n if (hostId === 0) {\n const textContent = (_a = nodeRef.nodeValue) == null ? void 0 : _a.trim();\n if (textContent === \"\") {\n orgLocationNode.remove();\n return;\n }\n }\n const commentBeforeTextNode = doc2.createComment(childId);\n commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`;\n insertBefore(nodeRef.parentNode, commentBeforeTextNode, nodeRef);\n } else if (nodeRef.nodeType === 8 /* CommentNode */) {\n const commentBeforeTextNode = doc2.createComment(childId);\n commentBeforeTextNode.nodeValue = `${COMMENT_NODE_ID}.${childId}`;\n nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef);\n }\n }\n let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`;\n const orgLocationParentNode = orgLocationNode.parentElement;\n if (orgLocationParentNode) {\n if (orgLocationParentNode[\"s-en\"] === \"\") {\n orgLocationNodeId += `.`;\n } else if (orgLocationParentNode[\"s-en\"] === \"c\") {\n orgLocationNodeId += `.c`;\n }\n }\n orgLocationNode.nodeValue = orgLocationNodeId;\n }\n });\n }\n};\nvar parseVNodeAnnotations = (doc2, node, docData, orgLocationNodes) => {\n var _a;\n if (node == null) {\n return;\n }\n if (node[\"s-nr\"] != null) {\n orgLocationNodes.push(node);\n }\n if (node.nodeType === 1 /* ElementNode */) {\n const childNodes = [...Array.from(node.childNodes), ...Array.from(((_a = node.shadowRoot) == null ? void 0 : _a.childNodes) || [])];\n childNodes.forEach((childNode) => {\n const hostRef = getHostRef(childNode);\n if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {\n const cmpData = {\n nodeIds: 0\n };\n insertVNodeAnnotations(doc2, childNode, hostRef.$vnode$, docData, cmpData);\n }\n parseVNodeAnnotations(doc2, childNode, docData, orgLocationNodes);\n });\n }\n};\nvar insertVNodeAnnotations = (doc2, hostElm, vnode, docData, cmpData) => {\n if (vnode != null) {\n const hostId = ++docData.hostIds;\n hostElm.setAttribute(HYDRATE_ID, hostId);\n if (hostElm[\"s-cr\"] != null) {\n hostElm[\"s-cr\"].nodeValue = `${CONTENT_REF_ID}.${hostId}`;\n }\n if (vnode.$children$ != null) {\n const depth = 0;\n vnode.$children$.forEach((vnodeChild, index) => {\n insertChildVNodeAnnotations(doc2, vnodeChild, cmpData, hostId, depth, index);\n });\n }\n if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute(HYDRATE_CHILD_ID)) {\n const parent = hostElm.parentElement;\n if (parent && parent.childNodes) {\n const parentChildNodes = Array.from(parent.childNodes);\n const comment = parentChildNodes.find(\n (node) => node.nodeType === 8 /* CommentNode */ && node[\"s-sr\"]\n );\n if (comment) {\n const index = parentChildNodes.indexOf(hostElm) - 1;\n vnode.$elm$.setAttribute(\n HYDRATE_CHILD_ID,\n `${comment[\"s-host-id\"]}.${comment[\"s-node-id\"]}.0.${index}`\n );\n }\n }\n }\n }\n};\nvar insertChildVNodeAnnotations = (doc2, vnodeChild, cmpData, hostId, depth, index) => {\n const childElm = vnodeChild.$elm$;\n if (childElm == null) {\n return;\n }\n const nodeId = cmpData.nodeIds++;\n const childId = `${hostId}.${nodeId}.${depth}.${index}`;\n childElm[\"s-host-id\"] = hostId;\n childElm[\"s-node-id\"] = nodeId;\n if (childElm.nodeType === 1 /* ElementNode */) {\n childElm.setAttribute(HYDRATE_CHILD_ID, childId);\n if (typeof childElm[\"s-sn\"] === \"string\" && !childElm.getAttribute(\"slot\")) {\n childElm.setAttribute(\"s-sn\", childElm[\"s-sn\"]);\n }\n } else if (childElm.nodeType === 3 /* TextNode */) {\n const parentNode = childElm.parentNode;\n const nodeName = parentNode == null ? void 0 : parentNode.nodeName;\n if (nodeName !== \"STYLE\" && nodeName !== \"SCRIPT\") {\n const textNodeId = `${TEXT_NODE_ID}.${childId}`;\n const commentBeforeTextNode = doc2.createComment(textNodeId);\n insertBefore(parentNode, commentBeforeTextNode, childElm);\n }\n } else if (childElm.nodeType === 8 /* CommentNode */) {\n if (childElm[\"s-sr\"]) {\n const slotName = childElm[\"s-sn\"] || \"\";\n const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`;\n childElm.nodeValue = slotNodeId;\n }\n }\n if (vnodeChild.$children$ != null) {\n const childDepth = depth + 1;\n vnodeChild.$children$.forEach((vnode, index2) => {\n insertChildVNodeAnnotations(doc2, vnode, cmpData, hostId, childDepth, index2);\n });\n }\n};\nexport {\n BUILD29 as BUILD,\n Build,\n Env,\n Fragment,\n H,\n H as HTMLElement,\n Host,\n NAMESPACE2 as NAMESPACE,\n STENCIL_DEV_MODE,\n addHostEventListeners,\n bootstrapLazy,\n cmpModules,\n connectedCallback,\n consoleDevError,\n consoleDevInfo,\n consoleDevWarn,\n consoleError,\n createEvent,\n defineCustomElement,\n deleteHostRef,\n disconnectedCallback,\n doc,\n forceModeUpdate,\n forceUpdate,\n getAssetPath,\n getElement,\n getHostRef,\n getMode,\n getRenderingRef,\n getValue,\n h,\n insertVdomAnnotations,\n isMemberInElement,\n loadModule,\n modeResolutionChain,\n nextTick,\n parsePropertyValue,\n plt,\n postUpdateComponent,\n promiseResolve,\n proxyComponent,\n proxyCustomElement,\n readTask,\n registerHost,\n registerInstance,\n renderVdom,\n setAssetPath,\n setErrorHandler,\n setMode,\n setNonce,\n setPlatformHelpers,\n setPlatformOptions,\n setValue,\n styles,\n supportsConstructableStylesheets,\n supportsListenerOptions,\n supportsShadow,\n win,\n writeTask\n};\n","import { renderVdom } from '@stencil/core/internal/client';\nimport type { VNode } from '@stencil/core';\nimport { ArgsType } from './index.conf';\nimport { JsonDocs, JsonDocsComponent, JsonDocsProp } from '@stencil/core/internal';\n\n/**\n * Render attribute on the given element\n * @param element - targeted to render attribute\n * @param name - of the attribute\n * @param value - of the attribute\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst renderAttribute = (element: HTMLElement, name: string, value: any): void => {\n if ([null, undefined, '', false].includes(value) || ['innerHTML', 'style'].includes(name)) return;\n\n element.setAttribute(name, !['object', 'function'].includes(typeof value) ? value : `/!\\\\ Object props are not rendered in the code example`);\n};\n\n/**\n * Render new element in parent element\n * @param parentNode - HTML element\n * @param tagName - of the new element\n * @param attributes - of the new element\n * @param children - of the new element\n * @param text - of the new element\n */\nconst renderElement = (parentNode: HTMLElement, tagName: VNode['$tag$'], attributes: VNode['$attrs$'], children: VNode[], text: VNode['$text$']): void => {\n // render HTML\n if (tagName && typeof tagName === 'string') {\n const element = document.createElement(tagName);\n Object.keys(attributes || {}).forEach(attr => {\n renderAttribute(element, attr, attributes[attr]);\n });\n\n children?.forEach(child => {\n renderElement(element, child.$tag$, child.$attrs$, child.$children$, child.$text$);\n });\n\n if (attributes?.innerHTML) element.innerHTML = attributes.innerHTML;\n\n parentNode.appendChild(element);\n }\n // render text\n if (text) {\n parentNode.innerHTML = text;\n }\n};\n\n/**\n * Filter default argument on component argument to prevent them to be rendered\n * @param args - all possible args with custom values\n * @param defaultValues - component default args values\n * @returns filtres args\n * @example\n * ```ts\n * import { filterArgs } from '@mgdis/stencil-helpers';\n * const Template = (args: MgBadgeType): HTMLElement => <mg-badge {...filterArgs(args, { variant: variants[0] })}></mg-badge>;\n * ```\n */\nexport const filterArgs = <T>(args: T, defaultValues?: Partial<T>): T => {\n const filteredArgs = {} as { [key: string]: unknown };\n if (typeof args !== 'object') {\n throw new Error(\"filterArgs - args isn't an object.\");\n }\n for (const k in args) {\n if (!k.startsWith('slot')) {\n const arg = args[k];\n // Change camelCase k to kebab-case\n const key = k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n if (!defaultValues || !Object.keys(defaultValues).includes(k) || defaultValues[k] !== arg) {\n filteredArgs[key] = arg;\n }\n }\n }\n return filteredArgs as T;\n};\n\n/**\n * Storybook stencil wrapper. Used to target element with `storybook-root` id and render virtual DOM inside.\n * @param storyFn - storybook render function\n * @param context - storybook context\n * @returns rendered element\n * @example\n * ```ts\n * // .storybook/preview.ts\n * import { stencilWrapper } from '@mgdis/stencil-helpers';\n * export const decorators: Preview['decorators'] = [stencilWrapper];\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const stencilWrapper = (storyFn: (ctx: any) => void, context: ArgsType): Element | undefined => {\n const host = document.getElementById('storybook-root');\n if (host === null) return;\n\n // update local switcher based on context variable\n document.querySelector('[lang]')?.setAttribute('lang', (context.globals as { locale: string })?.locale || 'en');\n\n renderVdom(\n {\n $ancestorComponent$: undefined,\n $flags$: 0,\n $modeName$: undefined,\n $cmpMeta$: {\n $flags$: 0,\n $tagName$: host.tagName,\n },\n $hostElement$: host,\n },\n storyFn(context),\n );\n return host.children[host.children.length - 1];\n};\n\n/**\n * Get story HTML from virtual DOM.\n * Mainly used to render, component code exemple in stories.\n * @param vitualNode - story virtual DOM\n * @returns stringified rendered HTML\n * @example\n * ```ts\n * // .storybook/preview.ts\n * import { getStoryHTML } from '@mgdis/stencil-helpers';\n *\n * export const parameters: Preview['parameters'] = {\n * docs: {\n * extractArgTypes,\n * extractComponentDescription,\n * transformSource: (_, ctx) => getStoryHTML(ctx.originalStoryFn(ctx.args)),\n * },\n * };\n * ```\n */\nexport const getStoryHTML = ({ $tag$, $attrs$, $children$, $text$ }: VNode): string => {\n const host = document.createElement('div');\n\n renderElement(host, $tag$, $attrs$, $children$, $text$);\n\n return host.innerHTML;\n};\n\n/**\n * Retrieve Component Storybook URL from file path\n * @param storybookBaseUrl - Storybook Base URL\n * @param filePath - Component file path\n * @returns Component Storybook URL\n */\nexport const getStorybookUrl = (storybookBaseUrl: string, filePath: string | undefined): string | undefined => {\n if (!filePath) {\n return;\n }\n const split = filePath.split('/');\n return `${storybookBaseUrl}${split.slice(2, split.length - 1).join('-')}--docs`;\n};\n\nexport class StorybookPreview {\n /**\n * JsonDocs\n */\n jsonDoc: JsonDocs;\n\n constructor(jsonDoc: JsonDocs) {\n this.jsonDoc = jsonDoc;\n }\n\n /**\n * Get component data from the jsonDoc\n * @param tagName - tag name we want to get the data from\n * @returns component data\n */\n #getComponentData = (tagName: string): JsonDocsComponent | undefined => {\n return this.jsonDoc.components.find(component => component.tag === tagName);\n };\n\n /**\n * Get the control for the given prop\n * Based on https://storybook.js.org/docs/api/arg-types#controltype\n * @param prop - prop to get control for\n * @returns control type and options if applicable\n */\n #getPropControl = (prop: JsonDocsProp) => {\n // Get types\n const types: (string | undefined)[] = prop.type\n .replace(/\"([^\"]+)\"/g, '$1') // Remove quotes\n .replace(/\\s/g, '') // Remove all whitespace for simplicity\n .replace(/\\(.*?\\)/g, match => match.replace(/\\|/g, ' OR ')) // Replace '|' inside parentheses\n .split('|')\n .map(type => type.trim().replace(/ OR /g, '|')); // Revert ' OR ' back to '|'\n\n // Return control and options\n if (prop.type === 'string') {\n return { control: { type: 'text' } };\n } else if (prop.type === 'number') {\n return { control: { type: 'number' } };\n } else if (prop.type === 'boolean') {\n return { control: { type: 'boolean' } };\n } else if (prop.type.startsWith('{') && prop.type.endsWith('}')) {\n return { control: { type: 'object' } };\n } else if (types.length > 1) {\n // Manage case when multiple types are possible\n if (types.includes('string')) {\n return { control: { type: 'text' } };\n } else if (types.every(type => type?.includes('[]'))) {\n return { control: { type: 'object' } };\n } else {\n // Add the posibility to set undefined\n types.unshift(undefined);\n return { control: { type: 'select' }, options: types };\n }\n } else return { control: { type: 'object' } };\n };\n\n /**\n * Extract component arg types from the component data\n * @param tagName - tag name we want to extract the arg types from\n * @returns component arg types\n */\n extractArgTypes = (tagName: string) => {\n const componentData = this.#getComponentData(tagName);\n\n // Extract props arg types\n const componentPropsArgTypes = componentData?.props.reduce((acc, prop) => {\n // Get Controls\n const { control, options } = this.#getPropControl(prop);\n // Set Component ArgTypes\n return {\n ...acc,\n [prop.name]: {\n name: prop.attr || prop.name,\n description: prop.docs,\n type: { required: prop.required },\n table: {\n category: 'props',\n type: { summary: prop.type },\n defaultValue: { summary: prop.default },\n },\n control,\n options,\n },\n };\n }, {});\n\n // Extract events arg types\n const componentEventsArgTypes = componentData?.events.reduce(\n (acc, event) => ({\n ...acc,\n [event.event]: {\n name: event.event,\n description: event.docs,\n table: {\n category: 'events',\n type: { summary: event.detail },\n },\n },\n }),\n {},\n );\n\n // Extracts Methods arg types\n const componentMethodsArgTypes = componentData?.methods.reduce(\n (acc, method) => ({\n ...acc,\n [method.name]: {\n name: method.name,\n description: method.docs,\n table: {\n category: 'methods',\n type: { summary: method.signature },\n },\n },\n }),\n {},\n );\n\n // Extracts Slots arg types\n const componentSlotsArgTypes = componentData?.slots.reduce(\n (acc, slot) => ({\n ...acc,\n [slot.name]: {\n name: slot.name !== '' ? slot.name : 'default', // default slot are unnamed\n description: slot.docs,\n table: {\n category: 'slots',\n type: { summary: undefined },\n },\n },\n }),\n {},\n );\n\n // Extracts CSS Properties arg types\n const componentCSSPropArgTypes = componentData?.styles.reduce(\n (acc, style) => ({\n ...acc,\n [style.name]: {\n name: style.name,\n description: style.docs,\n table: {\n category: 'custom properties',\n type: { summary: undefined },\n },\n },\n }),\n {},\n );\n\n // Extract component dependencies\n const componentDependencies = componentData?.dependencies.reduce((acc, dependency) => {\n const dependencyData = this.#getComponentData(dependency);\n return {\n ...acc,\n [dependency]: {\n name: dependency,\n description: `<a href=\"./?path=/docs/${getStorybookUrl('', dependencyData?.filePath)}\">View Component Documentation</a>`,\n table: {\n category: 'depends on',\n type: { summary: undefined },\n },\n },\n };\n }, {});\n\n // Extract dependents components\n const componentDependents = componentData?.dependents.reduce((acc, dependent) => {\n const dependentData = this.#getComponentData(dependent);\n return {\n ...acc,\n [dependent]: {\n name: dependent,\n description: `<a href=\"./?path=/docs/${getStorybookUrl('', dependentData?.filePath)}\">View Component Documentation</a>`,\n table: {\n category: 'used by',\n type: { summary: undefined },\n },\n },\n };\n }, {});\n\n return {\n ...componentPropsArgTypes,\n ...componentEventsArgTypes,\n ...componentMethodsArgTypes,\n ...componentSlotsArgTypes,\n ...componentCSSPropArgTypes,\n ...componentDependencies,\n ...componentDependents,\n };\n };\n\n /**\n * Extract component description from the component data\n * @param tagName - tag name we want to extract the description from\n * @returns component description\n */\n extractComponentDescription = (tagName: string) => {\n const componentData = this.#getComponentData(tagName);\n return componentData?.readme || componentData?.docs;\n };\n}\n","import { JsonDocs, JsonDocsComponent, JsonDocsProp } from '@stencil/core/internal';\nimport { getStorybookUrl } from '../storybook';\n\n/**\n * Retrieve Component source URL from file path\n * @param sourcesBaseUrl - Source base URL\n * @param filePath - Component file path\n * @returns Component source URL\n */\nconst getSourcesUrl = (sourcesBaseUrl: string, filePath: string | undefined): string | undefined => {\n if (!filePath) {\n return;\n }\n return `${sourcesBaseUrl}${filePath}`;\n};\n\n/**\n * Get Component element description\n * @param component - Component\n * @returns Component element description\n */\nconst getElementDescription = (component: JsonDocsComponent): string => {\n // Init description\n let description = component.overview ? `${component.overview}\\n\\n` : '';\n // Attributes\n const attributes = component.props.filter(({ attr }) => attr !== undefined);\n if (attributes.length) {\n description += `Attributes:\\n`;\n description += attributes.map(({ attr, docs }) => `- \\`${attr}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Properties\n const properties = component.props.filter(({ attr }) => attr === undefined);\n if (properties.length) {\n description += `Properties:\\n`;\n description += properties.map(({ name, docs }) => `- \\`${name}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Methods\n if (component.methods.length) {\n description += `Methods:\\n`;\n description += component.methods.map(({ name, docs }) => `- \\`${name}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Events\n if (component.events.length) {\n description += `Events:\\n`;\n description += component.events.map(({ event, docs }) => `- \\`${event}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Listeners\n if (component.listeners.length) {\n description += `Listeners:\\n`;\n description += component.listeners.map(({ event }) => `- \\`${event}\\`\\n`).join('');\n description += '\\n';\n }\n // Slots\n if (component.slots.length) {\n description += `Slots:\\n`;\n description += component.slots.map(({ name, docs }) => `- \\`${name}\\`: ${docs}\\n`).join('');\n description += '\\n';\n }\n // Return\n return description;\n};\n\n/**\n * Get Props Description\n * @param prop - Component Property\n * @returns Props Description\n */\nconst getAttributeDescription = (prop: JsonDocsProp): string => {\n return `${prop.docs}\\n\\nType: \\`${prop.type}\\``;\n};\n\n/**\n * Generate Web Types metadata for IntelliJ's IDE\n * @param name - Library name\n * @param version - Library version\n * @param jsonDocs - Stencil JSON doc\n * @param storybookBaseUrl - Storybook Base Url\n * @returns Web Types metadata\n * @example\n * ```ts\n * const webTypesJson = webTypesGenerator('@mgdis/mg-components', '1.0.0', jsonDocs, 'https://storybook.example.com');\n * ```\n */\nexport const webTypesGenerator = (name: string, version: string, jsonDocs: JsonDocs, storybookBaseUrl: string) => ({\n '$schema': 'https://json.schemastore.org/web-types',\n name,\n version,\n 'description-markup': 'markdown',\n 'contributions': {\n html: {\n elements: jsonDocs.components.map(component => {\n const docUrl = getStorybookUrl(storybookBaseUrl, component.filePath);\n return {\n 'name': component.tag,\n 'description': getElementDescription(component),\n 'doc-url': docUrl,\n 'attributes': component.props\n .filter(prop => prop.attr)\n .map(prop => ({\n 'name': prop.attr,\n 'description': getAttributeDescription(prop),\n 'doc-url': docUrl,\n 'value': {\n type: prop.type,\n default: prop.default,\n required: prop.required,\n },\n })),\n 'js': {\n properties: component.props.map(prop => ({\n 'name': prop.name,\n 'description': getAttributeDescription(prop),\n 'doc-url': docUrl,\n 'value': {\n type: prop.type,\n default: prop.default,\n required: prop.required,\n },\n })),\n events: component.events.map(event => ({\n name: event.event,\n description: event.docs,\n })),\n },\n 'css': {\n properties: component.styles.map(style => ({\n name: style.name,\n description: style.docs,\n })),\n },\n };\n }),\n },\n },\n});\n\n/**\n * Create Storybook Reference\n * @param storybookBaseUrl - Storybook Base Url\n * @param filePath - Component file path\n * @returns Storybook Reference\n */\nconst getReferences = (storybookBaseUrl: string, sourceBaseUrl: string, filePath: string | undefined) => {\n return [\n { name: 'Storybook', url: getStorybookUrl(storybookBaseUrl, filePath) },\n { name: 'Sources', url: getSourcesUrl(sourceBaseUrl, filePath) },\n ];\n};\n\n/**\n * Get Property possible values\n * @param prop - Component Property\n * @returns Property possible values\n */\nconst getValues = (prop: JsonDocsProp): unknown[] | undefined => {\n // Only values Array where all objects have a value seems to be usefull\n if (prop.values.some(({ value }) => value === undefined)) {\n return;\n }\n return prop.values.map(({ value }) => ({ name: value }));\n};\n\n/**\n * Generate custom HTML datasets for VS Code\n * @param jsonDocs - Stencil JSON doc\n * @param storybookBaseUrl - Storybook Base Url\n * @returns custom HTML datasets\n * @example\n * ```ts\n * const customDataJson = vsCodeGenerator(jsonDocs, 'https://storybook.example.com', 'https://sources.example.com');\n * ```\n */\nexport const vsCodeGenerator = (jsonDocs: JsonDocs, storybookBaseUrl: string, sourceBaseUrl: string) => ({\n version: 1.1,\n tags: jsonDocs.components.map(component => {\n const references = getReferences(storybookBaseUrl, sourceBaseUrl, component.filePath);\n return {\n name: component.tag,\n description: getElementDescription(component),\n attributes: component.props.map(prop => ({\n name: prop.attr || prop.name,\n description: getAttributeDescription(prop),\n values: getValues(prop),\n references,\n })),\n references,\n };\n }),\n globalAttributes: [],\n valueSets: [],\n});\n\n/**\n * Generate custom CSS datasets for VS Code\n * @param jsonDocs - Stencil JSON doc\n * @returns custom CSS datasets\n * @example\n * ```ts\n * const customDataJson = vsCodeCssGenerator(jsonDocs);\n * ```\n */\nexport const vsCodeCssGenerator = (jsonDocs: JsonDocs) => ({\n version: 1.1,\n properties: jsonDocs.components.flatMap(component =>\n component.styles.map(style => ({\n name: style.name,\n description: style.docs,\n })),\n ),\n});\n","import type { ObjectType } from '../types';\n\n/**\n * Gets the date pattern based on the specified locale.\n * @param locale - the locale to refer to\n * @returns date pattern\n * @example\n * ```ts\n * getLocaleDatePattern('fr') // 'dd/mm/yyyy'\n * ```\n */\nexport const getLocaleDatePattern = (locale: string) => {\n const year = { value: '2023', pattern: 'yyyy' };\n const month = { value: '12', pattern: 'mm' };\n const day = { value: '24', pattern: 'dd' };\n return localeDate([year.value, month.value, day.value].join('-'), locale, { timeZone: 'UTC' })\n .replace(year.value, year.pattern)\n .replace(month.value, month.pattern)\n .replace(day.value, day.pattern);\n};\n\n/**\n * Formats a date object to a string with the pattern 'YYYY-MM-DD'.\n * @param date - date to parse\n * @returns string date with pattern 'YYYY-MM-DD'\n * @example\n * ```ts\n * dateToString(new Date('2023-12-24')) // '2023-12-24'\n * ```\n */\nexport const dateToString = (date: Date): string | undefined => date.toISOString().split('T')[0];\n\n/**\n * Get locale and messages\n * We load the defined locale but for now we only support the first subtag for messages\n * @param element - element we need to get the language\n * @param messages - messages to use\n * @param defaultLocale - default messages locale\n * @returns messages object\n */\nconst getLocaleMessages = (element: HTMLElement, messages: ObjectType, defaultLocale: string): { locale: string; messages: ObjectType } => {\n // Get local\n const closestLangAttribute: HTMLElement | null = element.closest('[lang]');\n const closestLang: string[] = Intl.NumberFormat.supportedLocalesOf(closestLangAttribute?.lang as string);\n const locale = closestLang.length > 0 && typeof closestLang[0] === 'string' ? closestLang[0] : navigator.language || defaultLocale;\n // Only keep first subtag\n const localeSubtag = locale.split('-').shift() as string;\n\n // If messages is empty, return a default object\n if (Object.keys(messages).length === 0) {\n return {\n locale,\n messages: { lang: defaultLocale },\n };\n }\n\n // Return\n return {\n locale,\n messages: (messages[localeSubtag] || messages[defaultLocale] || { lang: defaultLocale }) as ObjectType,\n };\n};\n\n/**\n * Format number to the locale currency\n * @param number - number to format\n * @param locale - locale to apply\n * @param currency - currency to apply\n * @returns formatted currency\n * @example\n * ```ts\n * localeCurrency(1234567890.12, 'fr', 'EUR') // '1 234 567 890,12\\xa0€'\n * ```\n */\nexport const localeCurrency = (number: number, locale: string, currency: string): string => new Intl.NumberFormat(locale, { style: 'currency', currency }).format(number);\n\n/**\n * Format number to locale\n * @param number - number to format\n * @param locale - locale to apply\n * @param decimalLength - decimal length to apply\n * @returns formatted number\n * @example\n * ```ts\n * localeNumber(1234567890.12, 'fr') // 1 234 567 890,12\n * ```\n */\nexport const localeNumber = (number: number, locale: string, decimalLength: number = 0): string =>\n new Intl.NumberFormat(locale, { minimumFractionDigits: decimalLength }).format(decimalLength > 0 ? Number(number?.toFixed(decimalLength)) : number);\n\n/**\n * Format number as percentage based on locale\n * @param number - number to format\n * @param locale - locale to apply\n * @param decimalLength - decimal length to apply\n * @returns formatted percentage\n * @example\n * ```ts\n * localePercent(0.42, 'fr', 2) // '42,00 %'\n * localePercent(0.42, 'en', 2) // '42.00%'\n * ```\n */\nexport const localePercent = (number: number, locale: string, decimalLength: number = 0): string => {\n return new Intl.NumberFormat(locale, {\n style: 'percent',\n minimumFractionDigits: decimalLength,\n maximumFractionDigits: decimalLength,\n }).format(number);\n};\n\n/**\n * Format number with standardized unit based on locale using Intl unit formatting\n * @param number - number to format\n * @param locale - locale to apply\n * @param unit - standardized unit (e.g., 'kilometer', 'kilogram', 'celsius')\n * @param unitDisplay - how to display the unit ('short', 'long', 'narrow')\n * @param decimalLength - decimal length to apply\n * @returns formatted number with localized unit\n * @example\n * ```ts\n * localeUnit(1234567890.12, 'fr', 'kilometer') // '1 234 567 890,12 km'\n * localeUnit(23, 'fr', 'celsius') // '23 °C'\n * localeUnit(10, 'fr', 'kilometer', 0, 'long') // '10 kilomètres'\n * ```\n */\nexport const localeUnit = (\n number: number,\n locale: string,\n unit: Intl.NumberFormatOptions['unit'],\n unitDisplay: Intl.NumberFormatOptions['unitDisplay'] = 'short',\n decimalLength: number = 0,\n): string => {\n return new Intl.NumberFormat(locale, {\n style: 'unit',\n unit,\n unitDisplay,\n minimumFractionDigits: decimalLength,\n maximumFractionDigits: decimalLength,\n }).format(number);\n};\n\n/**\n * Date RegExp, usefull to test if string is a follow the date pattern\n * @example\n * ```ts\n * dateRegExp.test('mystring') // false\n * dateRegExp.test('2020-12-31') // true\n * ```\n */\nexport const dateRegExp = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$/;\n\n/**\n * Locale date format\n * @param date - date to format\n * @param locale - locale to apply\n * @param config - DateTimeFormatOptions object to apply\n * @returns formatted date\n * @example\n * ```ts\n * localeDate('2022-06-02', 'fr') // '02/06/2022'\n * ```\n */\nexport const localeDate = (date: string | undefined, locale: string, config?: Intl.DateTimeFormatOptions): string =>\n typeof date !== 'string' || date === '' || !dateRegExp.test(date) ? '' : new Intl.DateTimeFormat(locale, config).format(new Date(date));\n\n/**\n * Get Intl object\n * @param messages - locales to render in object format. `ex: { en: { porp: \"test\" }, fr: { porp: \"test\" }}`.\n * @param defaultLocale - fallback locale to render. `ex: 'en'`.\n * @returns from the element passed in return function you will get the matching messages object\n * @example\n * ```ts\n * import en from './en/messages.json';\n * import fr from './fr/messages.json';\n * import { defineLocales } from '@mgdis/stencil-helpers';\n *\n * const defaultLocale = 'en';\n * const messages = { en, fr };\n *\n * export const initLocales = defineLocales(messages, defaultLocale);\n * ```\n */\nexport const defineLocales =\n (messages: ObjectType, defaultLocale: 'fr' | 'en' | string) =>\n (element: HTMLElement): { locale: string; messages: ObjectType } =>\n getLocaleMessages(element, messages, defaultLocale);\n","import type { SetupMutationObserverMockParams, setupResizeObserverMockParams } from './unit.conf';\n\n/**\n * Utility function that mocks the `MutationObserver` API. Recommended to execute inside `beforeEach`.\n * @param mutationObserverMock - Parameter that is sent to the `Object.defineProperty`\n * overwrite method. `jest.fn()` mock functions can be passed here if the goal is to not only\n * mock the mutation observer, but its methods.\n * You can manually fire an intersection entry:\n * @param mutationObserverMock - configuration object\n * @returns Mocked MutationObserver\n * @example\n * ```\n * let fireMo;\n * setupMutationObserverMock({\n * observe: function () {\n * fireMo = this.cb;\n * },\n * });\n * ...\n * fireMo([{ type: 'childList', addedNodes: [AMockElemenet, AnotherMockElemenet], target: yourMockElemenet }]);;\n * ```\n */\nexport const setupMutationObserverMock = ({ disconnect, observe, takeRecords }: SetupMutationObserverMockParams): typeof MutationObserver => {\n class MockMutationObserver implements MutationObserver {\n /**\n *\n */\n disconnect: () => void = disconnect;\n /**\n *\n */\n observe: (target: Node, options?: MutationObserverInit) => void = observe;\n /**\n *\n */\n takeRecords: () => MutationRecord[] = takeRecords;\n /**\n *\n */\n cb: MutationCallback;\n constructor(fn: MutationCallback) {\n this.cb = fn;\n }\n }\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'MutationObserver', {\n writable: true,\n configurable: true,\n value: MockMutationObserver,\n });\n });\n\n return MockMutationObserver;\n};\n\n/**\n * Utility function that mocks the `ResizeObserver` API. Recommended to execute inside `beforeEach`.\n * @param resizeObserverMock - Parameter that is sent to the `Object.defineProperty`\n * overwrite method. `jest.fn()` mock functions can be passed here if the goal is to not only\n * mock the resize observer, but its methods.\n * You can manually fire an intersection entry:\n * @param resizeObserverMock - configuration object\n * @returns Mocked ResizeObserver\n * @example\n * ```\n * let fireRo;\n * setupResizeObserverMock({\n * observe: function () {\n * fireRo = this.cb;\n * },\n * });\n * ...\n * fireRo([{\n * borderBoxSize: ResizeObserverSize[],\n * contentBoxSize: ResizeObserverSize[],\n * contentRect: DOMRectReadOnly,\n * devicePixelContentBoxSize: ResizeObserverSize[],\n * target: yourMockElemenet\n * }]);;\n * ```\n */\nexport const setupResizeObserverMock = ({ disconnect, observe }: setupResizeObserverMockParams): typeof ResizeObserver => {\n class MockResizeObserver implements ResizeObserver {\n /**\n *\n */\n disconnect: () => void = disconnect;\n /**\n *\n */\n observe: (target: Element, options?: ResizeObserverOptions) => void = observe;\n /**\n *\n */\n unobserve!: () => void;\n /**\n *\n */\n cb: ResizeObserverCallback;\n constructor(fn: ResizeObserverCallback) {\n this.cb = fn;\n }\n }\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'ResizeObserver', {\n writable: true,\n configurable: true,\n value: MockResizeObserver,\n });\n });\n\n return MockResizeObserver;\n};\n\nclass MockCustomEvent extends Event {\n /**\n *\n */\n detail: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n}\n\n/**\n * Utility function that mocks the `SubmitEvent` API. Recommended to execute inside `beforeEach`.\n * @example\n * ```\n * setupSubmitEventMock();\n * ```\n * @returns custom event mock\n */\nexport const setupSubmitEventMock = (): typeof MockCustomEvent => {\n class SubmitEvent extends MockCustomEvent {}\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'SubmitEvent', {\n writable: true,\n configurable: true,\n value: SubmitEvent,\n });\n });\n\n return SubmitEvent;\n};\n\n/**\n * Utility function that mocks the `requestAnimationFrame` API. Recommended to execute inside `test`.\n * @example\n * ```\n * setUpRequestAnimationFrameMock(jest.runOnlyPendingTimers);\n * ```\n * @param faketimer - recommended to use jest.runOnlyPendingTimers()\n * @returns custom setUpRequestAnimationFrameMock mock\n */\nexport const setUpRequestAnimationFrameMock = (faketimer: () => void): typeof requestAnimationFrame => {\n const requestAnimationFrame = (callback: FrameRequestCallback) => {\n setTimeout(callback, 1);\n faketimer();\n return 0;\n };\n\n [window, global].forEach(element => {\n Object.defineProperty(element, 'requestAnimationFrame', {\n writable: true,\n configurable: true,\n value: requestAnimationFrame,\n });\n });\n\n return requestAnimationFrame;\n};\n"],"names":["createID","prefix","length","randomBytes","hexString","byte","isValideID","newValue","isValidString","ClassList","classlist","__publicField","className","index","allItemsAreString","items","item","isTagName","element","tagNames","focusableElements","getWindows","localWindow","parentWindows","getParentWindows","childWindows","getChildWindows","windows","parentWindow","err","childWindow","value","toString","isValidNumber","cleanString","text","nextTick","callback","BUILD","__defProp","__export","target","all","name","SVG_NS","HTML_NS","isMemberInElement","elm","memberName","XLINK_NS","win","doc","plt","h2","el","eventName","listener","opts","isDef","v","isComplexType","o","result_exports","map","ok","unwrap","unwrapErr","result","fn","val","newVal","updateFallbackSlotVisibility","childNodes","getHostSlotNodes","slotNode","_a","getHostSlotChildNodes","childNode","hostName","slotName","i2","slottedNodes","node","includeSlot","isNodeLocatedInSlot","nodeToRelocate","h","nodeName","vnodeData","children","child","key","simple","lastSimple","vNodeChildren","walk","c","newVNode","vnode","tag","Host","isHost","setAccessor","oldValue","isSvg","flags","initialRender","isProp","ln","classList","oldClasses","parseClassList","newClasses","prop","capture","CAPTURE_EVENT_SUFFIX","CAPTURE_EVENT_REGEX","isComplex","n","xlink","parseClassListRegex","updateElement","oldVnode","newVnode","isSvgMode2","isInitialRender","oldVnodeAttrs","newVnodeAttrs","sortedAttrNames","attrNames","attr","scopeId","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","createElm","oldParentVNode","newParentVNode","childIndex","newVNode2","oldVNode","BUILD19","putBackInOriginalLocation","addRemoveSlotScopedClass","parentElm","recursive","oldSlotChildNodes","insertBefore","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","removeVnodes","nullifyVNodeRefs","updateChildren","oldCh","newCh","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","elmToMove","isSameVnode","patch","leftVNode","rightVNode","oldChildren","newChildren","defaultHolder","relocateNodes","markSlotContentForRelocation","hostContentNodes","j","relocateNodeData","r","relocateNode","vNode","parent","newNode","reference","newParent","oldParent","scopeId2","scopeName","found","renderVdom","hostRef","renderFnResults","isInitialLoad","_b","_c","_d","_e","hostElm","cmpMeta","rootVnode","propName","attribute","relocateData","orgLocationNode","slotRefNode","parentNodeRef","insertBeforeNode","refNode","nextSibling","renderAttribute","renderElement","parentNode","tagName","attributes","filterArgs","args","defaultValues","filteredArgs","k","arg","stencilWrapper","storyFn","context","host","getStoryHTML","$tag$","$attrs$","$children$","$text$","getStorybookUrl","storybookBaseUrl","filePath","split","_getComponentData","_getPropControl","StorybookPreview","jsonDoc","__privateAdd","component","types","match","type","componentData","__privateGet","componentPropsArgTypes","acc","control","options","componentEventsArgTypes","event","componentMethodsArgTypes","method","componentSlotsArgTypes","slot","componentCSSPropArgTypes","style","componentDependencies","dependency","dependencyData","componentDependents","dependent","dependentData","getSourcesUrl","sourcesBaseUrl","getElementDescription","description","docs","properties","getAttributeDescription","webTypesGenerator","version","jsonDocs","docUrl","getReferences","sourceBaseUrl","getValues","vsCodeGenerator","references","vsCodeCssGenerator","getLocaleDatePattern","locale","year","month","day","localeDate","dateToString","date","getLocaleMessages","messages","defaultLocale","closestLangAttribute","closestLang","localeSubtag","localeCurrency","number","currency","localeNumber","decimalLength","localePercent","localeUnit","unit","unitDisplay","dateRegExp","config","defineLocales","setupMutationObserverMock","disconnect","observe","takeRecords","MockMutationObserver","setupResizeObserverMock","MockResizeObserver","MockCustomEvent","setupSubmitEventMock","SubmitEvent","setUpRequestAnimationFrameMock","faketimer","requestAnimationFrame"],"mappings":"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","x_google_ignoreList":[1,2]}
|