@searchcraft/vue-sdk 0.13.1 → 0.13.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../../javascript-sdk/dist/components/p-DO5g2x-l.js","../../javascript-sdk/dist/components/p-BfTCfPZ1.js","../../javascript-sdk/dist/components/p-D0j0UFpV.js","../../javascript-sdk/dist/components/p-BlYgaV0q.js","../../javascript-sdk/dist/components/p-_aHgRsRD.js","../../javascript-sdk/dist/components/p-C1S92_N8.js","../../javascript-sdk/dist/components/searchcraft-ad.js","../../javascript-sdk/dist/components/p-C681KruS.js","../../javascript-sdk/dist/components/searchcraft-button.js","../../javascript-sdk/dist/components/p-DjPZkCLP.js","../../javascript-sdk/dist/components/searchcraft-error-message.js","../../javascript-sdk/dist/components/p-BV4HUriZ.js","../../javascript-sdk/dist/components/searchcraft-facet-list.js","../../javascript-sdk/dist/components/p-i8oXh7db.js","../../javascript-sdk/dist/components/p-BbSxfaD7.js","../../javascript-sdk/dist/components/p-D5p2scT9.js","../../javascript-sdk/dist/components/searchcraft-filter-panel.js","../../javascript-sdk/dist/components/p-L4PwHqQC.js","../../javascript-sdk/dist/components/p-C-wcIch1.js","../../javascript-sdk/dist/components/searchcraft-input-form.js","../../javascript-sdk/dist/components/searchcraft-input-label.js","../../javascript-sdk/dist/components/p-B_415D4A.js","../../javascript-sdk/dist/components/searchcraft-loading.js","../../javascript-sdk/dist/components/searchcraft-pagination.js","../../javascript-sdk/dist/components/searchcraft-popover-button.js","../../javascript-sdk/dist/components/p-C7ZK8CYu.js","../../javascript-sdk/dist/components/searchcraft-popover-footer.js","../../javascript-sdk/dist/components/p-Cju73I1E.js","../../javascript-sdk/dist/components/p-Dr9rPC9v.js","../../javascript-sdk/dist/components/searchcraft-popover-form.js","../../javascript-sdk/dist/components/searchcraft-popover-list-item.js","../../javascript-sdk/dist/components/searchcraft-popover-list-view.js","../../javascript-sdk/dist/components/searchcraft-results-info.js","../../javascript-sdk/dist/components/p-DotXR-Gz.js","../../javascript-sdk/dist/components/searchcraft-search-result.js","../../javascript-sdk/dist/components/searchcraft-search-results.js","../../javascript-sdk/dist/components/p-Dc7S4y3b.js","../../javascript-sdk/dist/components/searchcraft-search-results-per-page.js","../../javascript-sdk/dist/components/searchcraft-select.js","../../javascript-sdk/dist/components/searchcraft-slider.js","../../javascript-sdk/dist/components/searchcraft-summary-box.js","../../javascript-sdk/dist/components/searchcraft-theme.js","../../javascript-sdk/dist/components/searchcraft-toggle-button.js","../../javascript-sdk/dist/components/defineCustomElements.js","../../javascript-sdk/dist/components/index.js","../../../node_modules/@stencil/vue-output-target/dist/runtime.js","../src/stencil-web-components.ts","../src/components/SearchcraftSearchResults.tsx","../src/components/SearchcraftFilterPanel.tsx","../src/components/SearchcraftInputForm.tsx","../src/components/SearchcraftPopoverButton.tsx","../src/components/SearchcraftPopoverForm.tsx","../src/components/SearchcraftResultsInfo.tsx","../src/components/SearchcraftTheme.tsx","../src/components/SearchcraftPagination.tsx","../src/components/SearchcraftSearchResultsPerPage.tsx","../src/components/SearchcraftSummaryBox.tsx","../src/index.ts"],"sourcesContent":["const NAMESPACE = 'searchcraft-javascript-sdk';\nconst BUILD = /* searchcraft-javascript-sdk */ { hydratedSelectorName: \"hydrated\", lazyLoad: false, shadowDom: false, slotRelocation: true, state: true, updatable: true};\n\n/*\n Stencil Client Platform v4.38.3 | 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/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\nvar PrimitiveType = /* @__PURE__ */ ((PrimitiveType2) => {\n PrimitiveType2[\"Undefined\"] = \"undefined\";\n PrimitiveType2[\"Null\"] = \"null\";\n PrimitiveType2[\"String\"] = \"string\";\n PrimitiveType2[\"Number\"] = \"number\";\n PrimitiveType2[\"SpecialNumber\"] = \"number\";\n PrimitiveType2[\"Boolean\"] = \"boolean\";\n PrimitiveType2[\"BigInt\"] = \"bigint\";\n return PrimitiveType2;\n})(PrimitiveType || {});\nvar NonPrimitiveType = /* @__PURE__ */ ((NonPrimitiveType2) => {\n NonPrimitiveType2[\"Array\"] = \"array\";\n NonPrimitiveType2[\"Date\"] = \"date\";\n NonPrimitiveType2[\"Map\"] = \"map\";\n NonPrimitiveType2[\"Object\"] = \"object\";\n NonPrimitiveType2[\"RegularExpression\"] = \"regexp\";\n NonPrimitiveType2[\"Set\"] = \"set\";\n NonPrimitiveType2[\"Channel\"] = \"channel\";\n NonPrimitiveType2[\"Symbol\"] = \"symbol\";\n return NonPrimitiveType2;\n})(NonPrimitiveType || {});\nvar TYPE_CONSTANT = \"type\";\nvar VALUE_CONSTANT = \"value\";\nvar SERIALIZED_PREFIX = \"serialized:\";\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 ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);\n if (ogDescriptor) {\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 }\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\nfunction getPropertyDescriptor(obj, memberName) {\n while (obj) {\n const desc = Object.getOwnPropertyDescriptor(obj, memberName);\n if (desc == null ? void 0 : desc.get) return desc;\n obj = Object.getPrototypeOf(obj);\n }\n return void 0;\n}\n\n// src/client/client-host-ref.ts\nvar getHostRef = (ref) => {\n if (ref.__stencil__getHostRef) {\n return ref.__stencil__getHostRef();\n }\n return void 0;\n};\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map(),\n $serializerValues$: /* @__PURE__ */ new Map()\n };\n {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n const ref = hostRef;\n hostElement.__stencil__getHostRef = () => ref;\n if (cmpMeta.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.state)) {\n reWireGetterSetter(hostElement, hostRef);\n }\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\nvar consoleError = (e, el) => (0, console.error)(e, el);\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 HYDRATE_CHILD_ID = \"c-id\";\nvar win = typeof window !== \"undefined\" ? window : {};\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 supportsShadow = BUILD.shadowDom;\nvar promiseResolve = (v) => Promise.resolve(v);\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\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 flush = () => {\n consume(queueDomReads);\n {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\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;\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// src/utils/regular-expression.ts\nvar escapeRegExpSpecialCharacters = (text) => {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n// src/utils/remote-value.ts\nvar RemoteValue = class _RemoteValue {\n /**\n * Deserializes a LocalValue serialized object back to its original JavaScript representation\n *\n * @param serialized The serialized LocalValue object\n * @returns The original JavaScript value/object\n */\n static fromLocalValue(serialized) {\n const type = serialized[TYPE_CONSTANT];\n const value = VALUE_CONSTANT in serialized ? serialized[VALUE_CONSTANT] : void 0;\n switch (type) {\n case \"string\" /* String */:\n return value;\n case \"boolean\" /* Boolean */:\n return value;\n case \"bigint\" /* BigInt */:\n return BigInt(value);\n case \"undefined\" /* Undefined */:\n return void 0;\n case \"null\" /* Null */:\n return null;\n case \"number\" /* Number */:\n if (value === \"NaN\") return NaN;\n if (value === \"-0\") return -0;\n if (value === \"Infinity\") return Infinity;\n if (value === \"-Infinity\") return -Infinity;\n return value;\n case \"array\" /* Array */:\n return value.map((item) => _RemoteValue.fromLocalValue(item));\n case \"date\" /* Date */:\n return new Date(value);\n case \"map\" /* Map */:\n const map2 = /* @__PURE__ */ new Map();\n for (const [key, val] of value) {\n const deserializedKey = typeof key === \"object\" && key !== null ? _RemoteValue.fromLocalValue(key) : key;\n const deserializedValue = _RemoteValue.fromLocalValue(val);\n map2.set(deserializedKey, deserializedValue);\n }\n return map2;\n case \"object\" /* Object */:\n const obj = {};\n for (const [key, val] of value) {\n obj[key] = _RemoteValue.fromLocalValue(val);\n }\n return obj;\n case \"regexp\" /* RegularExpression */:\n const { pattern, flags } = value;\n return new RegExp(pattern, flags);\n case \"set\" /* Set */:\n const set = /* @__PURE__ */ new Set();\n for (const item of value) {\n set.add(_RemoteValue.fromLocalValue(item));\n }\n return set;\n case \"symbol\" /* Symbol */:\n return Symbol(value);\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n }\n /**\n * Utility method to deserialize multiple LocalValues at once\n *\n * @param serializedValues Array of serialized LocalValue objects\n * @returns Array of deserialized JavaScript values\n */\n static fromLocalValueArray(serializedValues) {\n return serializedValues.map((value) => _RemoteValue.fromLocalValue(value));\n }\n /**\n * Verifies if the given object matches the structure of a serialized LocalValue\n *\n * @param obj Object to verify\n * @returns boolean indicating if the object has LocalValue structure\n */\n static isLocalValueObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return false;\n }\n if (!obj.hasOwnProperty(TYPE_CONSTANT)) {\n return false;\n }\n const type = obj[TYPE_CONSTANT];\n const hasTypeProperty = Object.values({ ...PrimitiveType, ...NonPrimitiveType }).includes(type);\n if (!hasTypeProperty) {\n return false;\n }\n if (type !== \"null\" /* Null */ && type !== \"undefined\" /* Undefined */) {\n return obj.hasOwnProperty(VALUE_CONSTANT);\n }\n return true;\n }\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/utils/serialize.ts\nfunction deserializeProperty(value) {\n if (typeof value !== \"string\" || !value.startsWith(SERIALIZED_PREFIX)) {\n return value;\n }\n return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));\n}\nvar updateFallbackSlotVisibility = (elm) => {\n const childNodes = internalCall(elm, \"childNodes\");\n if (elm.tagName && elm.tagName.includes(\"-\") && elm[\"s-cr\"] && elm.tagName !== \"SLOT-FB\") {\n getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {\n if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === \"SLOT-FB\") {\n if (getSlotChildSiblings(slotNode, getSlotName(slotNode), false).length) {\n slotNode.hidden = true;\n } else {\n slotNode.hidden = false;\n }\n }\n });\n }\n let i2 = 0;\n for (i2 = 0; i2 < childNodes.length; i2++) {\n const childNode = childNodes[i2];\n if (childNode.nodeType === 1 /* ElementNode */ && internalCall(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\"] && (!hostName || childNode[\"s-hn\"] === hostName) && (slotName === void 0)) {\n slottedNodes.push(childNode);\n }\n slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];\n }\n return slottedNodes;\n}\nvar getSlotChildSiblings = (slot, slotName, includeSlot = true) => {\n const childNodes = [];\n if (includeSlot && slot[\"s-sr\"] || !slot[\"s-sr\"]) childNodes.push(slot);\n let node = slot;\n while (node = node.nextSibling) {\n if (getSlotName(node) === slotName && (includeSlot || !node[\"s-sr\"])) 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 if (newChild[\"s-ol\"] && newChild[\"s-ol\"].isConnected) {\n return;\n }\n const slottedNodeLocation = document.createTextNode(\"\");\n slottedNodeLocation[\"s-nr\"] = newChild;\n if (!slotNode[\"s-cr\"] || !slotNode[\"s-cr\"].parentNode) return;\n const parent = slotNode[\"s-cr\"].parentNode;\n const appendMethod = internalCall(parent, \"appendChild\");\n if (typeof position !== \"undefined\") {\n slottedNodeLocation[\"s-oo\"] = position;\n const childNodes = internalCall(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\"] || 0)) 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 } else {\n appendMethod.call(parent, slottedNodeLocation);\n }\n newChild[\"s-ol\"] = slottedNodeLocation;\n newChild[\"s-sh\"] = slotNode[\"s-hn\"];\n};\nvar getSlotName = (node) => typeof node[\"s-sn\"] === \"string\" ? node[\"s-sn\"] : node.nodeType === 1 && node.getAttribute(\"slot\") || void 0;\nfunction patchSlotNode(node) {\n if (node.assignedElements || node.assignedNodes || !node[\"s-sr\"]) return;\n const assignedFactory = (elementsOnly) => (function(opts) {\n const toReturn = [];\n const slotName = this[\"s-sn\"];\n if (opts == null ? void 0 : opts.flatten) {\n console.error(`\n Flattening is not supported for Stencil non-shadow slots.\n You can use \\`.childNodes\\` to nested slot fallback content.\n If you have a particular use case, please open an issue on the Stencil repo.\n `);\n }\n const parent = this[\"s-cr\"].parentElement;\n const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);\n slottedNodes.forEach((n) => {\n if (slotName === getSlotName(n)) {\n toReturn.push(n);\n }\n });\n if (elementsOnly) {\n return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);\n }\n return toReturn;\n }).bind(node);\n node.assignedElements = assignedFactory(true);\n node.assignedNodes = assignedFactory(false);\n}\nfunction internalCall(node, method) {\n if (\"__\" + method in node) {\n const toReturn = node[\"__\" + method];\n if (typeof toReturn !== \"function\") return toReturn;\n return toReturn.bind(node);\n } else {\n if (typeof node[method] !== \"function\") return node[method];\n return node[method].bind(node);\n }\n}\nvar createTime = (fnName, tagName = \"\") => {\n {\n return () => {\n return;\n };\n }\n};\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar getScopeId = (cmp, mode) => \"sc-\" + (cmp.$tagName$);\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 }\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 (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\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 (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 {\n vnode.$key$ = key;\n }\n {\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 {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\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};\n\n// src/runtime/client-hydrate.ts\nvar initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n var _a, _b;\n const endHydrate = createTime(\"hydrateClient\", tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const slottedNodes = [];\n const shadowRootNodes = null;\n const vnode = newVNode(tagName, null);\n vnode.$elm$ = hostElm;\n if (win.document && (!plt.$orgLocNodes$ || !plt.$orgLocNodes$.size)) {\n initializeDocumentHydrate(win.document.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 } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes(\"-\")) && childRenderNode.$tag$ !== \"slot-fb\" && !childRenderNode.$elm$.shadowRoot) {\n const cmpMeta = getHostRef(childRenderNode.$elm$);\n if (cmpMeta) {\n const scopeId3 = getScopeId(\n cmpMeta.$cmpMeta$);\n const styleSheet = win.document.querySelector(`style[sty-id=\"${scopeId3}\"]`);\n if (styleSheet) {\n hostElm.shadowRoot.append(styleSheet.cloneNode(true));\n }\n }\n }\n if (childRenderNode.$tag$ === \"slot\") {\n childRenderNode.$name$ = childRenderNode.$elm$[\"s-sn\"] || childRenderNode.$elm$[\"name\"] || null;\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 (orgLocationNode.parentElement.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 if (orgLocationNode && !orgLocationNode[\"s-id\"]) {\n plt.$orgLocNodes$.delete(orgLocationId);\n }\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 && slottedItem.node.parentElement !== hostEle) {\n hostEle.appendChild(slottedItem.node);\n }\n if (!hostEle.shadowRoot || !shadowRoot) {\n if (!slottedItem.slot[\"s-cr\"]) {\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 }\n addSlotRelocateNode(slottedItem.node, slottedItem.slot, false, slottedItem.node[\"s-oo\"]);\n if (((_b = slottedItem.node.parentElement) == null ? void 0 : _b.shadowRoot) && slottedItem.node[\"getAttribute\"] && slottedItem.node.getAttribute(\"slot\")) {\n slottedItem.node.removeAttribute(\"slot\");\n }\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 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 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 }\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 }\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$ = findCorrespondingNode(node, 3 /* TextNode */);\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 }\n } else if (childNodeType === COMMENT_NODE_ID) {\n childVNode.$elm$ = findCorrespondingNode(node, 8 /* CommentNode */);\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 {\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 } else {\n if (node.nodeType === 3 /* TextNode */ && !node.wholeText.trim() && !node[\"s-nr\"]) {\n node.remove();\n }\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 {\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 patchSlotNode(node);\n if (shouldMove) {\n parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);\n }\n }\n childRenderNodes.push(childVNode);\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 var _a, _b;\n let slottedNode = slotNode.nextSibling;\n slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];\n if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + \".\"))) return;\n do {\n if (slottedNode && ((slottedNode[\"getAttribute\"] && slottedNode.getAttribute(\"slot\") || slottedNode[\"s-sn\"]) === slotName || slotName === \"\" && !slottedNode[\"s-sn\"] && (!slottedNode[\"getAttribute\"] || !slottedNode.getAttribute(\"slot\")) && (slottedNode.nodeType === 8 /* CommentNode */ || slottedNode.nodeType === 3 /* TextNode */))) {\n slottedNode[\"s-sn\"] = slotName;\n slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });\n }\n slottedNode = slottedNode == null ? void 0 : slottedNode.nextSibling;\n } while (slottedNode && !((_b = slottedNode.nodeValue) == null ? void 0 : _b.startsWith(SLOT_NODE_ID + \".\")));\n};\nvar findCorrespondingNode = (node, type) => {\n let sibling = node;\n do {\n sibling = sibling.nextSibling;\n } while (sibling && (sibling.nodeType !== type || !sibling.nodeValue));\n return sibling;\n};\nvar createSupportsRuleRe = (selector) => {\n const safeSelector2 = escapeRegExpSpecialCharacters(selector);\n return new RegExp(\n // First capture group: match any context before the selector that's not inside @supports selector()\n // Using negative lookahead to avoid matching inside @supports selector(...) condition\n `(^|[^@]|@(?!supports\\\\s+selector\\\\s*\\\\([^{]*?${safeSelector2}))(${safeSelector2}\\\\b)`,\n \"g\"\n );\n};\ncreateSupportsRuleRe(\"::slotted\");\ncreateSupportsRuleRe(\":host\");\ncreateSupportsRuleRe(\":host-context\");\nvar parsePropertyValue = (propValue, propType, isFormAssociated) => {\n if (typeof propValue === \"string\" && propValue.startsWith(SERIALIZED_PREFIX)) {\n propValue = deserializeProperty(propValue);\n return propValue;\n }\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n }\n if (propType & 2 /* Number */) {\n return typeof propValue === \"string\" ? parseFloat(propValue) : typeof propValue === \"number\" ? propValue : NaN;\n }\n if (propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\nvar getElement = (ref) => {\n return ref;\n};\n\n// src/runtime/event-emitter.ts\nvar createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n return emitEvent(elm, name, {\n bubbles: true,\n composed: true,\n cancelable: true,\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};\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {\n if (oldValue === newValue) {\n return;\n }\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n if ((elm[\"s-si\"] || elm[\"s-sc\"]) && initialRender) {\n const scopeId2 = elm[\"s-sc\"] || elm[\"s-si\"];\n newClasses.push(scopeId2);\n oldClasses.forEach((c) => {\n if (c.startsWith(scopeId2)) newClasses.push(c);\n });\n newClasses = [...new Set(newClasses)].filter((c) => c);\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 (memberName === \"style\") {\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (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 (prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (memberName === \"key\") ; else if ((!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 {\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 if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex && elm.nodeType === 1 /* ElementNode */) {\n newValue = newValue === true ? \"\" : newValue;\n {\n elm.setAttribute(memberName, newValue);\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 {\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}\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 (!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 (newVNode2.$text$ !== null) {\n elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);\n } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {\n elm = newVNode2.$elm$ = win.document.createTextNode(\"\");\n {\n updateElement(null, newVNode2, isSvgMode);\n }\n } else {\n if (!isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n if (!win.document) {\n throw new Error(\n \"You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.\"\n );\n }\n elm = newVNode2.$elm$ = win.document.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n ) ;\n if (isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n {\n updateElement(null, newVNode2, isSvgMode);\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 {\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 {\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 patchSlotNode(elm);\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {\n {\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n }\n return elm;\n};\nvar putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);\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$ &= -2 /* isTmpDisconnected */;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = parentElm[\"s-cr\"] && parentElm[\"s-cr\"].parentNode || parentElm;\n let childNode;\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, referenceNode(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 if (elm) {\n {\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 ((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 ((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 {\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 (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 {\n insertBefore(\n referenceNode(oldStartVnode.$elm$).parentNode,\n node,\n referenceNode(oldStartVnode.$elm$)\n );\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 (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (leftVNode.$tag$ === \"slot\") {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n if (!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 (text === null) {\n {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n {\n updateElement(oldVNode, newVNode2, isSvgMode, isInitialRender);\n }\n if (oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n if (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 && BUILD.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n } else if (isInitialRender && BUILD.updatable && oldChildren !== null && newChildren === null) {\n newVNode2.$children$ = oldChildren;\n }\n if (isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n } else if ((defaultHolder = elm[\"s-cr\"])) {\n defaultHolder.parentNode.textContent = text;\n } else if (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\"] && (true)) {\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 insertBefore = (parent, newNode, reference) => {\n {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n var _a, _b, _c, _d;\n const hostElm = hostRef.$hostElement$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const isHostElement = isHost(renderFnResults);\n const rootVnode = isHostElement ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\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$ = hostElm;\n useNativeShadowDom = supportsShadow;\n {\n contentRef = hostElm[\"s-cr\"];\n checkSlotFallbackVisibility = false;\n }\n patch(oldVNode, rootVnode, isInitialLoad);\n {\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\"] && win.document) {\n const orgLocationNode = win.document.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 {\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 (!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\"](slotRefNode);\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$ &= -2 /* isTmpDisconnected */;\n relocateNodes.length = 0;\n }\n contentRef = void 0;\n};\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (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 {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n if (isInitialLoad) {\n queueMicrotask(() => {\n dispatch();\n });\n return;\n }\n return writeTask(dispatch) ;\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = 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 maybePromise = safeCall(instance, \"componentWillLoad\", void 0, elm);\n } else {\n maybePromise = safeCall(instance, \"componentWillUpdate\", void 0, elm);\n }\n maybePromise = enqueue(maybePromise, () => safeCall(instance, \"componentWillRender\", void 0, elm));\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 const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n {\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 }\n};\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= -17 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n {\n {\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n safeCall(instance, \"componentDidRender\", void 0, elm);\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n addHydratedFlag(elm);\n }\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n } else {\n safeCall(instance, \"componentDidUpdate\", void 0, elm);\n endPostUpdate();\n }\n {\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$ &= -517;\n }\n};\nvar appDidLoad = (who) => {\n var _a;\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n {\n if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {\n plt.$orgLocNodes$.clear();\n }\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 addHydratedFlag = (elm) => {\n var _a;\n return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : \"hydrated\") ;\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 (!hostRef) {\n return;\n }\n const elm = ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = elm;\n newVal = parsePropertyValue(\n newVal,\n cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if (didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n {\n if (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 ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n if (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 {\n {\n if (Cstr.watchers && !cmpMeta.$watchers$) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n if (Cstr.deserializers && !cmpMeta.$deserializers$) {\n cmpMeta.$deserializers$ = Cstr.deserializers;\n }\n if (Cstr.serializers && !cmpMeta.$serializers$) {\n cmpMeta.$serializers$ = Cstr.serializers;\n }\n }\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || 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 {\n Object.defineProperty(prototype, memberName, {\n get() {\n {\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 (!ref) {\n return;\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 }\n origSetter.apply(this, [\n parsePropertyValue(\n newValue,\n memberFlags)\n ]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n {\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n }\n });\n }\n });\n {\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 const hostRef = getHostRef(this);\n if (this.hasOwnProperty(propName) && BUILD.lazyLoad) ;\n 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 flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {\n const elm = this;\n const instance = 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 propFlags = members.find(([m]) => m === propName);\n if (propFlags && propFlags[1][0] & 4 /* Boolean */) {\n newValue = newValue === null || newValue === \"false\" ? false : true;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\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] & 31 /* HasAttribute */).map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\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 if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n {\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (!hostRef) {\n return;\n }\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n let hostId;\n {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (!hostId) {\n if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {\n setContentReference(elm);\n }\n }\n {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (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 (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && memberName in elm && elm[memberName] !== Object.prototype[memberName]) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef);\n }\n } else {\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback());\n }\n }\n endConnected();\n }\n};\nvar setContentReference = (elm) => {\n if (!win.document) {\n return;\n }\n const contentRefElm = elm[\"s-cr\"] = win.document.createComment(\n \"\"\n );\n contentRefElm[\"s-cn\"] = true;\n insertBefore(elm, contentRefElm, elm.firstChild);\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n getHostRef(elm);\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};\nvar proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1]\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n cmpMeta.$deserializers$ = Cstr.$deserializers$;\n cmpMeta.$serializers$ = Cstr.$serializers$;\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 if (!hostRef) {\n return;\n }\n this.__hasHostListenerAttached = true;\n }\n connectedCallback(this);\n if (originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n },\n __attachShadow() {\n {\n this.shadowRoot = this;\n }\n }\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta);\n};\n\n// src/runtime/fragment.ts\nvar Fragment = (_, children) => children;\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/render.ts\nfunction render(vnode, container) {\n const ref = {\n $hostElement$: container\n };\n renderVdom(ref, vnode);\n}\n\nexport { Fragment as F, H, setNonce as a, setPlatformOptions as b, createEvent as c, getAssetPath as g, h, proxyCustomElement as p, render as r, setAssetPath as s };\n//# sourceMappingURL=p-DO5g2x-l.js.map\n\n//# sourceMappingURL=p-DO5g2x-l.js.map","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar classnames = {exports: {}};\n\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\nvar hasRequiredClassnames;\n\nfunction requireClassnames () {\n\tif (hasRequiredClassnames) return classnames.exports;\n\thasRequiredClassnames = 1;\n\t(function (module) {\n\t\t/* global define */\n\n\t\t(function () {\n\n\t\t\tvar hasOwn = {}.hasOwnProperty;\n\n\t\t\tfunction classNames () {\n\t\t\t\tvar classes = '';\n\n\t\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\t\tvar arg = arguments[i];\n\t\t\t\t\tif (arg) {\n\t\t\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn classes;\n\t\t\t}\n\n\t\t\tfunction parseValue (arg) {\n\t\t\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\t\t\treturn arg;\n\t\t\t\t}\n\n\t\t\t\tif (typeof arg !== 'object') {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\tif (Array.isArray(arg)) {\n\t\t\t\t\treturn classNames.apply(null, arg);\n\t\t\t\t}\n\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\treturn arg.toString();\n\t\t\t\t}\n\n\t\t\t\tvar classes = '';\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn classes;\n\t\t\t}\n\n\t\t\tfunction appendClass (value, newClass) {\n\t\t\t\tif (!newClass) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (value) {\n\t\t\t\t\treturn value + ' ' + newClass;\n\t\t\t\t}\n\t\t\t\n\t\t\t\treturn value + newClass;\n\t\t\t}\n\n\t\t\tif (module.exports) {\n\t\t\t\tclassNames.default = classNames;\n\t\t\t\tmodule.exports = classNames;\n\t\t\t} else {\n\t\t\t\twindow.classNames = classNames;\n\t\t\t}\n\t\t}()); \n\t} (classnames));\n\treturn classnames.exports;\n}\n\nvar classnamesExports = requireClassnames();\nvar classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);\n\nexport { classNames as c };\n//# sourceMappingURL=p-BfTCfPZ1.js.map\n\n//# sourceMappingURL=p-BfTCfPZ1.js.map","/**\n * This is the default instance id for searchcraft core instances.\n * When no id is specified in a component's props, use this one.\n */\nconst DEFAULT_CORE_INSTANCE_ID = 'searchcraft';\n/**\n * CoreInstanceRegistry\n *\n * This class is responsible for managing all of the instances of SearchcraftCore on a page.\n * It provides a means for consuming components to use the instance of SearchcraftCore that\n * they need to use when that instance of core gets added to the Registry.\n */\nclass CoreInstanceRegistry {\n coreInstances = {};\n subscriptions = {};\n /**\n * Adds a SearchcraftCore instance to the Registry.\n *\n * When the instance is added, iterates through the onAvailable callbacks\n * that have been subscribed via useCoreInstance.\n *\n * @param coreInstance The SearchcraftCore instance to add to the registry\n * @param searchcraftId The unique identifier for this SearchcraftCore instance.\n */\n addCoreInstance(coreInstance, searchcraftId) {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n this.coreInstances[id] = coreInstance;\n for (const callback of this.subscriptions[id] || []) {\n callback(coreInstance);\n }\n }\n /**\n * Use the specified instance of SearchcraftCore. When the instance becomes available,\n * the onAvailable callback will be called.\n *\n * @param searchcraftId The SearchcraftCore instance to use.\n * @param onAvailable The callback that gets called when the core instance becomes available.\n */\n useCoreInstance(searchcraftId, onAvailable) {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n // If the core instance already is available, call the onAvailable callback immediately.\n if (this.coreInstances[id]) {\n onAvailable(this.coreInstances[id]);\n return () => { };\n }\n // Add the callback to the collection of callbacks for this searchcraft instance.\n if (!this.subscriptions[id]) {\n this.subscriptions[id] = [];\n }\n this.subscriptions[id].push(onAvailable);\n return () => {\n if (this.subscriptions[id]) {\n this.subscriptions[id] = this.subscriptions[id].filter((cb) => cb !== onAvailable);\n }\n };\n }\n}\nconst registry = new CoreInstanceRegistry();\n\nexport { DEFAULT_CORE_INSTANCE_ID as D, registry as r };\n//# sourceMappingURL=p-D0j0UFpV.js.map\n\n//# sourceMappingURL=p-D0j0UFpV.js.map","/*! @license DOMPurify 3.3.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.0/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n text: 3,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.3.0';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (cfg.ADD_ATTR) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title|textarea)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as p };\n//# sourceMappingURL=p-BlYgaV0q.js.map\n\n//# sourceMappingURL=p-BlYgaV0q.js.map","import { p as purify } from './p-BlYgaV0q.js';\n\n/**\n * This allows you to parse a template string with a function.\n */\nconst html = (strings, ...values) => {\n let result = strings[0];\n for (let i = 0; i < values.length; i++) {\n result +=\n purify.sanitize(values[i] ? String(values[i]) : '') + strings[i + 1];\n }\n return result || '';\n};\n\nexport { html as h };\n//# sourceMappingURL=p-_aHgRsRD.js.map\n\n//# sourceMappingURL=p-_aHgRsRD.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { h as html } from './p-_aHgRsRD.js';\n\nconst urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\n\n/* @ts-self-types=\"./index.d.ts\" */\nlet nanoid = (size = 21) => {\n let id = '';\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)));\n while (size--) {\n id += urlAlphabet[bytes[size] & 63];\n }\n return id\n};\n\nconst SearchcraftPopoverListItemAd = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItemAd extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n adSource = 'Custom';\n adClientResponseItem;\n /**\n * Where the ad is being rendered within the search results div.\n * Lifecycle behavior differs for ads being rendered in different positions,\n * so we need to be able to handle all of those cases.\n */\n renderPosition = 'interstitial';\n searchTerm;\n isSearchInProgress = false;\n searchResultCount = 0;\n get hostElement() { return this; }\n core;\n intersectionObserver;\n storeUnsubscribe;\n cleanupCore;\n adContainerRenderedTimeout;\n isComponentConnected = false;\n timeTaken;\n adContainerId = '';\n /**\n * Handles when an ad container is first rendered.\n * Core emits an ad_container_rendered event and performs ad client side effects\n *\n */\n handleAdRendered() {\n this.adContainerId = nanoid();\n if (this.isComponentConnected && this.searchResultCount > 0) {\n clearTimeout(this.adContainerRenderedTimeout);\n this.adContainerRenderedTimeout = setTimeout(() => {\n this.core?.handleAdContainerRendered({\n adClientResponseItem: this.adClientResponseItem,\n adContainerId: this.adContainerId,\n searchTerm: this.searchTerm || '',\n });\n }, this.core?.config?.customAdConfig?.adContainerRenderedDebounceDelay ||\n 300);\n }\n }\n handleAdViewed() {\n this.core?.handleAdContainerViewed({\n adClientResponseItem: this.adClientResponseItem,\n adContainerId: this.adContainerId,\n searchTerm: this.searchTerm || '',\n });\n }\n /**\n * Things to do when there's a new incoming search request.\n */\n handleNewIncomingSearchRequest(state) {\n const requestProperties = state.searchClientRequestProperties;\n if (requestProperties && typeof requestProperties === 'object') {\n this.searchTerm = requestProperties.searchTerm;\n }\n this.searchResultCount = state.searchClientResponseItems.length;\n this.handleAdRendered();\n this.startIntersectionObserver();\n }\n onCoreAvailable(core) {\n const currentState = core.store.getState();\n this.isComponentConnected = true;\n this.core = currentState.core;\n this.isSearchInProgress = currentState.isSearchInProgress;\n this.searchResultCount = currentState.searchClientResponseItems.length;\n this.timeTaken = currentState.searchResponseTimeTaken;\n const requestProperties = currentState.searchClientRequestProperties;\n if (requestProperties && typeof requestProperties === 'object') {\n this.searchTerm = requestProperties.searchTerm;\n }\n /**\n * Interstial ads have a different lifecycle, where we need handle an incoming search\n * request immediately, because they are rendered alongside the search results.\n */\n if (this.renderPosition === 'interstitial') {\n this.handleNewIncomingSearchRequest(currentState);\n }\n // Subscribes to store changes (for search term).\n this.storeUnsubscribe = core.store.subscribe((state) => {\n if (this.timeTaken !== state.searchResponseTimeTaken) {\n this.handleNewIncomingSearchRequest(state);\n }\n this.timeTaken = state.searchResponseTimeTaken;\n this.isSearchInProgress = state.isSearchInProgress;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n startIntersectionObserver() {\n this.intersectionObserver?.disconnect();\n /**\n * Handles when an ad container is viewable within the document,\n * Core emits an ad_container_viewed event and performs ad client side effects\n */\n if (this.hostElement) {\n this.intersectionObserver = new IntersectionObserver(([entry]) => {\n if (entry?.isIntersecting && this.searchResultCount > 0) {\n this.handleAdViewed();\n }\n }, { threshold: 0 });\n this.intersectionObserver.observe(this.hostElement);\n }\n }\n disconnectedCallback() {\n this.storeUnsubscribe?.();\n this.cleanupCore?.();\n this.intersectionObserver?.disconnect();\n this.isComponentConnected = false;\n clearTimeout(this.adContainerRenderedTimeout);\n }\n renderADMAd() {\n const item = this.adClientResponseItem;\n if (!item.admAd) {\n return;\n }\n let templateHtml = '<p>Ad Marketplace Ad Placeholder</p>';\n if (this.core?.config?.admAdConfig?.template) {\n templateHtml = this.core?.config?.admAdConfig.template(item.admAd, {\n html,\n });\n }\n return (h(\"div\", { class: 'searchcraft-ad searchcraft-adm-ad', \"data-searchcraft-ad-container-id\": this.adContainerId, id: `searchcraft-adm-ad-${this.adContainerId}`, innerHTML: templateHtml }));\n }\n renderCustomAd() {\n const templateRenderFunction = this.core?.config?.customAdConfig?.template;\n const containerId = `searchcraft-custom-ad-${this.adContainerId}`;\n let templateHtml = '<p>Custom Ad Placeholder</p>';\n if (templateRenderFunction) {\n templateHtml = templateRenderFunction({\n searchTerm: this.searchTerm || '',\n adContainerId: this.adContainerId,\n }, { html });\n }\n return (h(\"div\", { class: 'searchcraft-ad searchcraft-custom-ad', id: containerId, \"data-searchcraft-ad-container-id\": this.adContainerId, innerHTML: templateHtml }));\n }\n renderNativoAd() {\n const nativoClassName = this.core?.config.nativoConfig?.adClassName || 'ntv-item';\n return (h(\"div\", { id: `searchcraft-native-ad-${this.adContainerId}`, class: classNames('searchcraft-ad', nativoClassName), \"data-searchcraft-ad-container-id\": this.adContainerId }));\n }\n render() {\n // Don't render ads if no search results\n if (this.searchResultCount === 0) {\n return;\n }\n switch (this.adSource) {\n case 'adMarketplace':\n return this.renderADMAd();\n case 'Custom':\n return this.renderCustomAd();\n case 'Nativo':\n return this.renderNativoAd();\n default:\n return;\n }\n }\n}, [768, \"searchcraft-ad\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"adSource\": [1, \"ad-source\"],\n \"adClientResponseItem\": [16],\n \"renderPosition\": [1, \"render-position\"],\n \"searchTerm\": [32],\n \"isSearchInProgress\": [32],\n \"searchResultCount\": [32],\n \"adContainerId\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-ad\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListItemAd);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItemAd as S, defineCustomElement as d, nanoid as n };\n//# sourceMappingURL=p-C1S92_N8.js.map\n\n//# sourceMappingURL=p-C1S92_N8.js.map","import { S as SearchcraftPopoverListItemAd, d as defineCustomElement$1 } from './p-C1S92_N8.js';\n\nconst SearchcraftAd = SearchcraftPopoverListItemAd;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftAd, defineCustomElement };\n//# sourceMappingURL=searchcraft-ad.js.map\n\n//# sourceMappingURL=searchcraft-ad.js.map","import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-DO5g2x-l.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\n\nconst SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButton extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.buttonClick = createEvent(this, \"buttonClick\");\n }\n /**\n * Controls the visual representation of the button.\n */\n hierarchy = 'primary';\n /**\n * Whether the button is disabled.\n */\n disabled = false;\n /**\n * The icon element.\n */\n icon;\n /**\n * Should the button only display an icon.\n */\n iconOnly = false;\n /**\n * The position of the icon.\n */\n iconPosition = 'left';\n /**\n * The label for the button.\n */\n label = 'Search';\n /**\n * The type of the button.\n */\n type = 'button';\n /**\n * The event fired when the button is clicked.\n */\n buttonClick;\n handleButtonClick = () => {\n this.buttonClick.emit();\n };\n render() {\n return (h(\"button\", { key: 'e54b4566e0286265bc0c8b6bb4e9ef26108575da', \"aria-label\": this.label, class: classNames('searchcraft-button', {\n 'searchcraft-button-primary': this.hierarchy === 'primary',\n 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',\n 'searchcraft-button-disabled': this.disabled,\n }), disabled: this.disabled, onClick: this.handleButtonClick, type: this.type }, this.iconOnly ? (this.icon) : (h(Fragment, null, this.iconPosition === 'left' && this.icon, h(\"span\", null, this.label), this.iconPosition === 'right' && this.icon))));\n }\n}, [768, \"searchcraft-button\", {\n \"hierarchy\": [1],\n \"disabled\": [4],\n \"icon\": [16],\n \"iconOnly\": [4, \"icon-only\"],\n \"iconPosition\": [1, \"icon-position\"],\n \"label\": [1],\n \"type\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftButton as S, defineCustomElement as d };\n//# sourceMappingURL=p-C681KruS.js.map\n\n//# sourceMappingURL=p-C681KruS.js.map","import { S as SearchcraftButton$1, d as defineCustomElement$1 } from './p-C681KruS.js';\n\nconst SearchcraftButton = SearchcraftButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftButton, defineCustomElement };\n//# sourceMappingURL=searchcraft-button.js.map\n\n//# sourceMappingURL=searchcraft-button.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\n\nconst SearchcraftErrorMessage = /*@__PURE__*/ proxyCustomElement(class SearchcraftErrorMessage extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n render() {\n return (h(\"div\", { key: 'd42f7abf8dfb2620622b8012d868d32f04b2f354', class: 'searchcraft-error-message' }, h(\"slot\", { key: '75a7811576ea8afe80a7ae739f5cf2d411f976df' }, \"Search term is required.\")));\n }\n}, [260, \"searchcraft-error-message\"]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-error-message\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftErrorMessage);\n }\n break;\n } });\n}\n\nexport { SearchcraftErrorMessage as S, defineCustomElement as d };\n//# sourceMappingURL=p-DjPZkCLP.js.map\n\n//# sourceMappingURL=p-DjPZkCLP.js.map","import { S as SearchcraftErrorMessage$1, d as defineCustomElement$1 } from './p-DjPZkCLP.js';\n\nconst SearchcraftErrorMessage = SearchcraftErrorMessage$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftErrorMessage, defineCustomElement };\n//# sourceMappingURL=searchcraft-error-message.js.map\n\n//# sourceMappingURL=searchcraft-error-message.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport './p-BlYgaV0q.js';\n\n/**\n * Helper function for getting a Node (FacetWithChildrenObject)\n * at a given path. Traverses the node tree to get the node.\n */\nconst getFacetTreeNodeAtPath = (tree, nodePaths) => {\n let cursor = tree;\n for (const nodePath of nodePaths) {\n cursor = cursor?.children[nodePath];\n }\n return cursor;\n};\n/**\n * Helper function to perform a deep merge.\n * Used for merging two branches of a facet tree together.\n */\nconst deepMergeWithSpread = (obj1, obj2) => {\n const result = { ...obj1 };\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>\n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n }\n else {\n result[key] = obj2[key];\n }\n }\n }\n return result;\n};\n/**\n * Given an array of facet paths, removes parent facet paths so that only the\n * Leaf facets are sent with the search request.\n */\nfunction removeSubstringMatches(arr) {\n return arr.filter((entry, index, array) => !array.some((otherEntry, otherIndex) => otherIndex !== index && otherEntry.includes(entry)));\n}\n/**\n * Merges a current facet tree with an incoming facet tree.\n *\n * At each branch, the incoming facet tree's facets override current facet tree\n *\n * @param currentTree\n * @param incomingTree\n */\nconst mergeFacetTrees = (currentTree, incomingTree) => {\n const mergedTree = structuredClone(currentTree);\n const merge = (currentBranch, nodePath) => {\n const mergedBranch = structuredClone(currentBranch);\n const incomingBranch = getFacetTreeNodeAtPath(incomingTree, nodePath);\n if (!incomingBranch) {\n return mergedBranch;\n }\n for (const nodeName of Object.keys(currentBranch.children)) {\n if (incomingBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = {\n ...deepMergeWithSpread(currentBranch.children[nodeName], incomingBranch.children[nodeName]),\n count: mergedBranch.children[nodeName]?.count || 0,\n };\n }\n else if (mergedBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = merge(mergedBranch.children[nodeName], [...nodePath, nodeName]);\n }\n }\n return mergedBranch;\n };\n return merge(mergedTree, []);\n};\n/**\n * A function that converts a FacetWithChidrenArray to a complete FacetTree object.\n *\n * It uses the `path` of each Facet to build the tree.\n *\n * @param facetWithChildArray\n * @param exclude - Optional array of facet values or paths to exclude from the tree.\n * - Values starting with \"/\" are treated as full paths and exclude the path and all children\n * (e.g., \"/news\" excludes \"/news\", \"/news/local\", \"/news/national\", etc.)\n * - Values without \"/\" are treated as segment names (e.g., \"local\" excludes all paths containing \"local\")\n */\nconst facetWithChildrenArrayToCompleteFacetTree = (rootArray, exclude) => {\n // 1) Start with an empty tree at root \"/\"\n const tree = {\n path: '/',\n count: 0,\n children: {},\n };\n // 2) Recursively collect all nodes except the implicit \"/\" itself\n const allFacets = [];\n const collect = (node) => {\n if (node.path !== '/') {\n allFacets.push({ path: node.path, count: node.count });\n }\n if (node.children) {\n for (const child of node.children) {\n collect(child);\n }\n }\n };\n collect(rootArray);\n // 3) Insert each flat node into our tree, creating missing ancestors\n for (const { path, count } of allFacets) {\n const segments = path.split('/').filter(Boolean); // \"/sports/outdoors\" -> [\"sports\",\"outdoors\"]\n // Skip this facet if it matches any excluded value\n if (exclude && exclude.length > 0) {\n let shouldExclude = false;\n for (const excludeValue of exclude) {\n if (excludeValue.startsWith('/')) {\n // Full path exclusion: prefix match (excludes the path and all children)\n if (path === excludeValue || path.startsWith(`${excludeValue}/`)) {\n shouldExclude = true;\n break;\n }\n }\n else {\n // Segment exclusion: check if any segment matches\n if (segments.includes(excludeValue)) {\n shouldExclude = true;\n break;\n }\n }\n }\n if (shouldExclude) {\n continue;\n }\n }\n let cursor = tree; // start at the root\n for (const segment of segments) {\n // Build the full path of this level\n const prefixPath = cursor.path === '/' ? `/${segment}` : `${cursor.path}/${segment}`;\n // If this segment doesn't exist yet, create it\n if (!cursor.children[segment]) {\n cursor.children[segment] = {\n path: prefixPath,\n count: count,\n children: {},\n };\n }\n // Descend to the next level deeper\n cursor = cursor.children[segment];\n }\n // 4) Now `cursor` is the node matching `path` assign its real count\n cursor.count = count;\n }\n return tree;\n};\n\nconst SearchcraftFacetList = /*@__PURE__*/ proxyCustomElement(class SearchcraftFacetList extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.facetSelectionUpdated = createEvent(this, \"facetSelectionUpdated\");\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The name of the field where facets are applied.\n */\n fieldName = '';\n /**\n * Array of facet values to exclude from rendering.\n */\n exclude;\n /**\n * Emitted when the facets are updated.\n */\n facetSelectionUpdated;\n /**\n * The currently selected facet paths.\n */\n selectedPaths = {};\n /**\n * A Tree representing all of the facets collected from search responses.\n */\n facetTreeCollectedFromSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n /**\n * A Tree representing the facet paths that are selected, but were not included\n * in any search response.\n */\n facetTreeFromFacetPathsNotInSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n /**\n * The facet tree that ultimately gets rendered.\n * This is a mergin of the facetTreeCollectedFromSearchResponse and the facetTreeFromFacetPathsNotInSearchResponse tree\n */\n renderedFacetTree = {\n path: '/',\n count: 0,\n children: {},\n };\n // Internal vars used to track when to perform various facet actions.\n lastTimeTaken;\n lastSearchTerm;\n lastSearchMode;\n lastSortType;\n lastRangeValues;\n lastFacetValues;\n unsubscribe;\n cleanupCore;\n get areAnyFacetPathsSelected() {\n return Object.keys(this.selectedPaths).some((key) => this.selectedPaths[key]);\n }\n handleIncomingSearchResponse(state, actionType) {\n // Look at the incoming facet root from the search response, and convert it to a FacetTree\n const incomingFacetRoot = state.searchResponseFacetPrime?.find((facet) => this.fieldName === Object.keys(facet)[0]);\n const incomingFacetsWithChildrenArray = incomingFacetRoot?.[this.fieldName];\n const incomingFacetTree = facetWithChildrenArrayToCompleteFacetTree({\n path: '/',\n count: 0,\n children: incomingFacetsWithChildrenArray || [],\n }, this.exclude);\n // Determine what action to take to accumulate items into the `facetTreeCollectedFromSearchResponse`.\n // This facet tree gets accumulated in different ways depending on what action type occured.\n switch (actionType) {\n case 'SEARCH_TERM_EMPTY':\n this.facetTreeCollectedFromSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n break;\n case 'NEW_SEARCH_TERM':\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n break;\n case 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE':\n case 'EXACT_MATCH_UPDATE':\n case 'RANGE_VALUE_UPDATE': {\n if (state.supplementalFacetPrime) {\n const supplementalFacetRoot = state.supplementalFacetPrime?.find((facet) => this.fieldName === Object.keys(facet)[0]);\n const supplementalFacetsWithChildrenArray = supplementalFacetRoot?.[this.fieldName];\n const supplementalFacetTree = facetWithChildrenArrayToCompleteFacetTree({\n path: '/',\n count: 0,\n children: supplementalFacetsWithChildrenArray || [],\n }, this.exclude);\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(supplementalFacetTree, incomingFacetTree);\n }\n else {\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n }\n break;\n }\n case 'FACET_UPDATE':\n case 'SORT_ORDER_UPDATE':\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(this.facetTreeCollectedFromSearchResponse, incomingFacetTree);\n break;\n default:\n return;\n }\n // Determine if there are any selected facet paths not in the current tree.\n // If there are, we add them to \"facetTreeFromFacetPathsNotInSearchResponse\"\n this.facetTreeFromFacetPathsNotInSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n const collectedFacetArray = {\n path: '/',\n count: 0,\n children: [],\n };\n for (const pathName of Object.keys(this.selectedPaths).filter((path) => this.selectedPaths[path])) {\n const nodePaths = pathName.startsWith('/')\n ? pathName.substring(1).split('/')\n : pathName.split('/');\n const wasFoundInFacetTree = !!getFacetTreeNodeAtPath(this.facetTreeCollectedFromSearchResponse, nodePaths);\n const pathKeyName = nodePaths.at(-1);\n if (!wasFoundInFacetTree && pathKeyName) {\n collectedFacetArray.children?.push({\n children: [],\n count: 0,\n path: pathName,\n });\n }\n }\n this.facetTreeFromFacetPathsNotInSearchResponse =\n facetWithChildrenArrayToCompleteFacetTree(collectedFacetArray, this.exclude);\n // Merges facetTreeCollectedFromSearchResponse with selectedFacetPathsNotInCurrentFacetTree.\n // This results in a single, final facet tree that gets rendered in as Checkboxes\n this.renderedFacetTree = deepMergeWithSpread(this.facetTreeFromFacetPathsNotInSearchResponse, this.facetTreeCollectedFromSearchResponse);\n }\n handleStateUpdate(_state) {\n const state = { ..._state };\n // Determine what action to take based on the current State\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof state.searchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n if (state.searchTerm.trim() === '' && !isInitialQuery) {\n this.handleIncomingSearchResponse(state, 'SEARCH_TERM_EMPTY');\n this.lastSearchTerm = '';\n }\n else if (this.lastTimeTaken !== state.searchResponseTimeTaken &&\n state.searchClientRequestProperties) {\n // Handle both object and string requestProperties (string is used for initialQuery)\n if (typeof state.searchClientRequestProperties === 'object') {\n const requestProperties = state.searchClientRequestProperties;\n let actionType = 'UNKNOWN';\n if (this.lastSearchTerm !== requestProperties.searchTerm) {\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n }\n else {\n actionType = 'NEW_SEARCH_TERM';\n }\n }\n else if (this.lastRangeValues !==\n JSON.stringify(requestProperties.rangeValueForIndexFields)) {\n actionType = 'RANGE_VALUE_UPDATE';\n }\n else if (this.lastFacetValues !==\n JSON.stringify(requestProperties.facetPathsForIndexFields)) {\n actionType = 'FACET_UPDATE';\n }\n else if (this.lastSortType !== requestProperties.order_by) {\n actionType = 'SORT_ORDER_UPDATE';\n }\n else if (this.lastSearchMode !== requestProperties.mode) {\n actionType = 'EXACT_MATCH_UPDATE';\n }\n this.lastRangeValues = JSON.stringify(requestProperties.rangeValueForIndexFields);\n this.lastFacetValues = JSON.stringify(requestProperties.facetPathsForIndexFields);\n this.lastSortType = requestProperties.order_by;\n this.lastSearchMode = requestProperties.mode;\n this.lastSearchTerm = requestProperties.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n }\n else if (typeof state.searchClientRequestProperties === 'string') {\n // Handle initialQuery case where requestProperties is a string\n // For initialQuery, searchTerm will be empty but we still want to show facets\n let actionType = 'NEW_SEARCH_TERM';\n // Parse the request to get facet and range filters from the query array\n const requestObj = JSON.parse(state.searchClientRequestProperties);\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n // Extract filter queries (those with occur: 'must')\n const filterQueries = queryArray.filter((q) => q.occur === 'must');\n const currentFilters = JSON.stringify(filterQueries);\n // Determine the action type based on what changed\n if (this.lastFacetValues !== undefined &&\n this.lastFacetValues !== currentFilters) {\n // Filters have changed (not initial load)\n actionType = 'FACET_UPDATE';\n }\n else if (state.searchTerm.trim() === '' &&\n this.lastSearchTerm === '') {\n // Initial load or no changes with empty search term\n actionType = 'NEW_SEARCH_TERM';\n }\n else if (this.lastSearchTerm !== state.searchTerm) {\n // User has typed a new search term after initialQuery\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n }\n else {\n actionType = 'NEW_SEARCH_TERM';\n }\n }\n this.lastFacetValues = currentFilters;\n this.lastSearchTerm = state.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n }\n }\n }\n onCoreAvailable(core) {\n this.handleStateUpdate(core.store.getState());\n this.unsubscribe = core.store.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleCheckboxChange(path) {\n const isCheckboxChecked = !this.selectedPaths[path];\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n }\n else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter((testPath) => !testPath.includes(path));\n this.selectedPaths = updatedPaths.reduce((acc, str) => {\n acc[str] = true;\n return acc;\n }, {});\n }\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter((path) => this.selectedPaths[path]);\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n this.facetSelectionUpdated?.emit({ paths: pathsWithParentPathsRemoved });\n }\n formatFacetName = (name) => {\n const label = name.replace(/^\\//, '');\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())}`;\n };\n renderFacet(keyName, facet) {\n let isChildSelected = false;\n for (const path of Object.keys(this.selectedPaths)) {\n if (this.selectedPaths[path] &&\n path.startsWith(facet.path) &&\n path.length > facet.path.length) {\n isChildSelected = true;\n }\n }\n const isSelected = Object.keys(this.selectedPaths).includes(facet.path);\n const shouldRenderChildren = (Object.keys(facet.children).length > 0 &&\n (isSelected || isChildSelected)) ||\n keyName === '@@root';\n return (h(\"div\", { class: 'searchcraft-facet-list-item' }, keyName !== '@@root' && (h(\"label\", { class: 'searchcraft-facet-list-checkbox-label' }, h(\"div\", { class: 'searchcraft-facet-list-checkbox-input-wrapper' }, h(\"input\", { class: 'searchcraft-facet-list-checkbox-input', checked: this.selectedPaths[facet.path], onChange: (_event) => {\n this.handleCheckboxChange(facet.path);\n }, type: 'checkbox' }), isChildSelected ? (h(\"div\", { class: 'searchcraft-facet-list-checkbox-input-dash-icon' }, h(\"svg\", { viewBox: '0 0 14 3', fill: 'none' }, h(\"title\", null, \"Checkbox dash\"), h(\"line\", { x1: '1.5', y1: '1.5', x2: '12.5', y2: '1.5', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round' })))) : (h(\"div\", { class: 'searchcraft-facet-list-checkbox-input-check-icon' }, h(\"svg\", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, h(\"title\", null, \"Checkbox check\"), h(\"path\", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))))), h(\"span\", null, this.formatFacetName(keyName), \" (\", facet.count, \")\"))), shouldRenderChildren && (h(\"div\", { class: 'searchcraft-facet-list', style: {\n paddingLeft: keyName !== '@@root' ? '24px' : '0px',\n paddingTop: keyName !== '@@root' ? '6px' : '0px',\n } }, Object.keys(facet.children).map((key) => {\n if (facet.children[key]) {\n return this.renderFacet(key, facet.children[key]);\n }\n })))));\n }\n render() {\n if (!this.fieldName) {\n return;\n }\n if (Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length === 0) {\n return;\n }\n if (Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length > 0) {\n return (h(\"p\", { class: 'searchcraft-facet-list-message' }, \"No facets are available for this search query.\"));\n }\n return (h(\"div\", { class: 'searchcraft-facet-list' }, this.renderFacet('@@root', this.renderedFacetTree)));\n }\n}, [768, \"searchcraft-facet-list\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"fieldName\": [1, \"field-name\"],\n \"exclude\": [16],\n \"selectedPaths\": [32],\n \"facetTreeCollectedFromSearchResponse\": [32],\n \"renderedFacetTree\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-facet-list\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-facet-list\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftFacetList);\n }\n break;\n } });\n}\n\nexport { SearchcraftFacetList as S, defineCustomElement as d };\n//# sourceMappingURL=p-BV4HUriZ.js.map\n\n//# sourceMappingURL=p-BV4HUriZ.js.map","import { S as SearchcraftFacetList$1, d as defineCustomElement$1 } from './p-BV4HUriZ.js';\n\nconst SearchcraftFacetList = SearchcraftFacetList$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftFacetList, defineCustomElement };\n//# sourceMappingURL=searchcraft-facet-list.js.map\n\n//# sourceMappingURL=searchcraft-facet-list.js.map","/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nfunction getDocumentValueFromSearchResultMapping(document, mapping) {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n valueFound = formatRelativeDate(valueFound, fieldNameDetails.dateFormatLocale, fieldNameDetails.dateFormatOptions);\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(fieldNameDetails.numberFormatLocale, fieldNameDetails.numberFormatOptions).format(valueFound * (fieldNameDetails.numberScale || 1));\n break;\n }\n }\n }\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\n/**\n * Format a number with commas as thousands separators.\n *\n * @param number - The number to be formatted.\n * @returns {string} - The formatted number as a string.\n */\nfunction formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n/**\n * Format a date or date string. The string is formatted relative to today's date\n * (e.g. 2 days ago) until the date range is greater than a month.\n *\n * @param dateInput - The date to be formatted.\n * @param locale - The language used for formatting the date.\n * @param options - The non-default options used for formatting the date.\n * @returns {string} - The formatted date as a string.\n */\nfunction formatRelativeDate(dateInput, locale = 'en-US', options = {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n}) {\n const date = new Date(dateInput);\n const now = new Date();\n const diffMillis = now.getTime() - date.getTime();\n const oneMonthInMillis = 30 * 24 * 60 * 60 * 1000; // Approx. 1 month in ms\n if (diffMillis < oneMonthInMillis) {\n const diffSeconds = Math.trunc(diffMillis / 1000);\n const diffMinutes = Math.trunc(diffSeconds / 60);\n const diffHours = Math.trunc(diffMinutes / 60);\n const diffDays = Math.trunc(diffHours / 24);\n const relativeTimeFormat = new Intl.RelativeTimeFormat(locale, options);\n if (diffDays >= 1) {\n return relativeTimeFormat.format(-diffDays, 'day');\n }\n if (diffHours >= 1) {\n return relativeTimeFormat.format(-diffHours, 'hour');\n }\n if (diffMinutes >= 1) {\n return relativeTimeFormat.format(-diffMinutes, 'minute');\n }\n return relativeTimeFormat.format(0, 'second');\n }\n return new Intl.DateTimeFormat(locale, options).format(date);\n}\n/**\n * Given a date, returns the timestamp (in ms) for the start of the specified unit.\n *\n * @param unit - The unit to calculate the start of ('year' | 'month' | 'day' | 'hour').\n * @param timestamp - The date to evaluate.\n * @param offset - The number of units to offset by.\n * @returns The timestamp (in ms) for the start of the specified unit.\n */\nfunction getStartOf(timestamp, unit, offset = 0) {\n const d = new Date(timestamp);\n switch (unit) {\n case 'year':\n return new Date(d.getFullYear() + offset, 0, 1, 0, 0, 0, 0).getTime();\n case 'month':\n return new Date(d.getFullYear(), d.getMonth() + offset, 1, 0, 0, 0, 0).getTime();\n case 'day':\n return new Date(d.getFullYear(), d.getMonth(), d.getDate() + offset, 0, 0, 0, 0).getTime();\n case 'hour':\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() + offset, 0, 0, 0).getTime();\n default:\n throw new Error(`Unsupported unit: ${unit}`);\n }\n}\n/**\n * Given a start and end date, returns the difference in the number of the specified units.\n *\n * @param units - The unit to measure ('year' | 'month' | 'day' | 'hour').\n * @param startDate - The start date.\n * @param endDate - The end date.\n * @returns The difference in the given unit.\n */\nfunction getDifferenceInUnits(unit, startTime, endTime) {\n const start = new Date(startTime);\n const end = new Date(endTime);\n switch (unit) {\n case 'year':\n return Math.abs(end.getFullYear() - start.getFullYear());\n case 'month':\n return Math.abs(end.getFullYear() * 12 +\n end.getMonth() -\n (start.getFullYear() * 12 + start.getMonth()));\n case 'day':\n return Math.floor(Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));\n case 'hour':\n return Math.floor(Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60));\n default:\n throw new Error(`Unsupported unit: ${unit}`);\n }\n}\n/**\n * Returns the ordinal representation of a day of the month.\n */\nconst getOrdinal = (n) => {\n if (n >= 11 && n <= 13)\n return `${n}th`;\n switch (n % 10) {\n case 1:\n return `${n}st`;\n case 2:\n return `${n}nd`;\n case 3:\n return `${n}rd`;\n default:\n return `${n}th`;\n }\n};\n/**\n * Given a granularity level, returns a formatted, human-readable, date string.\n *\n * @param granularity - The granularity level to display. The granularity level dictates how the date is formatted.\n * @param date - The date to format.\n *\n * @returns A formatted string representing the date at the specified granularity.\n *\n * @example\n * getFormattedDateString('year', new Date('2023-01-01')) // \"2023\"\n * getFormattedDateString('month', new Date('2023-01-01')) // \"Jan 2023\"\n * getFormattedDateString('day', new Date('2023-01-31')) // \"Jan 31st, 2023\"\n * getFormattedDateString('hour', new Date('2023-01-31T12:00:00')) // \"Jan 31st, 12:00 PM\"\n */\nfunction getFormattedDateString(granularity, date) {\n const monthFormatter = new Intl.DateTimeFormat('en-US', { month: 'short' });\n switch (granularity) {\n case 'year':\n return date.getFullYear().toString();\n case 'month':\n return `${monthFormatter.format(date)} ${date.getFullYear()}`;\n case 'day':\n return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${date.getFullYear()}`;\n case 'hour': {\n const timeFormatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${timeFormatter.format(date)}`;\n }\n default:\n throw new Error(`Unsupported granularity: ${granularity}`);\n }\n}\n\nexport { getDifferenceInUnits as a, getStartOf as b, getFormattedDateString as c, formatNumberWithCommas as f, getDocumentValueFromSearchResultMapping as g };\n//# sourceMappingURL=p-i8oXh7db.js.map\n\n//# sourceMappingURL=p-i8oXh7db.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';\nimport { a as getDifferenceInUnits, b as getStartOf, c as getFormattedDateString } from './p-i8oXh7db.js';\nimport './p-BlYgaV0q.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\n\n/**\n * Creates a throttled version of the given function that only invokes\n * the original function at most once every specified number of milliseconds.\n *\n * The logic is written in a way that the last invocation is always called, after the\n * throttle cooldown period has ended.\n *\n * @template Arguments - The argument types for the function to throttle\n * @param callback - The function to throttle\n * @param delayInMilliseconds - The number of milliseconds to wait before allowing the next invocation\n * @returns A throttled version of the original function\n */\nfunction throttle(callback, delayInMilliseconds) {\n let isThrottleOnCooldown = false;\n let trailingCallArgs = null;\n const invokeAction = (args) => {\n callback(...args);\n isThrottleOnCooldown = true;\n setTimeout(() => {\n isThrottleOnCooldown = false;\n if (trailingCallArgs) {\n const nextArgs = trailingCallArgs;\n trailingCallArgs = null;\n invokeAction(nextArgs);\n }\n }, delayInMilliseconds);\n };\n return (...args) => {\n if (!isThrottleOnCooldown) {\n invokeAction(args);\n }\n else {\n trailingCallArgs = args;\n }\n };\n}\n\nconst SearchcraftSlider = /*@__PURE__*/ proxyCustomElement(class SearchcraftSlider extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.rangeChanged = createEvent(this, \"rangeChanged\");\n }\n /**\n * The maximum value allowed.\n */\n max = 100;\n /**\n * The minimum value allowed.\n */\n min = 0;\n /**\n * The step amount for the slider inputs.\n */\n step = 1;\n /** The type of data the sliders are using. */\n dataType = 'number';\n /** The date granularity to use. Used to format date labels. */\n dateGranularity;\n lowerBound = 0;\n upperBound = 1;\n endValue = 0;\n startValue = 0;\n lastFocusedHandle = 'max';\n throttledEmitUpdate = () => { };\n /**\n * When the range has changed.\n * */\n rangeChanged;\n connectedCallback() {\n switch (this.dataType) {\n case 'number':\n this.startValue = this.min;\n this.endValue = this.max;\n this.lowerBound = this.min;\n this.upperBound = this.max;\n break;\n case 'date': {\n this.startValue = 0;\n this.endValue = getDifferenceInUnits(this.dateGranularity || 'year', this.min, this.max);\n this.lowerBound = 0;\n this.upperBound = this.endValue;\n break;\n }\n }\n this.throttledEmitUpdate = throttle(this.emitUpdate, 120);\n }\n emitUpdate = async () => {\n switch (this.dataType) {\n case 'number':\n this.rangeChanged?.emit({\n startValue: this.startValue,\n endValue: this.endValue,\n });\n break;\n case 'date': {\n const granularity = this.dateGranularity || 'year';\n const startTimestamp = getStartOf(this.min, granularity, this.lowerBound + this.startValue);\n const endTimestamp = getStartOf(this.min, granularity, this.lowerBound + this.endValue + 1);\n this.rangeChanged?.emit({\n startValue: startTimestamp,\n endValue: endTimestamp,\n });\n break;\n }\n }\n };\n handleStartValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'min';\n if (value <= this.endValue) {\n this.startValue = value;\n this.throttledEmitUpdate();\n }\n else {\n this.startValue = this.endValue;\n inputElement.value = `${this.endValue}`;\n }\n };\n handleEndValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'max';\n if (value >= this.startValue) {\n this.endValue = value;\n this.throttledEmitUpdate();\n }\n else {\n this.endValue = this.startValue;\n inputElement.value = `${this.startValue}`;\n }\n };\n getLabel = (value) => {\n switch (this.dataType) {\n case 'number':\n return `${this.startValue}`;\n case 'date': {\n const granularity = this.dateGranularity || 'year';\n const dateOffset = this.lowerBound + value;\n const timestamp = getStartOf(this.min, granularity, dateOffset);\n return getFormattedDateString(this.dateGranularity || 'year', new Date(timestamp));\n }\n }\n };\n render() {\n const startPercent = ((this.startValue - this.lowerBound) /\n (this.upperBound - this.lowerBound)) *\n 100;\n const endPercent = ((this.endValue - this.lowerBound) /\n (this.upperBound - this.lowerBound)) *\n 100;\n const startLabel = this.getLabel(this.startValue);\n const endLabel = this.getLabel(this.endValue);\n return (h(\"div\", { key: 'd5035ed8bcbf95c0ef5b2a7a9ef471e318a9dc30', class: 'searchcraft-slider' }, h(\"div\", { key: 'f5f7bc48703250b4f6c75a1f07c921233bd957d5', class: 'searchcraft-slider-range' }, h(\"div\", { key: 'fc2ec9f9786986a7306ffe43b54c47c35a1f086a', class: 'searchcraft-slider-active-range', style: {\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n } }), h(\"input\", { key: '716316b5ce507c40db5b7bd408f47b3bece88494', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), h(\"input\", { key: 'e2ad0d586136185faccb50d6d7fb113a64ddac42', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), h(\"div\", { key: '7e9ab9fa9563cac6a1dfdd11910e04084ae5348d', class: 'searchcraft-slider-label' }, h(\"span\", { key: '0909279f460c4be84c1088c5981a5f5299e8e2a0', class: 'searchcraft-slider-start-label' }, startLabel), h(\"span\", { key: '4b610a68f97fcbc0aa1eda428dfa1e53b00efe43', class: 'searchcraft-slider-end-label' }, endLabel))));\n }\n}, [768, \"searchcraft-slider\", {\n \"max\": [2],\n \"min\": [2],\n \"step\": [2],\n \"dataType\": [1, \"data-type\"],\n \"dateGranularity\": [1, \"date-granularity\"],\n \"lowerBound\": [32],\n \"upperBound\": [32],\n \"endValue\": [32],\n \"startValue\": [32],\n \"lastFocusedHandle\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-slider\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-slider\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSlider);\n }\n break;\n } });\n}\n\nexport { SearchcraftSlider as S, defineCustomElement as d };\n//# sourceMappingURL=p-BbSxfaD7.js.map\n\n//# sourceMappingURL=p-BbSxfaD7.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\n\nconst SearchcraftToggleButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftToggleButton extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.toggleUpdated = createEvent(this, \"toggleUpdated\");\n }\n /**\n * The label.\n */\n label = 'Toggle';\n /**\n * The secondary label displayed below the main label.\n */\n subLabel;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * When the toggle element is changed.\n */\n toggleUpdated;\n isActive = false;\n lastSearchTerm;\n unsubscribe;\n cleanupCore;\n handleToggle = async () => {\n this.isActive = !this.isActive;\n this.toggleUpdated?.emit(this.isActive);\n };\n onCoreAvailable(core) {\n /** When the query changes, sets toggle button state back to inactive. */\n this.unsubscribe = core.store.subscribe((state) => {\n if (state.searchTerm !== this.lastSearchTerm &&\n state.searchTerm.trim().length === 0) {\n this.isActive = false;\n }\n this.lastSearchTerm = state.searchTerm;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n return (h(\"div\", { key: '7dad6f4e4422a62f6403724ff16fe25e042ae2ac', class: classNames('searchcraft-toggle-button', {\n 'searchcraft-toggle-button-active': this.isActive,\n }) }, h(\"div\", { key: '2faa2ee1eb5cb78dc39f523415f2be96bc23fed1' }, h(\"p\", { key: '29ea63c281b8f1ae041ba75a149ce1b60e936662', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (h(\"p\", { key: 'e51efaae5ca79eede71852e6dec8eff4575139fe', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), h(\"button\", { key: 'd590da981692db162df9b8086ba2444d6a56ef9d', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, h(\"div\", { key: '5be6ee1dd7dc58bd67fff18923569caee37b4936', class: 'searchcraft-toggle-button-handle' }))));\n }\n}, [768, \"searchcraft-toggle-button\", {\n \"label\": [1],\n \"subLabel\": [1, \"sub-label\"],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"isActive\": [32],\n \"lastSearchTerm\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-toggle-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftToggleButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftToggleButton as S, defineCustomElement as d };\n//# sourceMappingURL=p-D5p2scT9.js.map\n\n//# sourceMappingURL=p-D5p2scT9.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { d as defineCustomElement$4 } from './p-BV4HUriZ.js';\nimport { d as defineCustomElement$3 } from './p-BbSxfaD7.js';\nimport { d as defineCustomElement$2 } from './p-D5p2scT9.js';\n\nconst SearchcraftFilterPanel$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftFilterPanel extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The items to filter.\n */\n items = [];\n /**\n * The breakpoint (in pixels) below which the filter panel will be hidden.\n * Defaults to 768px (--sc-breakpoint-md).\n */\n responsiveBreakpoint = 768;\n /**\n * Controls whether the filter panel automatically hides/shows based on window size.\n * - 'auto': Automatically hide/show based on window width\n * - 'manual': User controls visibility manually\n */\n responsiveBehavior = 'auto';\n lastSearchTerm;\n isFilterPanelVisible = true;\n get hostElement() { return this; }\n core;\n unsubscribe;\n cleanupCore;\n resizeObserver;\n manuallyToggled = false; // Track if user manually toggled visibility\n toggleClickHandler;\n onCoreAvailable(core) {\n this.core = core;\n this.setInitialDateRanges();\n // Initialize visibility based on current window size if in auto mode\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n this.unsubscribe = core.store.subscribe((state, prevState) => {\n this.lastSearchTerm = state.searchTerm || '';\n // Check if visibility was manually changed (not by auto-resize)\n if (prevState.isFilterPanelVisible !== state.isFilterPanelVisible) {\n const windowWidth = window.innerWidth;\n const autoVisibility = windowWidth >= (this.responsiveBreakpoint || 768);\n // If the new state differs from what auto mode would set, it was manual\n if (state.isFilterPanelVisible !== autoVisibility) {\n this.manuallyToggled = true;\n }\n // Update toggle element attributes when visibility changes\n this.updateToggleElementAttributes(state.isFilterPanelVisible);\n }\n this.isFilterPanelVisible = state.isFilterPanelVisible;\n });\n }\n componentDidLoad() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n // Set up resize observer if in auto mode\n if (this.responsiveBehavior === 'auto' && typeof window !== 'undefined') {\n this.setupResizeObserver();\n }\n // Set up click handlers for elements with data-toggle-filter-panel attribute\n this.setupToggleClickHandlers();\n // Set initial toggle element state immediately\n // Use setTimeout to ensure this runs after the store is initialized\n setTimeout(() => {\n if (this.core) {\n const currentVisibility = this.core.store.getState().isFilterPanelVisible;\n this.updateToggleElementAttributes(currentVisibility);\n }\n }, 0);\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n this.resizeObserver?.disconnect();\n // Clean up window resize listener if it was used as fallback\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.handleWindowResize);\n }\n // Clean up toggle click handlers\n this.cleanupToggleClickHandlers();\n }\n /**\n * Sets up a ResizeObserver to watch for window size changes\n */\n setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback to window resize event if ResizeObserver is not available\n window.addEventListener('resize', this.handleWindowResize);\n return;\n }\n this.resizeObserver = new ResizeObserver(() => {\n this.handleWindowResize();\n });\n // Observe the document body for size changes\n this.resizeObserver.observe(document.body);\n }\n /**\n * Handles window resize events\n */\n handleWindowResize = () => {\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n };\n /**\n * Updates filter panel visibility based on current window width\n */\n updateVisibilityBasedOnWindowSize() {\n if (typeof window === 'undefined')\n return;\n // Don't auto-hide/show if user manually toggled it\n if (this.manuallyToggled)\n return;\n const windowWidth = window.innerWidth;\n const shouldBeVisible = windowWidth >= (this.responsiveBreakpoint || 768);\n if (this.core && this.isFilterPanelVisible !== shouldBeVisible) {\n this.core.store.getState().setFilterPanelVisibility(shouldBeVisible);\n }\n }\n /**\n * Sets up click handlers for elements with data-toggle-filter-panel attribute\n */\n setupToggleClickHandlers() {\n if (typeof document === 'undefined')\n return;\n this.toggleClickHandler = (event) => {\n // Only allow toggle on mobile (below breakpoint)\n const windowWidth = window.innerWidth;\n if (windowWidth >= (this.responsiveBreakpoint || 768)) {\n return; // Don't toggle on desktop\n }\n event.preventDefault();\n if (this.core) {\n const currentVisibility = this.core.store.getState().isFilterPanelVisible;\n this.core.store.getState().setFilterPanelVisibility(!currentVisibility);\n }\n };\n // Find all elements with the data attribute\n const toggleElements = document.querySelectorAll('[data-toggle-filter-panel]');\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.addEventListener('click', this.toggleClickHandler);\n }\n });\n }\n /**\n * Updates data attributes on toggle elements to reflect panel visibility state\n */\n updateToggleElementAttributes(isVisible) {\n if (typeof document === 'undefined')\n return;\n const toggleElements = document.querySelectorAll('[data-toggle-filter-panel]');\n toggleElements.forEach((element) => {\n if (isVisible) {\n element.removeAttribute('data-filter-panel-collapsed');\n element.setAttribute('data-filter-panel-expanded', '');\n }\n else {\n element.removeAttribute('data-filter-panel-expanded');\n element.setAttribute('data-filter-panel-collapsed', '');\n }\n });\n }\n /**\n * Cleans up click handlers for toggle elements\n */\n cleanupToggleClickHandlers() {\n if (typeof document === 'undefined' || !this.toggleClickHandler)\n return;\n const toggleElements = document.querySelectorAll('[data-toggle-filter-panel]');\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.removeEventListener('click', this.toggleClickHandler);\n }\n });\n }\n /**\n * Sets the initial min/max date range values for search queries based on the filter items provided.\n */\n setInitialDateRanges() {\n for (const item of this.items) {\n if (item.type === 'dateRange') {\n const dateItem = item;\n const startingMinDate = dateItem.options.minDate;\n const startingMaxDate = dateItem.options.maxDate || new Date();\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: dateItem.fieldName,\n value: `${dateItem.fieldName}:[${startingMinDate.toISOString()} TO ${startingMaxDate.toISOString()}]`,\n });\n }\n }\n }\n handleDateRangeChanged(item, min, max) {\n const start = new Date(min);\n const end = new Date(max);\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: item.fieldName,\n value: `${item.fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,\n });\n this.core?.store.getState()?.search();\n }\n handleNumericRangeChanged(fieldName, min, max) {\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${min} TO ${max}]`,\n });\n this.core?.store.getState()?.search();\n }\n handleFacetSelectionUpdated(fieldName, paths) {\n if (paths.length > 0) {\n this.core?.store.getState()?.addFacetPathsForIndexField({\n fieldName,\n value: `${fieldName}: IN [${paths.join(' ')}]`,\n });\n }\n else {\n this.core?.store.getState()?.removeFacetPathsForIndexField(fieldName);\n }\n this.core?.store.getState()?.search();\n }\n handleExactMatchToggleUpdated(isActive) {\n this.core?.store.getState()?.setSearchMode(isActive ? 'exact' : 'fuzzy');\n this.core?.store.getState()?.search();\n }\n handleMostRecentToggleUpdated(fieldName, isActive) {\n if (isActive) {\n this.core?.store.getState()?.setSortOrder({\n orderByField: fieldName,\n sortType: 'desc',\n });\n }\n else {\n this.core?.store.getState()?.setSortOrder({\n orderByField: null,\n sortType: null,\n });\n }\n this.core?.store.getState()?.search();\n }\n /**\n * Iterate through `items` and render them based on `type`\n */\n render() {\n // Don't render if not visible\n if (!this.isFilterPanelVisible) {\n return null;\n }\n return (h(\"div\", { class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {\n switch (filterItem.type) {\n case 'dateRange': {\n const item = filterItem;\n const maxDate = item.options.maxDate || new Date();\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: item.options.minDate.getTime(), max: maxDate.getTime(), dataType: 'date', step: 1, dateGranularity: item.options.granularity, onRangeChanged: (event) => {\n this.handleDateRangeChanged(item, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'numericRange': {\n const item = filterItem;\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: item.options.min, max: item.options.max, step: item.options.granularity, onRangeChanged: (event) => {\n this.handleNumericRangeChanged(item.fieldName, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'facets': {\n const item = filterItem;\n // return \"filters-list\"\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-facet-list\", { fieldName: item.fieldName, exclude: item.options.exclude, onFacetSelectionUpdated: (event) => {\n this.handleFacetSelectionUpdated(item.fieldName, event.detail.paths);\n } })));\n }\n case 'exactMatchToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleExactMatchToggleUpdated(event.detail);\n } }));\n }\n case 'mostRecentToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleMostRecentToggleUpdated(item.fieldName, event.detail);\n } }));\n }\n }\n })));\n }\n}, [768, \"searchcraft-filter-panel\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"items\": [16],\n \"responsiveBreakpoint\": [2, \"responsive-breakpoint\"],\n \"responsiveBehavior\": [1, \"responsive-behavior\"],\n \"lastSearchTerm\": [32],\n \"isFilterPanelVisible\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-filter-panel\", \"searchcraft-facet-list\", \"searchcraft-slider\", \"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-filter-panel\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftFilterPanel$1);\n }\n break;\n case \"searchcraft-facet-list\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-slider\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-toggle-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftFilterPanel = SearchcraftFilterPanel$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftFilterPanel, defineCustomElement };\n//# sourceMappingURL=searchcraft-filter-panel.js.map\n\n//# sourceMappingURL=searchcraft-filter-panel.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\n\nconst SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The classname applied to the label element.\n */\n inputLabelClassName = '';\n label = '';\n render() {\n return (h(\"label\", { key: '1008f9beb320aaa94026604b283eb65a96023265', class: classNames('searchcraft-input-label', this.inputLabelClassName), htmlFor: 'searchcraft-input-id' }, this.label));\n }\n}, [768, \"searchcraft-input-label\", {\n \"inputLabelClassName\": [1, \"input-label-class-name\"],\n \"label\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftInputLabel);\n }\n break;\n } });\n}\n\nexport { SearchcraftInputLabel as S, defineCustomElement as d };\n//# sourceMappingURL=p-L4PwHqQC.js.map\n\n//# sourceMappingURL=p-L4PwHqQC.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { d as defineCustomElement$3 } from './p-C681KruS.js';\nimport { d as defineCustomElement$2 } from './p-DjPZkCLP.js';\nimport { d as defineCustomElement$1 } from './p-L4PwHqQC.js';\n\nconst SearchcraftInputForm = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputForm extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.inputFocus = createEvent(this, \"inputFocus\");\n this.inputBlur = createEvent(this, \"inputBlur\");\n this.inputInit = createEvent(this, \"inputInit\");\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * Whether or not to automatically submit the search term when the input changes.\n */\n autoSearch = true;\n /**\n * Where to place the search button.\n */\n buttonPlacement = 'none';\n /**\n * The label for the submit button.\n */\n buttonLabel;\n /**\n * The label rendered above the input.\n */\n inputLabel;\n /**\n * The input element's placeholder value.\n */\n placeholderValue = 'Enter Search';\n /**\n * The placeholder's render behavior.\n * 'hide-on-focus' - Hide the placeholder text immediately when the input form gains focus.\n * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it.\n */\n placeholderBehavior;\n /**\n * The value to display in the input field.\n */\n value;\n /**\n * When the input becomes focused.\n */\n inputFocus;\n /**\n * When the input becomes unfocused.\n */\n inputBlur;\n /**\n * Event emitted when input initializes.\n */\n inputInit;\n inputValue = '';\n searchTerm = '';\n error = false;\n core;\n unsubscribe;\n cleanupCore;\n init() {\n if (this.core) {\n // Initialize inputValue from prop if provided\n if (this.value !== undefined && this.value.trim().length > 0) {\n this.inputValue = this.value;\n this.core.store.getState().setSearchTerm(this.value);\n // Trigger search if autoSearch is enabled\n if (this.autoSearch) {\n this.core.store.getState().search();\n }\n }\n this.inputInit?.emit();\n }\n }\n onCoreChange() {\n this.init();\n }\n onValueChange(newValue) {\n if (newValue !== undefined && newValue !== this.inputValue) {\n this.inputValue = newValue;\n this.core?.store.getState().setSearchTerm(newValue);\n // Trigger search if autoSearch is enabled and value is not empty\n if (this.autoSearch && newValue.trim().length > 0) {\n this.core?.store.getState().search();\n }\n }\n }\n onCoreAvailable(core) {\n this.core = core;\n this.init();\n this.unsubscribe = core.store.subscribe((state) => {\n this.searchTerm = state.searchTerm;\n // Only update inputValue from store if value prop is not set\n // OR if the store was cleared (empty string)\n if (this.value === undefined || state.searchTerm === '') {\n this.inputValue = state.searchTerm;\n }\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleInput = (event) => {\n const input = event.target;\n this.inputValue = input.value;\n this.core?.store.getState().setSearchTerm(input.value);\n if (!this.autoSearch) {\n return;\n }\n this.performSearch();\n };\n performSearch = async () => {\n this.error = false;\n try {\n await this.core?.store.getState().search();\n }\n catch (error) {\n this.error = true;\n }\n };\n handleClearInput = () => {\n // Clear the input value even if controlled by prop\n this.inputValue = '';\n this.core?.store.getState().resetSearchValues();\n this.error = false;\n };\n handleFormSubmit = async (event) => {\n event.preventDefault();\n await this.performSearch();\n };\n render() {\n const isShowingClearButton = this.inputValue.length > 0;\n const inputGridClassNames = classNames('searchcraft-input-form-grid', {\n 'searchcraft-input-form-grid-button-left': this.buttonPlacement === 'left',\n 'searchcraft-input-form-grid-button-right': this.buttonPlacement === 'right',\n 'searchcraft-input-form-grid-button-none': this.buttonPlacement === 'none',\n });\n const shouldHaveVerticalGap = this.inputLabel || this.error;\n const inputGridStyles = {\n gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',\n };\n return (h(\"form\", { key: '8ba91615394f95c0d5bd26a3006d3e8b454f047e', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, h(\"div\", { key: 'd9025a1c041e3132280b22e5a1b039df0196cea5', class: inputGridClassNames, style: inputGridStyles }, h(\"div\", { key: 'a8c3a80a0ccb718f974902fb1d163d5c3ee6194a', class: 'searchcraft-input-form-button' }, h(\"searchcraft-button\", { key: 'a12ff9a8cdb9a4ce3c3fd54b1c2ae084edd37069', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (h(\"div\", { key: '866e7162c402524eaca864bb6e950a244245dc48', class: 'searchcraft-input-form-label' }, h(\"searchcraft-input-label\", { key: 'c57217cd5924c827df08e22a728067e3bfc63a26', label: this.inputLabel }))), this.error && (h(\"div\", { key: '4a54728bf366db50de39470cf31860a6307dafea', class: 'searchcraft-input-form-error-message' }, h(\"searchcraft-error-message\", { key: '5fa5b5f5677350338d15c8e6614b0d9f584141b0' }, \"Something went wrong.\"))), h(\"div\", { key: '67be766103a3bca11cff6f83a2a6dea7c6c6f106', class: 'searchcraft-input-form-input-wrapper' }, h(\"input\", { key: '931609a4e8fc55d688077ec6cb04f2bb9b86b5fe', autoComplete: 'off', class: classNames('searchcraft-input-form-input', {\n 'searchcraft-placeholder-hide-on-focus': this.placeholderBehavior === 'hide-on-focus',\n }), onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {\n this.handleInput(event);\n }, placeholder: this.placeholderValue, type: 'text', value: this.inputValue }), h(\"div\", { key: '7feb32348b7faec4104137a142ba8150149498a5', class: 'searchcraft-input-form-input-icon' }, h(\"svg\", { key: '8b9abd236d4896b8dbd5c14e06019c116e3675be', class: 'searchcraft-input-form-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'searchcraft-title' }, h(\"title\", { key: '4d3b6724f6532920f5531d2e15b28a06f0770688' }, \"Search icon\"), h(\"path\", { key: '65a46a1916c1f020c9bebffd42aa016b59177376', d: 'M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), isShowingClearButton && (h(\"button\", { key: '65278eb0ab49415dce79c874adf90adcb5854db5', type: 'button', class: 'searchcraft-input-form-clear-button', onClick: this.handleClearInput }, h(\"svg\", { key: '0016263afe32250ace58cc4b98ff6106d7d9d4a0', class: 'searchcraft-input-form-clear-icon', viewBox: '0 0 22 22', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'icon-title' }, h(\"title\", { key: '9b40d806455ab9c19c0cddb4c76101debdb0266c' }, \"Clear icon\"), h(\"path\", { key: '2954ee1496d6736d6e780755034902c76adb81e9', d: 'M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))))))));\n }\n static get watchers() { return {\n \"core\": [\"onCoreChange\"],\n \"value\": [\"onValueChange\"]\n }; }\n}, [768, \"searchcraft-input-form\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"autoSearch\": [4, \"auto-search\"],\n \"buttonPlacement\": [1, \"button-placement\"],\n \"buttonLabel\": [1, \"button-label\"],\n \"inputLabel\": [1, \"input-label\"],\n \"placeholderValue\": [1, \"placeholder-value\"],\n \"placeholderBehavior\": [1, \"placeholder-behavior\"],\n \"value\": [1],\n \"inputValue\": [32],\n \"searchTerm\": [32],\n \"error\": [32]\n }, undefined, {\n \"core\": [\"onCoreChange\"],\n \"value\": [\"onValueChange\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-form\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-form\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftInputForm);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftInputForm as S, defineCustomElement as d };\n//# sourceMappingURL=p-C-wcIch1.js.map\n\n//# sourceMappingURL=p-C-wcIch1.js.map","import { S as SearchcraftInputForm$1, d as defineCustomElement$1 } from './p-C-wcIch1.js';\n\nconst SearchcraftInputForm = SearchcraftInputForm$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftInputForm, defineCustomElement };\n//# sourceMappingURL=searchcraft-input-form.js.map\n\n//# sourceMappingURL=searchcraft-input-form.js.map","import { S as SearchcraftInputLabel$1, d as defineCustomElement$1 } from './p-L4PwHqQC.js';\n\nconst SearchcraftInputLabel = SearchcraftInputLabel$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftInputLabel, defineCustomElement };\n//# sourceMappingURL=searchcraft-input-label.js.map\n\n//# sourceMappingURL=searchcraft-input-label.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\n\nconst SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n label;\n render() {\n return (h(\"div\", { key: '5bda164202246eeb2e56bb6a25bede9931898e7a', class: 'searchcraft-loading' }, h(\"div\", { key: 'e33a5abc6686f9983c718a2532aa2d46902d98a2', class: 'searchcraft-loading-bars' }, h(\"div\", { key: '85ff7af527b8f419c9bfd6e84331dd68772e6fdd', class: 'searchcraft-loading-bar-1' }), h(\"div\", { key: '1485d17e9262dbec6d2e5976a63149878137821c', class: 'searchcraft-loading-bar-2' }), h(\"div\", { key: 'd2939b9f7bc0599df7d96db91802ebfcbf232f3e', class: 'searchcraft-loading-bar-3' }), h(\"div\", { key: '7a73bd5baf25ec789c3170e066d1333b905bfe7b', class: 'searchcraft-loading-bar-4' }), h(\"div\", { key: 'b644b618766727773b21d288945c21b6ef0be958', class: 'searchcraft-loading-bar-5' }), h(\"div\", { key: '4f5123a786fc40891ca54edc538dd56f683b26ce', class: 'searchcraft-loading-bar-6' })), h(\"p\", { key: '967c1a6fb41231c8d713b78facca98e7f5a80709', class: 'searchcraft-loading-label' }, this.label)));\n }\n}, [768, \"searchcraft-loading\", {\n \"label\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-loading\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-loading\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftInputLabel);\n }\n break;\n } });\n}\n\nexport { SearchcraftInputLabel as S, defineCustomElement as d };\n//# sourceMappingURL=p-B_415D4A.js.map\n\n//# sourceMappingURL=p-B_415D4A.js.map","import { S as SearchcraftInputLabel, d as defineCustomElement$1 } from './p-B_415D4A.js';\n\nconst SearchcraftLoading = SearchcraftInputLabel;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftLoading, defineCustomElement };\n//# sourceMappingURL=searchcraft-loading.js.map\n\n//# sourceMappingURL=searchcraft-loading.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\nimport { d as defineCustomElement$2 } from './p-C681KruS.js';\n\nconst SearchcraftPagination$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPagination extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n // store vars\n searchTerm;\n searchResultsPerPage;\n searchResultsPage;\n searchResultsCount;\n searchClientRequestProperties;\n // local vars\n searchResultsPagesCount = 1;\n searchResultsRangeMin = 1;\n searchResultsRangeMax = 1;\n // store functions\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n this.searchResultsRangeMin =\n (this.searchResultsPage - 1) * this.searchResultsPerPage + 1;\n this.searchResultsRangeMax =\n (this.searchResultsPerPage - 1) * this.searchResultsPerPage +\n this.searchResultsPerPage;\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n renderOddPaginationItem(page) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n renderEvenPaginationItem(page) {\n if (this.searchResultsPagesCount <= page) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n page < Math.ceil(this.searchResultsPagesCount / 2) // is the first or second even pagination item\n ? this.searchResultsPage <= page + 1\n : this.searchResultsPage >= page - 1) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item' }, \"...\")));\n }\n renderMiddlePaginationItem() {\n if (this.searchResultsPagesCount <= 3) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n this.searchResultsPage <= 3 ||\n this.searchResultsPage >= this.searchResultsPagesCount - 2) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === 3 ||\n this.searchResultsPage === this.searchResultsPagesCount - 2,\n }), type: 'button', onClick: () => this.handleGoToPage(this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3) }, this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item searchcraft-pagination-item-active' }, this.searchResultsPage)));\n }\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n // early return if there isn't a searchTerm (unless it's initialQuery) or there is 1 or fewer pages of results\n if ((!this.searchTerm && !isInitialQuery) ||\n this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: 'searchcraft-pagination' }, h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === 1, hierarchy: 'tertiary', onButtonClick: () => this.handleGoToPage(Math.max(1, this.searchResultsPage - 1)), label: 'Previous', iconPosition: 'left', icon: h(\"svg\", { class: 'searchcraft-button-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Previous page icon\"), h(\"path\", { d: 'M12.5 15L7.5 10L12.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true })), h(\"ul\", { class: 'searchcraft-pagination-list' }, this.renderOddPaginationItem(1), this.renderEvenPaginationItem(2), this.renderMiddlePaginationItem(), this.renderEvenPaginationItem(this.searchResultsPagesCount > 4\n ? this.searchResultsPagesCount - 1\n : 4), this.renderOddPaginationItem(this.searchResultsPagesCount)), h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === this.searchResultsPagesCount, hierarchy: 'tertiary', onButtonClick: () => {\n this.handleGoToPage(Math.min(this.searchResultsPagesCount, this.searchResultsPage + 1));\n }, label: 'Next', iconPosition: 'right', icon: h(\"svg\", { class: 'searchcraft-button-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Next page icon\"), h(\"path\", { d: 'M7.5 15L12.5 10L7.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true }))));\n }\n}, [768, \"searchcraft-pagination\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchTerm\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsCount\": [32],\n \"searchClientRequestProperties\": [32],\n \"searchResultsPagesCount\": [32],\n \"searchResultsRangeMin\": [32],\n \"searchResultsRangeMax\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-pagination\", \"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-pagination\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPagination$1);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPagination = SearchcraftPagination$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPagination, defineCustomElement };\n//# sourceMappingURL=searchcraft-pagination.js.map\n\n//# sourceMappingURL=searchcraft-pagination.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { h as html } from './p-_aHgRsRD.js';\n\nconst SearchcraftPopoverButton$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverButton extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * A callback function responsible for rendering the button contents.\n */\n template;\n /**\n * The type of popover button to render.\n */\n type;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n hotkey;\n hotkeyModifier;\n hotkeyModifierSymbol;\n isPopoverVisible;\n userAgent;\n unsubscribe = () => { };\n cleanupCore;\n core;\n onCoreAvailable(core) {\n this.core = core;\n const state = core.store.getState();\n this.hotkey = state.hotkey.toUpperCase();\n this.hotkeyModifier = state.hotkeyModifier;\n this.isPopoverVisible = state.isPopoverVisible;\n this.userAgent = this.setUserAgent();\n this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();\n this.unsubscribe = core.store.subscribe((state) => {\n this.hotkey = state.hotkey.toUpperCase();\n this.hotkeyModifier = state.hotkeyModifier;\n this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n handleOnClick() {\n this.core?.store.getState().setPopoverVisibility(true);\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n setUserAgent() {\n const userAgent = navigator.userAgent.toLowerCase();\n switch (true) {\n case userAgent.includes('windows'):\n return 'window';\n case userAgent.includes('mac'):\n return 'mac';\n default:\n return 'other';\n }\n }\n renderOptionSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Option key\"), h(\"path\", { d: 'M283,112c0-11.58,9.42-21,21-21h160c11.58,0,21,9.42,21,21s-9.42,21-21,21h-160c-11.58,0-21-9.42-21-21Z', fill: 'currentColor' }), h(\"path\", { d: 'M485,400c0,11.58-9.42,21-21,21h-128c-8.29,0-15.82-4.9-19.19-12.47l-122.46-275.53H48c-11.58,0-21-9.42-21-21s9.42-21,21-21h160c8.29,0,15.82,4.9,19.19,12.47l122.46,275.53h114.35c11.58,0,21,9.42,21,21Z', fill: 'currentColor' })));\n };\n renderCtrlSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Ctrl key\"), h(\"path\", { d: 'M388.95,209.4c-.37,5.59-2.9,10.71-7.12,14.4-3.83,3.35-8.74,5.2-13.82,5.2-6.06,0-11.83-2.61-15.81-7.17l-96.2-109.94-96.2,109.94c-3.98,4.56-9.75,7.17-15.81,7.17-5.08,0-9.99-1.84-13.82-5.2-4.22-3.69-6.75-8.81-7.12-14.4-.38-5.6,1.45-11.01,5.15-15.23l112-128c3.98-4.56,9.74-7.17,15.8-7.17s11.82,2.61,15.8,7.17l112,128c3.7,4.22,5.53,9.63,5.15,15.23Z', fill: 'currentColor' })));\n };\n renderWindowsMetaSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Windows meta key\"), h(\"path\", { d: 'M206.115 255.957c-23.854-12.259-47.043-18.479-68.94-18.479-2.978 0-5.976 0.090-8.974 0.354-27.94 2.312-53.461 9.684-69.875 15.414-4.354 1.599-8.817 3.288-13.415 5.153l-44.911 155.697c30.851-11.416 58.146-16.969 83.135-16.969 40.423 0 69.764 15.104 93.996 30.652 11.481-38.959 39.022-133.045 47.241-161.162-5.975-3.642-12.038-7.285-18.257-10.66zM264.174 295.535l-45.223 157.074c13.416 7.686 58.549 32.025 93.106 32.025 27.896 0 59.126-7.148 95.417-21.896l43.178-150.988c-29.316 9.461-57.438 14.26-83.732 14.26-47.975 0-81.557-15.549-102.746-30.475zM146.411 184.395c38.559 0.399 67.076 15.104 90.708 30.251l46.376-158.672c-9.773-5.598-35.403-19.547-53.929-24.3-12.193-2.842-25.010-4.308-38.602-4.308-25.898 0.488-54.194 6.973-86.444 19.9l-44.22 155.298c32.404-12.218 60.322-18.17 86.043-18.17 0.023 0.001 0.068 0.001 0.068 0.001zM512 99.062c-29.407 11.416-58.104 17.233-85.514 17.233-45.843 0-79.646-15.901-101.547-31.183l-45.975 159.118c30.873 19.854 64.145 29.939 99.061 29.939 28.474 0 57.97-6.84 87.731-20.344l-0.091-1.111 1.867-0.443 44.468-153.209z', fill: 'currentColor' })));\n };\n renderMacMetaSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Mac meta key\"), h(\"path\", { d: 'M368,283h-43v-54h43c46.87,0,85-38.13,85-85s-38.13-85-85-85-85,38.13-85,85v43h-54v-43c0-46.87-38.13-85-85-85s-85,38.13-85,85,38.13,85,85,85h43v54h-43c-46.87,0-85,38.13-85,85s38.13,85,85,85,85-38.13,85-85v-43h54v43c0,46.87,38.13,85,85,85s85-38.13,85-85-38.13-85-85-85ZM325,144c0-23.71,19.29-43,43-43s43,19.29,43,43-19.29,43-43,43h-43v-43ZM144,187c-23.71,0-43-19.29-43-43s19.29-43,43-43,43,19.29,43,43v43h-43ZM187,368c0,23.71-19.29,43-43,43s-43-19.29-43-43,19.29-43,43-43h43v43ZM283,283h-54v-54h54v54ZM368,411c-23.71,0-43-19.29-43-43v-43h43c23.71,0,43,19.29,43,43s-19.29,43-43,43Z', fill: 'currentColor' })));\n };\n setHotkeyModifierSymbol() {\n switch (this.hotkeyModifier) {\n case 'ctrl':\n return this.userAgent === 'windows'\n ? this.renderCtrlSymbol()\n : this.renderMacMetaSymbol();\n case 'alt':\n case 'option':\n return this.renderOptionSymbol();\n default:\n return this.userAgent === 'windows'\n ? this.renderWindowsMetaSymbol()\n : this.renderMacMetaSymbol();\n }\n }\n renderSkeuomorphicSlot() {\n return (h(\"div\", { class: 'searchcraft-popover-button-wrapper' }, h(\"div\", { class: 'searchcraft-popover-button-input' }, h(\"svg\", { class: 'searchcraft-popover-button-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', version: '1.1' }, h(\"title\", null, \"Search icon\"), h(\"path\", { d: 'M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), h(\"span\", null, \"Search\")), h(\"div\", { class: 'searchcraft-popover-button-keycaps' }, h(\"div\", { class: 'searchcraft-popover-button-keycaps-keycap searchcraft-popover-button-keycaps-keycap-modifier' }, h(\"span\", null, this.hotkeyModifierSymbol)), h(\"div\", { class: 'searchcraft-popover-button-keycaps-keycap searchcraft-popover-button-keycaps-keycap-key' }, h(\"span\", null, this.hotkey)))));\n }\n renderSlot() {\n switch (this.type) {\n case 'skeuomorphic':\n return this.renderSkeuomorphicSlot();\n default:\n return (h(\"div\", null, h(\"slot\", null)));\n }\n }\n render() {\n return (h(\"button\", { key: '4f11d81bb189a929372d9e398a0913b3b626e42c', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined'\n ? this.template({ isPopoverVisible: this.isPopoverVisible }, { html })\n : undefined, onClick: this.handleOnClick.bind(this), type: 'button' }, typeof this.template !== 'undefined'\n ? undefined\n : this.type\n ? this.renderSlot()\n : 'Open Popover'));\n }\n}, [772, \"searchcraft-popover-button\", {\n \"template\": [16],\n \"type\": [1],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"hotkey\": [32],\n \"hotkeyModifier\": [32],\n \"hotkeyModifierSymbol\": [32],\n \"isPopoverVisible\": [32],\n \"userAgent\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverButton$1);\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverButton = SearchcraftPopoverButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverButton, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-button.js.map\n\n//# sourceMappingURL=searchcraft-popover-button.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { f as formatNumberWithCommas } from './p-i8oXh7db.js';\nimport './p-BlYgaV0q.js';\n\nconst SearchcraftPopoverFooter = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverFooter extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n searchResultsCount;\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.searchResultsCount = core.store.getState().searchResultsCount;\n this.unsubscribe = core.store.subscribe((state) => {\n this.searchResultsCount = state.searchResultsCount;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n return (h(\"footer\", { key: '5e3c0da21c63453ac705d0ea2dbb1ee5053bd527', class: 'searchcraft-popover-footer' }, h(\"p\", { key: '34332a6a54af63717a6f6c36c65a321b2d18c82c', class: 'searchcraft-popover-footer-results-info' }, this.searchResultsCount\n ? `${formatNumberWithCommas(this.searchResultsCount)} Results Found`\n : ' '), h(\"a\", { key: '8cd1bd1ad4e3a91e7221c5d38650b10a66dc884e', class: 'searchcraft-popover-footer-link', href: 'https://searchcraft.io/', target: '_blank', rel: 'noreferrer' }, h(\"svg\", { key: '4ebaa80bc3ee8cc2643368d84158cc46ac141376', class: 'searchcraft-popover-footer-link-image', width: '169', height: '16', viewBox: '0 0 169 16', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", { key: '804857d081cf5cbd8e63af05c3479a96872d136d' }, \"Powered by Searchcraft\"), h(\"path\", { key: '43d4a2b110134036b8823e508f535c293fb2df0c', d: 'M5.07288 0.608C7.60088 0.608 8.84888 2.064 8.84888 4.112C8.84888 6.16 7.60088 7.616 5.07288 7.616H1.68088V12H0.336875V0.608H5.07288ZM5.07288 6.4C6.67288 6.4 7.45688 5.552 7.45688 4.112C7.45688 2.672 6.67288 1.824 5.07288 1.824H1.68088V6.4H5.07288ZM13.31 12.192C10.99 12.192 9.31 10.512 9.31 7.872C9.31 5.232 10.99 3.552 13.31 3.552C15.63 3.552 17.31 5.232 17.31 7.872C17.31 10.512 15.63 12.192 13.31 12.192ZM13.31 11.04C14.91 11.04 15.966 9.872 15.966 7.872C15.966 5.872 14.91 4.704 13.31 4.704C11.71 4.704 10.654 5.872 10.654 7.872C10.654 9.872 11.71 11.04 13.31 11.04ZM28.3826 3.744H29.7586L27.0066 12H25.6626L24.4466 8.176C24.1586 7.264 23.8706 6.304 23.6146 5.376C23.3426 6.304 23.0546 7.264 22.7666 8.176L21.5666 12H20.2226L17.4706 3.744H18.8466L20.0146 7.472C20.3346 8.48 20.6226 9.472 20.9106 10.48C21.1826 9.472 21.4706 8.48 21.7906 7.472L22.9426 3.744H24.2866L25.4386 7.472C25.7426 8.464 26.0466 9.456 26.3346 10.448C26.6066 9.456 26.9106 8.464 27.2146 7.472L28.3826 3.744ZM37.5194 7.872V8.32H31.2474C31.3754 10.176 32.3514 11.024 33.7914 11.024C34.9594 11.024 35.6954 10.416 35.9834 9.488H37.3114C36.9114 11.04 35.7274 12.192 33.7594 12.192C31.5034 12.192 29.9194 10.544 29.9194 7.872C29.9194 5.28 31.4394 3.552 33.7274 3.552C36.1914 3.552 37.5194 5.504 37.5194 7.872ZM33.7274 4.72C32.4314 4.72 31.4874 5.536 31.2794 7.168H36.1434C36.0154 5.808 35.1994 4.72 33.7274 4.72ZM42.9101 3.616C43.0381 3.616 43.1661 3.616 43.3421 3.632V4.864H43.0221C41.3741 4.864 40.3181 5.696 40.3181 7.296V12H39.0381V3.744H40.2541V5.2C40.7181 4.336 41.5661 3.616 42.9101 3.616ZM51.2538 7.872V8.32H44.9818C45.1098 10.176 46.0858 11.024 47.5258 11.024C48.6938 11.024 49.4298 10.416 49.7178 9.488H51.0458C50.6458 11.04 49.4618 12.192 47.4938 12.192C45.2378 12.192 43.6538 10.544 43.6538 7.872C43.6538 5.28 45.1738 3.552 47.4618 3.552C49.9258 3.552 51.2538 5.504 51.2538 7.872ZM47.4618 4.72C46.1658 4.72 45.2218 5.536 45.0138 7.168H49.8778C49.7498 5.808 48.9338 4.72 47.4618 4.72ZM58.9805 0.608H60.2605V12H59.0445V10.72C58.4205 11.664 57.4445 12.192 56.2125 12.192C53.8925 12.192 52.3725 10.512 52.3725 7.872C52.3725 5.232 53.8925 3.552 56.2125 3.552C57.4125 3.552 58.3565 4.048 58.9805 4.928V0.608ZM56.3725 11.04C57.9725 11.04 59.0285 9.872 59.0285 7.872C59.0285 5.872 57.9725 4.704 56.3725 4.704C54.7725 4.704 53.7165 5.936 53.7165 7.936C53.7165 9.936 54.7725 11.04 56.3725 11.04ZM69.2736 3.552C71.5936 3.552 73.1136 5.232 73.1136 7.872C73.1136 10.512 71.5936 12.192 69.2736 12.192C68.0416 12.192 67.0656 11.664 66.4416 10.72V12H65.2256V0.608H66.5056V4.928C67.1296 4.048 68.0736 3.552 69.2736 3.552ZM69.1136 11.04C70.7136 11.04 71.7696 9.808 71.7696 7.808C71.7696 5.808 70.7136 4.704 69.1136 4.704C67.5136 4.704 66.4576 5.872 66.4576 7.872C66.4576 9.872 67.5136 11.04 69.1136 11.04ZM79.3795 3.744H80.7715L77.2835 13.296C76.7555 14.752 75.9075 15.184 74.5955 15.184C74.3395 15.184 74.0995 15.168 73.8275 15.136V14.064H74.5795C75.3955 14.064 75.8275 13.696 76.0835 13.04C76.1795 12.8 76.2755 12.528 76.3715 12.272L73.2675 3.744H74.6755L75.8435 7.184C76.2595 8.384 76.6435 9.568 77.0275 10.752C77.3955 9.568 77.7955 8.368 78.2115 7.168L79.3795 3.744ZM89.1546 12.256C86.1146 12.256 84.2906 10.864 84.2746 8.24H86.4026C86.4346 10.032 87.6346 10.512 89.2186 10.512C90.7066 10.512 91.5226 9.936 91.5226 8.864C91.5226 7.968 90.9306 7.568 89.1866 7.216L88.2266 7.024C86.0186 6.608 84.5626 5.632 84.5626 3.568C84.5626 1.68 86.0506 0.351999 88.7866 0.351999C91.9866 0.351999 93.3466 1.856 93.4266 4H91.3306C91.2506 2.784 90.6266 2.096 88.8186 2.096C87.4426 2.096 86.7706 2.64 86.7706 3.504C86.7706 4.416 87.2986 4.832 88.9946 5.184L89.9866 5.376C92.6746 5.904 93.7626 6.944 93.7626 8.752C93.7626 11.008 92.0026 12.256 89.1546 12.256ZM102.952 8.016V8.496H96.7758C96.9198 9.968 97.7518 10.624 98.9198 10.624C99.8798 10.624 100.504 10.176 100.808 9.44H102.744C102.328 11.12 100.888 12.192 98.9038 12.192C96.4718 12.192 94.7918 10.512 94.7918 7.872C94.7918 5.28 96.4238 3.552 98.8718 3.552C101.4 3.552 102.952 5.392 102.952 8.016ZM98.8558 5.12C97.7838 5.12 96.9838 5.728 96.7918 7.088H100.936C100.776 5.92 100.056 5.12 98.8558 5.12ZM111.599 12H109.583C109.455 11.776 109.391 11.392 109.359 10.992C108.815 11.76 107.919 12.192 106.703 12.192C104.943 12.192 103.727 11.312 103.727 9.712C103.727 8.336 104.559 7.36 106.895 7.136L108.143 7.024C108.911 6.928 109.311 6.688 109.311 6.08C109.311 5.44 108.975 5.056 107.807 5.056C106.655 5.056 106.175 5.36 106.095 6.368H104.111C104.223 4.624 105.247 3.552 107.823 3.552C110.287 3.552 111.263 4.544 111.263 6.032V10.432C111.263 11.024 111.375 11.68 111.599 12ZM107.183 10.752C108.255 10.752 109.311 10.176 109.311 8.736V7.984C109.103 8.176 108.799 8.272 108.367 8.32L107.279 8.448C106.159 8.576 105.791 8.976 105.791 9.632C105.791 10.32 106.255 10.752 107.183 10.752ZM117.216 3.616C117.392 3.616 117.536 3.616 117.712 3.648V5.504H117.2C115.712 5.504 114.816 6.24 114.816 7.808V12H112.8V3.744H114.752V5.216C115.152 4.288 115.936 3.616 117.216 3.616ZM122.137 12.192C119.689 12.192 118.057 10.512 118.057 7.872C118.057 5.232 119.673 3.552 122.137 3.552C124.297 3.552 125.737 4.784 125.977 6.72H123.961C123.769 5.696 123.033 5.232 122.137 5.232C120.937 5.232 120.121 6.064 120.121 7.872C120.121 9.68 120.969 10.512 122.137 10.512C123.049 10.512 123.833 10.016 123.993 8.928H126.009C125.785 10.944 124.249 12.192 122.137 12.192ZM131.641 3.552C133.369 3.552 134.537 4.56 134.537 6.528V12H132.521V6.864C132.521 5.808 131.993 5.296 130.969 5.296C130.089 5.296 129.129 5.904 129.129 7.376V12H127.113V0.608H129.129V4.848C129.673 4.096 130.521 3.552 131.641 3.552ZM139.887 12.192C137.439 12.192 135.807 10.512 135.807 7.872C135.807 5.232 137.423 3.552 139.887 3.552C142.047 3.552 143.487 4.784 143.727 6.72H141.711C141.519 5.696 140.783 5.232 139.887 5.232C138.687 5.232 137.871 6.064 137.871 7.872C137.871 9.68 138.719 10.512 139.887 10.512C140.799 10.512 141.583 10.016 141.743 8.928H143.759C143.535 10.944 141.999 12.192 139.887 12.192ZM149.279 3.616C149.455 3.616 149.599 3.616 149.775 3.648V5.504H149.263C147.775 5.504 146.879 6.24 146.879 7.808V12H144.863V3.744H146.815V5.216C147.215 4.288 147.999 3.616 149.279 3.616ZM157.803 12H155.787C155.659 11.776 155.595 11.392 155.563 10.992C155.019 11.76 154.123 12.192 152.907 12.192C151.147 12.192 149.931 11.312 149.931 9.712C149.931 8.336 150.763 7.36 153.099 7.136L154.347 7.024C155.115 6.928 155.515 6.688 155.515 6.08C155.515 5.44 155.179 5.056 154.011 5.056C152.859 5.056 152.379 5.36 152.299 6.368H150.315C150.427 4.624 151.451 3.552 154.027 3.552C156.491 3.552 157.467 4.544 157.467 6.032V10.432C157.467 11.024 157.579 11.68 157.803 12ZM153.387 10.752C154.459 10.752 155.515 10.176 155.515 8.736V7.984C155.307 8.176 155.003 8.272 154.571 8.32L153.483 8.448C152.363 8.576 151.995 8.976 151.995 9.632C151.995 10.32 152.459 10.752 153.387 10.752ZM162.466 2.16C161.746 2.16 161.426 2.512 161.426 3.152V3.744H163.122V5.28H161.426V12H159.426V5.28H158.146V3.744H159.426V3.12C159.426 1.664 160.146 0.559999 162.13 0.559999C162.45 0.559999 162.882 0.575999 163.17 0.608V2.16H162.466ZM168.636 5.28H167.004V9.744C167.004 10.288 167.276 10.464 167.948 10.464H168.636V12C168.268 12.032 167.9 12.064 167.58 12.064C165.836 12.064 165.004 11.472 165.004 9.952V5.28H163.724V3.744H165.004V1.344H167.004V3.744H168.636V5.28Z', fill: 'currentColor' })))));\n }\n}, [768, \"searchcraft-popover-footer\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchResultsCount\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-footer\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-footer\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverFooter);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverFooter as S, defineCustomElement as d };\n//# sourceMappingURL=p-C7ZK8CYu.js.map\n\n//# sourceMappingURL=p-C7ZK8CYu.js.map","import { S as SearchcraftPopoverFooter$1, d as defineCustomElement$1 } from './p-C7ZK8CYu.js';\n\nconst SearchcraftPopoverFooter = SearchcraftPopoverFooter$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverFooter, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-footer.js.map\n\n//# sourceMappingURL=searchcraft-popover-footer.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { g as getDocumentValueFromSearchResultMapping } from './p-i8oXh7db.js';\nimport './p-BlYgaV0q.js';\n\nconst SearchcraftPopoverListItem = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItem extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n item;\n popoverResultMappings;\n /** The document position relative to the search results (For Measure) */\n documentPosition = 0;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n title;\n subtitle;\n href;\n imageSource;\n imageAlt;\n core;\n cleanupCore;\n mapValuesFromDocument(document) {\n this.title = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);\n this.subtitle = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);\n this.href = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.href);\n this.imageSource = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);\n this.imageAlt = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageAlt);\n }\n onCoreAvailable(core) {\n this.core = core;\n }\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n handleLinkClick = () => {\n if (this.core) {\n const document_position = this.documentPosition;\n const search_term = this.core.store.getState().searchTerm;\n const number_of_documents = this.core.store.getState().searchClientResponseItems.length || 0;\n this.core.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n render() {\n return (h(\"div\", { key: 'd1c9c310b8abc9d2370efb802eac1edf4189519d', class: 'searchcraft-popover-list-item' }, h(\"a\", { key: '30eb1a5076c5b4b95ae43147eaee0bb72ce46179', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (h(\"div\", { key: 'd18ff55823dc2c61f3786f423936af8b009aeeda', class: 'searchcraft-popover-list-item-image-wrapper' }, h(\"img\", { key: '56f4cc1d472f7da05e64fcf52c560a7ad0cdf7a6', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), h(\"div\", { key: '78a0f0235d5e71d10076b70ccbaf4b58e0d6fea0', class: 'searchcraft-popover-list-item-content' }, this.title && (h(\"p\", { key: '4489047af56e5aa295cb5f036e970dcad053d3b7', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (h(\"p\", { key: '4d177c227a1dbf1233022d738403c8eb93ba328d', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle))))));\n }\n}, [768, \"searchcraft-popover-list-item\", {\n \"item\": [16],\n \"popoverResultMappings\": [16],\n \"documentPosition\": [2, \"document-position\"],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"title\": [32],\n \"subtitle\": [32],\n \"href\": [32],\n \"imageSource\": [32],\n \"imageAlt\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListItem);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItem as S, defineCustomElement as d };\n//# sourceMappingURL=p-Cju73I1E.js.map\n\n//# sourceMappingURL=p-Cju73I1E.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { d as defineCustomElement$2 } from './p-C1S92_N8.js';\nimport { d as defineCustomElement$1 } from './p-Cju73I1E.js';\n\nconst SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The mappings that define how the data in the documents are mapped to the\n * list-view-item elements.\n */\n popoverResultMappings;\n /**\n * The items to render in the list view.\n */\n searchClientResponseItems;\n adClientResponseItems;\n searchResultsPage;\n searchResultsPerPage;\n config;\n cleanupCore;\n onCoreAvailable(core) {\n this.config = core.config;\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n renderWithADMAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adClientResponseItem: item, adSource: 'adMarketplace', key: item.id, renderPosition: 'top' }))), this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-popover-list-view' }, itemsToRender);\n }\n renderWithNativoAds() {\n const itemsToRender = [];\n const interstitialStartIndex = this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval = this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-popover-list-view' }, itemsToRender);\n }\n renderWithNoAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n render() {\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithADMAds();\n }\n return this.renderWithNoAds();\n }\n}, [768, \"searchcraft-popover-list-view\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"popoverResultMappings\": [16],\n \"searchClientResponseItems\": [16],\n \"adClientResponseItems\": [16],\n \"searchResultsPage\": [2, \"search-results-page\"],\n \"searchResultsPerPage\": [2, \"search-results-per-page\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-view\", \"searchcraft-ad\", \"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListView);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListView as S, defineCustomElement as d };\n//# sourceMappingURL=p-Dr9rPC9v.js.map\n\n//# sourceMappingURL=p-Dr9rPC9v.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { c as classNames } from './p-BfTCfPZ1.js';\nimport { d as defineCustomElement$9 } from './p-C1S92_N8.js';\nimport { d as defineCustomElement$8 } from './p-C681KruS.js';\nimport { d as defineCustomElement$7 } from './p-DjPZkCLP.js';\nimport { d as defineCustomElement$6 } from './p-C-wcIch1.js';\nimport { d as defineCustomElement$5 } from './p-L4PwHqQC.js';\nimport { d as defineCustomElement$4 } from './p-C7ZK8CYu.js';\nimport { d as defineCustomElement$3 } from './p-Cju73I1E.js';\nimport { d as defineCustomElement$2 } from './p-Dr9rPC9v.js';\n\nconst SearchcraftPopoverForm$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverForm extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The type of popover form to render.\n * - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content.\n * - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component.\n * - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.\n */\n type = 'inline';\n /**\n * Formats the content rendered for each result.\n */\n popoverResultMappings;\n /**\n * The hotkey that activates the popover.\n */\n hotkey = 'k';\n /**\n * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.\n */\n hotkeyModifier = 'meta';\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The input element's placeholder value.\n */\n placeholderValue = 'Enter Search';\n /**\n * The placeholder's render behavior.\n * 'hide-on-focus' - Hide the placeholder text immediately when the input form gains focus.\n * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it.\n */\n placeholderBehavior;\n isPopoverVisibleInState = false;\n searchClientResponseItems = [];\n adClientResponseItems = [];\n searchTerm;\n isFocused = false;\n breakpointSm = 576;\n breakpointMd = 768;\n breakpointLg = 992;\n searchResultsPage;\n searchResultsPerPage;\n modalElement;\n get hostElement() { return this; }\n unsubscribe;\n cleanupCore;\n core;\n onCoreAvailable(core) {\n this.core = core;\n // Loads the breakpoint values into state\n const computedStyle = getComputedStyle(document.documentElement);\n this.breakpointSm = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-sm').trim());\n this.breakpointMd = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-md').trim());\n this.breakpointLg = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-lg').trim());\n // Set popover visiblity in state\n this.isPopoverVisibleInState = core.store.getState().isPopoverVisible;\n // Add event listeners\n document.addEventListener('click', this.handleDocumentClick);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n // Subscribe to state events\n this.unsubscribe = core.store.subscribe((state) => {\n if (this.isPopoverVisibleInState !== state.isPopoverVisible) {\n this.handlePopoverVisibilityChange(state.isPopoverVisible);\n }\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n });\n // Set hotkey and hotkeyModifier in state.\n core.store\n .getState()\n .setHotKeyAndHotKeyModifier(this.hotkey, this.hotkeyModifier);\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n document.removeEventListener('click', this.handleDocumentClick);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n handleDocumentClick = (event) => {\n if (!this.hostElement.contains(event.target)) {\n this.isFocused = false;\n }\n };\n /**\n * Handles when popover visibility is changed in state\n */\n handlePopoverVisibilityChange(isVisible) {\n this.isPopoverVisibleInState = isVisible;\n document.body.style.overflow = isVisible ? 'hidden' : 'auto';\n }\n /**\n * Actions to perform when various keys are pressed within the popover form.\n */\n handleDocumentKeyDown = (event) => {\n // Document-scoped actions\n if (event.key === this.hotkey) {\n this.handleHotkeyPressed(event);\n }\n // Document-scoped -> Popover-scoped keyboard event boundary\n if (!this.hostElement.contains(document.activeElement)) {\n return;\n }\n // Popover-scoped actions\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n event.preventDefault();\n this.focusOnNextListItem(event.key);\n break;\n case 'Escape':\n this.core?.store.getState().setPopoverVisibility(false);\n break;\n default:\n return;\n }\n };\n handleInputInit = () => {\n const input = this.hostElement.querySelector('.searchcraft-input-form-input');\n input?.focus();\n };\n /**\n * When popover is `inline` and the viewport is at the smallest breakpoint,\n * focusing on the input will open a modal version of the popover form.\n */\n handleInputFocus() {\n this.isFocused = true;\n if (this.type === 'inline' &&\n window.visualViewport &&\n window.visualViewport.width < this.breakpointSm) {\n this.core?.store.getState().setPopoverVisibility(true);\n // Appends a popover form of type=`modal` to the body\n if (!this.modalElement) {\n this.modalElement = document.createElement('searchcraft-popover-form');\n this.modalElement.popoverResultMappings = this.popoverResultMappings;\n this.modalElement.setAttribute('type', 'fullscreen');\n this.modalElement.setAttribute('searchcraft-id', this.searchcraftId);\n if (this.placeholderValue) {\n this.modalElement.setAttribute('placeholder-value', this.placeholderValue);\n }\n if (this.placeholderBehavior) {\n this.modalElement.setAttribute('placeholder-behavior', this.placeholderBehavior);\n }\n document.body.appendChild(this.modalElement);\n }\n }\n }\n handleModalBackdropClick(_event) {\n this.core?.store.getState().setPopoverVisibility(false);\n }\n /**\n * When a hotkey is pressed, tests if the modifiers also match.\n * If modifiers match, toggles visibility of the popover modal.\n */\n handleHotkeyPressed(event) {\n if ((event.ctrlKey && this.hotkeyModifier === 'ctrl') ||\n (event.altKey && this.hotkeyModifier === 'alt') ||\n (event.metaKey && this.hotkeyModifier === 'meta')) {\n event.preventDefault();\n if (this.type === 'inline' && !this.isPopoverVisibleInState) {\n const hostElementInput = this.hostElement.querySelector('.searchcraft-input-form-input');\n hostElementInput?.focus();\n }\n else {\n this.core?.store\n .getState()\n .setPopoverVisibility(!this.isPopoverVisibleInState);\n }\n }\n }\n handleCancelButtonClick() {\n this.core?.store.getState().setPopoverVisibility(false);\n }\n /**\n * Moves focus to the next/previous list item in the list view. If you are at the top\n * of the list view, it moves focus back to the input.\n *\n * @param direction\n */\n focusOnNextListItem(direction) {\n const listItems = Array.from(document.querySelectorAll('.searchcraft-popover-list-item-link')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);\n const currentIndex = listItems.indexOf(document.activeElement);\n if (direction === 'ArrowDown') {\n listItems[(currentIndex + 1) % listItems.length]?.focus();\n }\n else if (direction === 'ArrowUp') {\n if (currentIndex >= 1) {\n listItems[currentIndex - 1]?.focus();\n }\n else {\n const input = document.querySelector('.searchcraft-input-form-input');\n if (input) {\n input.focus();\n requestAnimationFrame(() => {\n input.selectionEnd = input.value.length;\n input.selectionStart = input.value.length;\n });\n }\n }\n }\n }\n get hasResultsToShow() {\n return (this.searchTerm &&\n this.searchTerm?.trim()?.length > 0 &&\n this.searchClientResponseItems.length > 0);\n }\n renderInlinePopover() {\n const isListViewVisible = this.hasResultsToShow && this.isFocused;\n return (h(\"div\", { class: classNames('searchcraft-popover-form searchcraft-popover-form-inline', {\n 'searchcraft-popover-form-active': isListViewVisible,\n }) }, h(\"div\", { class: 'searchcraft-popover-form-input searchcraft-popover-form-inline-input' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior })), isListViewVisible && (h(\"div\", { class: 'searchcraft-popover-form-inline-wrapper' }, h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }), h(\"searchcraft-popover-footer\", { searchcraftId: this.searchcraftId })))));\n }\n renderModalPopover() {\n if (this.isPopoverVisibleInState) {\n return (h(\"div\", { class: classNames('searchcraft-popover-form searchcraft-popover-form-modal', {\n 'searchcraft-popover-form-active': this.hasResultsToShow,\n }) }, h(\"div\", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), h(\"div\", { class: 'searchcraft-popover-form-modal-wrapper' }, h(\"div\", { class: 'searchcraft-popover-form-input searchcraft-popover-form-modal-input' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-modal-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), h(\"div\", { class: 'searchcraft-popover-form-modal-popover-list-view' }, this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), h(\"searchcraft-popover-footer\", { searchcraftId: this.searchcraftId }))));\n }\n }\n renderFullscreenPopover() {\n if (this.isPopoverVisibleInState) {\n return (h(\"div\", { class: classNames('searchcraft-popover-form searchcraft-popover-form-fullscreen', {\n 'searchcraft-popover-form-active': this.hasResultsToShow,\n }) }, h(\"div\", { class: 'searchcraft-popover-form-input searchcraft-popover-form-fullscreen-input' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-fullscreen-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), h(\"div\", { class: 'searchcraft-popover-form-fullscreen-popover-list-view' }, this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), h(\"searchcraft-popover-footer\", { searchcraftId: this.searchcraftId })));\n }\n }\n render() {\n switch (this.type) {\n case 'inline':\n return this.renderInlinePopover();\n case 'modal':\n return this.renderModalPopover();\n case 'fullscreen':\n return this.renderFullscreenPopover();\n }\n }\n}, [768, \"searchcraft-popover-form\", {\n \"type\": [1],\n \"popoverResultMappings\": [16],\n \"hotkey\": [1],\n \"hotkeyModifier\": [1, \"hotkey-modifier\"],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"placeholderValue\": [1, \"placeholder-value\"],\n \"placeholderBehavior\": [1, \"placeholder-behavior\"],\n \"isPopoverVisibleInState\": [32],\n \"searchClientResponseItems\": [32],\n \"adClientResponseItems\": [32],\n \"searchTerm\": [32],\n \"isFocused\": [32],\n \"breakpointSm\": [32],\n \"breakpointMd\": [32],\n \"breakpointLg\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"modalElement\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-form\", \"searchcraft-ad\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-form\", \"searchcraft-input-label\", \"searchcraft-popover-footer\", \"searchcraft-popover-form\", \"searchcraft-popover-list-item\", \"searchcraft-popover-list-view\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-form\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverForm$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$9();\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$8();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$7();\n }\n break;\n case \"searchcraft-input-form\":\n if (!customElements.get(tagName)) {\n defineCustomElement$6();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$5();\n }\n break;\n case \"searchcraft-popover-footer\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-popover-form\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverForm = SearchcraftPopoverForm$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverForm, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-form.js.map\n\n//# sourceMappingURL=searchcraft-popover-form.js.map","import { S as SearchcraftPopoverListItem$1, d as defineCustomElement$1 } from './p-Cju73I1E.js';\n\nconst SearchcraftPopoverListItem = SearchcraftPopoverListItem$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverListItem, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-list-item.js.map\n\n//# sourceMappingURL=searchcraft-popover-list-item.js.map","import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './p-Dr9rPC9v.js';\n\nconst SearchcraftPopoverListView = SearchcraftPopoverListView$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverListView, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-list-view.js.map\n\n//# sourceMappingURL=searchcraft-popover-list-view.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { f as formatNumberWithCommas } from './p-i8oXh7db.js';\nimport { h as html } from './p-_aHgRsRD.js';\n\nconst SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * A callback function responsible for rendering the results info.\n */\n template;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n searchClientRequestProperties;\n // local vars\n count = 0;\n range = [0, 0];\n responseTime = '0';\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n // local vars\n this.count = this.searchResultsCount;\n this.range[0] =\n this.searchResultsPage <= 1\n ? 1\n : this.searchResultsPerPage * (this.searchResultsPage - 1);\n this.range[1] = this.searchResultsPerPage * this.searchResultsPage;\n this.range[1] =\n this.range[1] > this.searchResultsCount\n ? this.searchResultsCount\n : this.range[1];\n this.responseTime = ((state.searchResponseTimeTaken || 0) * 1000).toFixed(2);\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n // Only hide if there's no search term AND no initialQuery AND no results\n if ((!this.searchTerm && !isInitialQuery) ||\n this.searchResultsCount === 0) {\n return null;\n }\n return (h(\"p\", { class: 'searchcraft-results-info' }, typeof this.template !== 'undefined'\n ? this.template({\n range: [Number(this.range[0]), Number(this.range[1])],\n count: this.count,\n responseTime: this.responseTime,\n }, { html })\n : `${formatNumberWithCommas(this.count)} results found in ${this.responseTime}ms`));\n }\n}, [768, \"searchcraft-results-info\", {\n \"template\": [16],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"searchClientRequestProperties\": [32],\n \"count\": [32],\n \"range\": [32],\n \"responseTime\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-results-info\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-results-info\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftResultsInfo$1);\n }\n break;\n } });\n}\n\nconst SearchcraftResultsInfo = SearchcraftResultsInfo$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftResultsInfo, defineCustomElement };\n//# sourceMappingURL=searchcraft-results-info.js.map\n\n//# sourceMappingURL=searchcraft-results-info.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { h as html } from './p-_aHgRsRD.js';\n\nconst SearchcraftSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResult extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n item;\n /**\n * The index.\n */\n index;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n documentPosition = 0;\n /**\n * A callback function responsible for rendering a result.\n */\n template;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n templateHtml;\n get hostElement() { return this; }\n core;\n cleanupCore;\n onCoreAvailable(core) {\n this.core = core;\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n if (this.item) {\n try {\n this.templateHtml = this.template?.(this.item.document, this.index, {\n html,\n source_index: this.item.source_index,\n });\n }\n catch (error) {\n console.error('Invalid search result template:', error);\n }\n }\n }\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n handleResultContainerClick = (event) => {\n if (!event.target) {\n return;\n }\n const target = event.target;\n const link = target.closest('a');\n if (!link ||\n !this.hostElement?.contains(link) ||\n !this.core ||\n !this.core.measureClient) {\n return;\n }\n const document_position = this.documentPosition;\n const search_term = this.core.store.getState().searchTerm;\n const number_of_documents = this.core.store.getState().searchClientResponseItems.length || 0;\n this.core.measureClient.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n };\n handleKeyDown = () => { };\n render() {\n if (!this.item) {\n return;\n }\n if (typeof this.template === 'undefined') {\n return (h(\"div\", { class: 'searchcraft-search-result searchcraft-search-result-no-template', onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }, Object.entries(this.item.document).map(([key, value]) => (h(\"p\", { key: key }, h(\"strong\", null, key), \": \", value)))));\n }\n return (h(\"div\", { class: 'searchcraft-search-result', innerHTML: this.templateHtml, onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }));\n }\n}, [768, \"searchcraft-search-result\", {\n \"item\": [16],\n \"index\": [2],\n \"documentPosition\": [2, \"document-position\"],\n \"template\": [16],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"templateHtml\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-result\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-result\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSearchResult);\n }\n break;\n } });\n}\n\nexport { SearchcraftSearchResult as S, defineCustomElement as d };\n//# sourceMappingURL=p-DotXR-Gz.js.map\n\n//# sourceMappingURL=p-DotXR-Gz.js.map","import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './p-DotXR-Gz.js';\n\nconst SearchcraftSearchResult = SearchcraftSearchResult$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResult, defineCustomElement };\n//# sourceMappingURL=searchcraft-search-result.js.map\n\n//# sourceMappingURL=searchcraft-search-result.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { d as defineCustomElement$4 } from './p-C1S92_N8.js';\nimport { d as defineCustomElement$3 } from './p-DjPZkCLP.js';\nimport { d as defineCustomElement$2 } from './p-DotXR-Gz.js';\n\nconst SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResults extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * A query that will appears when the component initializes or the search term is ''..\n */\n initialQuery;\n /**\n * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.\n */\n template;\n adClientResponseItems = [];\n config;\n isSearchInProgress = true;\n searchClientResponseItems;\n searchResultsPage;\n searchResultsPerPage;\n searchTerm = '';\n unsubscribe;\n cleanupCore;\n onCoreAvailable(core) {\n const state = core.store.getState();\n this.handleStateChange(state);\n this.searchClientResponseItems = state.searchClientResponseItems;\n this.searchTerm = state.searchTerm;\n this.config = state.core?.config;\n this.unsubscribe = core.store.subscribe((state) => this.handleStateChange(state));\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleStateChange(state) {\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.config = state.core?.config;\n this.isSearchInProgress = state.isSearchInProgress;\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchTerm = state.searchTerm;\n }\n renderEmptyState() {\n return (h(\"div\", { class: 'searchcraft-search-results-empty-state' }, h(\"slot\", { name: 'empty-search' })));\n }\n renderNoResultsFoundState() {\n return (h(\"div\", { class: 'searchcraft-search-results' }, h(\"div\", { class: 'searchcraft-search-results-error-message' }, h(\"searchcraft-error-message\", null, \"No search results found for \\\"\", this.searchTerm, \"\\\" query.\"))));\n }\n renderWithADMAds() {\n const items = this.searchClientResponseItems || [];\n return (h(\"div\", { class: 'searchcraft-search-results' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'adMarketplace', adClientResponseItem: item, key: item.id, renderPosition: 'top' }))), items.map((item, index) => (h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-search-results' }, itemsToRender);\n }\n renderWithNativoAds() {\n const itemsToRender = [];\n const interstitialStartIndex = this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval = this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-search-results' }, itemsToRender);\n }\n renderWithNoAds() {\n const items = this.searchClientResponseItems || [];\n return (h(\"div\", { class: 'searchcraft-search-results' }, items.map((item, index) => (h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));\n }\n render() {\n const searchClientResponseItems = this.searchClientResponseItems || [];\n if (searchClientResponseItems.length === 0 && !this.isSearchInProgress) {\n return this.renderEmptyState();\n }\n if (this.searchTerm.length > 0 &&\n searchClientResponseItems.length === 0 &&\n !this.isSearchInProgress) {\n return this.renderNoResultsFoundState();\n }\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n return this.renderWithNoAds();\n }\n}, [772, \"searchcraft-search-results\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"initialQuery\": [1, \"initial-query\"],\n \"template\": [16],\n \"adClientResponseItems\": [32],\n \"config\": [32],\n \"isSearchInProgress\": [32],\n \"searchClientResponseItems\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchTerm\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-results\", \"searchcraft-ad\", \"searchcraft-error-message\", \"searchcraft-search-result\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-results\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSearchResults$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-search-result\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSearchResults = SearchcraftSearchResults$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResults, defineCustomElement };\n//# sourceMappingURL=searchcraft-search-results.js.map\n\n//# sourceMappingURL=searchcraft-search-results.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-DO5g2x-l.js';\n\nconst SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.selectChange = createEvent(this, \"selectChange\");\n }\n /**\n * The caption displayed below the select input.\n */\n caption;\n /**\n * Whether the select input is disabled.\n */\n disabled = false;\n /**\n * The ID for the select input.\n */\n inputId;\n /**\n * The label of the select input.\n */\n label;\n /**\n * The ID for the label of the select input.\n */\n labelId;\n /**\n * The name of the select input.\n */\n name;\n /**\n * The options for the select input.\n */\n options = [];\n /**\n * The event fired when the select is changed.\n */\n selectChange;\n searchResultsPerPage;\n setSearchResultsPage = () => { };\n setSearchResultsPerPage = () => { };\n handleSelectChange = (event) => {\n this.selectChange.emit(event.target.value);\n };\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n render() {\n return (h(\"div\", { key: '15ecbf48c824a161cd83bdab99dace8e44f1ab39', class: 'searchcraft-select' }, this.label && (h(\"label\", { key: 'aba433ae9c27c9405099cffcef923c3ad22d7fda', class: 'searchcraft-select-label', id: this.labelId || `${this.inputId}-label`, htmlFor: this.inputId }, this.label)), h(\"div\", { key: '8df8a2ff05924c9c55cdd6e3827cd927cddab82a', class: 'searchcraft-select-input-wrapper' }, h(\"select\", { key: '1d5f492c2255f8ca1b6ea5e04a2726dda2f2c52f', \"aria-labelledby\": this.label ? this.labelId || `${this.inputId}-label` : undefined, class: 'searchcraft-select-input', disabled: this.disabled, id: this.inputId, name: this.name, onChange: this.handleSelectChange }, (typeof this.options === 'string'\n ? JSON.parse(this.options)\n : this.options).map(({ label, value, selected }) => {\n return (h(\"option\", { key: value, value: value, selected: selected }, label));\n })), h(\"svg\", { key: '0ec6892b529f2e70027aadea47208582a65a97b7', class: 'searchcraft-select-input-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", { key: 'bced6b62378491d1d1c629b602d7d033d912c761' }, \"Select dropdown icon\"), h(\"path\", { key: '659f8ebf9129e2e7941da949d29688c41c1472bb', d: 'M5 7.5L10 12.5L15 7.5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), this.caption && (h(\"p\", { key: '51217d926f68f79b6c3514f5fd769b56549fdce9', class: 'searchcraft-select-caption' }, this.caption))));\n }\n}, [768, \"searchcraft-select\", {\n \"caption\": [1],\n \"disabled\": [4],\n \"inputId\": [1, \"input-id\"],\n \"label\": [1],\n \"labelId\": [1, \"label-id\"],\n \"name\": [1],\n \"options\": [1],\n \"searchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32],\n \"setSearchResultsPerPage\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-select\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSelect);\n }\n break;\n } });\n}\n\nexport { SearchcraftSelect as S, defineCustomElement as d };\n//# sourceMappingURL=p-Dc7S4y3b.js.map\n\n//# sourceMappingURL=p-Dc7S4y3b.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { d as defineCustomElement$2 } from './p-Dc7S4y3b.js';\n\nconst SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]).\n * The base value is defined by the `searchResultsPerPage` option in the configuration.\n */\n increment = 20;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n searchResultsPagesCount;\n searchClientRequestProperties;\n // local vars\n initialSearchResultsPerPage;\n // store functions\n setSearchResultsPerPage = () => { };\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n this.setSearchResultsPerPage = state.setSearchResultsPerPage;\n });\n this.initialSearchResultsPerPage =\n core.store.getState().searchResultsPerPage;\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n // early return if there isn't a searchTerm (unless it's initialQuery) or there is 1 or fewer pages of results\n if ((!this.searchTerm && !isInitialQuery) ||\n this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: 'searchcraft-search-results-per-page' }, h(\"div\", { class: 'searchcraft-search-results-per-page-select' }, h(\"label\", { class: 'searchcraft-search-results-per-page-select-label', htmlFor: 'searchcraft-search-results-per-page-select-input' }, \"Results Per Page\"), h(\"div\", { class: 'searchcraft-search-results-per-page-select-input' }, h(\"searchcraft-select\", { inputId: 'searchcraft-search-results-per-page-select-input', name: 'results-per-page', options: [...Array(5)].map((_, index) => {\n const value = this.initialSearchResultsPerPage +\n Number(this.increment) * index;\n return {\n label: `${value}`,\n value,\n };\n }), onSelectChange: (event) => {\n this.setSearchResultsPerPage(Number(event.detail));\n this.setSearchResultsPage(1);\n } })))));\n }\n}, [768, \"searchcraft-search-results-per-page\", {\n \"increment\": [8],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"searchResultsPagesCount\": [32],\n \"searchClientRequestProperties\": [32],\n \"initialSearchResultsPerPage\": [32],\n \"setSearchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-results-per-page\", \"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-results-per-page\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSearchResultsPerPage$1);\n }\n break;\n case \"searchcraft-select\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSearchResultsPerPage = SearchcraftSearchResultsPerPage$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResultsPerPage, defineCustomElement };\n//# sourceMappingURL=searchcraft-search-results-per-page.js.map\n\n//# sourceMappingURL=searchcraft-search-results-per-page.js.map","import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './p-Dc7S4y3b.js';\n\nconst SearchcraftSelect = SearchcraftSelect$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSelect, defineCustomElement };\n//# sourceMappingURL=searchcraft-select.js.map\n\n//# sourceMappingURL=searchcraft-select.js.map","import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './p-BbSxfaD7.js';\n\nconst SearchcraftSlider = SearchcraftSlider$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSlider, defineCustomElement };\n//# sourceMappingURL=searchcraft-slider.js.map\n\n//# sourceMappingURL=searchcraft-slider.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\nimport { r as registry } from './p-D0j0UFpV.js';\nimport { p as purify } from './p-BlYgaV0q.js';\nimport { d as defineCustomElement$2 } from './p-B_415D4A.js';\n\n/**\n * marked v15.0.12 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n\n// src/defaults.ts\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nvar _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n// src/rules.ts\nvar noopTest = { exec: () => null };\nfunction edit(regex, opt = \"\") {\n let source = typeof regex === \"string\" ? regex : regex.source;\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === \"string\" ? val : val.source;\n valSource = valSource.replace(other.caret, \"$1\");\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nvar other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceTabs: /^\\t+/,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] /,\n listReplaceTask: /^\\[[ xX]\\] +/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^<a /i,\n endATag: /^<\\/a>/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^</,\n endAngleBracket: />$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, \"i\")\n};\nvar newline = /^(?:[ \\t]*(?:\\n|$))+/;\nvar blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nvar fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nvar hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nvar heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nvar bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nvar lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nvar lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g, \"\").getRegex();\nvar lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex();\nvar _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nvar blockText = /^[^\\n]+/;\nvar _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nvar def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\", _blockLabel).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nvar list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nvar _tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\";\nvar _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nvar html = edit(\n \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\n \"i\"\n).replace(\"comment\", _comment).replace(\"tag\", _tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nvar paragraph = edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", paragraph).getRegex();\nvar blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\nvar gfmTable = edit(\n \"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockGfm = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", gfmTable).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex()\n};\nvar blockPedantic = {\n ...blockNormal,\n html: edit(\n `^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`\n ).replace(\"comment\", _comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", lheading).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n};\nvar escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nvar inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nvar br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nvar inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\nvar _punctuation = /[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpace = /[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpace = /[^\\s\\p{P}\\p{S}]/u;\nvar punctuation = edit(/^((?![*_])punctSpace)/, \"u\").replace(/punctSpace/g, _punctuationOrSpace).getRegex();\nvar _punctuationGfmStrongEm = /(?!~)[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpaceGfmStrongEm = /(?!~)[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpaceGfmStrongEm = /(?:[^\\s\\p{P}\\p{S}]|~)/u;\nvar blockSkip = /\\[[^[\\]]*?\\]\\((?:\\\\.|[^\\\\\\(\\)]|\\((?:\\\\.|[^\\\\\\(\\)])*\\))*\\)|`[^`]*?`|<[^<>]*?>/g;\nvar emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/;\nvar emStrongLDelim = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongLDelimGfm = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimAstCore = \"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\";\nvar emStrongRDelimAst = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimUnd = edit(\n \"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\n \"gu\"\n).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar anyPunctuation = edit(/\\\\(punct)/, \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nvar _inlineComment = edit(_comment).replace(\"(?:-->|$)\", \"-->\").getRegex();\nvar tag = edit(\n \"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\"\n).replace(\"comment\", _inlineComment).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex();\nvar _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nvar link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\", _inlineLabel).replace(\"href\", /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nvar reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", _inlineLabel).replace(\"ref\", _blockLabel).getRegex();\nvar nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", _blockLabel).getRegex();\nvar reflinkSearch = edit(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", reflink).replace(\"nolink\", nolink).getRegex();\nvar inlineNormal = {\n _backpedal: noopTest,\n // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\nvar inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", _inlineLabel).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", _inlineLabel).getRegex()\n};\nvar inlineGfm = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\nvar inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace(\"{2,}\", \"*\").getRegex(),\n text: edit(inlineGfm.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n};\nvar block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nvar inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n// src/helpers.ts\nvar escapeReplacements = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#39;\"\n};\nvar getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape2(html2, encode) {\n if (encode) {\n if (other.escapeTest.test(html2)) {\n return html2.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html2)) {\n return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html2;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(other.percentDecode, \"%\");\n } catch {\n return null;\n }\n return href;\n}\nfunction splitCells(tableRow, count) {\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === \"\\\\\") escaped = !escaped;\n if (escaped) {\n return \"|\";\n } else {\n return \" |\";\n }\n }), cells = row.split(other.splitPipe);\n let i = 0;\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push(\"\");\n }\n }\n for (; i < cells.length; i++) {\n cells[i] = cells[i].trim().replace(other.slashPipe, \"|\");\n }\n return cells;\n}\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return \"\";\n }\n let suffLen = 0;\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && true) {\n suffLen++;\n } else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n return -1;\n}\n\n// src/Tokenizer.ts\nfunction outputLink(cap, link2, raw, lexer2, rules) {\n const href = link2.href;\n const title = link2.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, \"$1\");\n lexer2.state.inLink = true;\n const token = {\n type: cap[0].charAt(0) === \"!\" ? \"image\" : \"link\",\n raw,\n href,\n title,\n text,\n tokens: lexer2.inlineTokens(text)\n };\n lexer2.state.inLink = false;\n return token;\n}\nfunction indentCodeCompensation(raw, text, rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text.split(\"\\n\").map((node) => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n }).join(\"\\n\");\n}\nvar _Tokenizer = class {\n options;\n rules;\n // set by the lexer\n lexer;\n // set by the lexer\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: \"space\",\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(this.rules.other.codeRemoveIndent, \"\");\n return {\n type: \"code\",\n raw: cap[0],\n codeBlockStyle: \"indented\",\n text: !this.options.pedantic ? rtrim(text, \"\\n\") : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || \"\", this.rules);\n return {\n type: \"code\",\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, \"#\");\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n text = trimmed.trim();\n }\n }\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: \"hr\",\n raw: rtrim(cap[0], \"\\n\")\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], \"\\n\").split(\"\\n\");\n let raw = \"\";\n let text = \"\";\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join(\"\\n\");\n const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, \"\\n $1\").replace(this.rules.other.blockquoteSetextReplace2, \"\");\n raw = raw ? `${raw}\n${currentRaw}` : currentRaw;\n text = text ? `${text}\n${currentText}` : currentText;\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"code\") {\n break;\n } else if (lastToken?.type === \"blockquote\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === \"list\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1).raw.length).split(\"\\n\");\n continue;\n }\n }\n return {\n type: \"blockquote\",\n raw,\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list2 = {\n type: \"list\",\n raw: \"\",\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : \"\",\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : \"[*+-]\";\n }\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n while (src) {\n let endEarly = false;\n let raw = \"\";\n let itemContents = \"\";\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) {\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split(\"\\n\", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => \" \".repeat(3 * t.length));\n let nextLine = src.split(\"\\n\", 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = cap[2].search(this.rules.other.nonSpaceChar);\n indent = indent > 4 ? 1 : indent;\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && this.rules.other.blankLine.test(nextLine)) {\n raw += nextLine + \"\\n\";\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n while (src) {\n const rawLine = src.split(\"\\n\", 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, \" \");\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, \" \");\n }\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n if (hrRegex.test(nextLine)) {\n break;\n }\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {\n itemContents += \"\\n\" + nextLineWithoutTabs.slice(indent);\n } else {\n if (blankLine) {\n break;\n }\n if (line.replace(this.rules.other.tabCharGlobal, \" \").search(this.rules.other.nonSpaceChar) >= 4) {\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += \"\\n\" + nextLine;\n }\n if (!blankLine && !nextLine.trim()) {\n blankLine = true;\n }\n raw += rawLine + \"\\n\";\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n if (!list2.loose) {\n if (endsWithBlankLine) {\n list2.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n if (this.options.gfm) {\n istask = this.rules.other.listIsTask.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== \"[ ] \";\n itemContents = itemContents.replace(this.rules.other.listReplaceTask, \"\");\n }\n }\n list2.items.push({\n type: \"list_item\",\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list2.raw += raw;\n }\n const lastItem = list2.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n return;\n }\n list2.raw = list2.raw.trimEnd();\n for (let i = 0; i < list2.items.length; i++) {\n this.lexer.state.top = false;\n list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []);\n if (!list2.loose) {\n const spacers = list2.items[i].tokens.filter((t) => t.type === \"space\");\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw));\n list2.loose = hasMultipleLineBreaks;\n }\n }\n if (list2.loose) {\n for (let i = 0; i < list2.items.length; i++) {\n list2.items[i].loose = true;\n }\n }\n return list2;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: \"html\",\n block: true,\n raw: cap[0],\n pre: cap[1] === \"pre\" || cap[1] === \"script\" || cap[1] === \"style\",\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, \" \");\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\";\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : cap[3];\n return {\n type: \"def\",\n tag: tag2,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, \"\").split(\"|\");\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, \"\").split(\"\\n\") : [];\n const item = {\n type: \"table\",\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n return;\n }\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push(\"right\");\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push(\"center\");\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push(\"left\");\n } else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i]\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i]\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[2].charAt(0) === \"=\" ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === \"\\n\" ? cap[1].slice(0, -1) : cap[1];\n return {\n type: \"paragraph\",\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: \"escape\",\n raw: cap[0],\n text: cap[1]\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: \"html\",\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n if (!this.rules.other.endAngleBracket.test(trimmedUrl)) {\n return;\n }\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), \"\\\\\");\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n const lastParenIndex = findClosingBracket(cap[2], \"()\");\n if (lastParenIndex === -2) {\n return;\n }\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf(\"!\") === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = \"\";\n }\n }\n let href = cap[2];\n let title = \"\";\n if (this.options.pedantic) {\n const link2 = this.rules.other.pedanticHrefTitle.exec(href);\n if (link2) {\n href = link2[1];\n title = link2[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : \"\";\n }\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) {\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, \"$1\") : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, \"$1\") : title\n }, cap[0], this.lexer, this.rules);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, \" \");\n const link2 = links[linkString.toLowerCase()];\n if (!link2) {\n const text = cap[0].charAt(0);\n return {\n type: \"text\",\n raw: text,\n text\n };\n }\n return outputLink(cap, link2, cap[0], this.lexer, this.rules);\n }\n }\n emStrong(src, maskedSrc, prevChar = \"\") {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n const nextChar = match[1] || match[2] || \"\";\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue;\n rLength = [...rDelim].length;\n if (match[3] || match[4]) {\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue;\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0) continue;\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n if (Math.min(lLength, rLength) % 2) {\n const text2 = raw.slice(1, -1);\n return {\n type: \"em\",\n raw,\n text: text2,\n tokens: this.lexer.inlineTokens(text2)\n };\n }\n const text = raw.slice(2, -2);\n return {\n type: \"strong\",\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, \" \");\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: \"codespan\",\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: \"br\",\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: \"del\",\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[1];\n href = \"mailto:\" + text;\n } else {\n text = cap[1];\n href = text;\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[0];\n href = \"mailto:\" + text;\n } else {\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? \"\";\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === \"www.\") {\n href = \"http://\" + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n escaped\n };\n }\n }\n};\n\n// src/Lexer.ts\nvar _Lexer = class __Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options2) {\n this.tokens = [];\n this.tokens.links = /* @__PURE__ */ Object.create(null);\n this.options = options2 || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src.replace(other.carriageReturn, \"\\n\");\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, \" \").replace(other.spaceLine, \"\");\n }\n while (src) {\n let token;\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== void 0) {\n lastToken.raw += \"\\n\";\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.raw;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === \"paragraph\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let maskedSrc = src;\n let match = null;\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf(\"[\") + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"++\" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n let keepPrevChar = false;\n let prevChar = \"\";\n while (src) {\n if (!keepPrevChar) {\n prevChar = \"\";\n }\n keepPrevChar = false;\n let token;\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === \"text\" && lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== \"_\") {\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n};\n\n// src/Renderer.ts\nvar _Renderer = class {\n options;\n parser;\n // set by the parser\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(token) {\n return \"\";\n }\n code({ text, lang, escaped }) {\n const langString = (lang || \"\").match(other.notSpaceStart)?.[0];\n const code = text.replace(other.endingNewline, \"\") + \"\\n\";\n if (!langString) {\n return \"<pre><code>\" + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n return '<pre><code class=\"language-' + escape2(langString) + '\">' + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `<blockquote>\n${body}</blockquote>\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\n`;\n }\n hr(token) {\n return \"<hr>\\n\";\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = \"\";\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? \"ol\" : \"ul\";\n const startAttr = ordered && start !== 1 ? ' start=\"' + start + '\"' : \"\";\n return \"<\" + type + startAttr + \">\\n\" + body + \"</\" + type + \">\\n\";\n }\n listitem(item) {\n let itemBody = \"\";\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens[0]?.type === \"paragraph\") {\n item.tokens[0].text = checkbox + \" \" + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === \"text\") {\n item.tokens[0].tokens[0].text = checkbox + \" \" + escape2(item.tokens[0].tokens[0].text);\n item.tokens[0].tokens[0].escaped = true;\n }\n } else {\n item.tokens.unshift({\n type: \"text\",\n raw: checkbox + \" \",\n text: checkbox + \" \",\n escaped: true\n });\n }\n } else {\n itemBody += checkbox + \" \";\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `<li>${itemBody}</li>\n`;\n }\n checkbox({ checked }) {\n return \"<input \" + (checked ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph({ tokens }) {\n return `<p>${this.parser.parseInline(tokens)}</p>\n`;\n }\n table(token) {\n let header = \"\";\n let cell = \"\";\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = \"\";\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = \"\";\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body) body = `<tbody>${body}</tbody>`;\n return \"<table>\\n<thead>\\n\" + header + \"</thead>\\n\" + body + \"</table>\\n\";\n }\n tablerow({ text }) {\n return `<tr>\n${text}</tr>\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? \"th\" : \"td\";\n const tag2 = token.align ? `<${type} align=\"${token.align}\">` : `<${type}>`;\n return tag2 + content + `</${type}>\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `<strong>${this.parser.parseInline(tokens)}</strong>`;\n }\n em({ tokens }) {\n return `<em>${this.parser.parseInline(tokens)}</em>`;\n }\n codespan({ text }) {\n return `<code>${escape2(text, true)}</code>`;\n }\n br(token) {\n return \"<br>\";\n }\n del({ tokens }) {\n return `<del>${this.parser.parseInline(tokens)}</del>`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + escape2(title) + '\"';\n }\n out += \">\" + text + \"</a>\";\n return out;\n }\n image({ href, title, text, tokens }) {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer);\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escape2(text);\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${escape2(title)}\"`;\n }\n out += \">\";\n return out;\n }\n text(token) {\n return \"tokens\" in token && token.tokens ? this.parser.parseInline(token.tokens) : \"escaped\" in token && token.escaped ? token.text : escape2(token.text);\n }\n};\n\n// src/TextRenderer.ts\nvar _TextRenderer = class {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return \"\" + text;\n }\n image({ text }) {\n return \"\" + text;\n }\n br() {\n return \"\";\n }\n};\n\n// src/Parser.ts\nvar _Parser = class __Parser {\n options;\n renderer;\n textRenderer;\n constructor(options2) {\n this.options = options2 || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(genericToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"space\": {\n out += this.renderer.space(token);\n continue;\n }\n case \"hr\": {\n out += this.renderer.hr(token);\n continue;\n }\n case \"heading\": {\n out += this.renderer.heading(token);\n continue;\n }\n case \"code\": {\n out += this.renderer.code(token);\n continue;\n }\n case \"table\": {\n out += this.renderer.table(token);\n continue;\n }\n case \"blockquote\": {\n out += this.renderer.blockquote(token);\n continue;\n }\n case \"list\": {\n out += this.renderer.list(token);\n continue;\n }\n case \"html\": {\n out += this.renderer.html(token);\n continue;\n }\n case \"paragraph\": {\n out += this.renderer.paragraph(token);\n continue;\n }\n case \"text\": {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === \"text\") {\n textToken = tokens[++i];\n body += \"\\n\" + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: \"paragraph\",\n raw: body,\n text: body,\n tokens: [{ type: \"text\", raw: body, text: body, escaped: true }]\n });\n } else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer = this.renderer) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(anyToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"escape\": {\n out += renderer.text(token);\n break;\n }\n case \"html\": {\n out += renderer.html(token);\n break;\n }\n case \"link\": {\n out += renderer.link(token);\n break;\n }\n case \"image\": {\n out += renderer.image(token);\n break;\n }\n case \"strong\": {\n out += renderer.strong(token);\n break;\n }\n case \"em\": {\n out += renderer.em(token);\n break;\n }\n case \"codespan\": {\n out += renderer.codespan(token);\n break;\n }\n case \"br\": {\n out += renderer.br(token);\n break;\n }\n case \"del\": {\n out += renderer.del(token);\n break;\n }\n case \"text\": {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n};\n\n// src/Hooks.ts\nvar _Hooks = class {\n options;\n block;\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n static passThroughHooks = /* @__PURE__ */ new Set([\n \"preprocess\",\n \"postprocess\",\n \"processAllTokens\"\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html2) {\n return html2;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n /**\n * Provide function to tokenize markdown\n */\n provideLexer() {\n return this.block ? _Lexer.lex : _Lexer.lexInline;\n }\n /**\n * Provide function to parse tokens\n */\n provideParser() {\n return this.block ? _Parser.parse : _Parser.parseInline;\n }\n};\n\n// src/Instance.ts\nvar Marked = class {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case \"table\": {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case \"list\": {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens2 = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens2, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n const opts = { ...pack };\n opts.async = this.defaults.async || opts.async || false;\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error(\"extension name required\");\n }\n if (\"renderer\" in ext) {\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n extensions.renderers[ext.name] = function(...args2) {\n let ret = ext.renderer.apply(this, args2);\n if (ret === false) {\n ret = prevRenderer.apply(this, args2);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (\"tokenizer\" in ext) {\n if (!ext.level || ext.level !== \"block\" && ext.level !== \"inline\") {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) {\n if (ext.level === \"block\") {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === \"inline\") {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (\"childTokens\" in ext && ext.childTokens) {\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if ([\"options\", \"parser\"].includes(prop)) {\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n renderer[rendererProp] = (...args2) => {\n let ret = rendererFunc.apply(renderer, args2);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args2);\n }\n return ret || \"\";\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if ([\"options\", \"rules\", \"lexer\"].includes(prop)) {\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n tokenizer[tokenizerProp] = (...args2) => {\n let ret = tokenizerFunc.apply(tokenizer, args2);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args2);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if ([\"options\", \"block\"].includes(prop)) {\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => {\n return prevHook.call(hooks, ret2);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[hooksProp] = (...args2) => {\n let ret = hooksFunc.apply(hooks, args2);\n if (ret === false) {\n ret = prevHook.apply(hooks, args2);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n if (pack.walkTokens) {\n const walkTokens2 = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens2) {\n values = values.concat(walkTokens2.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options2) {\n return _Lexer.lex(src, options2 ?? this.defaults);\n }\n parser(tokens, options2) {\n return _Parser.parse(tokens, options2 ?? this.defaults);\n }\n parseMarkdown(blockType) {\n const parse2 = (src, options2) => {\n const origOpt = { ...options2 };\n const opt = { ...this.defaults, ...origOpt };\n const throwError = this.onError(!!opt.silent, !!opt.async);\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n }\n if (typeof src === \"undefined\" || src === null) {\n return throwError(new Error(\"marked(): input parameter is undefined or null\"));\n }\n if (typeof src !== \"string\") {\n return throwError(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(src) + \", string expected\"));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline;\n const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline;\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer2(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html2 = parser2(tokens, opt);\n if (opt.hooks) {\n html2 = opt.hooks.postprocess(html2);\n }\n return html2;\n } catch (e) {\n return throwError(e);\n }\n };\n return parse2;\n }\n onError(silent, async) {\n return (e) => {\n e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\";\n if (silent) {\n const msg = \"<p>An error occurred:</p><pre>\" + escape2(e.message + \"\", true) + \"</pre>\";\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n};\n\n// src/marked.ts\nvar markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\nmarked.options = marked.setOptions = function(options2) {\n markedInstance.setOptions(options2);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\nmarked.use = function(...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.walkTokens = function(tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\nmarked.parseInline = markedInstance.parseInline;\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\n\nconst SearchcraftSummaryBox$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSummaryBox extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n summary = '';\n isLoading = false;\n isSummaryNotEnabled = false;\n get hostElement() { return this; }\n unsubscribe;\n cleanupCore;\n onCoreAvailable(core) {\n core.store.setState({ hasSummaryBox: true });\n this.unsubscribe = core.store.subscribe(this.handleStateChange.bind(this));\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n /**\n * Handles state changes from the store and updates component state.\n */\n handleStateChange(state) {\n this.isLoading = state.isSummaryLoading;\n this.isSummaryNotEnabled = state.isSummaryNotEnabled;\n this.summary = this.sanitizeMarkdown(state.summary);\n // Update DOM directly for performance (avoids re-render)\n this.updateContentElement(state.summary);\n }\n /**\n * Sanitizes and converts markdown to HTML.\n */\n sanitizeMarkdown(markdown) {\n return purify.sanitize(marked.parse(markdown));\n }\n /**\n * Updates the content element directly without triggering a re-render.\n */\n updateContentElement(markdown) {\n const contentElement = this.hostElement?.querySelector('.searchcraft-summary-box-content');\n if (contentElement) {\n contentElement.innerHTML = this.sanitizeMarkdown(markdown);\n }\n }\n /**\n * Renders the appropriate content based on current state.\n */\n renderContent() {\n if (this.isLoading) {\n return h(\"searchcraft-loading\", { label: 'LOADING' });\n }\n if (this.isSummaryNotEnabled) {\n return (h(\"div\", { class: 'searchcraft-summary-box-content' }, \"AI summaries are not enabled\"));\n }\n return h(\"div\", { class: 'searchcraft-summary-box-content' }, this.summary);\n }\n render() {\n return h(\"div\", { key: '94033d861f93036430eca149b3c017fb6099fb17', class: 'searchcraft-summary-box' }, this.renderContent());\n }\n}, [768, \"searchcraft-summary-box\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"summary\": [32],\n \"isLoading\": [32],\n \"isSummaryNotEnabled\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-summary-box\", \"searchcraft-loading\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-summary-box\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSummaryBox$1);\n }\n break;\n case \"searchcraft-loading\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSummaryBox = SearchcraftSummaryBox$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSummaryBox, defineCustomElement };\n//# sourceMappingURL=searchcraft-summary-box.js.map\n\n//# sourceMappingURL=searchcraft-summary-box.js.map","import { p as proxyCustomElement, H, h } from './p-DO5g2x-l.js';\n\nvar styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:\"›\";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:\"\";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading-label{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);margin-top:40px;letter-spacing:2px;color:#828282;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-loading-bars{margin:0 auto;width:60px;height:50px;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);display:flex;gap:2px}.searchcraft-loading-bars>div{height:100%;width:8px;-webkit-animation:delay .8s infinite ease-in-out;animation:delay .8s infinite ease-in-out;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-1{background-color:var(--sc-surface-brand-primary);opacity:.1}.searchcraft-loading-bars .searchcraft-loading-bar-2{background-color:var(--sc-surface-brand-primary);animation-delay:-0.7s;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-3{background-color:var(--sc-surface-brand-primary);animation-delay:-0.6s;opacity:.3}.searchcraft-loading-bars .searchcraft-loading-bar-4{background-color:var(--sc-surface-brand-primary);animation-delay:-0.5s;opacity:.4}.searchcraft-loading-bars .searchcraft-loading-bar-5{background-color:var(--sc-surface-brand-primary);animation-delay:-0.4s;opacity:.5}.searchcraft-loading-bars .searchcraft-loading-bar-6{background-color:var(--sc-surface-brand-primary);animation-delay:-0.3s;opacity:.6}@keyframes delay{0%,40%,100%{transform:scaleY(0.05)}20%{transform:scaleY(1)}}/*# sourceMappingURL=hologram.css.map */\n`;\n\nconst SearchcraftTheme$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftTheme extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n render() {\n return h(\"style\", { key: '13c28bb6075d6fcbec33938fd2227d9fb6129bf2' }, styles);\n }\n}, [256, \"searchcraft-theme\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-theme\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-theme\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftTheme$1);\n }\n break;\n } });\n}\n\nconst SearchcraftTheme = SearchcraftTheme$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftTheme, defineCustomElement };\n//# sourceMappingURL=searchcraft-theme.js.map\n\n//# sourceMappingURL=searchcraft-theme.js.map","import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './p-D5p2scT9.js';\n\nconst SearchcraftToggleButton = SearchcraftToggleButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftToggleButton, defineCustomElement };\n//# sourceMappingURL=searchcraft-toggle-button.js.map\n\n//# sourceMappingURL=searchcraft-toggle-button.js.map","import { defineCustomElement as define_searchcraft_ad } from './searchcraft-ad.js';\nimport { defineCustomElement as define_searchcraft_button } from './searchcraft-button.js';\nimport { defineCustomElement as define_searchcraft_error_message } from './searchcraft-error-message.js';\nimport { defineCustomElement as define_searchcraft_facet_list } from './searchcraft-facet-list.js';\nimport { defineCustomElement as define_searchcraft_filter_panel } from './searchcraft-filter-panel.js';\nimport { defineCustomElement as define_searchcraft_input_form } from './searchcraft-input-form.js';\nimport { defineCustomElement as define_searchcraft_input_label } from './searchcraft-input-label.js';\nimport { defineCustomElement as define_searchcraft_loading } from './searchcraft-loading.js';\nimport { defineCustomElement as define_searchcraft_pagination } from './searchcraft-pagination.js';\nimport { defineCustomElement as define_searchcraft_popover_button } from './searchcraft-popover-button.js';\nimport { defineCustomElement as define_searchcraft_popover_footer } from './searchcraft-popover-footer.js';\nimport { defineCustomElement as define_searchcraft_popover_form } from './searchcraft-popover-form.js';\nimport { defineCustomElement as define_searchcraft_popover_list_item } from './searchcraft-popover-list-item.js';\nimport { defineCustomElement as define_searchcraft_popover_list_view } from './searchcraft-popover-list-view.js';\nimport { defineCustomElement as define_searchcraft_results_info } from './searchcraft-results-info.js';\nimport { defineCustomElement as define_searchcraft_search_result } from './searchcraft-search-result.js';\nimport { defineCustomElement as define_searchcraft_search_results_per_page } from './searchcraft-search-results-per-page.js';\nimport { defineCustomElement as define_searchcraft_search_results } from './searchcraft-search-results.js';\nimport { defineCustomElement as define_searchcraft_select } from './searchcraft-select.js';\nimport { defineCustomElement as define_searchcraft_slider } from './searchcraft-slider.js';\nimport { defineCustomElement as define_searchcraft_summary_box } from './searchcraft-summary-box.js';\nimport { defineCustomElement as define_searchcraft_theme } from './searchcraft-theme.js';\nimport { defineCustomElement as define_searchcraft_toggle_button } from './searchcraft-toggle-button.js';\n\nexport const defineCustomElements = () => {\n define_searchcraft_ad();\n define_searchcraft_button();\n define_searchcraft_error_message();\n define_searchcraft_facet_list();\n define_searchcraft_filter_panel();\n define_searchcraft_input_form();\n define_searchcraft_input_label();\n define_searchcraft_loading();\n define_searchcraft_pagination();\n define_searchcraft_popover_button();\n define_searchcraft_popover_footer();\n define_searchcraft_popover_form();\n define_searchcraft_popover_list_item();\n define_searchcraft_popover_list_view();\n define_searchcraft_results_info();\n define_searchcraft_search_result();\n define_searchcraft_search_results_per_page();\n define_searchcraft_search_results();\n define_searchcraft_select();\n define_searchcraft_slider();\n define_searchcraft_summary_box();\n define_searchcraft_theme();\n define_searchcraft_toggle_button();\n};\n\n// Register the function with globalThis so that core can call it\nglobalThis.__scDefineCustomElements__ = defineCustomElements;","export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-DO5g2x-l.js';\nimport { n as nanoid } from './p-C1S92_N8.js';\nimport { D as DEFAULT_CORE_INSTANCE_ID, r as registry } from './p-D0j0UFpV.js';\nexport { SearchcraftAd, defineCustomElement as defineCustomElementSearchcraftAd } from './searchcraft-ad.js';\nexport { SearchcraftButton, defineCustomElement as defineCustomElementSearchcraftButton } from './searchcraft-button.js';\nexport { SearchcraftErrorMessage, defineCustomElement as defineCustomElementSearchcraftErrorMessage } from './searchcraft-error-message.js';\nexport { SearchcraftFacetList, defineCustomElement as defineCustomElementSearchcraftFacetList } from './searchcraft-facet-list.js';\nexport { SearchcraftFilterPanel, defineCustomElement as defineCustomElementSearchcraftFilterPanel } from './searchcraft-filter-panel.js';\nexport { SearchcraftInputForm, defineCustomElement as defineCustomElementSearchcraftInputForm } from './searchcraft-input-form.js';\nexport { SearchcraftInputLabel, defineCustomElement as defineCustomElementSearchcraftInputLabel } from './searchcraft-input-label.js';\nexport { SearchcraftLoading, defineCustomElement as defineCustomElementSearchcraftLoading } from './searchcraft-loading.js';\nexport { SearchcraftPagination, defineCustomElement as defineCustomElementSearchcraftPagination } from './searchcraft-pagination.js';\nexport { SearchcraftPopoverButton, defineCustomElement as defineCustomElementSearchcraftPopoverButton } from './searchcraft-popover-button.js';\nexport { SearchcraftPopoverFooter, defineCustomElement as defineCustomElementSearchcraftPopoverFooter } from './searchcraft-popover-footer.js';\nexport { SearchcraftPopoverForm, defineCustomElement as defineCustomElementSearchcraftPopoverForm } from './searchcraft-popover-form.js';\nexport { SearchcraftPopoverListItem, defineCustomElement as defineCustomElementSearchcraftPopoverListItem } from './searchcraft-popover-list-item.js';\nexport { SearchcraftPopoverListView, defineCustomElement as defineCustomElementSearchcraftPopoverListView } from './searchcraft-popover-list-view.js';\nexport { SearchcraftResultsInfo, defineCustomElement as defineCustomElementSearchcraftResultsInfo } from './searchcraft-results-info.js';\nexport { SearchcraftSearchResult, defineCustomElement as defineCustomElementSearchcraftSearchResult } from './searchcraft-search-result.js';\nexport { SearchcraftSearchResults, defineCustomElement as defineCustomElementSearchcraftSearchResults } from './searchcraft-search-results.js';\nexport { SearchcraftSearchResultsPerPage, defineCustomElement as defineCustomElementSearchcraftSearchResultsPerPage } from './searchcraft-search-results-per-page.js';\nexport { SearchcraftSelect, defineCustomElement as defineCustomElementSearchcraftSelect } from './searchcraft-select.js';\nexport { SearchcraftSlider, defineCustomElement as defineCustomElementSearchcraftSlider } from './searchcraft-slider.js';\nexport { SearchcraftSummaryBox, defineCustomElement as defineCustomElementSearchcraftSummaryBox } from './searchcraft-summary-box.js';\nexport { SearchcraftTheme, defineCustomElement as defineCustomElementSearchcraftTheme } from './searchcraft-theme.js';\nexport { SearchcraftToggleButton, defineCustomElement as defineCustomElementSearchcraftToggleButton } from './searchcraft-toggle-button.js';\n\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevel[LogLevel[\"INFO\"] = 1] = \"INFO\";\n LogLevel[LogLevel[\"WARN\"] = 2] = \"WARN\";\n LogLevel[LogLevel[\"ERROR\"] = 3] = \"ERROR\";\n LogLevel[LogLevel[\"NONE\"] = 4] = \"NONE\";\n})(LogLevel || (LogLevel = {}));\nclass SearchcraftLogger {\n logLevel;\n logFormatter;\n constructor(options) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(level, message) {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n debug(message) {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n info(message) {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n warn(message) {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n error(message) {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n log(level, message) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\nconst Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n\nfunction e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e));}catch(e){a(e);}}function u(e){try{c(t.throw(e));}catch(e){a(e);}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r);}))).then(i,u);}c((t=t.apply(e,[])).next());}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:false};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=r.call(e,i);}catch(e){u=[6,e],t=0;}finally{n=o=0;}if(5&u[0])throw u[1];return {value:u[0]?u[1]:void 0,done:true}}([u,c])}}}\"function\"==typeof SuppressedError&&SuppressedError;var n={exclude:[]};var o={},a={timeout:\"true\"},i=function(e,r){\"undefined\"!=typeof window&&(o[e]=r);},u=function(){return Object.fromEntries(Object.entries(o).filter((function(e){var r,t=e[0];return !(null===(r=null==n?void 0:n.exclude)||void 0===r?void 0:r.includes(t))})).map((function(e){return [e[0],(0, e[1])()]})))};function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<<r|e>>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o<n;o++){var a=t.subarray(4*o,4*(o+1));a[0]=Math.imul(a[0],s[0]),a[0]=l(a[0],15),a[0]=Math.imul(a[0],s[1]),r[0]=r[0]^a[0],r[0]=l(r[0],19),r[0]=r[0]+r[1],r[0]=Math.imul(r[0],5)+1444728091,a[1]=Math.imul(a[1],s[1]),a[1]=l(a[1],16),a[1]=Math.imul(a[1],s[2]),r[1]=r[1]^a[1],r[1]=l(r[1],17),r[1]=r[1]+r[2],r[1]=Math.imul(r[1],5)+197830471,a[2]=Math.imul(a[2],s[2]),a[2]=l(a[2],17),a[2]=Math.imul(a[2],s[3]),r[2]=r[2]^a[2],r[2]=l(r[2],15),r[2]=r[2]+r[3],r[2]=Math.imul(r[2],5)+2530024501,a[3]=Math.imul(a[3],s[3]),a[3]=l(a[3],18),a[3]=Math.imul(a[3],s[0]),r[3]=r[3]^a[3],r[3]=l(r[3],13),r[3]=r[3]+r[0],r[3]=Math.imul(r[3],5)+850148119;}}(e,t),function(e,r){var n=e.byteLength/16|0,t=e.byteLength%16,o=new Uint32Array(4),a=new Uint8Array(e,16*n,t);switch(t){case 15:o[3]=o[3]^a[14]<<16;case 14:o[3]=o[3]^a[13]<<8;case 13:o[3]=o[3]^a[12]<<0,o[3]=Math.imul(o[3],s[3]),o[3]=l(o[3],18),o[3]=Math.imul(o[3],s[0]),r[3]=r[3]^o[3];case 12:o[2]=o[2]^a[11]<<24;case 11:o[2]=o[2]^a[10]<<16;case 10:o[2]=o[2]^a[9]<<8;case 9:o[2]=o[2]^a[8]<<0,o[2]=Math.imul(o[2],s[2]),o[2]=l(o[2],17),o[2]=Math.imul(o[2],s[3]),r[2]=r[2]^o[2];case 8:o[1]=o[1]^a[7]<<24;case 7:o[1]=o[1]^a[6]<<16;case 6:o[1]=o[1]^a[5]<<8;case 5:o[1]=o[1]^a[4]<<0,o[1]=Math.imul(o[1],s[1]),o[1]=l(o[1],16),o[1]=Math.imul(o[1],s[2]),r[1]=r[1]^o[1];case 4:o[0]=o[0]^a[3]<<24;case 3:o[0]=o[0]^a[2]<<16;case 2:o[0]=o[0]^a[1]<<8;case 1:o[0]=o[0]^a[0]<<0,o[0]=Math.imul(o[0],s[0]),o[0]=l(o[0],15),o[0]=Math.imul(o[0],s[1]),r[0]=r[0]^o[0];}}(e,t),function(e,r){r[0]=r[0]^e.byteLength,r[1]=r[1]^e.byteLength,r[2]=r[2]^e.byteLength,r[3]=r[3]^e.byteLength,r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0,r[0]=c(r[0]),r[1]=c(r[1]),r[2]=c(r[2]),r[3]=c(r[3]),r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0;}(e,t);var o=new Uint8Array(t.buffer);return Array.from(o).map((function(e){return e.toString(16).padStart(2,\"0\")})).join(\"\")}function d(e,r){return new Promise((function(n){setTimeout((function(){return n(r)}),e);}))}function m(e,r,n){return Promise.all(e.map((function(e){return Promise.race([e,d(r,n)])})))}function v(){return e(this,void 0,void 0,(function(){var e,t,o,i,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,m(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i=o.filter((function(e){return void 0!==e})),c={},i.forEach((function(e,r){c[t[r]]=e;})),[2,p(c,n.exclude||[])];case 2:throw r.sent();case 3:return [2]}}))}))}function p(e,r){var n={},t=function(t){if(e.hasOwnProperty(t)){var o=e[t];if(\"object\"!=typeof o||Array.isArray(o))r.includes(t)||(n[t]=o);else {var a=p(o,r.map((function(e){return e.startsWith(t+\".\")?e.slice(t.length+1):e})));Object.keys(a).length>0&&(n[t]=a);}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),[2,t.toString()];case 2:throw r.sent();case 3:return [2]}}))}))}function y(e){for(var r=0,n=0;n<e.length;++n)r+=Math.abs(e[n]);return r}function b(e,r,n){for(var t=[],o=0;o<e[0].data.length;o++){for(var a=[],i=0;i<e.length;i++)a.push(e[i].data[o]);t.push(S(a));}var u=new Uint8ClampedArray(t);return new ImageData(u,r,n)}function S(e){if(0===e.length)return 0;for(var r={},n=0,t=e;n<t.length;n++){r[a=t[n]]=(r[a]||0)+1;}var o=e[0];for(var a in r)r[a]>r[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return {name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/];n<t.length;n++){var o=t[n],a=e.match(o);if(a&&a.groups)return {name:r[a.groups.name]||a.groups.name,version:a.groups.version}}return {name:\"unknown\",version:\"unknown\"}}i(\"audio\",(function(){return e(this,void 0,void 0,(function(){return r(this,(function(e){return [2,new Promise((function(e,r){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),t=n.createBufferSource(),o=n.createOscillator();o.frequency.value=1e3;var a,i=n.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.2,o.connect(i),i.connect(n.destination),o.start(),n.oncomplete=function(r){a=r.renderedBuffer.getChannelData(0),e({sampleHash:y(a),oscillator:o.type,maxChannels:n.destination.maxChannelCount,channelCountMode:t.channelCountMode});},n.startRendering();}catch(e){console.error(\"Error creating audio fingerprint:\",e),r(e);}}))]}))}))}));var E=\"SamsungBrowser\"!==M().name?1:3,P=280,A=20;\"Firefox\"!=M().name&&i(\"canvas\",(function(){return document.createElement(\"canvas\").getContext(\"2d\"),new Promise((function(e){var r=Array.from({length:E},(function(){return function(){var e=document.createElement(\"canvas\"),r=e.getContext(\"2d\");if(!r)return new ImageData(1,1);e.width=P,e.height=A;var n=r.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,\"red\"),n.addColorStop(1/6,\"orange\"),n.addColorStop(2/6,\"yellow\"),n.addColorStop(.5,\"green\"),n.addColorStop(4/6,\"blue\"),n.addColorStop(5/6,\"indigo\"),n.addColorStop(1,\"violet\"),r.fillStyle=n,r.fillRect(0,0,e.width,e.height);var t=\"Random Text WMwmil10Oo\";r.font=\"23.123px Arial\",r.fillStyle=\"black\",r.fillText(t,-5,15),r.fillStyle=\"rgba(0, 0, 255, 0.5)\",r.fillText(t,-3.3,17.7),r.beginPath(),r.moveTo(0,0),r.lineTo(2*e.width/7,e.height),r.strokeStyle=\"white\",r.lineWidth=2,r.stroke();var o=r.getImageData(0,0,e.width,e.height);return o}()}));e({commonImageDataHash:f(b(r,P,A).data.toString()).toString()});}))}));var C,x=[\"Arial\",\"Arial Black\",\"Arial Narrow\",\"Arial Rounded MT\",\"Arimo\",\"Archivo\",\"Barlow\",\"Bebas Neue\",\"Bitter\",\"Bookman\",\"Calibri\",\"Cabin\",\"Candara\",\"Century\",\"Century Gothic\",\"Comic Sans MS\",\"Constantia\",\"Courier\",\"Courier New\",\"Crimson Text\",\"DM Mono\",\"DM Sans\",\"DM Serif Display\",\"DM Serif Text\",\"Dosis\",\"Droid Sans\",\"Exo\",\"Fira Code\",\"Fira Sans\",\"Franklin Gothic Medium\",\"Garamond\",\"Geneva\",\"Georgia\",\"Gill Sans\",\"Helvetica\",\"Impact\",\"Inconsolata\",\"Indie Flower\",\"Inter\",\"Josefin Sans\",\"Karla\",\"Lato\",\"Lexend\",\"Lucida Bright\",\"Lucida Console\",\"Lucida Sans Unicode\",\"Manrope\",\"Merriweather\",\"Merriweather Sans\",\"Montserrat\",\"Myriad\",\"Noto Sans\",\"Nunito\",\"Nunito Sans\",\"Open Sans\",\"Optima\",\"Orbitron\",\"Oswald\",\"Pacifico\",\"Palatino\",\"Perpetua\",\"PT Sans\",\"PT Serif\",\"Poppins\",\"Prompt\",\"Public Sans\",\"Quicksand\",\"Rajdhani\",\"Recursive\",\"Roboto\",\"Roboto Condensed\",\"Rockwell\",\"Rubik\",\"Segoe Print\",\"Segoe Script\",\"Segoe UI\",\"Sora\",\"Source Sans Pro\",\"Space Mono\",\"Tahoma\",\"Taviraj\",\"Times\",\"Times New Roman\",\"Titillium Web\",\"Trebuchet MS\",\"Ubuntu\",\"Varela Round\",\"Verdana\",\"Work Sans\"],T=[\"monospace\",\"sans-serif\",\"serif\"];function k(e,r){if(!e)throw new Error(\"Canvas context not supported\");return e.font=\"72px \".concat(r),e.measureText(\"WwMmLli0Oo\").width}function R(){var e,r=document.createElement(\"canvas\"),n=null!==(e=r.getContext(\"webgl\"))&&void 0!==e?e:r.getContext(\"experimental-webgl\");if(n&&\"getParameter\"in n)try{var t=(n.getParameter(n.VENDOR)||\"\").toString(),o=(n.getParameter(n.RENDERER)||\"\").toString(),a={vendor:t,renderer:o,version:(n.getParameter(n.VERSION)||\"\").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||\"\").toString()};if(!o.length||!t.length){var i=n.getExtension(\"WEBGL_debug_renderer_info\");if(i){var u=(n.getParameter(i.UNMASKED_VENDOR_WEBGL)||\"\").toString(),c=(n.getParameter(i.UNMASKED_RENDERER_WEBGL)||\"\").toString();u&&(a.vendorUnmasked=u),c&&(a.rendererUnmasked=c);}}return a}catch(e){}return \"undefined\"}function I(){var e=new Float32Array(1),r=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],r[3]}function O(e,r){var n={};return r.forEach((function(r){var t=function(e){if(0===e.length)return null;var r={};e.forEach((function(e){var n=String(e);r[n]=(r[n]||0)+1;}));var n=e[0],t=1;return Object.keys(r).forEach((function(e){r[e]>t&&(n=e,t=r[e]);})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t);})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r));}));})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e);}),0),[2]}var i,u;}))}));}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r);})),t(i),[2]}))}))}));}catch(e){o({error:\"unsupported\"});}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0});}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone});}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n<t.length))return [3,6];o=t[n],r.label=2;case 2:return r.trys.push([2,4,,5]),[4,navigator.permissions.query({name:o})];case 3:return a=r.sent(),e[o]=a.state.toString(),[3,5];case 4:return r.sent(),[3,5];case 5:return n++,[3,1];case 6:return [2,e]}}))}))}()})),[2,Promise.all(t).then((function(e){return O(e,C)}))]}))}))})),i(\"plugins\",(function(){var e=[];if(navigator.plugins)for(var r=0;r<navigator.plugins.length;r++){var n=navigator.plugins[r];e.push([n.name,n.filename,n.description].join(\"|\"));}return new Promise((function(r){r({plugins:e});}))})),i(\"screen\",(function(){return new Promise((function(e){e({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()});}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()});}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c<a;c++){var s=c*u;i[4*c]=0,i[4*c+1]=0,i[4*c+2]=Math.cos(s)*(D.width/2),i[4*c+3]=Math.sin(s)*(D.height/2);}var l=U.createBuffer();U.bindBuffer(U.ARRAY_BUFFER,l),U.bufferData(U.ARRAY_BUFFER,i,U.STATIC_DRAW);var f=U.getAttribLocation(o,\"position\");U.enableVertexAttribArray(f),U.vertexAttribPointer(f,2,U.FLOAT,false,0,0),U.viewport(0,0,D.width,D.height),U.clearColor(0,0,0,1),U.clear(U.COLOR_BUFFER_BIT),U.drawArrays(U.LINES,0,2*a);var d=new Uint8ClampedArray(D.width*D.height*4);return U.readPixels(0,0,D.width,D.height,U.RGBA,U.UNSIGNED_BYTE,d),new ImageData(d,D.width,D.height)}catch(e){return new ImageData(1,1)}finally{U&&(U.bindBuffer(U.ARRAY_BUFFER,null),U.useProgram(null),U.viewport(0,0,U.drawingBufferWidth,U.drawingBufferHeight),U.clearColor(0,0,0,0));}}()})),[2,{commonImageHash:f(b(e,D.width,D.height).data.toString()).toString()}]}catch(e){return [2,{webgl:\"unsupported\"}]}return [2]}))}))}));var F=function(e,r,n,t){for(var o=(n-r)/t,a=0,i=0;i<t;i++){a+=e(r+(i+.5)*o);}return a*o};i(\"math\",(function(){return e(void 0,void 0,void 0,(function(){return r(this,(function(e){return [2,{acos:Math.acos(.5),asin:F(Math.asin,-1,1,97),atan:F(Math.atan,-1,1,97),cos:F(Math.cos,0,Math.PI,97),cosh:Math.cosh(9/7),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:F(Math.sin,-Math.PI,Math.PI,97),sinh:F(Math.sinh,-9/7,7/9,97),sqrt:Math.sqrt(2),tan:F(Math.tan,0,2*Math.PI,97),tanh:F(Math.tanh,-9/7,7/9,97)}]}))}))}));\n\nclass AdClient {\n config;\n constructor(config) {\n this.config = config;\n }\n async getAds(_properties) {\n return [];\n }\n async onQuerySubmitted(_properties) { }\n async onQueryFetched(_properties, _response) { }\n async onInputCleared() { }\n async onAdContainerRendered(_data) { }\n async onAdContainerViewed(_data) { }\n}\n\nclass AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(_properties) {\n const admConfig = this.config.admAdConfig;\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json());\n const productAds = admResponse.product_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }));\n const textAds = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n const allAds = productAds.concat(textAds);\n return allAds;\n }\n async onAdContainerViewed(data) {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n\nclass CustomAdClient extends AdClient {\n async getAds(_properties) {\n return [];\n }\n}\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\nclass NativoClient extends AdClient {\n adCallTimeout;\n constructor(config) {\n super(config);\n this.addScriptTagToDocument();\n }\n async onQuerySubmitted(_properties) {\n this.addScriptTagToDocument();\n }\n async onQueryFetched(_properties, response) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n performAdCall(delay) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n }\n catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n async getAds(_properties) {\n return [];\n }\n addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\nclass MeasureClient {\n measureRequestTimeout;\n measureRequestsBatched = [];\n config;\n sdkInfo;\n userId;\n userType;\n sessionId;\n constructor(config, sdkInfo, userId, userType) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.userType = userType;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized').catch((error) => {\n console.error('Error sending sdk_initialized event:', error);\n });\n }\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n get baseMeasureUrl() {\n return `${this.config.endpointURL}/measure`;\n }\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n get measureRequestUser() {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (eventName, properties = {}, user = {}) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: this.config.indexName\n ? [this.config.indexName]\n : [],\n searchcraft_federation_name: this.config.federationName,\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body,\n keepalive: true,\n });\n if (!response.ok) {\n console.error(`Error sending MeasureRequest: ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n console.error('Error sending MeasureRequest:', error);\n }\n }\n else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n this.measureRequestTimeout = setTimeout(() => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n (async () => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body: payload,\n keepalive: true,\n });\n this.measureRequestsBatched = [];\n if (!response.ok) {\n console.error(`Error sending MeasureRequest: ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n }\n })().catch((error) => {\n console.error('Unhandled error in MeasureRequest batch:', error);\n });\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n\nconst removeTrailingSlashFromURL = (endpointURL) => endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n\nconst sanitize = (str) => {\n let sanitizedStr = '';\n // Trim whitespace\n sanitizedStr = str.trim();\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n if (quoteCount % 2 !== 0) {\n throw new Error('The search term contains an uneven number of quote characters.');\n }\n return sanitizedStr;\n};\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\nclass SearchClient {\n config;\n userId;\n parent;\n searchCompletedEventTimeout;\n abortController;\n supplementalAbortController;\n constructor(parent, config, userId) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n /**\n * Getter for the base url used by the /search endpoint.\n * Supports both index and federation search endpoints.\n */\n get baseSearchUrl() {\n return this.config.federationName\n ? `${this.config.endpointURL}/federation/${this.config.federationName}/search`\n : `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort('The pending search request has been cancelled.');\n this.supplementalAbortController?.abort('The pending search request has been cancelled.');\n };\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (properties, isSupplemental = false) => {\n let response;\n let searchTerm = '';\n let abortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort('A newer search request has replaced this one.');\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n }\n else {\n this.abortController?.abort('A newer search request has replaced this one.');\n abortController = new AbortController();\n this.abortController = abortController;\n }\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n }\n else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n this.parent.adClient?.onQuerySubmitted(typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties);\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(searchTerm, abortController);\n }\n else {\n response = await this.handleGetSearchResponseItemsWithObject(properties, abortController);\n }\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n this.parent.adClient?.onQueryFetched(typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties, response);\n }\n return response;\n };\n handleGetSearchResponseItemsWithString = async (str, abortController) => {\n let searchClientRequest;\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n }\n catch {\n throw new Error('Error: Query string is not valid json.');\n }\n this.parent.store.setState({ searchClientRequest });\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText} (Status: ${response.status})`);\n }\n return (await response.json());\n };\n handleGetSearchResponseItemsWithObject = async (properties, abortController) => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n };\n this.parent.store.setState({ searchClientRequest });\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText} (Status: ${response.status})`);\n }\n return (await response.json());\n };\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n formatParamsForRequest(properties) {\n const queries = [];\n let occur = 'should';\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n const searchTerm = properties.searchTerm;\n const query = properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n return queries;\n }\n}\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nconst DEBOUNCE_DELAY = 1000;\nclass SummaryClient {\n set;\n get;\n abortController;\n timeout;\n constructor(get, set) {\n this.get = get;\n this.set = set;\n }\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n if (!config.cortexURL) {\n console.error('Could not stream summary data, cortexURL was not specified in the config.');\n return;\n }\n const indexName = state.core?.config.indexName;\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n 'X-Sc-User-Id': state.core?.userId || '',\n 'X-Sc-Session-Id': state.core?.measureClient?.sessionId || '',\n 'X-Sc-User-Type': state.core?.userType || 'anonymous',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt: state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n if (!fetchResponse.ok) {\n if (fetchResponse.status === 403) {\n console.warn('Please contact Searchcraft to enable AI summaries with your account');\n this.set({\n isSummaryLoading: false,\n isSummaryNotEnabled: true,\n });\n return;\n }\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n const delay = this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n\nconst initialSearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isFilterPanelVisible: true,\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n cachedSearchResponseFacetPrime: undefined,\n cachedSupplementalFacetPrime: undefined,\n cachedSearchResponseTimeTaken: undefined,\n cachedSearchResultsCount: undefined,\n cachedSearchClientRequestProperties: undefined,\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n isSummaryNotEnabled: false,\n};\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores = {};\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (searchcraftId, initialState = {}) => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n const newStore = createStore((set, get) => {\n const functions = {\n addFacetPathsForIndexField: (facetPaths) => {\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n }));\n },\n addRangeValueForIndexField: (rangeValue) => set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName) => {\n console.log('[FACET] removeFacetPathsForIndexField', {\n fieldName,\n currentPage: get().searchResultsPage,\n stackTrace: new Error().stack,\n });\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n };\n });\n },\n removeRangeValueForIndexField: (fieldName) => set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async (options) => {\n const state = get();\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n if (state.core.config.cortexURL && !options?.skipSummary) {\n state.summaryClient?.streamSummaryData();\n }\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof state.cachedSearchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n // Check if there are any active filters or pagination changes\n const hasActiveFilters = Object.keys(state.facetPathsForIndexFields).length > 0 ||\n Object.keys(state.rangeValueForIndexFields).length > 0;\n const hasNonDefaultPagination = state.searchResultsPage !== 1;\n const hasNonDefaultSearchMode = state.searchMode !== 'fuzzy';\n if (!state.searchTerm.trim()) {\n // If it's initialQuery and there are filters, pagination, or mode changes, perform a search\n if (isInitialQuery &&\n (hasActiveFilters ||\n hasNonDefaultPagination ||\n hasNonDefaultSearchMode)) {\n // Parse the initialQuery\n const initialQueryObj = JSON.parse(state.cachedSearchClientRequestProperties);\n set({ isSearchInProgress: true });\n // Build the modified query array starting with the base query\n const baseQuery = Array.isArray(initialQueryObj.query)\n ? initialQueryObj.query.filter((q) => !q.occur)\n : [initialQueryObj.query];\n const queries = [...baseQuery];\n // Add facet filters\n if (state.facetPathsForIndexFields) {\n Object.keys(state.facetPathsForIndexFields).forEach((fieldName) => {\n const item = state.facetPathsForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n });\n }\n // Add range filters\n if (state.rangeValueForIndexFields) {\n Object.keys(state.rangeValueForIndexFields).forEach((fieldName) => {\n const item = state.rangeValueForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n });\n }\n // Build the modified request with filters and pagination\n const modifiedRequest = {\n ...initialQueryObj,\n query: queries,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n state.core.getResponseItems({\n requestProperties: JSON.stringify(modifiedRequest),\n shouldCacheResultsForEmptyState: false,\n });\n return;\n }\n // Otherwise, restore cached results\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties: state.cachedSearchClientRequestProperties,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n set({ isSearchInProgress: true });\n const searchClientRequestProperites = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setFilterPanelVisibility: (isVisible) => set({\n isFilterPanelVisible: isVisible,\n }),\n setPopoverVisibility: (isVisible) => set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) => set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties: state.cachedSearchClientRequestProperties,\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search({ skipSummary: true });\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search({ skipSummary: true });\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } = initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n const stateObject = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n return stateObject;\n });\n existingStores[id] = newStore;\n return newStore;\n};\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nclass SearchcraftCore {\n store;\n config;\n measureClient;\n searchClient;\n adClient;\n userId;\n userType;\n requestTimeout;\n subscriptionEvents = {};\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(config, sdkInfo, searchcraftId) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n if (!config.indexName && !config.federationName) {\n throw new Error('SDK Configuration Error: Either indexName or federationName must be specified.');\n }\n if (config.indexName && config.federationName) {\n throw new Error('SDK Configuration Error: Cannot specify both indexName and federationName. Please specify only one.');\n }\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n this.userType = 'anonymous';\n if (typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__) {\n globalThis.__scDefineCustomElements__();\n }\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n registry.addCoreInstance(this, searchcraftId);\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n async initClients(config, sdkInfo) {\n let userId = this.config.measureUserIdentifier;\n if (!userId) {\n const fingerprint = await g();\n userId = fingerprint;\n this.userType = 'anonymous';\n }\n else {\n this.userType = 'authenticated';\n await Promise.resolve();\n }\n this.measureClient = new MeasureClient(config, sdkInfo, userId, this.userType);\n this.searchClient = new SearchClient(this, config, userId);\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n }\n else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n }\n else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n emitEvent(eventName, event) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n callback(event);\n });\n }\n subscribe(eventName, callback) {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n this.subscriptionEvents[eventName].push(callback);\n return () => {\n this.subscriptionEvents[eventName] = this.subscriptionEvents[eventName].filter((cb) => cb !== callback);\n };\n }\n /**\n * Called when a `<searchcraft-ad>` component is rendered\n */\n handleAdContainerRendered(data) {\n this.adClient?.onAdContainerRendered(data);\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n /**\n * Called when a `<searchcraft-ad>` is viewed\n */\n handleAdContainerViewed(data) {\n this.adClient?.onAdContainerViewed(data);\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n getResponseItems = (props) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n let response;\n try {\n response = await this.searchClient.getSearchResponseItems(props.requestProperties, false);\n }\n catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n const items = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse;\n if (typeof props.requestProperties === 'object') {\n if (props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0) {\n const { facetPathsForIndexFields: _, ...supplementalRequestProperties } = props.requestProperties;\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(supplementalRequestProperties, true);\n }\n catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n else if (typeof props.requestProperties === 'string') {\n // Handle supplemental search for initialQuery with filters\n const requestObj = JSON.parse(props.requestProperties);\n // Check if there are any filter queries (queries beyond the base query)\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n if (queryArray.length > 1) {\n // Remove filter queries to get base query for supplemental search\n const baseQuery = queryArray.filter((q) => q.occur !== 'must');\n const supplementalRequest = {\n ...requestObj,\n query: baseQuery.length > 0 ? baseQuery : queryArray.slice(0, 1),\n };\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(JSON.stringify(supplementalRequest), true);\n }\n catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n cachedSearchResponseFacetPrime: response.data.facets,\n cachedSupplementalFacetPrime: supplementalResponse?.data.facets,\n cachedSearchResponseTimeTaken: response.data.time_taken,\n cachedSearchResultsCount: response.data.count,\n cachedSearchClientRequestProperties: props.requestProperties,\n }),\n });\n })();\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n clearTimeout(this.requestTimeout);\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(getResponseItemsDebounced, this.config.searchDebounceDelay);\n }\n else {\n getResponseItemsDebounced();\n }\n };\n}\n\nconst name = \"@searchcraft/javascript-sdk\";\nconst version = \"0.13.1\";\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n/**\n * The consumer-facing `Searchcraft` class.\n */\nclass Searchcraft extends SearchcraftCore {\n constructor(config, searchcraftId = undefined) {\n super(config, {\n sdkName: name,\n sdkVersion: version,\n }, searchcraftId);\n }\n}\n\nexport { Searchcraft, SearchcraftCore };\n//# sourceMappingURL=index.js.map\n\n//# sourceMappingURL=index.js.map\nexport { defineCustomElements } from './defineCustomElements.js';\n","import { defineComponent, useSlots, createSSRApp, compile, ref, onMounted, getCurrentInstance, inject, h, withDirectives } from 'vue';\n\nconst LOG_PREFIX = '[vue-output-target]';\n/**\n * returns true if the value is a primitive, e.g. string, number, boolean\n * @param value - the value to check\n * @returns true if the value is a primitive, false otherwise\n */\nfunction isPrimitive(value) {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\nfunction defineStencilSSRComponent(options) {\n return defineComponent({\n async setup(props, context) {\n /**\n * resolve light dom into a string\n */\n const slots = useSlots();\n let renderedLightDom = '';\n if (typeof slots.default === 'function') {\n const ssrLightDom = createSSRApp({ render: () => slots.default() });\n const { renderToString: vueRenderToString } = await import('vue/server-renderer');\n renderedLightDom = await vueRenderToString(ssrLightDom, { context });\n }\n /**\n * compose element props into a string\n */\n let stringProps = '';\n for (const [key, value] of Object.entries(props)) {\n if (typeof value === 'undefined') {\n continue;\n }\n /**\n * Stencils metadata tells us which properties can be serialized\n */\n const propName = options.props?.[key][1];\n const propValue = isPrimitive(value)\n ? typeof value === 'boolean'\n ? /**\n * omit boolean properties that are false all together\n */\n value\n ? '\"true\"'\n : undefined\n : `\"${value}\"`\n : Array.isArray(value) && value.every(isPrimitive)\n ? JSON.stringify(value)\n : undefined;\n if (!propName || !propValue) {\n console.warn(`${LOG_PREFIX} ignore component property \"${key}\" for ${options.tagName} ` +\n \"- property type is unknown or not a primitive and can't be serialized\");\n continue;\n }\n stringProps += ` ${propName}=${propValue}`;\n }\n /**\n * transform component into Declarative Shadow DOM by lazy loading the hydrate module\n */\n const toSerialize = `<${options.tagName}${stringProps}>${renderedLightDom}</${options.tagName}>`;\n const { renderToString } = await options.hydrateModule;\n const { html } = await renderToString(toSerialize, {\n fullDocument: false,\n serializeShadowRoot: true,\n });\n if (!html) {\n throw new Error(`'${options.tagName}' component did not render anything.`);\n }\n return compile(html\n /**\n * by default Vue strips out the <style> tag, so this little trick\n * makes it work by wrapping it in a component tag\n */\n .replace('<style>', `<component :is=\"'style'\">`)\n .replace('</style>', '</component>'), {\n comments: true,\n isCustomElement: (tag) => tag === options.tagName,\n });\n },\n props: Object.entries(options.props || {}).reduce((acc, [key, value]) => {\n acc[key] = value[0];\n return acc;\n }, {}),\n /**\n * the template tags can be arbitrary as they will be replaced with above compiled template\n */\n template: '<div></div>',\n });\n}\n\nconst UPDATE_VALUE_EVENT = 'update:modelValue';\nconst MODEL_VALUE = 'modelValue';\nconst ROUTER_LINK_VALUE = 'routerLink';\nconst NAV_MANAGER = 'navManager';\nconst ROUTER_PROP_PREFIX = 'router';\nconst ARIA_PROP_PREFIX = 'aria';\n/**\n * Starting in Vue 3.1.0, all properties are\n * added as keys to the props object, even if\n * they are not being used. In order to correctly\n * account for both value props and v-model props,\n * we need to check if the key exists for Vue <3.1.0\n * and then check if it is not undefined for Vue >= 3.1.0.\n * See https://github.com/vuejs/vue-next/issues/3889\n */\nconst EMPTY_PROP = Symbol();\nconst DEFAULT_EMPTY_PROP = { default: EMPTY_PROP };\nconst getComponentClasses = (classes) => {\n return classes?.split(' ') || [];\n};\nconst getElementClasses = (ref, componentClasses, defaultClasses = []) => {\n return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter((c, i, self) => !componentClasses.has(c) && self.indexOf(c) === i);\n};\n/**\n * Create a callback to define a Vue component wrapper around a Web Component.\n *\n * @prop name - The component tag name (i.e. `ion-button`)\n * @prop componentProps - An array of properties on the\n * component. These usually match up with the @Prop definitions\n * in each component's TSX file.\n * @prop emitProps - An array of for event listener on the Component.\n * these usually match up with the @Event definitions\n * in each compont's TSX file.\n * @prop customElement - An option custom element instance to pass\n * to customElements.define. Only set if `includeImportCustomElements: true` in your config.\n * @prop modelProp - The prop that v-model binds to (i.e. value)\n * @prop modelUpdateEvent - The event that is fired from your Web Component when the value changes (i.e. ionChange)\n */\nconst defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent) => {\n /**\n * Create a Vue component wrapper around a Web Component.\n * Note: The `props` here are not all properties on a component.\n * They refer to whatever properties are set on an instance of a component.\n */\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n const Container = defineComponent((props, { attrs, slots, emit }) => {\n let modelPropValue = modelProp ? props[modelProp] : undefined;\n const containerRef = ref();\n const classes = new Set(getComponentClasses(attrs.class));\n onMounted(() => {\n /**\n * we register the event emmiter for @Event definitions\n * so we can use @event\n */\n emitProps.forEach((eventName) => {\n containerRef.value.addEventListener(eventName, (e) => {\n emit(eventName, e);\n });\n });\n });\n /**\n * This directive is responsible for updating any reactive\n * reference associated with v-model on the component.\n * This code must be run inside of the \"created\" callback.\n * Since the following listener callbacks as well as any potential\n * event callback defined in the developer's app are set on\n * the same element, we need to make sure the following callbacks\n * are set first so they fire first. If the developer's callback fires first\n * then the reactive reference will not have been updated yet.\n */\n const vModelDirective = {\n created: (el) => {\n const eventsNames = (Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent]).map((ev) => ev.replace(/-([a-z])/g, (g) => g[1].toUpperCase()));\n eventsNames.forEach((eventName) => {\n el.addEventListener(eventName, (e) => {\n /**\n * Only update the v-model binding if the event's target is the element we are\n * listening on. For example, Component A could emit ionChange, but it could also\n * have a descendant Component B that also emits ionChange. We only want to update\n * the v-model for Component A when ionChange originates from that element and not\n * when ionChange bubbles up from Component B.\n */\n if (e.target.tagName === el.tagName && modelProp) {\n modelPropValue = (e?.target)[modelProp];\n emit(UPDATE_VALUE_EVENT, modelPropValue);\n }\n });\n });\n },\n };\n const currentInstance = getCurrentInstance();\n const hasRouter = currentInstance?.appContext?.provides[NAV_MANAGER];\n const navManager = hasRouter ? inject(NAV_MANAGER) : undefined;\n const handleRouterLink = (ev) => {\n const { routerLink } = props;\n if (routerLink === EMPTY_PROP)\n return;\n if (navManager !== undefined) {\n /**\n * This prevents the browser from\n * performing a page reload when pressing\n * an Ionic component with routerLink.\n * The page reload interferes with routing\n * and causes ion-back-button to disappear\n * since the local history is wiped on reload.\n */\n ev.preventDefault();\n let navigationPayload = { event: ev };\n for (const key in props) {\n const value = props[key];\n if (props.hasOwnProperty(key) && key.startsWith(ROUTER_PROP_PREFIX) && value !== EMPTY_PROP) {\n navigationPayload[key] = value;\n }\n }\n navManager.navigate(navigationPayload);\n }\n else {\n console.warn('Tried to navigate, but no router was found. Make sure you have mounted Vue Router.');\n }\n };\n return () => {\n modelPropValue = props[modelProp];\n getComponentClasses(attrs.class).forEach((value) => {\n classes.add(value);\n });\n // @ts-expect-error\n const oldClick = props.onClick;\n const handleClick = (ev) => {\n if (oldClick !== undefined) {\n oldClick(ev);\n }\n if (!ev.defaultPrevented) {\n handleRouterLink(ev);\n }\n };\n let propsToAdd = {\n ref: containerRef,\n class: getElementClasses(containerRef, classes),\n onClick: handleClick,\n };\n /**\n * We can use Object.entries here\n * to avoid the hasOwnProperty check,\n * but that would require 2 iterations\n * where as this only requires 1.\n */\n for (const key in props) {\n const value = props[key];\n if ((props.hasOwnProperty(key) && value !== EMPTY_PROP) || key.startsWith(ARIA_PROP_PREFIX)) {\n propsToAdd[key] = value;\n }\n /**\n * register event handlers on the component\n */\n const eventHandlerKey = 'on' + key.slice(0, 1).toUpperCase() + key.slice(1);\n const eventHandler = attrs[eventHandlerKey];\n if (containerRef.value && attrs.hasOwnProperty(eventHandlerKey) && 'addEventListener' in containerRef.value) {\n containerRef.value.addEventListener(key, eventHandler);\n }\n }\n if (modelProp) {\n /**\n * If form value property was set using v-model\n * then we should use that value.\n * Otherwise, check to see if form value property\n * was set as a static value (i.e. no v-model).\n */\n if (props[MODEL_VALUE] !== EMPTY_PROP) {\n propsToAdd = {\n ...propsToAdd,\n [modelProp]: props[MODEL_VALUE],\n };\n }\n else if (modelPropValue !== EMPTY_PROP) {\n propsToAdd = {\n ...propsToAdd,\n [modelProp]: modelPropValue,\n };\n }\n }\n // If router link is defined, add href to props\n // in order to properly render an anchor tag inside\n // of components that should become activatable and\n // focusable with router link.\n if (ROUTER_LINK_VALUE in props && props[ROUTER_LINK_VALUE] !== EMPTY_PROP) {\n propsToAdd = {\n ...propsToAdd,\n href: props[ROUTER_LINK_VALUE],\n };\n }\n /**\n * vModelDirective is only needed on components that support v-model.\n * As a result, we conditionally call withDirectives with v-model components.\n */\n const node = h(name, propsToAdd, slots.default && slots.default());\n return modelProp === undefined ? node : withDirectives(node, [[vModelDirective]]);\n };\n });\n if (typeof Container !== 'function') {\n let emits = [];\n let props = {};\n props[ROUTER_LINK_VALUE] = DEFAULT_EMPTY_PROP;\n componentProps.forEach((componentProp) => (props[componentProp] = DEFAULT_EMPTY_PROP));\n emits = emitProps;\n if (modelProp) {\n props[MODEL_VALUE] = DEFAULT_EMPTY_PROP;\n emits.push(UPDATE_VALUE_EVENT);\n }\n /**\n * Add emit props to the component.\n * This is necessary for Vue to know\n * which events to listen to.\n * @see https://v3.vuejs.org/guide/component-custom-events.html#event-names\n */\n // @ts-expect-error\n Container.name = name;\n // @ts-expect-error\n Container.emits = emits;\n // @ts-expect-error\n Container.props = props;\n }\n return Container;\n};\n\nexport { defineContainer, defineStencilSSRComponent };\n","/* eslint-disable */\n/* tslint:disable */\n/* auto-generated vue proxies */\nimport { defineContainer } from '@stencil/vue-output-target/runtime';\n\nimport type { JSX } from '@searchcraft/javascript-sdk';\n\n\n\n\nexport const SearchcraftFilterPanel = /*@__PURE__*/ defineContainer<JSX.SearchcraftFilterPanel>('searchcraft-filter-panel', () => {}, [\n 'searchcraftId',\n 'items',\n 'responsiveBreakpoint',\n 'responsiveBehavior'\n]);\n\n\nexport const SearchcraftInputForm = /*@__PURE__*/ defineContainer<JSX.SearchcraftInputForm>('searchcraft-input-form', () => {}, [\n 'searchcraftId',\n 'autoSearch',\n 'buttonPlacement',\n 'buttonLabel',\n 'inputLabel',\n 'placeholderValue',\n 'placeholderBehavior',\n 'value',\n 'inputFocus',\n 'inputBlur',\n 'inputInit'\n], [\n 'inputFocus',\n 'inputBlur',\n 'inputInit'\n]);\n\n\nexport const SearchcraftPagination = /*@__PURE__*/ defineContainer<JSX.SearchcraftPagination>('searchcraft-pagination', () => {}, [\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftPopoverButton = /*@__PURE__*/ defineContainer<JSX.SearchcraftPopoverButton>('searchcraft-popover-button', () => {}, [\n 'template',\n 'type',\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftPopoverForm = /*@__PURE__*/ defineContainer<JSX.SearchcraftPopoverForm>('searchcraft-popover-form', () => {}, [\n 'type',\n 'popoverResultMappings',\n 'hotkey',\n 'hotkeyModifier',\n 'searchcraftId',\n 'placeholderValue',\n 'placeholderBehavior'\n]);\n\n\nexport const SearchcraftResultsInfo = /*@__PURE__*/ defineContainer<JSX.SearchcraftResultsInfo>('searchcraft-results-info', () => {}, [\n 'template',\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftSearchResults = /*@__PURE__*/ defineContainer<JSX.SearchcraftSearchResults>('searchcraft-search-results', () => {}, [\n 'searchcraftId',\n 'initialQuery',\n 'template'\n]);\n\n\nexport const SearchcraftSearchResultsPerPage = /*@__PURE__*/ defineContainer<JSX.SearchcraftSearchResultsPerPage>('searchcraft-search-results-per-page', () => {}, [\n 'increment',\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftSummaryBox = /*@__PURE__*/ defineContainer<JSX.SearchcraftSummaryBox>('searchcraft-summary-box', () => {}, [\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftTheme = /*@__PURE__*/ defineContainer<JSX.SearchcraftTheme>('searchcraft-theme', () => {});\n\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftSearchResults as Component } from '../stencil-web-components';\n\n/**\n * The Props Used by the `SearchcraftSearchResults` Component.\n */\ninterface SearchcraftSearchResultsProps\n extends Components.SearchcraftSearchResults {}\n\n/**\n * A component that renders a list of search results with customizable styles, layout, and link behavior.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftSearchResults from '@searchcraft/vue-sdk';\n * import searchResultMappings from './searchResultMappings';\n *\n * const handleNoResults = () => {\n * console.log(\"No search results found\");\n * };\n * </script>\n *\n * <template>\n * <SearchcraftSearchResults\n * :searchResultMappings=\"searchResultMappings\"\n * resultImagePlacement=\"left\"\n * buttonLabel=\"View More\"\n * buttonTarget=\"_blank\"\n * buttonRel=\"noopener\"\n * containerTarget=\"_self\"\n * containerRel=\"nofollow\"\n * @noResults=\"handleNoResults\"\n * />\n * </template>\n * ```\n */\nconst SearchcraftSearchResults = Component;\n\nexport { SearchcraftSearchResults };\n\nexport type { SearchcraftSearchResultsProps };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftFilterPanel as Component } from '../stencil-web-components';\n\n/**\n * The props used by the SearchcraftFilterPanel.\n */\ninterface SearchcraftFilterPanelProps\n extends Components.SearchcraftFilterPanel {}\n\n/**\n * A component that represents a filter panel UI view, allowing users to refine and control their search queries by applying various filter criteria.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftFilterPanel from '@my-library/vue';\n * import filterItems from './filterItems';\n * </script>\n *\n * <template>\n * <SearchcraftFilterPanel :items=\"filterItems\" />\n * </template>\n * ```\n */\nconst SearchcraftFilterPanel = Component;\n\nexport { SearchcraftFilterPanel };\n\nexport type { SearchcraftFilterPanelProps };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftInputForm as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftInputForm component.\n */\nexport interface SearchcraftInputFormProps\n extends Components.SearchcraftInputForm {}\n\n/**\n * A component that provides a user-friendly interface for querying an indexed dataset,\n * enabling users to easily search large collections of data. It abstracts the complexities\n * of index-based searching, making it accessible to users of all technical levels.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftInputForm from '@searchcraft/vue-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n *\n * const handleQuerySubmit = (event) => {\n * console.log(\"Query submitted\", event.detail);\n * };\n * </script>\n *\n * <template>\n * <SearchcraftInputForm\n * :config=\"searchcraftConfig\"\n * :autoSearch=\"true\"\n * buttonPlacement=\"right\"\n * buttonLabel=\"Search\"\n * inputLabel=\"Search Database\"\n * :customStyles=\"{ border: '1px solid gray', padding: '5px' }\"\n * placeholderValue=\"Search here...\"\n * searchTerm=\"\"\n * @querySubmit=\"handleQuerySubmit\"\n * @inputCleared=\"() => console.log('Input cleared')\"\n * @noResultsReceived=\"() => console.log('No results found')\"\n * @inputFocus=\"() => console.log('Input focused')\"\n * @inputBlur=\"() => console.log('Input blurred')\"\n * @inputInit=\"() => console.log('Input initialized')\"\n * />\n * </template>\n * ```\n */\nconst SearchcraftInputForm = Component;\n\nexport { SearchcraftInputForm };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverButton as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftPopoverButton.\n */\nexport interface SearchcraftPopoverButtonProps\n extends Components.SearchcraftPopoverButton {}\n\n/**\n * A button component that, when clicked, toggles the visibility of a popover.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftPopoverButton from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftPopoverButton>\n * Open Popover\n * </SearchcraftPopoverButton>\n * </template>\n * ```\n */\nconst SearchcraftPopoverButton = Component;\n\nexport { SearchcraftPopoverButton };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverForm as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftPopoverForm.\n */\nexport interface SearchcraftPopoverFormProps\n extends Components.SearchcraftPopoverForm {}\n\n/**\n * A component that displays search results in a popover container that dynamically appears\n * when the user interacts with a search input field, or when a Popover Button has been clicked.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftPopoverForm from '@searchcraft/vue-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n * import popoverResultMappings from './popoverResultMappings';\n * </script>\n *\n * <template>\n * <SearchcraftPopoverForm\n * :config=\"searchcraftConfig\"\n * type=\"fullscreen\"\n * :popoverResultMappings=\"popoverResultMappings\"\n * hotkey=\"k\"\n * hotkeyModifier=\"meta\"\n * />\n * </template>\n * ```\n */\nconst SearchcraftPopoverForm = Component;\n\nexport { SearchcraftPopoverForm };\n","import type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftResultsInfo as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftResultsInfo component.\n */\nexport interface SearchcraftResultsInfoProps\n extends Components.SearchcraftResultsInfo {}\n\n/**\n * This Vue component is designed to display the number of results returned from a search query.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftResultsInfo from '@searchcraft/vue-sdk';\n *\n * const customFormatter = (range, count, responseTime) =>\n * `${range[0]}-${range[1]} of ${count} results in ${responseTime}ms`;\n * </script>\n *\n * <template>\n * <SearchcraftResultsInfo :customFormatter=\"customFormatter\" />\n * </template>\n * ```\n */\nconst SearchcraftResultsInfo = Component;\nexport { SearchcraftResultsInfo };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftTheme as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftTheme component.\n */\nexport interface SearchcraftThemeProps extends Components.SearchcraftTheme {}\n\n/**\n * A component that applies Searchcraft's built-in CSS theme to your page.\n * It does not render anything visible—its only function is to manage the CSS styles on the page.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftTheme from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftTheme />\n * </template>\n * ```\n */\nconst SearchcraftTheme = Component;\n\nexport { SearchcraftTheme };\n","import type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftPagination as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftPagination component.\n */\nexport interface SearchcraftPaginationProps\n extends Components.SearchcraftPagination {}\n\n/**\n * This React component is designed to facilitate pagination of search results.\n * Once a query is submitted, calculates the number for pages.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftPagination from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftPagination />\n * </template>\n * ```\n */\nconst SearchcraftPagination = Component;\nexport { SearchcraftPagination };\n","import type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftSearchResultsPerPage as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftSearchResultsPerPage component.\n */\nexport interface SearchcraftSearchResultsPerPageProps\n extends Components.SearchcraftSearchResultsPerPage {}\n\n/**\n * This Vue component is designed to choose the number of search results displayed.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftSearchResultsPerPage from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftSearchResultsPerPage increment=\"20\" />\n * </template>\n * ```\n */\nconst SearchcraftSearchResultsPerPage = Component;\nexport { SearchcraftSearchResultsPerPage };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftSummaryBox as Component } from '../stencil-web-components';\n\n/**\n * The Props Used by the `SearchcraftSummaryBox` Component.\n */\ninterface SearchcraftSummaryBoxProps extends Components.SearchcraftSummaryBox {}\n\n/**\n * This React component displays an ai-generated summary of the given search term.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftSummaryBox from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftSummaryBox />\n * </template>\n * ```\n */\nconst SearchcraftSummaryBox = Component;\n\nexport { SearchcraftSummaryBox };\n\nexport type { SearchcraftSummaryBoxProps };\n","import {\n type SearchcraftConfig,\n SearchcraftCore,\n} from '@searchcraft/javascript-sdk';\nimport { defineCustomElements } from '@searchcraft/javascript-sdk';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../package.json';\n\n/**\n * Export all components and plugins for the Vue SDK here.\n */\nexport * from './components';\n\n/**\n * The consumer-facing Searchcraft class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageName,\n sdkVersion: packageVersion,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type * from '@searchcraft/javascript-sdk';\n\n/**\n * Call the javascript sdk's defineCustomElementsFunction\n */\ndefineCustomElements();\n"],"names":["NAMESPACE","BUILD","__defProp","__export","target","all","name","SVG_NS","HTML_NS","PrimitiveType","PrimitiveType2","NonPrimitiveType","NonPrimitiveType2","TYPE_CONSTANT","VALUE_CONSTANT","SERIALIZED_PREFIX","reWireGetterSetter","instance","hostRef","_a","cmpMeta","memberName","memberFlags","ogValue","ogDescriptor","getPropertyDescriptor","newValue","obj","desc","getHostRef","ref","registerHost","hostElement","r","isMemberInElement","elm","consoleError","e","el","CONTENT_REF_ID","ORG_LOCATION_ID","SLOT_NODE_ID","TEXT_NODE_ID","COMMENT_NODE_ID","HYDRATE_ID","HYDRATE_CHILD_ID","win","H","plt","h2","eventName","listener","opts","supportsShadow","promiseResolve","v","queuePending","queueDomReads","queueDomWrites","queueTask","queue","write","cb","nextTick","flush","consume","i2","writeTask","isComplexType","o","escapeRegExpSpecialCharacters","text","RemoteValue","_RemoteValue","serialized","type","value","item","map2","key","val","deserializedKey","deserializedValue","pattern","flags","set","serializedValues","result_exports","err","map","ok","unwrap","unwrapErr","result","fn","newVal","deserializeProperty","updateFallbackSlotVisibility","childNodes","internalCall","getHostSlotNodes","slotNode","getSlotChildSiblings","getSlotName","childNode","getSlottedChildNodes","slottedNode","hostName","slotName","slottedNodes","slot","includeSlot","node","isNodeLocatedInSlot","nodeToRelocate","addSlotRelocateNode","newChild","prepend","position","slottedNodeLocation","parent","appendMethod","slotRelocateNodes","n","a","b","patchSlotNode","assignedFactory","elementsOnly","toReturn","method","createTime","fnName","tagName","rootAppliedStyles","getScopeId","cmp","mode","h","nodeName","vnodeData","children","child","simple","lastSimple","vNodeChildren","walk","c","newVNode","classData","k","vdomFnUtils","vnode","tag","Host","isHost","convertToPublic","convertToPrivate","initializeClientHydrate","hostElm","hostId","_b","endHydrate","shadowRoot","childRenderNodes","slotNodes","shadowRootNodes","initializeDocumentHydrate","clientHydrate","crIndex","crLength","childRenderNode","orgLocationId","orgLocationNode","scopeId3","styleSheet","hosts","snLen","snIndex","slotGroup","snGroupIdx","snGroupLen","slottedItem","hostEle","parentVNode","childNodeType","childIdSplt","childVNode","createSimpleVNode","addSlot","nonShadowNodes","findCorrespondingNode","orgLocNodes","componentId","slotId","parentNodeId","shouldMove","addSlottedNodes","slotNodeId","sibling","createSupportsRuleRe","selector","safeSelector2","parsePropertyValue","propValue","propType","isFormAssociated","getElement","createEvent","detail","emitEvent","ev","setAccessor","oldValue","isSvg","initialRender","isProp","ln","classList","oldClasses","parseClassList","newClasses","scopeId2","prop","capture","CAPTURE_EVENT_SUFFIX","CAPTURE_EVENT_REGEX","isComplex","parseClassListRegex","updateElement","oldVnode","newVnode","isSvgMode2","isInitialRender","oldVnodeAttrs","newVnodeAttrs","sortedAttrNames","attrNames","attr","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","createElm","oldParentVNode","newParentVNode","childIndex","newVNode2","oldVNode","putBackInOriginalLocation","parentElm","recursive","oldSlotChildNodes","insertBefore","referenceNode","addVnodes","before","vnodes","startIdx","endIdx","containerElm","removeVnodes","index","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","relocateNode","newNode","reference","renderVdom","renderFnResults","isInitialLoad","_c","_d","rootVnode","relocateData","slotRefNode","parentNodeRef","insertBeforeNode","refNode","nextSibling","attachToAncestor","ancestorComponent","scheduleUpdate","dispatch","dispatchHooks","endSchedule","maybePromise","safeCall","enqueue","updateComponent","isPromisey","err2","endUpdate","rc","endRender","callRender","childrenPromises","postUpdate","postUpdateComponent","endPostUpdate","addHydratedFlag","appDidLoad","who","arg","getValue","propName","setValue","oldVal","areBothNaN","watchMethods","watchMethodName","proxyComponent","Cstr","prototype","members","origGetter","origSetter","attrNameToPropName","attrName","_a2","flags2","entry","callbackName","propFlags","m","propDesc","_","initializeComponent","hmrVersionId","cmpTag","schedule","fireConnectedCallback","connectedCallback","endConnected","setContentReference","contentRefElm","disconnectedCallback","proxyCustomElement","compactMeta","originalConnectedCallback","originalDisconnectedCallback","Fragment","getDefaultExportFromCjs","x","classnames","hasRequiredClassnames","requireClassnames","module","hasOwn","classNames","classes","i","appendClass","parseValue","newClass","classnamesExports","DEFAULT_CORE_INSTANCE_ID","CoreInstanceRegistry","__publicField","coreInstance","searchcraftId","id","callback","onAvailable","registry","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","apply","construct","func","thisArg","_len","args","_key","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","array","transformCaseFunc","l","element","lcElement","cleanArray","clone","object","newObject","property","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","window","DOMPurify","root","document","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parentTagName","_forceRemove","_removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_isClobbered","_isNode","_executeHooks","currentNode","data","hook","_sanitizeElements","content","_isBasicCustomElement","parentNode","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","namespaceURI","attrValue","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","entryPoint","hookFunction","purify","strings","values","urlAlphabet","nanoid","size","bytes","SearchcraftPopoverListItemAd","state","requestProperties","core","currentState","templateHtml","_e","templateRenderFunction","containerId","nativoClassName","defineCustomElement","defineCustomElement$1","SearchcraftButton","SearchcraftErrorMessage","getFacetTreeNodeAtPath","tree","nodePaths","cursor","nodePath","deepMergeWithSpread","obj1","obj2","removeSubstringMatches","arr","otherEntry","otherIndex","mergeFacetTrees","currentTree","incomingTree","mergedTree","merge","currentBranch","mergedBranch","incomingBranch","facetWithChildrenArrayToCompleteFacetTree","rootArray","exclude","allFacets","collect","path","count","segments","shouldExclude","excludeValue","segment","prefixPath","SearchcraftFacetList","char","actionType","incomingFacetRoot","facet","incomingFacetsWithChildrenArray","incomingFacetTree","supplementalFacetRoot","supplementalFacetsWithChildrenArray","supplementalFacetTree","collectedFacetArray","pathName","wasFoundInFacetTree","pathKeyName","_state","isInitialQuery","requestObj","filterQueries","q","currentFilters","updatedPaths","testPath","acc","str","paths","pathsWithParentPathsRemoved","keyName","isChildSelected","isSelected","shouldRenderChildren","_event","getDocumentValueFromSearchResultMapping","mapping","fieldNameDetails","valueFound","formatRelativeDate","formatNumberWithCommas","number","dateInput","locale","options","date","diffMillis","oneMonthInMillis","diffSeconds","diffMinutes","diffHours","diffDays","relativeTimeFormat","getStartOf","timestamp","unit","offset","d","getDifferenceInUnits","startTime","endTime","start","end","getOrdinal","getFormattedDateString","granularity","monthFormatter","timeFormatter","throttle","delayInMilliseconds","isThrottleOnCooldown","trailingCallArgs","invokeAction","nextArgs","SearchcraftSlider","startTimestamp","endTimestamp","event","inputElement","dateOffset","startPercent","endPercent","startLabel","endLabel","SearchcraftToggleButton","SearchcraftFilterPanel$1","prevState","autoVisibility","currentVisibility","shouldBeVisible","isVisible","dateItem","startingMinDate","startingMaxDate","min","max","fieldName","_f","isActive","filterItem","maxDate","defineCustomElement$4","defineCustomElement$3","defineCustomElement$2","SearchcraftInputLabel","SearchcraftInputForm","input","isShowingClearButton","inputGridClassNames","inputGridStyles","SearchcraftPagination$1","page","SearchcraftPopoverButton$1","userAgent","SearchcraftPopoverFooter","SearchcraftPopoverListItem","document_position","search_term","number_of_documents","SearchcraftPopoverListView","itemsToRender","interstitialInterval","interstitialQuantity","adStartQuantity","adEndQuantity","_h","_g","searchItems","interstitialStartIndex","_j","_i","SearchcraftPopoverForm$1","computedStyle","hostElementInput","direction","listItems","currentIndex","isListViewVisible","defineCustomElement$9","defineCustomElement$8","defineCustomElement$7","defineCustomElement$6","defineCustomElement$5","SearchcraftResultsInfo$1","SearchcraftSearchResult","link","error","SearchcraftSearchResults$1","items","searchClientResponseItems","SearchcraftSelect","label","selected","SearchcraftSearchResultsPerPage$1","_getDefaults","_defaults","changeDefaults","newDefaults","noopTest","edit","regex","opt","source","valSource","other","bull","indent","newline","blockCode","fences","hr","heading","bullet","lheadingCore","lheading","lheadingGfm","_paragraph","blockText","_blockLabel","def","list","_tag","_comment","paragraph","blockquote","blockNormal","gfmTable","blockGfm","blockPedantic","escape","inlineCode","br","inlineText","_punctuation","_punctuationOrSpace","_notPunctuationOrSpace","punctuation","_punctuationGfmStrongEm","_punctuationOrSpaceGfmStrongEm","_notPunctuationOrSpaceGfmStrongEm","blockSkip","emStrongLDelimCore","emStrongLDelim","emStrongLDelimGfm","emStrongRDelimAstCore","emStrongRDelimAst","emStrongRDelimAstGfm","emStrongRDelimUnd","anyPunctuation","autolink","_inlineComment","_inlineLabel","reflink","nolink","reflinkSearch","inlineNormal","inlinePedantic","inlineGfm","inlineBreaks","block","inline","escapeReplacements","getEscapeReplacement","ch","escape2","html2","encode","cleanUrl","href","splitCells","tableRow","row","match","escaped","curr","cells","rtrim","invert","suffLen","findClosingBracket","level","outputLink","cap","link2","raw","lexer2","rules","title","token","indentCodeCompensation","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","_Tokenizer","options2","src","trimmed","lines","tokens","inBlockquote","currentLines","currentRaw","currentText","top","lastToken","oldToken","newText","newToken","isordered","list2","itemRegex","endsWithBlankLine","endEarly","itemContents","line","t","nextLine","blankLine","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","htmlBeginRegex","rawLine","nextLineWithoutTabs","istask","ischecked","lastItem","spacers","hasMultipleLineBreaks","tag2","headers","aligns","rows","align","cell","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","links","linkString","maskedSrc","prevChar","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","lastCharLength","text2","hasNonSpaceChars","hasSpaceCharsOnBothEnds","prevCapZero","_Lexer","__Lexer","next","lastParagraphClipped","extTokenizer","cutSrc","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","_Renderer","lang","langString","code","depth","ordered","startAttr","itemBody","checkbox","checked","header","cleanHref","out","_TextRenderer","_Parser","__Parser","anyToken","genericToken","ret","textToken","renderer","_Hooks","markdown","Marked","tableToken","listToken","childTokens","tokens2","extensions","pack","ext","prevRenderer","args2","extLevel","rendererProp","rendererFunc","tokenizer","tokenizerProp","tokenizerFunc","prevTokenizer","hooksProp","hooksFunc","prevHook","ret2","walkTokens2","packWalktokens","blockType","origOpt","throwError","parser2","src2","silent","async","msg","markedInstance","marked","SearchcraftSummaryBox$1","contentElement","styles","SearchcraftTheme$1","defineCustomElements","define_searchcraft_ad","define_searchcraft_button","define_searchcraft_error_message","define_searchcraft_facet_list","define_searchcraft_filter_panel","define_searchcraft_input_form","define_searchcraft_input_label","define_searchcraft_loading","define_searchcraft_pagination","define_searchcraft_popover_button","define_searchcraft_popover_footer","define_searchcraft_popover_form","define_searchcraft_popover_list_item","define_searchcraft_popover_list_view","define_searchcraft_results_info","define_searchcraft_search_result","define_searchcraft_search_results_per_page","define_searchcraft_search_results","define_searchcraft_select","define_searchcraft_slider","define_searchcraft_summary_box","define_searchcraft_theme","define_searchcraft_toggle_button","LogLevel","SearchcraftLogger","message","Logger","u","s","f","p","g","y","S","M","E","P","A","C","T","R","I","O","L","D","B","U","F","AdClient","config","_properties","_response","_data","AdMarketplaceClient","admConfig","admResponse","productAds","ad","textAds","CustomAdClient","AD_CALL_AFTER_FETCH_DELAY","NativoClient","response","delay","scriptTag","MEASURE_REQUEST_DEBOUNCE","MeasureClient","sdkInfo","userId","userType","properties","user","request","url","payload","removeTrailingSlashFromURL","endpointURL","sanitize","sanitizedStr","SEARCH_COMPLETED_EVENT_DEBOUNCE","SearchClient","isSupplemental","searchTerm","abortController","searchClientRequest","queries","occur","query","createStoreImpl","createState","listeners","setState","partial","replace","nextState","previousState","getState","api","initialState","createStore","DEBOUNCE_DELAY","SummaryClient","get","begin","indexName","endpointUrl","fetchResponse","reader","decoder","finishedReading","done","chunk","initialSearchcraftStateValues","existingStores","createSearchcraftStore","newStore","functions","facetPaths","rangeValue","currentPaths","currentValues","hasActiveFilters","hasNonDefaultPagination","hasNonDefaultSearchMode","initialQueryObj","modifiedRequest","searchClientRequestProperites","orderByField","sortType","perPage","hotkey","hotkeyModifier","initialHotkey","initialHotkeyModifier","SearchcraftCore","props","getResponseItemsDebounced","hit","supplementalResponse","supplementalRequestProperties","queryArray","baseQuery","supplementalRequest","ROUTER_LINK_VALUE","NAV_MANAGER","ROUTER_PROP_PREFIX","ARIA_PROP_PREFIX","EMPTY_PROP","DEFAULT_EMPTY_PROP","getComponentClasses","getElementClasses","componentClasses","defaultClasses","self","defineContainer","componentProps","emitProps","modelProp","modelUpdateEvent","Container","defineComponent","attrs","slots","emit","containerRef","onMounted","currentInstance","getCurrentInstance","navManager","inject","handleRouterLink","routerLink","navigationPayload","oldClick","handleClick","propsToAdd","eventHandlerKey","eventHandler","emits","componentProp","SearchcraftFilterPanel","SearchcraftPagination","SearchcraftPopoverButton","SearchcraftPopoverForm","SearchcraftResultsInfo","SearchcraftSearchResults","SearchcraftSearchResultsPerPage","SearchcraftSummaryBox","SearchcraftTheme","Component","Searchcraft","packageName","packageVersion"],"mappings":"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","x_google_ignoreList":[45]}
1
+ {"version":3,"file":"index.umd.js","sources":["../../javascript-sdk/dist/components/index2.js?v=0.13.2","../../javascript-sdk/dist/components/index3.js?v=0.13.2","../../javascript-sdk/dist/components/CoreInstanceRegistry.js?v=0.13.2","../../javascript-sdk/dist/components/purify.es.js?v=0.13.2","../../javascript-sdk/dist/components/html.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-ad2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-ad.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-button2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-button.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-error-message2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-error-message.js?v=0.13.2","../../javascript-sdk/dist/components/purify.es.js","../../javascript-sdk/dist/components/searchcraft-facet-list2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-facet-list.js?v=0.13.2","../../javascript-sdk/dist/components/units.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-slider2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-toggle-button2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-filter-panel.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-input-label2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-input-form2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-input-form.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-input-label.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-loading2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-loading.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-pagination.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-button.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-footer2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-footer.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-list-item2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-list-view2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-form.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-list-item.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-popover-list-view.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-results-info.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-search-result2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-search-result.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-search-results.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-select2.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-search-results-per-page.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-select.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-slider.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-summary-box.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-theme.js?v=0.13.2","../../javascript-sdk/dist/components/searchcraft-toggle-button.js?v=0.13.2","../../javascript-sdk/dist/components/defineCustomElements.js?v=0.13.2","../../javascript-sdk/dist/components/index.js","../../../node_modules/@stencil/vue-output-target/dist/runtime.js","../src/stencil-web-components.ts","../src/components/SearchcraftSearchResults.tsx","../src/components/SearchcraftFilterPanel.tsx","../src/components/SearchcraftInputForm.tsx","../src/components/SearchcraftPopoverButton.tsx","../src/components/SearchcraftPopoverForm.tsx","../src/components/SearchcraftResultsInfo.tsx","../src/components/SearchcraftTheme.tsx","../src/components/SearchcraftPagination.tsx","../src/components/SearchcraftSearchResultsPerPage.tsx","../src/components/SearchcraftSummaryBox.tsx","../src/index.ts"],"sourcesContent":["const NAMESPACE = 'searchcraft-javascript-sdk';\nconst BUILD = /* searchcraft-javascript-sdk */ { hydratedSelectorName: \"hydrated\", lazyLoad: false, shadowDom: false, slotRelocation: true, state: true, updatable: true};\n\n/*\n Stencil Client Platform v4.39.0 | 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/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\nvar PrimitiveType = /* @__PURE__ */ ((PrimitiveType2) => {\n PrimitiveType2[\"Undefined\"] = \"undefined\";\n PrimitiveType2[\"Null\"] = \"null\";\n PrimitiveType2[\"String\"] = \"string\";\n PrimitiveType2[\"Number\"] = \"number\";\n PrimitiveType2[\"SpecialNumber\"] = \"number\";\n PrimitiveType2[\"Boolean\"] = \"boolean\";\n PrimitiveType2[\"BigInt\"] = \"bigint\";\n return PrimitiveType2;\n})(PrimitiveType || {});\nvar NonPrimitiveType = /* @__PURE__ */ ((NonPrimitiveType2) => {\n NonPrimitiveType2[\"Array\"] = \"array\";\n NonPrimitiveType2[\"Date\"] = \"date\";\n NonPrimitiveType2[\"Map\"] = \"map\";\n NonPrimitiveType2[\"Object\"] = \"object\";\n NonPrimitiveType2[\"RegularExpression\"] = \"regexp\";\n NonPrimitiveType2[\"Set\"] = \"set\";\n NonPrimitiveType2[\"Channel\"] = \"channel\";\n NonPrimitiveType2[\"Symbol\"] = \"symbol\";\n return NonPrimitiveType2;\n})(NonPrimitiveType || {});\nvar TYPE_CONSTANT = \"type\";\nvar VALUE_CONSTANT = \"value\";\nvar SERIALIZED_PREFIX = \"serialized:\";\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 ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);\n if (ogDescriptor) {\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 }\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\nfunction getPropertyDescriptor(obj, memberName) {\n while (obj) {\n const desc = Object.getOwnPropertyDescriptor(obj, memberName);\n if (desc == null ? void 0 : desc.get) return desc;\n obj = Object.getPrototypeOf(obj);\n }\n return void 0;\n}\n\n// src/client/client-host-ref.ts\nvar getHostRef = (ref) => {\n if (ref.__stencil__getHostRef) {\n return ref.__stencil__getHostRef();\n }\n return void 0;\n};\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map(),\n $serializerValues$: /* @__PURE__ */ new Map()\n };\n {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n const ref = hostRef;\n hostElement.__stencil__getHostRef = () => ref;\n if (cmpMeta.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.state)) {\n reWireGetterSetter(hostElement, hostRef);\n }\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\nvar consoleError = (e, el) => (0, console.error)(e, el);\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 HYDRATE_CHILD_ID = \"c-id\";\nvar win = typeof window !== \"undefined\" ? window : {};\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 supportsShadow = BUILD.shadowDom;\nvar promiseResolve = (v) => Promise.resolve(v);\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\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 flush = () => {\n consume(queueDomReads);\n {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\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;\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// src/utils/regular-expression.ts\nvar escapeRegExpSpecialCharacters = (text) => {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n// src/utils/remote-value.ts\nvar RemoteValue = class _RemoteValue {\n /**\n * Deserializes a LocalValue serialized object back to its original JavaScript representation\n *\n * @param serialized The serialized LocalValue object\n * @returns The original JavaScript value/object\n */\n static fromLocalValue(serialized) {\n const type = serialized[TYPE_CONSTANT];\n const value = VALUE_CONSTANT in serialized ? serialized[VALUE_CONSTANT] : void 0;\n switch (type) {\n case \"string\" /* String */:\n return value;\n case \"boolean\" /* Boolean */:\n return value;\n case \"bigint\" /* BigInt */:\n return BigInt(value);\n case \"undefined\" /* Undefined */:\n return void 0;\n case \"null\" /* Null */:\n return null;\n case \"number\" /* Number */:\n if (value === \"NaN\") return NaN;\n if (value === \"-0\") return -0;\n if (value === \"Infinity\") return Infinity;\n if (value === \"-Infinity\") return -Infinity;\n return value;\n case \"array\" /* Array */:\n return value.map((item) => _RemoteValue.fromLocalValue(item));\n case \"date\" /* Date */:\n return new Date(value);\n case \"map\" /* Map */:\n const map2 = /* @__PURE__ */ new Map();\n for (const [key, val] of value) {\n const deserializedKey = typeof key === \"object\" && key !== null ? _RemoteValue.fromLocalValue(key) : key;\n const deserializedValue = _RemoteValue.fromLocalValue(val);\n map2.set(deserializedKey, deserializedValue);\n }\n return map2;\n case \"object\" /* Object */:\n const obj = {};\n for (const [key, val] of value) {\n obj[key] = _RemoteValue.fromLocalValue(val);\n }\n return obj;\n case \"regexp\" /* RegularExpression */:\n const { pattern, flags } = value;\n return new RegExp(pattern, flags);\n case \"set\" /* Set */:\n const set = /* @__PURE__ */ new Set();\n for (const item of value) {\n set.add(_RemoteValue.fromLocalValue(item));\n }\n return set;\n case \"symbol\" /* Symbol */:\n return Symbol(value);\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n }\n /**\n * Utility method to deserialize multiple LocalValues at once\n *\n * @param serializedValues Array of serialized LocalValue objects\n * @returns Array of deserialized JavaScript values\n */\n static fromLocalValueArray(serializedValues) {\n return serializedValues.map((value) => _RemoteValue.fromLocalValue(value));\n }\n /**\n * Verifies if the given object matches the structure of a serialized LocalValue\n *\n * @param obj Object to verify\n * @returns boolean indicating if the object has LocalValue structure\n */\n static isLocalValueObject(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return false;\n }\n if (!obj.hasOwnProperty(TYPE_CONSTANT)) {\n return false;\n }\n const type = obj[TYPE_CONSTANT];\n const hasTypeProperty = Object.values({ ...PrimitiveType, ...NonPrimitiveType }).includes(type);\n if (!hasTypeProperty) {\n return false;\n }\n if (type !== \"null\" /* Null */ && type !== \"undefined\" /* Undefined */) {\n return obj.hasOwnProperty(VALUE_CONSTANT);\n }\n return true;\n }\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/utils/serialize.ts\nfunction deserializeProperty(value) {\n if (typeof value !== \"string\" || !value.startsWith(SERIALIZED_PREFIX)) {\n return value;\n }\n return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));\n}\nvar updateFallbackSlotVisibility = (elm) => {\n const childNodes = internalCall(elm, \"childNodes\");\n if (elm.tagName && elm.tagName.includes(\"-\") && elm[\"s-cr\"] && elm.tagName !== \"SLOT-FB\") {\n getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {\n if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === \"SLOT-FB\") {\n if (getSlotChildSiblings(slotNode, getSlotName(slotNode), false).length) {\n slotNode.hidden = true;\n } else {\n slotNode.hidden = false;\n }\n }\n });\n }\n let i2 = 0;\n for (i2 = 0; i2 < childNodes.length; i2++) {\n const childNode = childNodes[i2];\n if (childNode.nodeType === 1 /* ElementNode */ && internalCall(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\"] && (!hostName || childNode[\"s-hn\"] === hostName) && (slotName === void 0)) {\n slottedNodes.push(childNode);\n }\n slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];\n }\n return slottedNodes;\n}\nvar getSlotChildSiblings = (slot, slotName, includeSlot = true) => {\n const childNodes = [];\n if (includeSlot && slot[\"s-sr\"] || !slot[\"s-sr\"]) childNodes.push(slot);\n let node = slot;\n while (node = node.nextSibling) {\n if (getSlotName(node) === slotName && (includeSlot || !node[\"s-sr\"])) 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 if (newChild[\"s-ol\"] && newChild[\"s-ol\"].isConnected) {\n return;\n }\n const slottedNodeLocation = document.createTextNode(\"\");\n slottedNodeLocation[\"s-nr\"] = newChild;\n if (!slotNode[\"s-cr\"] || !slotNode[\"s-cr\"].parentNode) return;\n const parent = slotNode[\"s-cr\"].parentNode;\n const appendMethod = internalCall(parent, \"appendChild\");\n if (typeof position !== \"undefined\") {\n slottedNodeLocation[\"s-oo\"] = position;\n const childNodes = internalCall(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\"] || 0)) 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 } else {\n appendMethod.call(parent, slottedNodeLocation);\n }\n newChild[\"s-ol\"] = slottedNodeLocation;\n newChild[\"s-sh\"] = slotNode[\"s-hn\"];\n};\nvar getSlotName = (node) => typeof node[\"s-sn\"] === \"string\" ? node[\"s-sn\"] : node.nodeType === 1 && node.getAttribute(\"slot\") || void 0;\nfunction patchSlotNode(node) {\n if (node.assignedElements || node.assignedNodes || !node[\"s-sr\"]) return;\n const assignedFactory = (elementsOnly) => (function(opts) {\n const toReturn = [];\n const slotName = this[\"s-sn\"];\n if (opts == null ? void 0 : opts.flatten) {\n console.error(`\n Flattening is not supported for Stencil non-shadow slots.\n You can use \\`.childNodes\\` to nested slot fallback content.\n If you have a particular use case, please open an issue on the Stencil repo.\n `);\n }\n const parent = this[\"s-cr\"].parentElement;\n const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);\n slottedNodes.forEach((n) => {\n if (slotName === getSlotName(n)) {\n toReturn.push(n);\n }\n });\n if (elementsOnly) {\n return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);\n }\n return toReturn;\n }).bind(node);\n node.assignedElements = assignedFactory(true);\n node.assignedNodes = assignedFactory(false);\n}\nfunction internalCall(node, method) {\n if (\"__\" + method in node) {\n const toReturn = node[\"__\" + method];\n if (typeof toReturn !== \"function\") return toReturn;\n return toReturn.bind(node);\n } else {\n if (typeof node[method] !== \"function\") return node[method];\n return node[method].bind(node);\n }\n}\nvar createTime = (fnName, tagName = \"\") => {\n {\n return () => {\n return;\n };\n }\n};\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar getScopeId = (cmp, mode) => \"sc-\" + (cmp.$tagName$);\nvar h = (nodeName, vnodeData, ...children) => {\n if (typeof nodeName === \"string\") {\n nodeName = transformTag(nodeName);\n }\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 }\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 (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\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 (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 {\n vnode.$key$ = key;\n }\n {\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 {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\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};\n\n// src/runtime/client-hydrate.ts\nvar initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n var _a, _b;\n const endHydrate = createTime(\"hydrateClient\", tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const slottedNodes = [];\n const shadowRootNodes = null;\n const vnode = newVNode(tagName, null);\n vnode.$elm$ = hostElm;\n if (win.document && (!plt.$orgLocNodes$ || !plt.$orgLocNodes$.size)) {\n initializeDocumentHydrate(win.document.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\"] = transformTag(tagName).toUpperCase();\n if (childRenderNode.$tag$ === \"slot\") {\n node[\"s-cr\"] = hostElm[\"s-cr\"];\n }\n } else if (((_a = childRenderNode.$tag$) == null ? void 0 : _a.toString().includes(\"-\")) && childRenderNode.$tag$ !== \"slot-fb\" && !childRenderNode.$elm$.shadowRoot) {\n const cmpMeta = getHostRef(childRenderNode.$elm$);\n if (cmpMeta) {\n const scopeId3 = getScopeId(\n cmpMeta.$cmpMeta$);\n const styleSheet = win.document.querySelector(`style[sty-id=\"${scopeId3}\"]`);\n if (styleSheet) {\n hostElm.shadowRoot.append(styleSheet.cloneNode(true));\n }\n }\n }\n if (childRenderNode.$tag$ === \"slot\") {\n childRenderNode.$name$ = childRenderNode.$elm$[\"s-sn\"] || childRenderNode.$elm$[\"name\"] || null;\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 (orgLocationNode.parentElement.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 if (orgLocationNode && !orgLocationNode[\"s-id\"]) {\n plt.$orgLocNodes$.delete(orgLocationId);\n }\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 && slottedItem.node.parentElement !== hostEle) {\n hostEle.appendChild(slottedItem.node);\n }\n if (!hostEle.shadowRoot || !shadowRoot) {\n if (!slottedItem.slot[\"s-cr\"]) {\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 }\n addSlotRelocateNode(slottedItem.node, slottedItem.slot, false, slottedItem.node[\"s-oo\"]);\n if (((_b = slottedItem.node.parentElement) == null ? void 0 : _b.shadowRoot) && slottedItem.node[\"getAttribute\"] && slottedItem.node.getAttribute(\"slot\")) {\n slottedItem.node.removeAttribute(\"slot\");\n }\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 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 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 }\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 }\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$ = findCorrespondingNode(node, 3 /* TextNode */);\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 }\n } else if (childNodeType === COMMENT_NODE_ID) {\n childVNode.$elm$ = findCorrespondingNode(node, 8 /* CommentNode */);\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 {\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 } else {\n if (node.nodeType === 3 /* TextNode */ && !node.wholeText.trim() && !node[\"s-nr\"]) {\n node.remove();\n }\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 {\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 patchSlotNode(node);\n if (shouldMove) {\n parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);\n }\n }\n childRenderNodes.push(childVNode);\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 var _a, _b;\n let slottedNode = slotNode.nextSibling;\n slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];\n if (!slottedNode || ((_a = slottedNode.nodeValue) == null ? void 0 : _a.startsWith(SLOT_NODE_ID + \".\"))) return;\n do {\n if (slottedNode && ((slottedNode[\"getAttribute\"] && slottedNode.getAttribute(\"slot\") || slottedNode[\"s-sn\"]) === slotName || slotName === \"\" && !slottedNode[\"s-sn\"] && (!slottedNode[\"getAttribute\"] || !slottedNode.getAttribute(\"slot\")) && (slottedNode.nodeType === 8 /* CommentNode */ || slottedNode.nodeType === 3 /* TextNode */))) {\n slottedNode[\"s-sn\"] = slotName;\n slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });\n }\n slottedNode = slottedNode == null ? void 0 : slottedNode.nextSibling;\n } while (slottedNode && !((_b = slottedNode.nodeValue) == null ? void 0 : _b.startsWith(SLOT_NODE_ID + \".\")));\n};\nvar findCorrespondingNode = (node, type) => {\n let sibling = node;\n do {\n sibling = sibling.nextSibling;\n } while (sibling && (sibling.nodeType !== type || !sibling.nodeValue));\n return sibling;\n};\nvar createSupportsRuleRe = (selector) => {\n const safeSelector2 = escapeRegExpSpecialCharacters(selector);\n return new RegExp(\n // First capture group: match any context before the selector that's not inside @supports selector()\n // Using negative lookahead to avoid matching inside @supports selector(...) condition\n `(^|[^@]|@(?!supports\\\\s+selector\\\\s*\\\\([^{]*?${safeSelector2}))(${safeSelector2}\\\\b)`,\n \"g\"\n );\n};\ncreateSupportsRuleRe(\"::slotted\");\ncreateSupportsRuleRe(\":host\");\ncreateSupportsRuleRe(\":host-context\");\nvar parsePropertyValue = (propValue, propType, isFormAssociated) => {\n if (typeof propValue === \"string\" && propValue.startsWith(SERIALIZED_PREFIX)) {\n propValue = deserializeProperty(propValue);\n return propValue;\n }\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n }\n if (propType & 2 /* Number */) {\n return typeof propValue === \"string\" ? parseFloat(propValue) : typeof propValue === \"number\" ? propValue : NaN;\n }\n if (propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\nvar getElement = (ref) => {\n return ref;\n};\n\n// src/runtime/event-emitter.ts\nvar createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n return emitEvent(elm, name, {\n bubbles: true,\n composed: true,\n cancelable: true,\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};\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {\n if (oldValue === newValue) {\n return;\n }\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n if ((elm[\"s-si\"] || elm[\"s-sc\"]) && initialRender) {\n const scopeId2 = elm[\"s-sc\"] || elm[\"s-si\"];\n newClasses.push(scopeId2);\n oldClasses.forEach((c) => {\n if (c.startsWith(scopeId2)) newClasses.push(c);\n });\n newClasses = [...new Set(newClasses)].filter((c) => c);\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 (memberName === \"style\") {\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (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 (prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (memberName === \"key\") ; else if ((!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 {\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 if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex && elm.nodeType === 1 /* ElementNode */) {\n newValue = newValue === true ? \"\" : newValue;\n {\n elm.setAttribute(memberName, newValue);\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 {\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}\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 (!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 (newVNode2.$text$ !== null) {\n elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);\n } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {\n elm = newVNode2.$elm$ = win.document.createTextNode(\"\");\n {\n updateElement(null, newVNode2, isSvgMode);\n }\n } else {\n if (!isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n if (!win.document) {\n throw new Error(\n \"You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.\"\n );\n }\n elm = newVNode2.$elm$ = win.document.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n ) ;\n if (isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n {\n updateElement(null, newVNode2, isSvgMode);\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 {\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 {\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 patchSlotNode(elm);\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {\n {\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n }\n return elm;\n};\nvar putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);\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$ &= -2 /* isTmpDisconnected */;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = parentElm[\"s-cr\"] && parentElm[\"s-cr\"].parentNode || parentElm;\n let childNode;\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, referenceNode(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 if (elm) {\n {\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 ((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 ((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 {\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 (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 {\n insertBefore(\n referenceNode(oldStartVnode.$elm$).parentNode,\n node,\n referenceNode(oldStartVnode.$elm$)\n );\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 (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (leftVNode.$tag$ === \"slot\") {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n if (!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 (text === null) {\n {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n {\n updateElement(oldVNode, newVNode2, isSvgMode, isInitialRender);\n }\n if (oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n if (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 && BUILD.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n } else if (isInitialRender && BUILD.updatable && oldChildren !== null && newChildren === null) {\n newVNode2.$children$ = oldChildren;\n }\n if (isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n } else if ((defaultHolder = elm[\"s-cr\"])) {\n defaultHolder.parentNode.textContent = text;\n } else if (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\"] && (true)) {\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 insertBefore = (parent, newNode, reference) => {\n {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n var _a, _b, _c, _d;\n const hostElm = hostRef.$hostElement$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const isHostElement = isHost(renderFnResults);\n const rootVnode = isHostElement ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\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$ = hostElm;\n useNativeShadowDom = supportsShadow;\n {\n contentRef = hostElm[\"s-cr\"];\n checkSlotFallbackVisibility = false;\n }\n patch(oldVNode, rootVnode, isInitialLoad);\n {\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\"] && win.document) {\n const orgLocationNode = win.document.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 {\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 (!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\"](slotRefNode);\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$ &= -2 /* isTmpDisconnected */;\n relocateNodes.length = 0;\n }\n contentRef = void 0;\n};\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (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 {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n if (isInitialLoad) {\n queueMicrotask(() => {\n dispatch();\n });\n return;\n }\n return writeTask(dispatch) ;\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = 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 maybePromise = safeCall(instance, \"componentWillLoad\", void 0, elm);\n } else {\n maybePromise = safeCall(instance, \"componentWillUpdate\", void 0, elm);\n }\n maybePromise = enqueue(maybePromise, () => safeCall(instance, \"componentWillRender\", void 0, elm));\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 const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n {\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 }\n};\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= -17 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n {\n {\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n safeCall(instance, \"componentDidRender\", void 0, elm);\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n addHydratedFlag(elm);\n }\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n } else {\n safeCall(instance, \"componentDidUpdate\", void 0, elm);\n endPostUpdate();\n }\n {\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$ &= -517;\n }\n};\nvar appDidLoad = (who) => {\n var _a;\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n {\n if ((_a = plt.$orgLocNodes$) == null ? void 0 : _a.size) {\n plt.$orgLocNodes$.clear();\n }\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 addHydratedFlag = (elm) => {\n var _a;\n return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : \"hydrated\") ;\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 (!hostRef) {\n return;\n }\n const elm = ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = elm;\n newVal = parsePropertyValue(\n newVal,\n cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if (didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n {\n if (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 ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n if (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 {\n {\n if (Cstr.watchers && !cmpMeta.$watchers$) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n if (Cstr.deserializers && !cmpMeta.$deserializers$) {\n cmpMeta.$deserializers$ = Cstr.deserializers;\n }\n if (Cstr.serializers && !cmpMeta.$serializers$) {\n cmpMeta.$serializers$ = Cstr.serializers;\n }\n }\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || 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 {\n Object.defineProperty(prototype, memberName, {\n get() {\n {\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 (!ref) {\n return;\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 }\n origSetter.apply(this, [\n parsePropertyValue(\n newValue,\n memberFlags)\n ]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n {\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n }\n });\n }\n });\n {\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 const hostRef = getHostRef(this);\n if (this.hasOwnProperty(propName) && BUILD.lazyLoad) ;\n 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 flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {\n const elm = this;\n const instance = 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 propFlags = members.find(([m]) => m === propName);\n if (propFlags && propFlags[1][0] & 4 /* Boolean */) {\n newValue = newValue === null || newValue === \"false\" ? false : true;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\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] & 31 /* HasAttribute */).map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\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 if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n {\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (!hostRef) {\n return;\n }\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n let hostId;\n {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (!hostId) {\n if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {\n setContentReference(elm);\n }\n }\n {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (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 (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && memberName in elm && elm[memberName] !== Object.prototype[memberName]) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef);\n }\n } else {\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback());\n }\n }\n endConnected();\n }\n};\nvar setContentReference = (elm) => {\n if (!win.document) {\n return;\n }\n const contentRefElm = elm[\"s-cr\"] = win.document.createComment(\n \"\"\n );\n contentRefElm[\"s-cn\"] = true;\n insertBefore(elm, contentRefElm, elm.firstChild);\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n getHostRef(elm);\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};\nvar proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1]\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n cmpMeta.$deserializers$ = Cstr.$deserializers$;\n cmpMeta.$serializers$ = Cstr.$serializers$;\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 if (!hostRef) {\n return;\n }\n this.__hasHostListenerAttached = true;\n }\n connectedCallback(this);\n if (originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n },\n __attachShadow() {\n {\n this.shadowRoot = this;\n }\n }\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta);\n};\n\n// src/runtime/fragment.ts\nvar Fragment = (_, children) => children;\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/render.ts\nfunction render(vnode, container) {\n const ref = {\n $hostElement$: container\n };\n renderVdom(ref, vnode);\n}\nfunction transformTag(tag) {\n return tag;\n}\n\nexport { Fragment as F, H, setNonce as a, setPlatformOptions as b, createEvent as c, getAssetPath as g, h, proxyCustomElement as p, render as r, setAssetPath as s, transformTag as t };\n//# sourceMappingURL=index2.js.map\n\n//# sourceMappingURL=index2.js.map","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar classnames = {exports: {}};\n\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\nvar hasRequiredClassnames;\n\nfunction requireClassnames () {\n\tif (hasRequiredClassnames) return classnames.exports;\n\thasRequiredClassnames = 1;\n\t(function (module) {\n\t\t/* global define */\n\n\t\t(function () {\n\n\t\t\tvar hasOwn = {}.hasOwnProperty;\n\n\t\t\tfunction classNames () {\n\t\t\t\tvar classes = '';\n\n\t\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\t\tvar arg = arguments[i];\n\t\t\t\t\tif (arg) {\n\t\t\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn classes;\n\t\t\t}\n\n\t\t\tfunction parseValue (arg) {\n\t\t\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\t\t\treturn arg;\n\t\t\t\t}\n\n\t\t\t\tif (typeof arg !== 'object') {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\tif (Array.isArray(arg)) {\n\t\t\t\t\treturn classNames.apply(null, arg);\n\t\t\t\t}\n\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\treturn arg.toString();\n\t\t\t\t}\n\n\t\t\t\tvar classes = '';\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn classes;\n\t\t\t}\n\n\t\t\tfunction appendClass (value, newClass) {\n\t\t\t\tif (!newClass) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (value) {\n\t\t\t\t\treturn value + ' ' + newClass;\n\t\t\t\t}\n\t\t\t\n\t\t\t\treturn value + newClass;\n\t\t\t}\n\n\t\t\tif (module.exports) {\n\t\t\t\tclassNames.default = classNames;\n\t\t\t\tmodule.exports = classNames;\n\t\t\t} else {\n\t\t\t\twindow.classNames = classNames;\n\t\t\t}\n\t\t}()); \n\t} (classnames));\n\treturn classnames.exports;\n}\n\nvar classnamesExports = requireClassnames();\nvar classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);\n\nexport { classNames as c };\n//# sourceMappingURL=index3.js.map\n\n//# sourceMappingURL=index3.js.map","/**\n * This is the default instance id for searchcraft core instances.\n * When no id is specified in a component's props, use this one.\n */\nconst DEFAULT_CORE_INSTANCE_ID = 'searchcraft';\n/**\n * CoreInstanceRegistry\n *\n * This class is responsible for managing all of the instances of SearchcraftCore on a page.\n * It provides a means for consuming components to use the instance of SearchcraftCore that\n * they need to use when that instance of core gets added to the Registry.\n */\nclass CoreInstanceRegistry {\n coreInstances = {};\n subscriptions = {};\n /**\n * Adds a SearchcraftCore instance to the Registry.\n *\n * When the instance is added, iterates through the onAvailable callbacks\n * that have been subscribed via useCoreInstance.\n *\n * @param coreInstance The SearchcraftCore instance to add to the registry\n * @param searchcraftId The unique identifier for this SearchcraftCore instance.\n */\n addCoreInstance(coreInstance, searchcraftId) {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n this.coreInstances[id] = coreInstance;\n for (const callback of this.subscriptions[id] || []) {\n callback(coreInstance);\n }\n }\n /**\n * Use the specified instance of SearchcraftCore. When the instance becomes available,\n * the onAvailable callback will be called.\n *\n * @param searchcraftId The SearchcraftCore instance to use.\n * @param onAvailable The callback that gets called when the core instance becomes available.\n */\n useCoreInstance(searchcraftId, onAvailable) {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n // If the core instance already is available, call the onAvailable callback immediately.\n if (this.coreInstances[id]) {\n onAvailable(this.coreInstances[id]);\n return () => { };\n }\n // Add the callback to the collection of callbacks for this searchcraft instance.\n if (!this.subscriptions[id]) {\n this.subscriptions[id] = [];\n }\n this.subscriptions[id].push(onAvailable);\n return () => {\n if (this.subscriptions[id]) {\n this.subscriptions[id] = this.subscriptions[id].filter((cb) => cb !== onAvailable);\n }\n };\n }\n}\nconst registry = new CoreInstanceRegistry();\n\nexport { DEFAULT_CORE_INSTANCE_ID as D, registry as r };\n//# sourceMappingURL=CoreInstanceRegistry.js.map\n\n//# sourceMappingURL=CoreInstanceRegistry.js.map","/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n text: 3,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.3.1';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (cfg.ADD_ATTR) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n if (cfg.ADD_FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title|textarea)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as p };\n//# sourceMappingURL=purify.es.js.map\n\n//# sourceMappingURL=purify.es.js.map","import { p as purify } from './purify.es.js?v=0.13.2';\n\n/**\n * This allows you to parse a template string with a function.\n */\nconst html = (strings, ...values) => {\n let result = strings[0];\n for (let i = 0; i < values.length; i++) {\n result +=\n purify.sanitize(values[i] ? String(values[i]) : '') + strings[i + 1];\n }\n return result || '';\n};\n\nexport { html as h };\n//# sourceMappingURL=html.js.map\n\n//# sourceMappingURL=html.js.map","import { p as proxyCustomElement, t as transformTag, H, h } from './index2.js?v=0.13.2';\nimport { c as classNames } from './index3.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { h as html } from './html.js?v=0.13.2';\n\nconst urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\n\n/* @ts-self-types=\"./index.d.ts\" */\nlet nanoid = (size = 21) => {\n let id = '';\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)));\n while (size--) {\n id += urlAlphabet[bytes[size] & 63];\n }\n return id\n};\n\nconst SearchcraftPopoverListItemAd = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItemAd extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n adSource = 'Custom';\n adClientResponseItem;\n /**\n * Where the ad is being rendered within the search results div.\n * Lifecycle behavior differs for ads being rendered in different positions,\n * so we need to be able to handle all of those cases.\n */\n renderPosition = 'interstitial';\n searchTerm;\n isSearchInProgress = false;\n searchResultCount = 0;\n get hostElement() { return this; }\n core;\n intersectionObserver;\n storeUnsubscribe;\n cleanupCore;\n adContainerRenderedTimeout;\n isComponentConnected = false;\n timeTaken;\n adContainerId = '';\n /**\n * Handles when an ad container is first rendered.\n * Core emits an ad_container_rendered event and performs ad client side effects\n *\n */\n handleAdRendered() {\n this.adContainerId = nanoid();\n if (this.isComponentConnected && this.searchResultCount > 0) {\n clearTimeout(this.adContainerRenderedTimeout);\n this.adContainerRenderedTimeout = setTimeout(() => {\n this.core?.handleAdContainerRendered({\n adClientResponseItem: this.adClientResponseItem,\n adContainerId: this.adContainerId,\n searchTerm: this.searchTerm || '',\n });\n }, this.core?.config?.customAdConfig?.adContainerRenderedDebounceDelay ||\n 300);\n }\n }\n handleAdViewed() {\n this.core?.handleAdContainerViewed({\n adClientResponseItem: this.adClientResponseItem,\n adContainerId: this.adContainerId,\n searchTerm: this.searchTerm || '',\n });\n }\n /**\n * Things to do when there's a new incoming search request.\n */\n handleNewIncomingSearchRequest(state) {\n const requestProperties = state.searchClientRequestProperties;\n if (requestProperties && typeof requestProperties === 'object') {\n this.searchTerm = requestProperties.searchTerm;\n }\n this.searchResultCount = state.searchClientResponseItems.length;\n this.handleAdRendered();\n this.startIntersectionObserver();\n }\n onCoreAvailable(core) {\n const currentState = core.store.getState();\n this.isComponentConnected = true;\n this.core = currentState.core;\n this.isSearchInProgress = currentState.isSearchInProgress;\n this.searchResultCount = currentState.searchClientResponseItems.length;\n this.timeTaken = currentState.searchResponseTimeTaken;\n const requestProperties = currentState.searchClientRequestProperties;\n if (requestProperties && typeof requestProperties === 'object') {\n this.searchTerm = requestProperties.searchTerm;\n }\n /**\n * Interstial ads have a different lifecycle, where we need handle an incoming search\n * request immediately, because they are rendered alongside the search results.\n */\n if (this.renderPosition === 'interstitial') {\n this.handleNewIncomingSearchRequest(currentState);\n }\n // Subscribes to store changes (for search term).\n this.storeUnsubscribe = core.store.subscribe((state) => {\n if (this.timeTaken !== state.searchResponseTimeTaken) {\n this.handleNewIncomingSearchRequest(state);\n }\n this.timeTaken = state.searchResponseTimeTaken;\n this.isSearchInProgress = state.isSearchInProgress;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n startIntersectionObserver() {\n this.intersectionObserver?.disconnect();\n /**\n * Handles when an ad container is viewable within the document,\n * Core emits an ad_container_viewed event and performs ad client side effects\n */\n if (this.hostElement) {\n this.intersectionObserver = new IntersectionObserver(([entry]) => {\n if (entry?.isIntersecting && this.searchResultCount > 0) {\n this.handleAdViewed();\n }\n }, { threshold: 0 });\n this.intersectionObserver.observe(this.hostElement);\n }\n }\n disconnectedCallback() {\n this.storeUnsubscribe?.();\n this.cleanupCore?.();\n this.intersectionObserver?.disconnect();\n this.isComponentConnected = false;\n clearTimeout(this.adContainerRenderedTimeout);\n }\n renderADMAd() {\n const item = this.adClientResponseItem;\n if (!item.admAd) {\n return;\n }\n let templateHtml = '<p>Ad Marketplace Ad Placeholder</p>';\n if (this.core?.config?.admAdConfig?.template) {\n templateHtml = this.core?.config?.admAdConfig.template(item.admAd, {\n html,\n });\n }\n return (h(\"div\", { class: 'searchcraft-ad searchcraft-adm-ad', \"data-searchcraft-ad-container-id\": this.adContainerId, id: `searchcraft-adm-ad-${this.adContainerId}`, innerHTML: templateHtml }));\n }\n renderCustomAd() {\n const templateRenderFunction = this.core?.config?.customAdConfig?.template;\n const containerId = `searchcraft-custom-ad-${this.adContainerId}`;\n let templateHtml = '<p>Custom Ad Placeholder</p>';\n if (templateRenderFunction) {\n templateHtml = templateRenderFunction({\n searchTerm: this.searchTerm || '',\n adContainerId: this.adContainerId,\n }, { html });\n }\n return (h(\"div\", { class: 'searchcraft-ad searchcraft-custom-ad', id: containerId, \"data-searchcraft-ad-container-id\": this.adContainerId, innerHTML: templateHtml }));\n }\n renderNativoAd() {\n const nativoClassName = this.core?.config.nativoConfig?.adClassName || 'ntv-item';\n return (h(\"div\", { id: `searchcraft-native-ad-${this.adContainerId}`, class: classNames('searchcraft-ad', nativoClassName), \"data-searchcraft-ad-container-id\": this.adContainerId }));\n }\n render() {\n // Don't render ads if no search results\n if (this.searchResultCount === 0) {\n return;\n }\n switch (this.adSource) {\n case 'adMarketplace':\n return this.renderADMAd();\n case 'Custom':\n return this.renderCustomAd();\n case 'Nativo':\n return this.renderNativoAd();\n default:\n return;\n }\n }\n}, [768, \"searchcraft-ad\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"adSource\": [1, \"ad-source\"],\n \"adClientResponseItem\": [16],\n \"renderPosition\": [1, \"render-position\"],\n \"searchTerm\": [32],\n \"isSearchInProgress\": [32],\n \"searchResultCount\": [32],\n \"adContainerId\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-ad\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-ad\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftPopoverListItemAd);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItemAd as S, defineCustomElement as d, nanoid as n };\n//# sourceMappingURL=searchcraft-ad2.js.map\n\n//# sourceMappingURL=searchcraft-ad2.js.map","import { S as SearchcraftPopoverListItemAd, d as defineCustomElement$1 } from './searchcraft-ad2.js?v=0.13.2';\n\nconst SearchcraftAd = SearchcraftPopoverListItemAd;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftAd, defineCustomElement };\n//# sourceMappingURL=searchcraft-ad.js.map\n\n//# sourceMappingURL=searchcraft-ad.js.map","import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, t as transformTag } from './index2.js?v=0.13.2';\nimport { c as classNames } from './index3.js?v=0.13.2';\n\nconst SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButton extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.buttonClick = createEvent(this, \"buttonClick\");\n }\n /**\n * Controls the visual representation of the button.\n */\n hierarchy = 'primary';\n /**\n * Whether the button is disabled.\n */\n disabled = false;\n /**\n * The icon element.\n */\n icon;\n /**\n * Should the button only display an icon.\n */\n iconOnly = false;\n /**\n * The position of the icon.\n */\n iconPosition = 'left';\n /**\n * The label for the button.\n */\n label = 'Search';\n /**\n * The type of the button.\n */\n type = 'button';\n /**\n * The event fired when the button is clicked.\n */\n buttonClick;\n handleButtonClick = () => {\n this.buttonClick.emit();\n };\n render() {\n return (h(\"button\", { key: 'e54b4566e0286265bc0c8b6bb4e9ef26108575da', \"aria-label\": this.label, class: classNames('searchcraft-button', {\n 'searchcraft-button-primary': this.hierarchy === 'primary',\n 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',\n 'searchcraft-button-disabled': this.disabled,\n }), disabled: this.disabled, onClick: this.handleButtonClick, type: this.type }, this.iconOnly ? (this.icon) : (h(Fragment, null, this.iconPosition === 'left' && this.icon, h(\"span\", null, this.label), this.iconPosition === 'right' && this.icon))));\n }\n}, [768, \"searchcraft-button\", {\n \"hierarchy\": [1],\n \"disabled\": [4],\n \"icon\": [16],\n \"iconOnly\": [4, \"icon-only\"],\n \"iconPosition\": [1, \"icon-position\"],\n \"label\": [1],\n \"type\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-button\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftButton as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-button2.js.map\n\n//# sourceMappingURL=searchcraft-button2.js.map","import { S as SearchcraftButton$1, d as defineCustomElement$1 } from './searchcraft-button2.js?v=0.13.2';\n\nconst SearchcraftButton = SearchcraftButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftButton, defineCustomElement };\n//# sourceMappingURL=searchcraft-button.js.map\n\n//# sourceMappingURL=searchcraft-button.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\n\nconst SearchcraftErrorMessage = /*@__PURE__*/ proxyCustomElement(class SearchcraftErrorMessage extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n render() {\n return (h(\"div\", { key: 'd42f7abf8dfb2620622b8012d868d32f04b2f354', class: 'searchcraft-error-message' }, h(\"slot\", { key: '75a7811576ea8afe80a7ae739f5cf2d411f976df' }, \"Search term is required.\")));\n }\n}, [260, \"searchcraft-error-message\"]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-error-message\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-error-message\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftErrorMessage);\n }\n break;\n } });\n}\n\nexport { SearchcraftErrorMessage as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-error-message2.js.map\n\n//# sourceMappingURL=searchcraft-error-message2.js.map","import { S as SearchcraftErrorMessage$1, d as defineCustomElement$1 } from './searchcraft-error-message2.js?v=0.13.2';\n\nconst SearchcraftErrorMessage = SearchcraftErrorMessage$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftErrorMessage, defineCustomElement };\n//# sourceMappingURL=searchcraft-error-message.js.map\n\n//# sourceMappingURL=searchcraft-error-message.js.map","/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n text: 3,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.3.1';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (cfg.ADD_ATTR) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n if (cfg.ADD_FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title|textarea)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as p };\n//# sourceMappingURL=purify.es.js.map\n\n//# sourceMappingURL=purify.es.js.map","import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport './purify.es.js';\n\n/**\n * Helper function for getting a Node (FacetWithChildrenObject)\n * at a given path. Traverses the node tree to get the node.\n */\nconst getFacetTreeNodeAtPath = (tree, nodePaths) => {\n let cursor = tree;\n for (const nodePath of nodePaths) {\n cursor = cursor?.children[nodePath];\n }\n return cursor;\n};\n/**\n * Helper function to perform a deep merge.\n * Used for merging two branches of a facet tree together.\n */\nconst deepMergeWithSpread = (obj1, obj2) => {\n const result = { ...obj1 };\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>\n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n }\n else {\n result[key] = obj2[key];\n }\n }\n }\n return result;\n};\n/**\n * Given an array of facet paths, removes parent facet paths so that only the\n * Leaf facets are sent with the search request.\n */\nfunction removeSubstringMatches(arr) {\n return arr.filter((entry, index, array) => !array.some((otherEntry, otherIndex) => otherIndex !== index && otherEntry.includes(entry)));\n}\n/**\n * Merges a current facet tree with an incoming facet tree.\n *\n * At each branch, the incoming facet tree's facets override current facet tree\n *\n * @param currentTree\n * @param incomingTree\n */\nconst mergeFacetTrees = (currentTree, incomingTree) => {\n const mergedTree = structuredClone(currentTree);\n const merge = (currentBranch, nodePath) => {\n const mergedBranch = structuredClone(currentBranch);\n const incomingBranch = getFacetTreeNodeAtPath(incomingTree, nodePath);\n if (!incomingBranch) {\n return mergedBranch;\n }\n for (const nodeName of Object.keys(currentBranch.children)) {\n if (incomingBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = {\n ...deepMergeWithSpread(currentBranch.children[nodeName], incomingBranch.children[nodeName]),\n count: mergedBranch.children[nodeName]?.count || 0,\n };\n }\n else if (mergedBranch.children[nodeName]) {\n mergedBranch.children[nodeName] = merge(mergedBranch.children[nodeName], [...nodePath, nodeName]);\n }\n }\n return mergedBranch;\n };\n return merge(mergedTree, []);\n};\n/**\n * A function that converts a FacetWithChidrenArray to a complete FacetTree object.\n *\n * It uses the `path` of each Facet to build the tree.\n *\n * @param facetWithChildArray\n * @param exclude - Optional array of facet values or paths to exclude from the tree.\n * - Values starting with \"/\" are treated as full paths and exclude the path and all children\n * (e.g., \"/news\" excludes \"/news\", \"/news/local\", \"/news/national\", etc.)\n * - Values without \"/\" are treated as segment names (e.g., \"local\" excludes all paths containing \"local\")\n */\nconst facetWithChildrenArrayToCompleteFacetTree = (rootArray, exclude) => {\n // 1) Start with an empty tree at root \"/\"\n const tree = {\n path: '/',\n count: 0,\n children: {},\n };\n // 2) Recursively collect all nodes except the implicit \"/\" itself\n const allFacets = [];\n const collect = (node) => {\n if (node.path !== '/') {\n allFacets.push({ path: node.path, count: node.count });\n }\n if (node.children) {\n for (const child of node.children) {\n collect(child);\n }\n }\n };\n collect(rootArray);\n // 3) Insert each flat node into our tree, creating missing ancestors\n for (const { path, count } of allFacets) {\n const segments = path.split('/').filter(Boolean); // \"/sports/outdoors\" -> [\"sports\",\"outdoors\"]\n // Skip this facet if it matches any excluded value\n if (exclude && exclude.length > 0) {\n let shouldExclude = false;\n for (const excludeValue of exclude) {\n if (excludeValue.startsWith('/')) {\n // Full path exclusion: prefix match (excludes the path and all children)\n if (path === excludeValue || path.startsWith(`${excludeValue}/`)) {\n shouldExclude = true;\n break;\n }\n }\n else {\n // Segment exclusion: check if any segment matches\n if (segments.includes(excludeValue)) {\n shouldExclude = true;\n break;\n }\n }\n }\n if (shouldExclude) {\n continue;\n }\n }\n let cursor = tree; // start at the root\n for (const segment of segments) {\n // Build the full path of this level\n const prefixPath = cursor.path === '/' ? `/${segment}` : `${cursor.path}/${segment}`;\n // If this segment doesn't exist yet, create it\n if (!cursor.children[segment]) {\n cursor.children[segment] = {\n path: prefixPath,\n count: count,\n children: {},\n };\n }\n // Descend to the next level deeper\n cursor = cursor.children[segment];\n }\n // 4) Now `cursor` is the node matching `path` assign its real count\n cursor.count = count;\n }\n return tree;\n};\n\nconst SearchcraftFacetList = /*@__PURE__*/ proxyCustomElement(class SearchcraftFacetList extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.facetSelectionUpdated = createEvent(this, \"facetSelectionUpdated\");\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The name of the field where facets are applied.\n */\n fieldName = '';\n /**\n * Array of facet values to exclude from rendering.\n */\n exclude;\n /**\n * Emitted when the facets are updated.\n */\n facetSelectionUpdated;\n /**\n * The currently selected facet paths.\n */\n selectedPaths = {};\n /**\n * A Tree representing all of the facets collected from search responses.\n */\n facetTreeCollectedFromSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n /**\n * A Tree representing the facet paths that are selected, but were not included\n * in any search response.\n */\n facetTreeFromFacetPathsNotInSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n /**\n * The facet tree that ultimately gets rendered.\n * This is a mergin of the facetTreeCollectedFromSearchResponse and the facetTreeFromFacetPathsNotInSearchResponse tree\n */\n renderedFacetTree = {\n path: '/',\n count: 0,\n children: {},\n };\n // Internal vars used to track when to perform various facet actions.\n lastTimeTaken;\n lastSearchTerm;\n lastSearchMode;\n lastSortType;\n lastRangeValues;\n lastFacetValues;\n unsubscribe;\n cleanupCore;\n get areAnyFacetPathsSelected() {\n return Object.keys(this.selectedPaths).some((key) => this.selectedPaths[key]);\n }\n handleIncomingSearchResponse(state, actionType) {\n // Look at the incoming facet root from the search response, and convert it to a FacetTree\n const incomingFacetRoot = state.searchResponseFacetPrime?.find((facet) => this.fieldName === Object.keys(facet)[0]);\n const incomingFacetsWithChildrenArray = incomingFacetRoot?.[this.fieldName];\n const incomingFacetTree = facetWithChildrenArrayToCompleteFacetTree({\n path: '/',\n count: 0,\n children: incomingFacetsWithChildrenArray || [],\n }, this.exclude);\n // Determine what action to take to accumulate items into the `facetTreeCollectedFromSearchResponse`.\n // This facet tree gets accumulated in different ways depending on what action type occured.\n switch (actionType) {\n case 'SEARCH_TERM_EMPTY':\n this.facetTreeCollectedFromSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n break;\n case 'NEW_SEARCH_TERM':\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n break;\n case 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE':\n case 'EXACT_MATCH_UPDATE':\n case 'RANGE_VALUE_UPDATE': {\n if (state.supplementalFacetPrime) {\n const supplementalFacetRoot = state.supplementalFacetPrime?.find((facet) => this.fieldName === Object.keys(facet)[0]);\n const supplementalFacetsWithChildrenArray = supplementalFacetRoot?.[this.fieldName];\n const supplementalFacetTree = facetWithChildrenArrayToCompleteFacetTree({\n path: '/',\n count: 0,\n children: supplementalFacetsWithChildrenArray || [],\n }, this.exclude);\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(supplementalFacetTree, incomingFacetTree);\n }\n else {\n this.facetTreeCollectedFromSearchResponse = incomingFacetTree;\n }\n break;\n }\n case 'FACET_UPDATE':\n case 'SORT_ORDER_UPDATE':\n this.facetTreeCollectedFromSearchResponse = mergeFacetTrees(this.facetTreeCollectedFromSearchResponse, incomingFacetTree);\n break;\n default:\n return;\n }\n // Determine if there are any selected facet paths not in the current tree.\n // If there are, we add them to \"facetTreeFromFacetPathsNotInSearchResponse\"\n this.facetTreeFromFacetPathsNotInSearchResponse = {\n path: '/',\n count: 0,\n children: {},\n };\n const collectedFacetArray = {\n path: '/',\n count: 0,\n children: [],\n };\n for (const pathName of Object.keys(this.selectedPaths).filter((path) => this.selectedPaths[path])) {\n const nodePaths = pathName.startsWith('/')\n ? pathName.substring(1).split('/')\n : pathName.split('/');\n const wasFoundInFacetTree = !!getFacetTreeNodeAtPath(this.facetTreeCollectedFromSearchResponse, nodePaths);\n const pathKeyName = nodePaths.at(-1);\n if (!wasFoundInFacetTree && pathKeyName) {\n collectedFacetArray.children?.push({\n children: [],\n count: 0,\n path: pathName,\n });\n }\n }\n this.facetTreeFromFacetPathsNotInSearchResponse =\n facetWithChildrenArrayToCompleteFacetTree(collectedFacetArray, this.exclude);\n // Merges facetTreeCollectedFromSearchResponse with selectedFacetPathsNotInCurrentFacetTree.\n // This results in a single, final facet tree that gets rendered in as Checkboxes\n this.renderedFacetTree = deepMergeWithSpread(this.facetTreeFromFacetPathsNotInSearchResponse, this.facetTreeCollectedFromSearchResponse);\n }\n handleStateUpdate(_state) {\n const state = { ..._state };\n // Determine what action to take based on the current State\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof state.searchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n if (state.searchTerm.trim() === '' && !isInitialQuery) {\n this.handleIncomingSearchResponse(state, 'SEARCH_TERM_EMPTY');\n this.lastSearchTerm = '';\n }\n else if (this.lastTimeTaken !== state.searchResponseTimeTaken &&\n state.searchClientRequestProperties) {\n // Handle both object and string requestProperties (string is used for initialQuery)\n if (typeof state.searchClientRequestProperties === 'object') {\n const requestProperties = state.searchClientRequestProperties;\n let actionType = 'UNKNOWN';\n if (this.lastSearchTerm !== requestProperties.searchTerm) {\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n }\n else {\n actionType = 'NEW_SEARCH_TERM';\n }\n }\n else if (this.lastRangeValues !==\n JSON.stringify(requestProperties.rangeValueForIndexFields)) {\n actionType = 'RANGE_VALUE_UPDATE';\n }\n else if (this.lastFacetValues !==\n JSON.stringify(requestProperties.facetPathsForIndexFields)) {\n actionType = 'FACET_UPDATE';\n }\n else if (this.lastSortType !== requestProperties.order_by) {\n actionType = 'SORT_ORDER_UPDATE';\n }\n else if (this.lastSearchMode !== requestProperties.mode) {\n actionType = 'EXACT_MATCH_UPDATE';\n }\n this.lastRangeValues = JSON.stringify(requestProperties.rangeValueForIndexFields);\n this.lastFacetValues = JSON.stringify(requestProperties.facetPathsForIndexFields);\n this.lastSortType = requestProperties.order_by;\n this.lastSearchMode = requestProperties.mode;\n this.lastSearchTerm = requestProperties.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n }\n else if (typeof state.searchClientRequestProperties === 'string') {\n // Handle initialQuery case where requestProperties is a string\n // For initialQuery, searchTerm will be empty but we still want to show facets\n let actionType = 'NEW_SEARCH_TERM';\n // Parse the request to get facet and range filters from the query array\n const requestObj = JSON.parse(state.searchClientRequestProperties);\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n // Extract filter queries (those with occur: 'must')\n const filterQueries = queryArray.filter((q) => q.occur === 'must');\n const currentFilters = JSON.stringify(filterQueries);\n // Determine the action type based on what changed\n if (this.lastFacetValues !== undefined &&\n this.lastFacetValues !== currentFilters) {\n // Filters have changed (not initial load)\n actionType = 'FACET_UPDATE';\n }\n else if (state.searchTerm.trim() === '' &&\n this.lastSearchTerm === '') {\n // Initial load or no changes with empty search term\n actionType = 'NEW_SEARCH_TERM';\n }\n else if (this.lastSearchTerm !== state.searchTerm) {\n // User has typed a new search term after initialQuery\n if (this.areAnyFacetPathsSelected) {\n actionType = 'NEW_SEARCH_TERM_WHILE_FACETS_ACTIVE';\n }\n else {\n actionType = 'NEW_SEARCH_TERM';\n }\n }\n this.lastFacetValues = currentFilters;\n this.lastSearchTerm = state.searchTerm;\n this.lastTimeTaken = state.searchResponseTimeTaken;\n // Handle the incoming response, using the action we have determined.\n this.handleIncomingSearchResponse(state, actionType);\n }\n }\n }\n onCoreAvailable(core) {\n this.handleStateUpdate(core.store.getState());\n this.unsubscribe = core.store.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleCheckboxChange(path) {\n const isCheckboxChecked = !this.selectedPaths[path];\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n }\n else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter((testPath) => !testPath.includes(path));\n this.selectedPaths = updatedPaths.reduce((acc, str) => {\n acc[str] = true;\n return acc;\n }, {});\n }\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter((path) => this.selectedPaths[path]);\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n this.facetSelectionUpdated?.emit({ paths: pathsWithParentPathsRemoved });\n }\n formatFacetName = (name) => {\n const label = name.replace(/^\\//, '');\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())}`;\n };\n renderFacet(keyName, facet) {\n let isChildSelected = false;\n for (const path of Object.keys(this.selectedPaths)) {\n if (this.selectedPaths[path] &&\n path.startsWith(facet.path) &&\n path.length > facet.path.length) {\n isChildSelected = true;\n }\n }\n const isSelected = Object.keys(this.selectedPaths).includes(facet.path);\n const shouldRenderChildren = (Object.keys(facet.children).length > 0 &&\n (isSelected || isChildSelected)) ||\n keyName === '@@root';\n return (h(\"div\", { class: 'searchcraft-facet-list-item' }, keyName !== '@@root' && (h(\"label\", { class: 'searchcraft-facet-list-checkbox-label' }, h(\"div\", { class: 'searchcraft-facet-list-checkbox-input-wrapper' }, h(\"input\", { class: 'searchcraft-facet-list-checkbox-input', checked: this.selectedPaths[facet.path], onChange: (_event) => {\n this.handleCheckboxChange(facet.path);\n }, type: 'checkbox' }), isChildSelected ? (h(\"div\", { class: 'searchcraft-facet-list-checkbox-input-dash-icon' }, h(\"svg\", { viewBox: '0 0 14 3', fill: 'none' }, h(\"title\", null, \"Checkbox dash\"), h(\"line\", { x1: '1.5', y1: '1.5', x2: '12.5', y2: '1.5', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round' })))) : (h(\"div\", { class: 'searchcraft-facet-list-checkbox-input-check-icon' }, h(\"svg\", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, h(\"title\", null, \"Checkbox check\"), h(\"path\", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))))), h(\"span\", null, this.formatFacetName(keyName), \" (\", facet.count, \")\"))), shouldRenderChildren && (h(\"div\", { class: 'searchcraft-facet-list', style: {\n paddingLeft: keyName !== '@@root' ? '24px' : '0px',\n paddingTop: keyName !== '@@root' ? '6px' : '0px',\n } }, Object.keys(facet.children).map((key) => {\n if (facet.children[key]) {\n return this.renderFacet(key, facet.children[key]);\n }\n })))));\n }\n render() {\n if (!this.fieldName) {\n return;\n }\n if (Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length === 0) {\n return;\n }\n if (Object.keys(this.facetTreeCollectedFromSearchResponse.children).length ===\n 0 &&\n (this.lastSearchTerm || '').trim().length > 0) {\n return (h(\"p\", { class: 'searchcraft-facet-list-message' }, \"No facets are available for this search query.\"));\n }\n return (h(\"div\", { class: 'searchcraft-facet-list' }, this.renderFacet('@@root', this.renderedFacetTree)));\n }\n}, [768, \"searchcraft-facet-list\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"fieldName\": [1, \"field-name\"],\n \"exclude\": [16],\n \"selectedPaths\": [32],\n \"facetTreeCollectedFromSearchResponse\": [32],\n \"renderedFacetTree\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-facet-list\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-facet-list\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftFacetList);\n }\n break;\n } });\n}\n\nexport { SearchcraftFacetList as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-facet-list2.js.map\n\n//# sourceMappingURL=searchcraft-facet-list2.js.map","import { S as SearchcraftFacetList$1, d as defineCustomElement$1 } from './searchcraft-facet-list2.js?v=0.13.2';\n\nconst SearchcraftFacetList = SearchcraftFacetList$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftFacetList, defineCustomElement };\n//# sourceMappingURL=searchcraft-facet-list.js.map\n\n//# sourceMappingURL=searchcraft-facet-list.js.map","/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nfunction getDocumentValueFromSearchResultMapping(document, mapping) {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n valueFound = formatRelativeDate(valueFound, fieldNameDetails.dateFormatLocale, fieldNameDetails.dateFormatOptions);\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(fieldNameDetails.numberFormatLocale, fieldNameDetails.numberFormatOptions).format(valueFound * (fieldNameDetails.numberScale || 1));\n break;\n }\n }\n }\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\n/**\n * Format a number with commas as thousands separators.\n *\n * @param number - The number to be formatted.\n * @returns {string} - The formatted number as a string.\n */\nfunction formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n/**\n * Format a date or date string. The string is formatted relative to today's date\n * (e.g. 2 days ago) until the date range is greater than a month.\n *\n * @param dateInput - The date to be formatted.\n * @param locale - The language used for formatting the date.\n * @param options - The non-default options used for formatting the date.\n * @returns {string} - The formatted date as a string.\n */\nfunction formatRelativeDate(dateInput, locale = 'en-US', options = {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n}) {\n const date = new Date(dateInput);\n const now = new Date();\n const diffMillis = now.getTime() - date.getTime();\n const oneMonthInMillis = 30 * 24 * 60 * 60 * 1000; // Approx. 1 month in ms\n if (diffMillis < oneMonthInMillis) {\n const diffSeconds = Math.trunc(diffMillis / 1000);\n const diffMinutes = Math.trunc(diffSeconds / 60);\n const diffHours = Math.trunc(diffMinutes / 60);\n const diffDays = Math.trunc(diffHours / 24);\n const relativeTimeFormat = new Intl.RelativeTimeFormat(locale, options);\n if (diffDays >= 1) {\n return relativeTimeFormat.format(-diffDays, 'day');\n }\n if (diffHours >= 1) {\n return relativeTimeFormat.format(-diffHours, 'hour');\n }\n if (diffMinutes >= 1) {\n return relativeTimeFormat.format(-diffMinutes, 'minute');\n }\n return relativeTimeFormat.format(0, 'second');\n }\n return new Intl.DateTimeFormat(locale, options).format(date);\n}\n/**\n * Given a date, returns the timestamp (in ms) for the start of the specified unit.\n *\n * @param unit - The unit to calculate the start of ('year' | 'month' | 'day' | 'hour').\n * @param timestamp - The date to evaluate.\n * @param offset - The number of units to offset by.\n * @returns The timestamp (in ms) for the start of the specified unit.\n */\nfunction getStartOf(timestamp, unit, offset = 0) {\n const d = new Date(timestamp);\n switch (unit) {\n case 'year':\n return new Date(d.getFullYear() + offset, 0, 1, 0, 0, 0, 0).getTime();\n case 'month':\n return new Date(d.getFullYear(), d.getMonth() + offset, 1, 0, 0, 0, 0).getTime();\n case 'day':\n return new Date(d.getFullYear(), d.getMonth(), d.getDate() + offset, 0, 0, 0, 0).getTime();\n case 'hour':\n return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() + offset, 0, 0, 0).getTime();\n default:\n throw new Error(`Unsupported unit: ${unit}`);\n }\n}\n/**\n * Given a start and end date, returns the difference in the number of the specified units.\n *\n * @param units - The unit to measure ('year' | 'month' | 'day' | 'hour').\n * @param startDate - The start date.\n * @param endDate - The end date.\n * @returns The difference in the given unit.\n */\nfunction getDifferenceInUnits(unit, startTime, endTime) {\n const start = new Date(startTime);\n const end = new Date(endTime);\n switch (unit) {\n case 'year':\n return Math.abs(end.getFullYear() - start.getFullYear());\n case 'month':\n return Math.abs(end.getFullYear() * 12 +\n end.getMonth() -\n (start.getFullYear() * 12 + start.getMonth()));\n case 'day':\n return Math.floor(Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));\n case 'hour':\n return Math.floor(Math.abs(end.getTime() - start.getTime()) / (1000 * 60 * 60));\n default:\n throw new Error(`Unsupported unit: ${unit}`);\n }\n}\n/**\n * Returns the ordinal representation of a day of the month.\n */\nconst getOrdinal = (n) => {\n if (n >= 11 && n <= 13)\n return `${n}th`;\n switch (n % 10) {\n case 1:\n return `${n}st`;\n case 2:\n return `${n}nd`;\n case 3:\n return `${n}rd`;\n default:\n return `${n}th`;\n }\n};\n/**\n * Given a granularity level, returns a formatted, human-readable, date string.\n *\n * @param granularity - The granularity level to display. The granularity level dictates how the date is formatted.\n * @param date - The date to format.\n *\n * @returns A formatted string representing the date at the specified granularity.\n *\n * @example\n * getFormattedDateString('year', new Date('2023-01-01')) // \"2023\"\n * getFormattedDateString('month', new Date('2023-01-01')) // \"Jan 2023\"\n * getFormattedDateString('day', new Date('2023-01-31')) // \"Jan 31st, 2023\"\n * getFormattedDateString('hour', new Date('2023-01-31T12:00:00')) // \"Jan 31st, 12:00 PM\"\n */\nfunction getFormattedDateString(granularity, date) {\n const monthFormatter = new Intl.DateTimeFormat('en-US', { month: 'short' });\n switch (granularity) {\n case 'year':\n return date.getFullYear().toString();\n case 'month':\n return `${monthFormatter.format(date)} ${date.getFullYear()}`;\n case 'day':\n return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${date.getFullYear()}`;\n case 'hour': {\n const timeFormatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n });\n return `${monthFormatter.format(date)} ${getOrdinal(date.getDate())}, ${timeFormatter.format(date)}`;\n }\n default:\n throw new Error(`Unsupported granularity: ${granularity}`);\n }\n}\n\nexport { getDifferenceInUnits as a, getStartOf as b, getFormattedDateString as c, formatNumberWithCommas as f, getDocumentValueFromSearchResultMapping as g };\n//# sourceMappingURL=units.js.map\n\n//# sourceMappingURL=units.js.map","import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { a as getDifferenceInUnits, b as getStartOf, c as getFormattedDateString } from './units.js?v=0.13.2';\nimport './purify.es.js';\nimport { c as classNames } from './index3.js?v=0.13.2';\n\n/**\n * Creates a throttled version of the given function that only invokes\n * the original function at most once every specified number of milliseconds.\n *\n * The logic is written in a way that the last invocation is always called, after the\n * throttle cooldown period has ended.\n *\n * @template Arguments - The argument types for the function to throttle\n * @param callback - The function to throttle\n * @param delayInMilliseconds - The number of milliseconds to wait before allowing the next invocation\n * @returns A throttled version of the original function\n */\nfunction throttle(callback, delayInMilliseconds) {\n let isThrottleOnCooldown = false;\n let trailingCallArgs = null;\n const invokeAction = (args) => {\n callback(...args);\n isThrottleOnCooldown = true;\n setTimeout(() => {\n isThrottleOnCooldown = false;\n if (trailingCallArgs) {\n const nextArgs = trailingCallArgs;\n trailingCallArgs = null;\n invokeAction(nextArgs);\n }\n }, delayInMilliseconds);\n };\n return (...args) => {\n if (!isThrottleOnCooldown) {\n invokeAction(args);\n }\n else {\n trailingCallArgs = args;\n }\n };\n}\n\nconst SearchcraftSlider = /*@__PURE__*/ proxyCustomElement(class SearchcraftSlider extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.rangeChanged = createEvent(this, \"rangeChanged\");\n }\n /**\n * The maximum value allowed.\n */\n max = 100;\n /**\n * The minimum value allowed.\n */\n min = 0;\n /**\n * The step amount for the slider inputs.\n */\n step = 1;\n /** The type of data the sliders are using. */\n dataType = 'number';\n /** The date granularity to use. Used to format date labels. */\n dateGranularity;\n lowerBound = 0;\n upperBound = 1;\n endValue = 0;\n startValue = 0;\n lastFocusedHandle = 'max';\n throttledEmitUpdate = () => { };\n /**\n * When the range has changed.\n * */\n rangeChanged;\n connectedCallback() {\n switch (this.dataType) {\n case 'number':\n this.startValue = this.min;\n this.endValue = this.max;\n this.lowerBound = this.min;\n this.upperBound = this.max;\n break;\n case 'date': {\n this.startValue = 0;\n this.endValue = getDifferenceInUnits(this.dateGranularity || 'year', this.min, this.max);\n this.lowerBound = 0;\n this.upperBound = this.endValue;\n break;\n }\n }\n this.throttledEmitUpdate = throttle(this.emitUpdate, 120);\n }\n emitUpdate = async () => {\n switch (this.dataType) {\n case 'number':\n this.rangeChanged?.emit({\n startValue: this.startValue,\n endValue: this.endValue,\n });\n break;\n case 'date': {\n const granularity = this.dateGranularity || 'year';\n const startTimestamp = getStartOf(this.min, granularity, this.lowerBound + this.startValue);\n const endTimestamp = getStartOf(this.min, granularity, this.lowerBound + this.endValue + 1);\n this.rangeChanged?.emit({\n startValue: startTimestamp,\n endValue: endTimestamp,\n });\n break;\n }\n }\n };\n handleStartValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'min';\n if (value <= this.endValue) {\n this.startValue = value;\n this.throttledEmitUpdate();\n }\n else {\n this.startValue = this.endValue;\n inputElement.value = `${this.endValue}`;\n }\n };\n handleEndValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'max';\n if (value >= this.startValue) {\n this.endValue = value;\n this.throttledEmitUpdate();\n }\n else {\n this.endValue = this.startValue;\n inputElement.value = `${this.startValue}`;\n }\n };\n getLabel = (value) => {\n switch (this.dataType) {\n case 'number':\n return `${this.startValue}`;\n case 'date': {\n const granularity = this.dateGranularity || 'year';\n const dateOffset = this.lowerBound + value;\n const timestamp = getStartOf(this.min, granularity, dateOffset);\n return getFormattedDateString(this.dateGranularity || 'year', new Date(timestamp));\n }\n }\n };\n render() {\n const startPercent = ((this.startValue - this.lowerBound) /\n (this.upperBound - this.lowerBound)) *\n 100;\n const endPercent = ((this.endValue - this.lowerBound) /\n (this.upperBound - this.lowerBound)) *\n 100;\n const startLabel = this.getLabel(this.startValue);\n const endLabel = this.getLabel(this.endValue);\n return (h(\"div\", { key: 'd5035ed8bcbf95c0ef5b2a7a9ef471e318a9dc30', class: 'searchcraft-slider' }, h(\"div\", { key: 'f5f7bc48703250b4f6c75a1f07c921233bd957d5', class: 'searchcraft-slider-range' }, h(\"div\", { key: 'fc2ec9f9786986a7306ffe43b54c47c35a1f086a', class: 'searchcraft-slider-active-range', style: {\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n } }), h(\"input\", { key: '716316b5ce507c40db5b7bd408f47b3bece88494', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleStartValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), h(\"input\", { key: 'e2ad0d586136185faccb50d6d7fb113a64ddac42', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.upperBound, min: this.lowerBound, onInput: this.handleEndValueChange.bind(this), step: this.step, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), h(\"div\", { key: '7e9ab9fa9563cac6a1dfdd11910e04084ae5348d', class: 'searchcraft-slider-label' }, h(\"span\", { key: '0909279f460c4be84c1088c5981a5f5299e8e2a0', class: 'searchcraft-slider-start-label' }, startLabel), h(\"span\", { key: '4b610a68f97fcbc0aa1eda428dfa1e53b00efe43', class: 'searchcraft-slider-end-label' }, endLabel))));\n }\n}, [768, \"searchcraft-slider\", {\n \"max\": [2],\n \"min\": [2],\n \"step\": [2],\n \"dataType\": [1, \"data-type\"],\n \"dateGranularity\": [1, \"date-granularity\"],\n \"lowerBound\": [32],\n \"upperBound\": [32],\n \"endValue\": [32],\n \"startValue\": [32],\n \"lastFocusedHandle\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-slider\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-slider\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftSlider);\n }\n break;\n } });\n}\n\nexport { SearchcraftSlider as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-slider2.js.map\n\n//# sourceMappingURL=searchcraft-slider2.js.map","import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { c as classNames } from './index3.js?v=0.13.2';\n\nconst SearchcraftToggleButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftToggleButton extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.toggleUpdated = createEvent(this, \"toggleUpdated\");\n }\n /**\n * The label.\n */\n label = 'Toggle';\n /**\n * The secondary label displayed below the main label.\n */\n subLabel;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * When the toggle element is changed.\n */\n toggleUpdated;\n isActive = false;\n lastSearchTerm;\n unsubscribe;\n cleanupCore;\n handleToggle = async () => {\n this.isActive = !this.isActive;\n this.toggleUpdated?.emit(this.isActive);\n };\n onCoreAvailable(core) {\n /** When the query changes, sets toggle button state back to inactive. */\n this.unsubscribe = core.store.subscribe((state) => {\n if (state.searchTerm !== this.lastSearchTerm &&\n state.searchTerm.trim().length === 0) {\n this.isActive = false;\n }\n this.lastSearchTerm = state.searchTerm;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n return (h(\"div\", { key: '7dad6f4e4422a62f6403724ff16fe25e042ae2ac', class: classNames('searchcraft-toggle-button', {\n 'searchcraft-toggle-button-active': this.isActive,\n }) }, h(\"div\", { key: '2faa2ee1eb5cb78dc39f523415f2be96bc23fed1' }, h(\"p\", { key: '29ea63c281b8f1ae041ba75a149ce1b60e936662', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (h(\"p\", { key: 'e51efaae5ca79eede71852e6dec8eff4575139fe', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), h(\"button\", { key: 'd590da981692db162df9b8086ba2444d6a56ef9d', class: 'searchcraft-toggle-button-background', onClick: this.handleToggle, type: 'button' }, h(\"div\", { key: '5be6ee1dd7dc58bd67fff18923569caee37b4936', class: 'searchcraft-toggle-button-handle' }))));\n }\n}, [768, \"searchcraft-toggle-button\", {\n \"label\": [1],\n \"subLabel\": [1, \"sub-label\"],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"isActive\": [32],\n \"lastSearchTerm\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-toggle-button\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftToggleButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftToggleButton as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-toggle-button2.js.map\n\n//# sourceMappingURL=searchcraft-toggle-button2.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { d as defineCustomElement$4 } from './searchcraft-facet-list2.js?v=0.13.2';\nimport { d as defineCustomElement$3 } from './searchcraft-slider2.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-toggle-button2.js?v=0.13.2';\n\nconst SearchcraftFilterPanel$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftFilterPanel extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The items to filter.\n */\n items = [];\n /**\n * The breakpoint (in pixels) below which the filter panel will be hidden.\n * Defaults to 768px (--sc-breakpoint-md).\n */\n responsiveBreakpoint = 768;\n /**\n * Controls whether the filter panel automatically hides/shows based on window size.\n * - 'auto': Automatically hide/show based on window width\n * - 'manual': User controls visibility manually\n */\n responsiveBehavior = 'auto';\n lastSearchTerm;\n isFilterPanelVisible = true;\n get hostElement() { return this; }\n core;\n unsubscribe;\n cleanupCore;\n resizeObserver;\n manuallyToggled = false; // Track if user manually toggled visibility\n toggleClickHandler;\n onCoreAvailable(core) {\n this.core = core;\n this.setInitialDateRanges();\n // Initialize visibility based on current window size if in auto mode\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n this.unsubscribe = core.store.subscribe((state, prevState) => {\n this.lastSearchTerm = state.searchTerm || '';\n // Check if visibility was manually changed (not by auto-resize)\n if (prevState.isFilterPanelVisible !== state.isFilterPanelVisible) {\n const windowWidth = window.innerWidth;\n const autoVisibility = windowWidth >= (this.responsiveBreakpoint || 768);\n // If the new state differs from what auto mode would set, it was manual\n if (state.isFilterPanelVisible !== autoVisibility) {\n this.manuallyToggled = true;\n }\n // Update toggle element attributes when visibility changes\n this.updateToggleElementAttributes(state.isFilterPanelVisible);\n }\n this.isFilterPanelVisible = state.isFilterPanelVisible;\n });\n }\n componentDidLoad() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n // Set up resize observer if in auto mode\n if (this.responsiveBehavior === 'auto' && typeof window !== 'undefined') {\n this.setupResizeObserver();\n }\n // Set up click handlers for elements with data-toggle-filter-panel attribute\n this.setupToggleClickHandlers();\n // Set initial toggle element state immediately\n // Use setTimeout to ensure this runs after the store is initialized\n setTimeout(() => {\n if (this.core) {\n const currentVisibility = this.core.store.getState().isFilterPanelVisible;\n this.updateToggleElementAttributes(currentVisibility);\n }\n }, 0);\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n this.resizeObserver?.disconnect();\n // Clean up window resize listener if it was used as fallback\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.handleWindowResize);\n }\n // Clean up toggle click handlers\n this.cleanupToggleClickHandlers();\n }\n /**\n * Sets up a ResizeObserver to watch for window size changes\n */\n setupResizeObserver() {\n if (typeof ResizeObserver === 'undefined') {\n // Fallback to window resize event if ResizeObserver is not available\n window.addEventListener('resize', this.handleWindowResize);\n return;\n }\n this.resizeObserver = new ResizeObserver(() => {\n this.handleWindowResize();\n });\n // Observe the document body for size changes\n this.resizeObserver.observe(document.body);\n }\n /**\n * Handles window resize events\n */\n handleWindowResize = () => {\n if (this.responsiveBehavior === 'auto') {\n this.updateVisibilityBasedOnWindowSize();\n }\n };\n /**\n * Updates filter panel visibility based on current window width\n */\n updateVisibilityBasedOnWindowSize() {\n if (typeof window === 'undefined')\n return;\n // Don't auto-hide/show if user manually toggled it\n if (this.manuallyToggled)\n return;\n const windowWidth = window.innerWidth;\n const shouldBeVisible = windowWidth >= (this.responsiveBreakpoint || 768);\n if (this.core && this.isFilterPanelVisible !== shouldBeVisible) {\n this.core.store.getState().setFilterPanelVisibility(shouldBeVisible);\n }\n }\n /**\n * Sets up click handlers for elements with data-toggle-filter-panel attribute\n */\n setupToggleClickHandlers() {\n if (typeof document === 'undefined')\n return;\n this.toggleClickHandler = (event) => {\n // Only allow toggle on mobile (below breakpoint)\n const windowWidth = window.innerWidth;\n if (windowWidth >= (this.responsiveBreakpoint || 768)) {\n return; // Don't toggle on desktop\n }\n event.preventDefault();\n if (this.core) {\n const currentVisibility = this.core.store.getState().isFilterPanelVisible;\n this.core.store.getState().setFilterPanelVisibility(!currentVisibility);\n }\n };\n // Find all elements with the data attribute\n const toggleElements = document.querySelectorAll('[data-toggle-filter-panel]');\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.addEventListener('click', this.toggleClickHandler);\n }\n });\n }\n /**\n * Updates data attributes on toggle elements to reflect panel visibility state\n */\n updateToggleElementAttributes(isVisible) {\n if (typeof document === 'undefined')\n return;\n const toggleElements = document.querySelectorAll('[data-toggle-filter-panel]');\n toggleElements.forEach((element) => {\n if (isVisible) {\n element.removeAttribute('data-filter-panel-collapsed');\n element.setAttribute('data-filter-panel-expanded', '');\n }\n else {\n element.removeAttribute('data-filter-panel-expanded');\n element.setAttribute('data-filter-panel-collapsed', '');\n }\n });\n }\n /**\n * Cleans up click handlers for toggle elements\n */\n cleanupToggleClickHandlers() {\n if (typeof document === 'undefined' || !this.toggleClickHandler)\n return;\n const toggleElements = document.querySelectorAll('[data-toggle-filter-panel]');\n toggleElements.forEach((element) => {\n if (this.toggleClickHandler) {\n element.removeEventListener('click', this.toggleClickHandler);\n }\n });\n }\n /**\n * Sets the initial min/max date range values for search queries based on the filter items provided.\n */\n setInitialDateRanges() {\n for (const item of this.items) {\n if (item.type === 'dateRange') {\n const dateItem = item;\n const startingMinDate = dateItem.options.minDate;\n const startingMaxDate = dateItem.options.maxDate || new Date();\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: dateItem.fieldName,\n value: `${dateItem.fieldName}:[${startingMinDate.toISOString()} TO ${startingMaxDate.toISOString()}]`,\n });\n }\n }\n }\n handleDateRangeChanged(item, min, max) {\n const start = new Date(min);\n const end = new Date(max);\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName: item.fieldName,\n value: `${item.fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,\n });\n this.core?.store.getState()?.search();\n }\n handleNumericRangeChanged(fieldName, min, max) {\n this.core?.store.getState()?.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${min} TO ${max}]`,\n });\n this.core?.store.getState()?.search();\n }\n handleFacetSelectionUpdated(fieldName, paths) {\n if (paths.length > 0) {\n this.core?.store.getState()?.addFacetPathsForIndexField({\n fieldName,\n value: `${fieldName}: IN [${paths.join(' ')}]`,\n });\n }\n else {\n this.core?.store.getState()?.removeFacetPathsForIndexField(fieldName);\n }\n this.core?.store.getState()?.search();\n }\n handleExactMatchToggleUpdated(isActive) {\n this.core?.store.getState()?.setSearchMode(isActive ? 'exact' : 'fuzzy');\n this.core?.store.getState()?.search();\n }\n handleMostRecentToggleUpdated(fieldName, isActive) {\n if (isActive) {\n this.core?.store.getState()?.setSortOrder({\n orderByField: fieldName,\n sortType: 'desc',\n });\n }\n else {\n this.core?.store.getState()?.setSortOrder({\n orderByField: null,\n sortType: null,\n });\n }\n this.core?.store.getState()?.search();\n }\n /**\n * Iterate through `items` and render them based on `type`\n */\n render() {\n // Don't render if not visible\n if (!this.isFilterPanelVisible) {\n return null;\n }\n return (h(\"div\", { class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {\n switch (filterItem.type) {\n case 'dateRange': {\n const item = filterItem;\n const maxDate = item.options.maxDate || new Date();\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: item.options.minDate.getTime(), max: maxDate.getTime(), dataType: 'date', step: 1, dateGranularity: item.options.granularity, onRangeChanged: (event) => {\n this.handleDateRangeChanged(item, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'numericRange': {\n const item = filterItem;\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: item.options.min, max: item.options.max, step: item.options.granularity, onRangeChanged: (event) => {\n this.handleNumericRangeChanged(item.fieldName, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'facets': {\n const item = filterItem;\n // return \"filters-list\"\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-facet-list\", { fieldName: item.fieldName, exclude: item.options.exclude, onFacetSelectionUpdated: (event) => {\n this.handleFacetSelectionUpdated(item.fieldName, event.detail.paths);\n } })));\n }\n case 'exactMatchToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleExactMatchToggleUpdated(event.detail);\n } }));\n }\n case 'mostRecentToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleMostRecentToggleUpdated(item.fieldName, event.detail);\n } }));\n }\n }\n })));\n }\n}, [768, \"searchcraft-filter-panel\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"items\": [16],\n \"responsiveBreakpoint\": [2, \"responsive-breakpoint\"],\n \"responsiveBehavior\": [1, \"responsive-behavior\"],\n \"lastSearchTerm\": [32],\n \"isFilterPanelVisible\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-filter-panel\", \"searchcraft-facet-list\", \"searchcraft-slider\", \"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-filter-panel\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftFilterPanel$1);\n }\n break;\n case \"searchcraft-facet-list\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-slider\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-toggle-button\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftFilterPanel = SearchcraftFilterPanel$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftFilterPanel, defineCustomElement };\n//# sourceMappingURL=searchcraft-filter-panel.js.map\n\n//# sourceMappingURL=searchcraft-filter-panel.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { c as classNames } from './index3.js?v=0.13.2';\n\nconst SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The classname applied to the label element.\n */\n inputLabelClassName = '';\n label = '';\n render() {\n return (h(\"label\", { key: '1008f9beb320aaa94026604b283eb65a96023265', class: classNames('searchcraft-input-label', this.inputLabelClassName), htmlFor: 'searchcraft-input-id' }, this.label));\n }\n}, [768, \"searchcraft-input-label\", {\n \"inputLabelClassName\": [1, \"input-label-class-name\"],\n \"label\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-label\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftInputLabel);\n }\n break;\n } });\n}\n\nexport { SearchcraftInputLabel as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-input-label2.js.map\n\n//# sourceMappingURL=searchcraft-input-label2.js.map","import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { c as classNames } from './index3.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { d as defineCustomElement$3 } from './searchcraft-button2.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-error-message2.js?v=0.13.2';\nimport { d as defineCustomElement$1 } from './searchcraft-input-label2.js?v=0.13.2';\n\nconst SearchcraftInputForm = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputForm extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.inputFocus = createEvent(this, \"inputFocus\");\n this.inputBlur = createEvent(this, \"inputBlur\");\n this.inputInit = createEvent(this, \"inputInit\");\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * Whether or not to automatically submit the search term when the input changes.\n */\n autoSearch = true;\n /**\n * Where to place the search button.\n */\n buttonPlacement = 'none';\n /**\n * The label for the submit button.\n */\n buttonLabel;\n /**\n * The label rendered above the input.\n */\n inputLabel;\n /**\n * The input element's placeholder value.\n */\n placeholderValue = 'Enter Search';\n /**\n * The placeholder's render behavior.\n * 'hide-on-focus' - Hide the placeholder text immediately when the input form gains focus.\n * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it.\n */\n placeholderBehavior;\n /**\n * The value to display in the input field.\n */\n value;\n /**\n * When the input becomes focused.\n */\n inputFocus;\n /**\n * When the input becomes unfocused.\n */\n inputBlur;\n /**\n * Event emitted when input initializes.\n */\n inputInit;\n inputValue = '';\n searchTerm = '';\n error = false;\n core;\n unsubscribe;\n cleanupCore;\n init() {\n if (this.core) {\n // Initialize inputValue from prop if provided\n if (this.value !== undefined && this.value.trim().length > 0) {\n this.inputValue = this.value;\n this.core.store.getState().setSearchTerm(this.value);\n // Trigger search if autoSearch is enabled\n if (this.autoSearch) {\n this.core.store.getState().search();\n }\n }\n this.inputInit?.emit();\n }\n }\n onCoreChange() {\n this.init();\n }\n onValueChange(newValue) {\n if (newValue !== undefined && newValue !== this.inputValue) {\n this.inputValue = newValue;\n this.core?.store.getState().setSearchTerm(newValue);\n // Trigger search if autoSearch is enabled and value is not empty\n if (this.autoSearch && newValue.trim().length > 0) {\n this.core?.store.getState().search();\n }\n }\n }\n onCoreAvailable(core) {\n this.core = core;\n this.init();\n this.unsubscribe = core.store.subscribe((state) => {\n this.searchTerm = state.searchTerm;\n // Only update inputValue from store if value prop is not set\n // OR if the store was cleared (empty string)\n if (this.value === undefined || state.searchTerm === '') {\n this.inputValue = state.searchTerm;\n }\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleInput = (event) => {\n const input = event.target;\n this.inputValue = input.value;\n this.core?.store.getState().setSearchTerm(input.value);\n if (!this.autoSearch) {\n return;\n }\n this.performSearch();\n };\n performSearch = async () => {\n this.error = false;\n try {\n await this.core?.store.getState().search();\n }\n catch (error) {\n this.error = true;\n }\n };\n handleClearInput = () => {\n // Clear the input value even if controlled by prop\n this.inputValue = '';\n this.core?.store.getState().resetSearchValues();\n this.error = false;\n };\n handleFormSubmit = async (event) => {\n event.preventDefault();\n await this.performSearch();\n };\n render() {\n const isShowingClearButton = this.inputValue.length > 0;\n const inputGridClassNames = classNames('searchcraft-input-form-grid', {\n 'searchcraft-input-form-grid-button-left': this.buttonPlacement === 'left',\n 'searchcraft-input-form-grid-button-right': this.buttonPlacement === 'right',\n 'searchcraft-input-form-grid-button-none': this.buttonPlacement === 'none',\n });\n const shouldHaveVerticalGap = this.inputLabel || this.error;\n const inputGridStyles = {\n gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',\n };\n return (h(\"form\", { key: '8ba91615394f95c0d5bd26a3006d3e8b454f047e', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, h(\"div\", { key: 'd9025a1c041e3132280b22e5a1b039df0196cea5', class: inputGridClassNames, style: inputGridStyles }, h(\"div\", { key: 'a8c3a80a0ccb718f974902fb1d163d5c3ee6194a', class: 'searchcraft-input-form-button' }, h(\"searchcraft-button\", { key: 'a12ff9a8cdb9a4ce3c3fd54b1c2ae084edd37069', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (h(\"div\", { key: '866e7162c402524eaca864bb6e950a244245dc48', class: 'searchcraft-input-form-label' }, h(\"searchcraft-input-label\", { key: 'c57217cd5924c827df08e22a728067e3bfc63a26', label: this.inputLabel }))), this.error && (h(\"div\", { key: '4a54728bf366db50de39470cf31860a6307dafea', class: 'searchcraft-input-form-error-message' }, h(\"searchcraft-error-message\", { key: '5fa5b5f5677350338d15c8e6614b0d9f584141b0' }, \"Something went wrong.\"))), h(\"div\", { key: '67be766103a3bca11cff6f83a2a6dea7c6c6f106', class: 'searchcraft-input-form-input-wrapper' }, h(\"input\", { key: '931609a4e8fc55d688077ec6cb04f2bb9b86b5fe', autoComplete: 'off', class: classNames('searchcraft-input-form-input', {\n 'searchcraft-placeholder-hide-on-focus': this.placeholderBehavior === 'hide-on-focus',\n }), onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {\n this.handleInput(event);\n }, placeholder: this.placeholderValue, type: 'text', value: this.inputValue }), h(\"div\", { key: '7feb32348b7faec4104137a142ba8150149498a5', class: 'searchcraft-input-form-input-icon' }, h(\"svg\", { key: '8b9abd236d4896b8dbd5c14e06019c116e3675be', class: 'searchcraft-input-form-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'searchcraft-title' }, h(\"title\", { key: '4d3b6724f6532920f5531d2e15b28a06f0770688' }, \"Search icon\"), h(\"path\", { key: '65a46a1916c1f020c9bebffd42aa016b59177376', d: 'M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), isShowingClearButton && (h(\"button\", { key: '65278eb0ab49415dce79c874adf90adcb5854db5', type: 'button', class: 'searchcraft-input-form-clear-button', onClick: this.handleClearInput }, h(\"svg\", { key: '0016263afe32250ace58cc4b98ff6106d7d9d4a0', class: 'searchcraft-input-form-clear-icon', viewBox: '0 0 22 22', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'icon-title' }, h(\"title\", { key: '9b40d806455ab9c19c0cddb4c76101debdb0266c' }, \"Clear icon\"), h(\"path\", { key: '2954ee1496d6736d6e780755034902c76adb81e9', d: 'M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))))))));\n }\n static get watchers() { return {\n \"core\": [\"onCoreChange\"],\n \"value\": [\"onValueChange\"]\n }; }\n}, [768, \"searchcraft-input-form\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"autoSearch\": [4, \"auto-search\"],\n \"buttonPlacement\": [1, \"button-placement\"],\n \"buttonLabel\": [1, \"button-label\"],\n \"inputLabel\": [1, \"input-label\"],\n \"placeholderValue\": [1, \"placeholder-value\"],\n \"placeholderBehavior\": [1, \"placeholder-behavior\"],\n \"value\": [1],\n \"inputValue\": [32],\n \"searchTerm\": [32],\n \"error\": [32]\n }, undefined, {\n \"core\": [\"onCoreChange\"],\n \"value\": [\"onValueChange\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-form\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-form\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftInputForm);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftInputForm as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-input-form2.js.map\n\n//# sourceMappingURL=searchcraft-input-form2.js.map","import { S as SearchcraftInputForm$1, d as defineCustomElement$1 } from './searchcraft-input-form2.js?v=0.13.2';\n\nconst SearchcraftInputForm = SearchcraftInputForm$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftInputForm, defineCustomElement };\n//# sourceMappingURL=searchcraft-input-form.js.map\n\n//# sourceMappingURL=searchcraft-input-form.js.map","import { S as SearchcraftInputLabel$1, d as defineCustomElement$1 } from './searchcraft-input-label2.js?v=0.13.2';\n\nconst SearchcraftInputLabel = SearchcraftInputLabel$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftInputLabel, defineCustomElement };\n//# sourceMappingURL=searchcraft-input-label.js.map\n\n//# sourceMappingURL=searchcraft-input-label.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\n\nconst SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n label;\n render() {\n return (h(\"div\", { key: '5bda164202246eeb2e56bb6a25bede9931898e7a', class: 'searchcraft-loading' }, h(\"div\", { key: 'e33a5abc6686f9983c718a2532aa2d46902d98a2', class: 'searchcraft-loading-bars' }, h(\"div\", { key: '85ff7af527b8f419c9bfd6e84331dd68772e6fdd', class: 'searchcraft-loading-bar-1' }), h(\"div\", { key: '1485d17e9262dbec6d2e5976a63149878137821c', class: 'searchcraft-loading-bar-2' }), h(\"div\", { key: 'd2939b9f7bc0599df7d96db91802ebfcbf232f3e', class: 'searchcraft-loading-bar-3' }), h(\"div\", { key: '7a73bd5baf25ec789c3170e066d1333b905bfe7b', class: 'searchcraft-loading-bar-4' }), h(\"div\", { key: 'b644b618766727773b21d288945c21b6ef0be958', class: 'searchcraft-loading-bar-5' }), h(\"div\", { key: '4f5123a786fc40891ca54edc538dd56f683b26ce', class: 'searchcraft-loading-bar-6' })), h(\"p\", { key: '967c1a6fb41231c8d713b78facca98e7f5a80709', class: 'searchcraft-loading-label' }, this.label)));\n }\n}, [768, \"searchcraft-loading\", {\n \"label\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-loading\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-loading\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftInputLabel);\n }\n break;\n } });\n}\n\nexport { SearchcraftInputLabel as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-loading2.js.map\n\n//# sourceMappingURL=searchcraft-loading2.js.map","import { S as SearchcraftInputLabel, d as defineCustomElement$1 } from './searchcraft-loading2.js?v=0.13.2';\n\nconst SearchcraftLoading = SearchcraftInputLabel;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftLoading, defineCustomElement };\n//# sourceMappingURL=searchcraft-loading.js.map\n\n//# sourceMappingURL=searchcraft-loading.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { c as classNames } from './index3.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-button2.js?v=0.13.2';\n\nconst SearchcraftPagination$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPagination extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n // store vars\n searchTerm;\n searchResultsPerPage;\n searchResultsPage;\n searchResultsCount;\n searchClientRequestProperties;\n // local vars\n searchResultsPagesCount = 1;\n searchResultsRangeMin = 1;\n searchResultsRangeMax = 1;\n // store functions\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n this.searchResultsRangeMin =\n (this.searchResultsPage - 1) * this.searchResultsPerPage + 1;\n this.searchResultsRangeMax =\n (this.searchResultsPerPage - 1) * this.searchResultsPerPage +\n this.searchResultsPerPage;\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n renderOddPaginationItem(page) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n renderEvenPaginationItem(page) {\n if (this.searchResultsPagesCount <= page) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n page < Math.ceil(this.searchResultsPagesCount / 2) // is the first or second even pagination item\n ? this.searchResultsPage <= page + 1\n : this.searchResultsPage >= page - 1) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item' }, \"...\")));\n }\n renderMiddlePaginationItem() {\n if (this.searchResultsPagesCount <= 3) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n this.searchResultsPage <= 3 ||\n this.searchResultsPage >= this.searchResultsPagesCount - 2) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === 3 ||\n this.searchResultsPage === this.searchResultsPagesCount - 2,\n }), type: 'button', onClick: () => this.handleGoToPage(this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3) }, this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item searchcraft-pagination-item-active' }, this.searchResultsPage)));\n }\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n // early return if there isn't a searchTerm (unless it's initialQuery) or there is 1 or fewer pages of results\n if ((!this.searchTerm && !isInitialQuery) ||\n this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: 'searchcraft-pagination' }, h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === 1, hierarchy: 'tertiary', onButtonClick: () => this.handleGoToPage(Math.max(1, this.searchResultsPage - 1)), label: 'Previous', iconPosition: 'left', icon: h(\"svg\", { class: 'searchcraft-button-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Previous page icon\"), h(\"path\", { d: 'M12.5 15L7.5 10L12.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true })), h(\"ul\", { class: 'searchcraft-pagination-list' }, this.renderOddPaginationItem(1), this.renderEvenPaginationItem(2), this.renderMiddlePaginationItem(), this.renderEvenPaginationItem(this.searchResultsPagesCount > 4\n ? this.searchResultsPagesCount - 1\n : 4), this.renderOddPaginationItem(this.searchResultsPagesCount)), h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === this.searchResultsPagesCount, hierarchy: 'tertiary', onButtonClick: () => {\n this.handleGoToPage(Math.min(this.searchResultsPagesCount, this.searchResultsPage + 1));\n }, label: 'Next', iconPosition: 'right', icon: h(\"svg\", { class: 'searchcraft-button-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Next page icon\"), h(\"path\", { d: 'M7.5 15L12.5 10L7.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true }))));\n }\n}, [768, \"searchcraft-pagination\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchTerm\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsCount\": [32],\n \"searchClientRequestProperties\": [32],\n \"searchResultsPagesCount\": [32],\n \"searchResultsRangeMin\": [32],\n \"searchResultsRangeMax\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-pagination\", \"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-pagination\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftPagination$1);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPagination = SearchcraftPagination$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPagination, defineCustomElement };\n//# sourceMappingURL=searchcraft-pagination.js.map\n\n//# sourceMappingURL=searchcraft-pagination.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { h as html } from './html.js?v=0.13.2';\n\nconst SearchcraftPopoverButton$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverButton extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * A callback function responsible for rendering the button contents.\n */\n template;\n /**\n * The type of popover button to render.\n */\n type;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n hotkey;\n hotkeyModifier;\n hotkeyModifierSymbol;\n isPopoverVisible;\n userAgent;\n unsubscribe = () => { };\n cleanupCore;\n core;\n onCoreAvailable(core) {\n this.core = core;\n const state = core.store.getState();\n this.hotkey = state.hotkey.toUpperCase();\n this.hotkeyModifier = state.hotkeyModifier;\n this.isPopoverVisible = state.isPopoverVisible;\n this.userAgent = this.setUserAgent();\n this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();\n this.unsubscribe = core.store.subscribe((state) => {\n this.hotkey = state.hotkey.toUpperCase();\n this.hotkeyModifier = state.hotkeyModifier;\n this.hotkeyModifierSymbol = this.setHotkeyModifierSymbol();\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n handleOnClick() {\n this.core?.store.getState().setPopoverVisibility(true);\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n setUserAgent() {\n const userAgent = navigator.userAgent.toLowerCase();\n switch (true) {\n case userAgent.includes('windows'):\n return 'window';\n case userAgent.includes('mac'):\n return 'mac';\n default:\n return 'other';\n }\n }\n renderOptionSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Option key\"), h(\"path\", { d: 'M283,112c0-11.58,9.42-21,21-21h160c11.58,0,21,9.42,21,21s-9.42,21-21,21h-160c-11.58,0-21-9.42-21-21Z', fill: 'currentColor' }), h(\"path\", { d: 'M485,400c0,11.58-9.42,21-21,21h-128c-8.29,0-15.82-4.9-19.19-12.47l-122.46-275.53H48c-11.58,0-21-9.42-21-21s9.42-21,21-21h160c8.29,0,15.82,4.9,19.19,12.47l122.46,275.53h114.35c11.58,0,21,9.42,21,21Z', fill: 'currentColor' })));\n };\n renderCtrlSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Ctrl key\"), h(\"path\", { d: 'M388.95,209.4c-.37,5.59-2.9,10.71-7.12,14.4-3.83,3.35-8.74,5.2-13.82,5.2-6.06,0-11.83-2.61-15.81-7.17l-96.2-109.94-96.2,109.94c-3.98,4.56-9.75,7.17-15.81,7.17-5.08,0-9.99-1.84-13.82-5.2-4.22-3.69-6.75-8.81-7.12-14.4-.38-5.6,1.45-11.01,5.15-15.23l112-128c3.98-4.56,9.74-7.17,15.8-7.17s11.82,2.61,15.8,7.17l112,128c3.7,4.22,5.53,9.63,5.15,15.23Z', fill: 'currentColor' })));\n };\n renderWindowsMetaSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Windows meta key\"), h(\"path\", { d: 'M206.115 255.957c-23.854-12.259-47.043-18.479-68.94-18.479-2.978 0-5.976 0.090-8.974 0.354-27.94 2.312-53.461 9.684-69.875 15.414-4.354 1.599-8.817 3.288-13.415 5.153l-44.911 155.697c30.851-11.416 58.146-16.969 83.135-16.969 40.423 0 69.764 15.104 93.996 30.652 11.481-38.959 39.022-133.045 47.241-161.162-5.975-3.642-12.038-7.285-18.257-10.66zM264.174 295.535l-45.223 157.074c13.416 7.686 58.549 32.025 93.106 32.025 27.896 0 59.126-7.148 95.417-21.896l43.178-150.988c-29.316 9.461-57.438 14.26-83.732 14.26-47.975 0-81.557-15.549-102.746-30.475zM146.411 184.395c38.559 0.399 67.076 15.104 90.708 30.251l46.376-158.672c-9.773-5.598-35.403-19.547-53.929-24.3-12.193-2.842-25.010-4.308-38.602-4.308-25.898 0.488-54.194 6.973-86.444 19.9l-44.22 155.298c32.404-12.218 60.322-18.17 86.043-18.17 0.023 0.001 0.068 0.001 0.068 0.001zM512 99.062c-29.407 11.416-58.104 17.233-85.514 17.233-45.843 0-79.646-15.901-101.547-31.183l-45.975 159.118c30.873 19.854 64.145 29.939 99.061 29.939 28.474 0 57.97-6.84 87.731-20.344l-0.091-1.111 1.867-0.443 44.468-153.209z', fill: 'currentColor' })));\n };\n renderMacMetaSymbol = () => {\n return (h(\"svg\", { version: '1.1', xmlns: 'http://www.w3.org/2000/svg', width: '20', height: '20', viewBox: '0 0 512 512', fill: 'none' }, h(\"title\", null, \"Mac meta key\"), h(\"path\", { d: 'M368,283h-43v-54h43c46.87,0,85-38.13,85-85s-38.13-85-85-85-85,38.13-85,85v43h-54v-43c0-46.87-38.13-85-85-85s-85,38.13-85,85,38.13,85,85,85h43v54h-43c-46.87,0-85,38.13-85,85s38.13,85,85,85,85-38.13,85-85v-43h54v43c0,46.87,38.13,85,85,85s85-38.13,85-85-38.13-85-85-85ZM325,144c0-23.71,19.29-43,43-43s43,19.29,43,43-19.29,43-43,43h-43v-43ZM144,187c-23.71,0-43-19.29-43-43s19.29-43,43-43,43,19.29,43,43v43h-43ZM187,368c0,23.71-19.29,43-43,43s-43-19.29-43-43,19.29-43,43-43h43v43ZM283,283h-54v-54h54v54ZM368,411c-23.71,0-43-19.29-43-43v-43h43c23.71,0,43,19.29,43,43s-19.29,43-43,43Z', fill: 'currentColor' })));\n };\n setHotkeyModifierSymbol() {\n switch (this.hotkeyModifier) {\n case 'ctrl':\n return this.userAgent === 'windows'\n ? this.renderCtrlSymbol()\n : this.renderMacMetaSymbol();\n case 'alt':\n case 'option':\n return this.renderOptionSymbol();\n default:\n return this.userAgent === 'windows'\n ? this.renderWindowsMetaSymbol()\n : this.renderMacMetaSymbol();\n }\n }\n renderSkeuomorphicSlot() {\n return (h(\"div\", { class: 'searchcraft-popover-button-wrapper' }, h(\"div\", { class: 'searchcraft-popover-button-input' }, h(\"svg\", { class: 'searchcraft-popover-button-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', version: '1.1' }, h(\"title\", null, \"Search icon\"), h(\"path\", { d: 'M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), h(\"span\", null, \"Search\")), h(\"div\", { class: 'searchcraft-popover-button-keycaps' }, h(\"div\", { class: 'searchcraft-popover-button-keycaps-keycap searchcraft-popover-button-keycaps-keycap-modifier' }, h(\"span\", null, this.hotkeyModifierSymbol)), h(\"div\", { class: 'searchcraft-popover-button-keycaps-keycap searchcraft-popover-button-keycaps-keycap-key' }, h(\"span\", null, this.hotkey)))));\n }\n renderSlot() {\n switch (this.type) {\n case 'skeuomorphic':\n return this.renderSkeuomorphicSlot();\n default:\n return (h(\"div\", null, h(\"slot\", null)));\n }\n }\n render() {\n return (h(\"button\", { key: '4f11d81bb189a929372d9e398a0913b3b626e42c', class: `searchcraft-popover-button ${this.type ? ` searchcraft-popover-button-${this.type}` : ''}`, innerHTML: typeof this.template !== 'undefined'\n ? this.template({ isPopoverVisible: this.isPopoverVisible }, { html })\n : undefined, onClick: this.handleOnClick.bind(this), type: 'button' }, typeof this.template !== 'undefined'\n ? undefined\n : this.type\n ? this.renderSlot()\n : 'Open Popover'));\n }\n}, [772, \"searchcraft-popover-button\", {\n \"template\": [16],\n \"type\": [1],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"hotkey\": [32],\n \"hotkeyModifier\": [32],\n \"hotkeyModifierSymbol\": [32],\n \"isPopoverVisible\": [32],\n \"userAgent\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-button\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftPopoverButton$1);\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverButton = SearchcraftPopoverButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverButton, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-button.js.map\n\n//# sourceMappingURL=searchcraft-popover-button.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { f as formatNumberWithCommas } from './units.js?v=0.13.2';\nimport './purify.es.js';\n\nconst SearchcraftPopoverFooter = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverFooter extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n searchResultsCount;\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.searchResultsCount = core.store.getState().searchResultsCount;\n this.unsubscribe = core.store.subscribe((state) => {\n this.searchResultsCount = state.searchResultsCount;\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n return (h(\"footer\", { key: '5e3c0da21c63453ac705d0ea2dbb1ee5053bd527', class: 'searchcraft-popover-footer' }, h(\"p\", { key: '34332a6a54af63717a6f6c36c65a321b2d18c82c', class: 'searchcraft-popover-footer-results-info' }, this.searchResultsCount\n ? `${formatNumberWithCommas(this.searchResultsCount)} Results Found`\n : ' '), h(\"a\", { key: '8cd1bd1ad4e3a91e7221c5d38650b10a66dc884e', class: 'searchcraft-popover-footer-link', href: 'https://searchcraft.io/', target: '_blank', rel: 'noreferrer' }, h(\"svg\", { key: '4ebaa80bc3ee8cc2643368d84158cc46ac141376', class: 'searchcraft-popover-footer-link-image', width: '169', height: '16', viewBox: '0 0 169 16', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", { key: '804857d081cf5cbd8e63af05c3479a96872d136d' }, \"Powered by Searchcraft\"), h(\"path\", { key: '43d4a2b110134036b8823e508f535c293fb2df0c', d: 'M5.07288 0.608C7.60088 0.608 8.84888 2.064 8.84888 4.112C8.84888 6.16 7.60088 7.616 5.07288 7.616H1.68088V12H0.336875V0.608H5.07288ZM5.07288 6.4C6.67288 6.4 7.45688 5.552 7.45688 4.112C7.45688 2.672 6.67288 1.824 5.07288 1.824H1.68088V6.4H5.07288ZM13.31 12.192C10.99 12.192 9.31 10.512 9.31 7.872C9.31 5.232 10.99 3.552 13.31 3.552C15.63 3.552 17.31 5.232 17.31 7.872C17.31 10.512 15.63 12.192 13.31 12.192ZM13.31 11.04C14.91 11.04 15.966 9.872 15.966 7.872C15.966 5.872 14.91 4.704 13.31 4.704C11.71 4.704 10.654 5.872 10.654 7.872C10.654 9.872 11.71 11.04 13.31 11.04ZM28.3826 3.744H29.7586L27.0066 12H25.6626L24.4466 8.176C24.1586 7.264 23.8706 6.304 23.6146 5.376C23.3426 6.304 23.0546 7.264 22.7666 8.176L21.5666 12H20.2226L17.4706 3.744H18.8466L20.0146 7.472C20.3346 8.48 20.6226 9.472 20.9106 10.48C21.1826 9.472 21.4706 8.48 21.7906 7.472L22.9426 3.744H24.2866L25.4386 7.472C25.7426 8.464 26.0466 9.456 26.3346 10.448C26.6066 9.456 26.9106 8.464 27.2146 7.472L28.3826 3.744ZM37.5194 7.872V8.32H31.2474C31.3754 10.176 32.3514 11.024 33.7914 11.024C34.9594 11.024 35.6954 10.416 35.9834 9.488H37.3114C36.9114 11.04 35.7274 12.192 33.7594 12.192C31.5034 12.192 29.9194 10.544 29.9194 7.872C29.9194 5.28 31.4394 3.552 33.7274 3.552C36.1914 3.552 37.5194 5.504 37.5194 7.872ZM33.7274 4.72C32.4314 4.72 31.4874 5.536 31.2794 7.168H36.1434C36.0154 5.808 35.1994 4.72 33.7274 4.72ZM42.9101 3.616C43.0381 3.616 43.1661 3.616 43.3421 3.632V4.864H43.0221C41.3741 4.864 40.3181 5.696 40.3181 7.296V12H39.0381V3.744H40.2541V5.2C40.7181 4.336 41.5661 3.616 42.9101 3.616ZM51.2538 7.872V8.32H44.9818C45.1098 10.176 46.0858 11.024 47.5258 11.024C48.6938 11.024 49.4298 10.416 49.7178 9.488H51.0458C50.6458 11.04 49.4618 12.192 47.4938 12.192C45.2378 12.192 43.6538 10.544 43.6538 7.872C43.6538 5.28 45.1738 3.552 47.4618 3.552C49.9258 3.552 51.2538 5.504 51.2538 7.872ZM47.4618 4.72C46.1658 4.72 45.2218 5.536 45.0138 7.168H49.8778C49.7498 5.808 48.9338 4.72 47.4618 4.72ZM58.9805 0.608H60.2605V12H59.0445V10.72C58.4205 11.664 57.4445 12.192 56.2125 12.192C53.8925 12.192 52.3725 10.512 52.3725 7.872C52.3725 5.232 53.8925 3.552 56.2125 3.552C57.4125 3.552 58.3565 4.048 58.9805 4.928V0.608ZM56.3725 11.04C57.9725 11.04 59.0285 9.872 59.0285 7.872C59.0285 5.872 57.9725 4.704 56.3725 4.704C54.7725 4.704 53.7165 5.936 53.7165 7.936C53.7165 9.936 54.7725 11.04 56.3725 11.04ZM69.2736 3.552C71.5936 3.552 73.1136 5.232 73.1136 7.872C73.1136 10.512 71.5936 12.192 69.2736 12.192C68.0416 12.192 67.0656 11.664 66.4416 10.72V12H65.2256V0.608H66.5056V4.928C67.1296 4.048 68.0736 3.552 69.2736 3.552ZM69.1136 11.04C70.7136 11.04 71.7696 9.808 71.7696 7.808C71.7696 5.808 70.7136 4.704 69.1136 4.704C67.5136 4.704 66.4576 5.872 66.4576 7.872C66.4576 9.872 67.5136 11.04 69.1136 11.04ZM79.3795 3.744H80.7715L77.2835 13.296C76.7555 14.752 75.9075 15.184 74.5955 15.184C74.3395 15.184 74.0995 15.168 73.8275 15.136V14.064H74.5795C75.3955 14.064 75.8275 13.696 76.0835 13.04C76.1795 12.8 76.2755 12.528 76.3715 12.272L73.2675 3.744H74.6755L75.8435 7.184C76.2595 8.384 76.6435 9.568 77.0275 10.752C77.3955 9.568 77.7955 8.368 78.2115 7.168L79.3795 3.744ZM89.1546 12.256C86.1146 12.256 84.2906 10.864 84.2746 8.24H86.4026C86.4346 10.032 87.6346 10.512 89.2186 10.512C90.7066 10.512 91.5226 9.936 91.5226 8.864C91.5226 7.968 90.9306 7.568 89.1866 7.216L88.2266 7.024C86.0186 6.608 84.5626 5.632 84.5626 3.568C84.5626 1.68 86.0506 0.351999 88.7866 0.351999C91.9866 0.351999 93.3466 1.856 93.4266 4H91.3306C91.2506 2.784 90.6266 2.096 88.8186 2.096C87.4426 2.096 86.7706 2.64 86.7706 3.504C86.7706 4.416 87.2986 4.832 88.9946 5.184L89.9866 5.376C92.6746 5.904 93.7626 6.944 93.7626 8.752C93.7626 11.008 92.0026 12.256 89.1546 12.256ZM102.952 8.016V8.496H96.7758C96.9198 9.968 97.7518 10.624 98.9198 10.624C99.8798 10.624 100.504 10.176 100.808 9.44H102.744C102.328 11.12 100.888 12.192 98.9038 12.192C96.4718 12.192 94.7918 10.512 94.7918 7.872C94.7918 5.28 96.4238 3.552 98.8718 3.552C101.4 3.552 102.952 5.392 102.952 8.016ZM98.8558 5.12C97.7838 5.12 96.9838 5.728 96.7918 7.088H100.936C100.776 5.92 100.056 5.12 98.8558 5.12ZM111.599 12H109.583C109.455 11.776 109.391 11.392 109.359 10.992C108.815 11.76 107.919 12.192 106.703 12.192C104.943 12.192 103.727 11.312 103.727 9.712C103.727 8.336 104.559 7.36 106.895 7.136L108.143 7.024C108.911 6.928 109.311 6.688 109.311 6.08C109.311 5.44 108.975 5.056 107.807 5.056C106.655 5.056 106.175 5.36 106.095 6.368H104.111C104.223 4.624 105.247 3.552 107.823 3.552C110.287 3.552 111.263 4.544 111.263 6.032V10.432C111.263 11.024 111.375 11.68 111.599 12ZM107.183 10.752C108.255 10.752 109.311 10.176 109.311 8.736V7.984C109.103 8.176 108.799 8.272 108.367 8.32L107.279 8.448C106.159 8.576 105.791 8.976 105.791 9.632C105.791 10.32 106.255 10.752 107.183 10.752ZM117.216 3.616C117.392 3.616 117.536 3.616 117.712 3.648V5.504H117.2C115.712 5.504 114.816 6.24 114.816 7.808V12H112.8V3.744H114.752V5.216C115.152 4.288 115.936 3.616 117.216 3.616ZM122.137 12.192C119.689 12.192 118.057 10.512 118.057 7.872C118.057 5.232 119.673 3.552 122.137 3.552C124.297 3.552 125.737 4.784 125.977 6.72H123.961C123.769 5.696 123.033 5.232 122.137 5.232C120.937 5.232 120.121 6.064 120.121 7.872C120.121 9.68 120.969 10.512 122.137 10.512C123.049 10.512 123.833 10.016 123.993 8.928H126.009C125.785 10.944 124.249 12.192 122.137 12.192ZM131.641 3.552C133.369 3.552 134.537 4.56 134.537 6.528V12H132.521V6.864C132.521 5.808 131.993 5.296 130.969 5.296C130.089 5.296 129.129 5.904 129.129 7.376V12H127.113V0.608H129.129V4.848C129.673 4.096 130.521 3.552 131.641 3.552ZM139.887 12.192C137.439 12.192 135.807 10.512 135.807 7.872C135.807 5.232 137.423 3.552 139.887 3.552C142.047 3.552 143.487 4.784 143.727 6.72H141.711C141.519 5.696 140.783 5.232 139.887 5.232C138.687 5.232 137.871 6.064 137.871 7.872C137.871 9.68 138.719 10.512 139.887 10.512C140.799 10.512 141.583 10.016 141.743 8.928H143.759C143.535 10.944 141.999 12.192 139.887 12.192ZM149.279 3.616C149.455 3.616 149.599 3.616 149.775 3.648V5.504H149.263C147.775 5.504 146.879 6.24 146.879 7.808V12H144.863V3.744H146.815V5.216C147.215 4.288 147.999 3.616 149.279 3.616ZM157.803 12H155.787C155.659 11.776 155.595 11.392 155.563 10.992C155.019 11.76 154.123 12.192 152.907 12.192C151.147 12.192 149.931 11.312 149.931 9.712C149.931 8.336 150.763 7.36 153.099 7.136L154.347 7.024C155.115 6.928 155.515 6.688 155.515 6.08C155.515 5.44 155.179 5.056 154.011 5.056C152.859 5.056 152.379 5.36 152.299 6.368H150.315C150.427 4.624 151.451 3.552 154.027 3.552C156.491 3.552 157.467 4.544 157.467 6.032V10.432C157.467 11.024 157.579 11.68 157.803 12ZM153.387 10.752C154.459 10.752 155.515 10.176 155.515 8.736V7.984C155.307 8.176 155.003 8.272 154.571 8.32L153.483 8.448C152.363 8.576 151.995 8.976 151.995 9.632C151.995 10.32 152.459 10.752 153.387 10.752ZM162.466 2.16C161.746 2.16 161.426 2.512 161.426 3.152V3.744H163.122V5.28H161.426V12H159.426V5.28H158.146V3.744H159.426V3.12C159.426 1.664 160.146 0.559999 162.13 0.559999C162.45 0.559999 162.882 0.575999 163.17 0.608V2.16H162.466ZM168.636 5.28H167.004V9.744C167.004 10.288 167.276 10.464 167.948 10.464H168.636V12C168.268 12.032 167.9 12.064 167.58 12.064C165.836 12.064 165.004 11.472 165.004 9.952V5.28H163.724V3.744H165.004V1.344H167.004V3.744H168.636V5.28Z', fill: 'currentColor' })))));\n }\n}, [768, \"searchcraft-popover-footer\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchResultsCount\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-footer\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-footer\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftPopoverFooter);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverFooter as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-popover-footer2.js.map\n\n//# sourceMappingURL=searchcraft-popover-footer2.js.map","import { S as SearchcraftPopoverFooter$1, d as defineCustomElement$1 } from './searchcraft-popover-footer2.js?v=0.13.2';\n\nconst SearchcraftPopoverFooter = SearchcraftPopoverFooter$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverFooter, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-footer.js.map\n\n//# sourceMappingURL=searchcraft-popover-footer.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { g as getDocumentValueFromSearchResultMapping } from './units.js?v=0.13.2';\nimport './purify.es.js';\n\nconst SearchcraftPopoverListItem = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItem extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n item;\n popoverResultMappings;\n /** The document position relative to the search results (For Measure) */\n documentPosition = 0;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n title;\n subtitle;\n href;\n imageSource;\n imageAlt;\n core;\n cleanupCore;\n mapValuesFromDocument(document) {\n this.title = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);\n this.subtitle = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);\n this.href = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.href);\n this.imageSource = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);\n this.imageAlt = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageAlt);\n }\n onCoreAvailable(core) {\n this.core = core;\n }\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n handleLinkClick = () => {\n if (this.core) {\n const document_position = this.documentPosition;\n const search_term = this.core.store.getState().searchTerm;\n const number_of_documents = this.core.store.getState().searchClientResponseItems.length || 0;\n this.core.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n render() {\n return (h(\"div\", { key: 'd1c9c310b8abc9d2370efb802eac1edf4189519d', class: 'searchcraft-popover-list-item' }, h(\"a\", { key: '30eb1a5076c5b4b95ae43147eaee0bb72ce46179', class: 'searchcraft-popover-list-item-link', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSource && (h(\"div\", { key: 'd18ff55823dc2c61f3786f423936af8b009aeeda', class: 'searchcraft-popover-list-item-image-wrapper' }, h(\"img\", { key: '56f4cc1d472f7da05e64fcf52c560a7ad0cdf7a6', alt: this.imageAlt, src: this.imageSource, class: 'searchcraft-popover-list-item-image' }))), h(\"div\", { key: '78a0f0235d5e71d10076b70ccbaf4b58e0d6fea0', class: 'searchcraft-popover-list-item-content' }, this.title && (h(\"p\", { key: '4489047af56e5aa295cb5f036e970dcad053d3b7', class: 'searchcraft-popover-list-item-content-title' }, this.title)), this.subtitle && (h(\"p\", { key: '4d177c227a1dbf1233022d738403c8eb93ba328d', class: 'searchcraft-popover-list-item-content-subtitle' }, this.subtitle))))));\n }\n}, [768, \"searchcraft-popover-list-item\", {\n \"item\": [16],\n \"popoverResultMappings\": [16],\n \"documentPosition\": [2, \"document-position\"],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"title\": [32],\n \"subtitle\": [32],\n \"href\": [32],\n \"imageSource\": [32],\n \"imageAlt\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftPopoverListItem);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItem as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-popover-list-item2.js.map\n\n//# sourceMappingURL=searchcraft-popover-list-item2.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-ad2.js?v=0.13.2';\nimport { d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?v=0.13.2';\n\nconst SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The mappings that define how the data in the documents are mapped to the\n * list-view-item elements.\n */\n popoverResultMappings;\n /**\n * The items to render in the list view.\n */\n searchClientResponseItems;\n adClientResponseItems;\n searchResultsPage;\n searchResultsPerPage;\n config;\n cleanupCore;\n onCoreAvailable(core) {\n this.config = core.config;\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n renderWithADMAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adClientResponseItem: item, adSource: 'adMarketplace', key: item.id, renderPosition: 'top' }))), this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-popover-list-view' }, itemsToRender);\n }\n renderWithNativoAds() {\n const itemsToRender = [];\n const interstitialStartIndex = this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval = this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-popover-list-view' }, itemsToRender);\n }\n renderWithNoAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { \"searchcraft-id\": this.searchcraftId, item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n render() {\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithADMAds();\n }\n return this.renderWithNoAds();\n }\n}, [768, \"searchcraft-popover-list-view\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"popoverResultMappings\": [16],\n \"searchClientResponseItems\": [16],\n \"adClientResponseItems\": [16],\n \"searchResultsPage\": [2, \"search-results-page\"],\n \"searchResultsPerPage\": [2, \"search-results-per-page\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-view\", \"searchcraft-ad\", \"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftPopoverListView);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListView as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-popover-list-view2.js.map\n\n//# sourceMappingURL=searchcraft-popover-list-view2.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { c as classNames } from './index3.js?v=0.13.2';\nimport { d as defineCustomElement$9 } from './searchcraft-ad2.js?v=0.13.2';\nimport { d as defineCustomElement$8 } from './searchcraft-button2.js?v=0.13.2';\nimport { d as defineCustomElement$7 } from './searchcraft-error-message2.js?v=0.13.2';\nimport { d as defineCustomElement$6 } from './searchcraft-input-form2.js?v=0.13.2';\nimport { d as defineCustomElement$5 } from './searchcraft-input-label2.js?v=0.13.2';\nimport { d as defineCustomElement$4 } from './searchcraft-popover-footer2.js?v=0.13.2';\nimport { d as defineCustomElement$3 } from './searchcraft-popover-list-item2.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-popover-list-view2.js?v=0.13.2';\n\nconst SearchcraftPopoverForm$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverForm extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The type of popover form to render.\n * - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content.\n * - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component.\n * - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.\n */\n type = 'inline';\n /**\n * Formats the content rendered for each result.\n */\n popoverResultMappings;\n /**\n * The hotkey that activates the popover.\n */\n hotkey = 'k';\n /**\n * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.\n */\n hotkeyModifier = 'meta';\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * The input element's placeholder value.\n */\n placeholderValue = 'Enter Search';\n /**\n * The placeholder's render behavior.\n * 'hide-on-focus' - Hide the placeholder text immediately when the input form gains focus.\n * 'hide-on-text-entered' - Only hide the placeholder when the input form has text entered into it.\n */\n placeholderBehavior;\n isPopoverVisibleInState = false;\n searchClientResponseItems = [];\n adClientResponseItems = [];\n searchTerm;\n isFocused = false;\n breakpointSm = 576;\n breakpointMd = 768;\n breakpointLg = 992;\n searchResultsPage;\n searchResultsPerPage;\n modalElement;\n get hostElement() { return this; }\n unsubscribe;\n cleanupCore;\n core;\n onCoreAvailable(core) {\n this.core = core;\n // Loads the breakpoint values into state\n const computedStyle = getComputedStyle(document.documentElement);\n this.breakpointSm = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-sm').trim());\n this.breakpointMd = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-md').trim());\n this.breakpointLg = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-lg').trim());\n // Set popover visiblity in state\n this.isPopoverVisibleInState = core.store.getState().isPopoverVisible;\n // Add event listeners\n document.addEventListener('click', this.handleDocumentClick);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n // Subscribe to state events\n this.unsubscribe = core.store.subscribe((state) => {\n if (this.isPopoverVisibleInState !== state.isPopoverVisible) {\n this.handlePopoverVisibilityChange(state.isPopoverVisible);\n }\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n });\n // Set hotkey and hotkeyModifier in state.\n core.store\n .getState()\n .setHotKeyAndHotKeyModifier(this.hotkey, this.hotkeyModifier);\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n document.removeEventListener('click', this.handleDocumentClick);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n handleDocumentClick = (event) => {\n if (!this.hostElement.contains(event.target)) {\n this.isFocused = false;\n }\n };\n /**\n * Handles when popover visibility is changed in state\n */\n handlePopoverVisibilityChange(isVisible) {\n this.isPopoverVisibleInState = isVisible;\n document.body.style.overflow = isVisible ? 'hidden' : 'auto';\n }\n /**\n * Actions to perform when various keys are pressed within the popover form.\n */\n handleDocumentKeyDown = (event) => {\n // Document-scoped actions\n if (event.key === this.hotkey) {\n this.handleHotkeyPressed(event);\n }\n // Document-scoped -> Popover-scoped keyboard event boundary\n if (!this.hostElement.contains(document.activeElement)) {\n return;\n }\n // Popover-scoped actions\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n event.preventDefault();\n this.focusOnNextListItem(event.key);\n break;\n case 'Escape':\n this.core?.store.getState().setPopoverVisibility(false);\n break;\n default:\n return;\n }\n };\n handleInputInit = () => {\n const input = this.hostElement.querySelector('.searchcraft-input-form-input');\n input?.focus();\n };\n /**\n * When popover is `inline` and the viewport is at the smallest breakpoint,\n * focusing on the input will open a modal version of the popover form.\n */\n handleInputFocus() {\n this.isFocused = true;\n if (this.type === 'inline' &&\n window.visualViewport &&\n window.visualViewport.width < this.breakpointSm) {\n this.core?.store.getState().setPopoverVisibility(true);\n // Appends a popover form of type=`modal` to the body\n if (!this.modalElement) {\n this.modalElement = document.createElement('searchcraft-popover-form');\n this.modalElement.popoverResultMappings = this.popoverResultMappings;\n this.modalElement.setAttribute('type', 'fullscreen');\n this.modalElement.setAttribute('searchcraft-id', this.searchcraftId);\n if (this.placeholderValue) {\n this.modalElement.setAttribute('placeholder-value', this.placeholderValue);\n }\n if (this.placeholderBehavior) {\n this.modalElement.setAttribute('placeholder-behavior', this.placeholderBehavior);\n }\n document.body.appendChild(this.modalElement);\n }\n }\n }\n handleModalBackdropClick(_event) {\n this.core?.store.getState().setPopoverVisibility(false);\n }\n /**\n * When a hotkey is pressed, tests if the modifiers also match.\n * If modifiers match, toggles visibility of the popover modal.\n */\n handleHotkeyPressed(event) {\n if ((event.ctrlKey && this.hotkeyModifier === 'ctrl') ||\n (event.altKey && this.hotkeyModifier === 'alt') ||\n (event.metaKey && this.hotkeyModifier === 'meta')) {\n event.preventDefault();\n if (this.type === 'inline' && !this.isPopoverVisibleInState) {\n const hostElementInput = this.hostElement.querySelector('.searchcraft-input-form-input');\n hostElementInput?.focus();\n }\n else {\n this.core?.store\n .getState()\n .setPopoverVisibility(!this.isPopoverVisibleInState);\n }\n }\n }\n handleCancelButtonClick() {\n this.core?.store.getState().setPopoverVisibility(false);\n }\n /**\n * Moves focus to the next/previous list item in the list view. If you are at the top\n * of the list view, it moves focus back to the input.\n *\n * @param direction\n */\n focusOnNextListItem(direction) {\n const listItems = Array.from(document.querySelectorAll('.searchcraft-popover-list-item-link')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);\n const currentIndex = listItems.indexOf(document.activeElement);\n if (direction === 'ArrowDown') {\n listItems[(currentIndex + 1) % listItems.length]?.focus();\n }\n else if (direction === 'ArrowUp') {\n if (currentIndex >= 1) {\n listItems[currentIndex - 1]?.focus();\n }\n else {\n const input = document.querySelector('.searchcraft-input-form-input');\n if (input) {\n input.focus();\n requestAnimationFrame(() => {\n input.selectionEnd = input.value.length;\n input.selectionStart = input.value.length;\n });\n }\n }\n }\n }\n get hasResultsToShow() {\n return (this.searchTerm &&\n this.searchTerm?.trim()?.length > 0 &&\n this.searchClientResponseItems.length > 0);\n }\n renderInlinePopover() {\n const isListViewVisible = this.hasResultsToShow && this.isFocused;\n return (h(\"div\", { class: classNames('searchcraft-popover-form searchcraft-popover-form-inline', {\n 'searchcraft-popover-form-active': isListViewVisible,\n }) }, h(\"div\", { class: 'searchcraft-popover-form-input searchcraft-popover-form-inline-input' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior })), isListViewVisible && (h(\"div\", { class: 'searchcraft-popover-form-inline-wrapper' }, h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }), h(\"searchcraft-popover-footer\", { searchcraftId: this.searchcraftId })))));\n }\n renderModalPopover() {\n if (this.isPopoverVisibleInState) {\n return (h(\"div\", { class: classNames('searchcraft-popover-form searchcraft-popover-form-modal', {\n 'searchcraft-popover-form-active': this.hasResultsToShow,\n }) }, h(\"div\", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), h(\"div\", { class: 'searchcraft-popover-form-modal-wrapper' }, h(\"div\", { class: 'searchcraft-popover-form-input searchcraft-popover-form-modal-input' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-modal-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), h(\"div\", { class: 'searchcraft-popover-form-modal-popover-list-view' }, this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), h(\"searchcraft-popover-footer\", { searchcraftId: this.searchcraftId }))));\n }\n }\n renderFullscreenPopover() {\n if (this.isPopoverVisibleInState) {\n return (h(\"div\", { class: classNames('searchcraft-popover-form searchcraft-popover-form-fullscreen', {\n 'searchcraft-popover-form-active': this.hasResultsToShow,\n }) }, h(\"div\", { class: 'searchcraft-popover-form-input searchcraft-popover-form-fullscreen-input' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this), searchcraftId: this.searchcraftId, placeholderValue: this.placeholderValue, placeholderBehavior: this.placeholderBehavior }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button searchcraft-popover-form-fullscreen-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), h(\"div\", { class: 'searchcraft-popover-form-fullscreen-popover-list-view' }, this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage, searchcraftId: this.searchcraftId }))), h(\"searchcraft-popover-footer\", { searchcraftId: this.searchcraftId })));\n }\n }\n render() {\n switch (this.type) {\n case 'inline':\n return this.renderInlinePopover();\n case 'modal':\n return this.renderModalPopover();\n case 'fullscreen':\n return this.renderFullscreenPopover();\n }\n }\n}, [768, \"searchcraft-popover-form\", {\n \"type\": [1],\n \"popoverResultMappings\": [16],\n \"hotkey\": [1],\n \"hotkeyModifier\": [1, \"hotkey-modifier\"],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"placeholderValue\": [1, \"placeholder-value\"],\n \"placeholderBehavior\": [1, \"placeholder-behavior\"],\n \"isPopoverVisibleInState\": [32],\n \"searchClientResponseItems\": [32],\n \"adClientResponseItems\": [32],\n \"searchTerm\": [32],\n \"isFocused\": [32],\n \"breakpointSm\": [32],\n \"breakpointMd\": [32],\n \"breakpointLg\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"modalElement\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-form\", \"searchcraft-ad\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-form\", \"searchcraft-input-label\", \"searchcraft-popover-footer\", \"searchcraft-popover-form\", \"searchcraft-popover-list-item\", \"searchcraft-popover-list-view\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-form\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftPopoverForm$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$9();\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$8();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$7();\n }\n break;\n case \"searchcraft-input-form\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$6();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$5();\n }\n break;\n case \"searchcraft-popover-footer\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-popover-form\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$1();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverForm = SearchcraftPopoverForm$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverForm, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-form.js.map\n\n//# sourceMappingURL=searchcraft-popover-form.js.map","import { S as SearchcraftPopoverListItem$1, d as defineCustomElement$1 } from './searchcraft-popover-list-item2.js?v=0.13.2';\n\nconst SearchcraftPopoverListItem = SearchcraftPopoverListItem$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverListItem, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-list-item.js.map\n\n//# sourceMappingURL=searchcraft-popover-list-item.js.map","import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './searchcraft-popover-list-view2.js?v=0.13.2';\n\nconst SearchcraftPopoverListView = SearchcraftPopoverListView$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverListView, defineCustomElement };\n//# sourceMappingURL=searchcraft-popover-list-view.js.map\n\n//# sourceMappingURL=searchcraft-popover-list-view.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { f as formatNumberWithCommas } from './units.js?v=0.13.2';\nimport { h as html } from './html.js?v=0.13.2';\n\nconst SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * A callback function responsible for rendering the results info.\n */\n template;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n searchClientRequestProperties;\n // local vars\n count = 0;\n range = [0, 0];\n responseTime = '0';\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n // local vars\n this.count = this.searchResultsCount;\n this.range[0] =\n this.searchResultsPage <= 1\n ? 1\n : this.searchResultsPerPage * (this.searchResultsPage - 1);\n this.range[1] = this.searchResultsPerPage * this.searchResultsPage;\n this.range[1] =\n this.range[1] > this.searchResultsCount\n ? this.searchResultsCount\n : this.range[1];\n this.responseTime = ((state.searchResponseTimeTaken || 0) * 1000).toFixed(2);\n });\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n // Only hide if there's no search term AND no initialQuery AND no results\n if ((!this.searchTerm && !isInitialQuery) ||\n this.searchResultsCount === 0) {\n return null;\n }\n return (h(\"p\", { class: 'searchcraft-results-info' }, typeof this.template !== 'undefined'\n ? this.template({\n range: [Number(this.range[0]), Number(this.range[1])],\n count: this.count,\n responseTime: this.responseTime,\n }, { html })\n : `${formatNumberWithCommas(this.count)} results found in ${this.responseTime}ms`));\n }\n}, [768, \"searchcraft-results-info\", {\n \"template\": [16],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"searchClientRequestProperties\": [32],\n \"count\": [32],\n \"range\": [32],\n \"responseTime\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-results-info\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-results-info\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftResultsInfo$1);\n }\n break;\n } });\n}\n\nconst SearchcraftResultsInfo = SearchcraftResultsInfo$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftResultsInfo, defineCustomElement };\n//# sourceMappingURL=searchcraft-results-info.js.map\n\n//# sourceMappingURL=searchcraft-results-info.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { h as html } from './html.js?v=0.13.2';\n\nconst SearchcraftSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResult extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n item;\n /**\n * The index.\n */\n index;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n documentPosition = 0;\n /**\n * A callback function responsible for rendering a result.\n */\n template;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n templateHtml;\n get hostElement() { return this; }\n core;\n cleanupCore;\n onCoreAvailable(core) {\n this.core = core;\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n if (this.item) {\n try {\n this.templateHtml = this.template?.(this.item.document, this.index, {\n html,\n source_index: this.item.source_index,\n });\n }\n catch (error) {\n console.error('Invalid search result template:', error);\n }\n }\n }\n disconnectedCallback() {\n this.cleanupCore?.();\n }\n handleResultContainerClick = (event) => {\n if (!event.target) {\n return;\n }\n const target = event.target;\n const link = target.closest('a');\n if (!link ||\n !this.hostElement?.contains(link) ||\n !this.core ||\n !this.core.measureClient) {\n return;\n }\n const document_position = this.documentPosition;\n const search_term = this.core.store.getState().searchTerm;\n const number_of_documents = this.core.store.getState().searchClientResponseItems.length || 0;\n this.core.measureClient.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n };\n handleKeyDown = () => { };\n render() {\n if (!this.item) {\n return;\n }\n if (typeof this.template === 'undefined') {\n return (h(\"div\", { class: 'searchcraft-search-result searchcraft-search-result-no-template', onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }, Object.entries(this.item.document).map(([key, value]) => (h(\"p\", { key: key }, h(\"strong\", null, key), \": \", value)))));\n }\n return (h(\"div\", { class: 'searchcraft-search-result', innerHTML: this.templateHtml, onClick: this.handleResultContainerClick, onKeyDown: this.handleKeyDown }));\n }\n}, [768, \"searchcraft-search-result\", {\n \"item\": [16],\n \"index\": [2],\n \"documentPosition\": [2, \"document-position\"],\n \"template\": [16],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"templateHtml\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-result\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-result\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftSearchResult);\n }\n break;\n } });\n}\n\nexport { SearchcraftSearchResult as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-search-result2.js.map\n\n//# sourceMappingURL=searchcraft-search-result2.js.map","import { S as SearchcraftSearchResult$1, d as defineCustomElement$1 } from './searchcraft-search-result2.js?v=0.13.2';\n\nconst SearchcraftSearchResult = SearchcraftSearchResult$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResult, defineCustomElement };\n//# sourceMappingURL=searchcraft-search-result.js.map\n\n//# sourceMappingURL=searchcraft-search-result.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { d as defineCustomElement$4 } from './searchcraft-ad2.js?v=0.13.2';\nimport { d as defineCustomElement$3 } from './searchcraft-error-message2.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-search-result2.js?v=0.13.2';\n\nconst SearchcraftSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResults extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n /**\n * A query that will appears when the component initializes or the search term is ''..\n */\n initialQuery;\n /**\n * A callback function responsible for rendering a result. Passed to `searchcraft-search-result`.\n */\n template;\n adClientResponseItems = [];\n config;\n isSearchInProgress = true;\n searchClientResponseItems;\n searchResultsPage;\n searchResultsPerPage;\n searchTerm = '';\n unsubscribe;\n cleanupCore;\n onCoreAvailable(core) {\n const state = core.store.getState();\n this.handleStateChange(state);\n this.searchClientResponseItems = state.searchClientResponseItems;\n this.searchTerm = state.searchTerm;\n this.config = state.core?.config;\n this.unsubscribe = core.store.subscribe((state) => this.handleStateChange(state));\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n handleStateChange(state) {\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.config = state.core?.config;\n this.isSearchInProgress = state.isSearchInProgress;\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchTerm = state.searchTerm;\n }\n renderEmptyState() {\n return (h(\"div\", { class: 'searchcraft-search-results-empty-state' }, h(\"slot\", { name: 'empty-search' })));\n }\n renderNoResultsFoundState() {\n return (h(\"div\", { class: 'searchcraft-search-results' }, h(\"div\", { class: 'searchcraft-search-results-error-message' }, h(\"searchcraft-error-message\", null, \"No search results found for \\\"\", this.searchTerm, \"\\\" query.\"))));\n }\n renderWithADMAds() {\n const items = this.searchClientResponseItems || [];\n return (h(\"div\", { class: 'searchcraft-search-results' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'adMarketplace', adClientResponseItem: item, key: item.id, renderPosition: 'top' }))), items.map((item, index) => (h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.customAdConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Custom', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-search-results' }, itemsToRender);\n }\n renderWithNativoAds() {\n const itemsToRender = [];\n const interstitialStartIndex = this.config?.nativoConfig?.adInterstialStartIndex || 0;\n const interstitialInterval = this.config?.nativoConfig?.adInterstitialInterval || 0;\n const interstitialQuantity = this.config?.nativoConfig?.adInterstitialQuantity || 1;\n const adStartQuantity = this.config?.nativoConfig?.adStartQuantity || 0;\n const adEndQuantity = this.config?.nativoConfig?.adEndQuantity || 0;\n const items = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'top' }));\n }\n // Renders search results + interstitial ads\n items.forEach((item, index) => {\n if (interstitialInterval &&\n (index + interstitialStartIndex) % interstitialInterval === 0 &&\n index + interstitialInterval < items.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${item.id}-ad-${n}`, renderPosition: 'interstitial' }));\n }\n }\n itemsToRender.push(h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { \"searchcraft-id\": this.searchcraftId, adSource: 'Nativo', key: `${n}-ad`, renderPosition: 'bottom' }));\n }\n return h(\"div\", { class: 'searchcraft-search-results' }, itemsToRender);\n }\n renderWithNoAds() {\n const items = this.searchClientResponseItems || [];\n return (h(\"div\", { class: 'searchcraft-search-results' }, items.map((item, index) => (h(\"searchcraft-search-result\", { \"searchcraft-id\": this.searchcraftId, key: item.id, \"document-position\": this.searchResultsPerPage * (this.searchResultsPage - 1) + index, index: index, item: item, template: this.template })))));\n }\n render() {\n const searchClientResponseItems = this.searchClientResponseItems || [];\n if (searchClientResponseItems.length === 0 && !this.isSearchInProgress) {\n return this.renderEmptyState();\n }\n if (this.searchTerm.length > 0 &&\n searchClientResponseItems.length === 0 &&\n !this.isSearchInProgress) {\n return this.renderNoResultsFoundState();\n }\n if (this.config?.customAdConfig) {\n return this.renderWithCustomAds();\n }\n if (this.config?.admAdConfig) {\n return this.renderWithNativoAds();\n }\n if (this.config?.nativoConfig) {\n return this.renderWithNativoAds();\n }\n return this.renderWithNoAds();\n }\n}, [772, \"searchcraft-search-results\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"initialQuery\": [1, \"initial-query\"],\n \"template\": [16],\n \"adClientResponseItems\": [32],\n \"config\": [32],\n \"isSearchInProgress\": [32],\n \"searchClientResponseItems\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchTerm\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-results\", \"searchcraft-ad\", \"searchcraft-error-message\", \"searchcraft-search-result\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-results\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftSearchResults$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-search-result\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSearchResults = SearchcraftSearchResults$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResults, defineCustomElement };\n//# sourceMappingURL=searchcraft-search-results.js.map\n\n//# sourceMappingURL=searchcraft-search-results.js.map","import { p as proxyCustomElement, H, c as createEvent, h, t as transformTag } from './index2.js?v=0.13.2';\n\nconst SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n this.selectChange = createEvent(this, \"selectChange\");\n }\n /**\n * The caption displayed below the select input.\n */\n caption;\n /**\n * Whether the select input is disabled.\n */\n disabled = false;\n /**\n * The ID for the select input.\n */\n inputId;\n /**\n * The label of the select input.\n */\n label;\n /**\n * The ID for the label of the select input.\n */\n labelId;\n /**\n * The name of the select input.\n */\n name;\n /**\n * The options for the select input.\n */\n options = [];\n /**\n * The event fired when the select is changed.\n */\n selectChange;\n searchResultsPerPage;\n setSearchResultsPage = () => { };\n setSearchResultsPerPage = () => { };\n handleSelectChange = (event) => {\n this.selectChange.emit(event.target.value);\n };\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n render() {\n return (h(\"div\", { key: '15ecbf48c824a161cd83bdab99dace8e44f1ab39', class: 'searchcraft-select' }, this.label && (h(\"label\", { key: 'aba433ae9c27c9405099cffcef923c3ad22d7fda', class: 'searchcraft-select-label', id: this.labelId || `${this.inputId}-label`, htmlFor: this.inputId }, this.label)), h(\"div\", { key: '8df8a2ff05924c9c55cdd6e3827cd927cddab82a', class: 'searchcraft-select-input-wrapper' }, h(\"select\", { key: '1d5f492c2255f8ca1b6ea5e04a2726dda2f2c52f', \"aria-labelledby\": this.label ? this.labelId || `${this.inputId}-label` : undefined, class: 'searchcraft-select-input', disabled: this.disabled, id: this.inputId, name: this.name, onChange: this.handleSelectChange }, (typeof this.options === 'string'\n ? JSON.parse(this.options)\n : this.options).map(({ label, value, selected }) => {\n return (h(\"option\", { key: value, value: value, selected: selected }, label));\n })), h(\"svg\", { key: '0ec6892b529f2e70027aadea47208582a65a97b7', class: 'searchcraft-select-input-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", { key: 'bced6b62378491d1d1c629b602d7d033d912c761' }, \"Select dropdown icon\"), h(\"path\", { key: '659f8ebf9129e2e7941da949d29688c41c1472bb', d: 'M5 7.5L10 12.5L15 7.5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), this.caption && (h(\"p\", { key: '51217d926f68f79b6c3514f5fd769b56549fdce9', class: 'searchcraft-select-caption' }, this.caption))));\n }\n}, [768, \"searchcraft-select\", {\n \"caption\": [1],\n \"disabled\": [4],\n \"inputId\": [1, \"input-id\"],\n \"label\": [1],\n \"labelId\": [1, \"label-id\"],\n \"name\": [1],\n \"options\": [1],\n \"searchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32],\n \"setSearchResultsPerPage\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-select\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftSelect);\n }\n break;\n } });\n}\n\nexport { SearchcraftSelect as S, defineCustomElement as d };\n//# sourceMappingURL=searchcraft-select2.js.map\n\n//# sourceMappingURL=searchcraft-select2.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-select2.js?v=0.13.2';\n\nconst SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]).\n * The base value is defined by the `searchResultsPerPage` option in the configuration.\n */\n increment = 20;\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n searchResultsPagesCount;\n searchClientRequestProperties;\n // local vars\n initialSearchResultsPerPage;\n // store functions\n setSearchResultsPerPage = () => { };\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n cleanupCore;\n onCoreAvailable(core) {\n this.unsubscribe = core.store.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n this.searchClientRequestProperties = state.searchClientRequestProperties;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n this.setSearchResultsPerPage = state.setSearchResultsPerPage;\n });\n this.initialSearchResultsPerPage =\n core.store.getState().searchResultsPerPage;\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n render() {\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof this.searchClientRequestProperties === 'string' &&\n this.searchTerm.trim() === '';\n // early return if there isn't a searchTerm (unless it's initialQuery) or there is 1 or fewer pages of results\n if ((!this.searchTerm && !isInitialQuery) ||\n this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: 'searchcraft-search-results-per-page' }, h(\"div\", { class: 'searchcraft-search-results-per-page-select' }, h(\"label\", { class: 'searchcraft-search-results-per-page-select-label', htmlFor: 'searchcraft-search-results-per-page-select-input' }, \"Results Per Page\"), h(\"div\", { class: 'searchcraft-search-results-per-page-select-input' }, h(\"searchcraft-select\", { inputId: 'searchcraft-search-results-per-page-select-input', name: 'results-per-page', options: [...Array(5)].map((_, index) => {\n const value = this.initialSearchResultsPerPage +\n Number(this.increment) * index;\n return {\n label: `${value}`,\n value,\n };\n }), onSelectChange: (event) => {\n this.setSearchResultsPerPage(Number(event.detail));\n this.setSearchResultsPage(1);\n } })))));\n }\n}, [768, \"searchcraft-search-results-per-page\", {\n \"increment\": [8],\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"searchResultsPagesCount\": [32],\n \"searchClientRequestProperties\": [32],\n \"initialSearchResultsPerPage\": [32],\n \"setSearchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-results-per-page\", \"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-results-per-page\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftSearchResultsPerPage$1);\n }\n break;\n case \"searchcraft-select\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSearchResultsPerPage = SearchcraftSearchResultsPerPage$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResultsPerPage, defineCustomElement };\n//# sourceMappingURL=searchcraft-search-results-per-page.js.map\n\n//# sourceMappingURL=searchcraft-search-results-per-page.js.map","import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './searchcraft-select2.js?v=0.13.2';\n\nconst SearchcraftSelect = SearchcraftSelect$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSelect, defineCustomElement };\n//# sourceMappingURL=searchcraft-select.js.map\n\n//# sourceMappingURL=searchcraft-select.js.map","import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './searchcraft-slider2.js?v=0.13.2';\n\nconst SearchcraftSlider = SearchcraftSlider$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSlider, defineCustomElement };\n//# sourceMappingURL=searchcraft-slider.js.map\n\n//# sourceMappingURL=searchcraft-slider.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\nimport { r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nimport { p as purify } from './purify.es.js?v=0.13.2';\nimport { d as defineCustomElement$2 } from './searchcraft-loading2.js?v=0.13.2';\n\n/**\n * marked v15.0.12 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n\n// src/defaults.ts\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nvar _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n// src/rules.ts\nvar noopTest = { exec: () => null };\nfunction edit(regex, opt = \"\") {\n let source = typeof regex === \"string\" ? regex : regex.source;\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === \"string\" ? val : val.source;\n valSource = valSource.replace(other.caret, \"$1\");\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nvar other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceTabs: /^\\t+/,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] /,\n listReplaceTask: /^\\[[ xX]\\] +/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^<a /i,\n endATag: /^<\\/a>/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^</,\n endAngleBracket: />$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, \"i\")\n};\nvar newline = /^(?:[ \\t]*(?:\\n|$))+/;\nvar blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nvar fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nvar hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nvar heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nvar bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nvar lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nvar lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g, \"\").getRegex();\nvar lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex();\nvar _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nvar blockText = /^[^\\n]+/;\nvar _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nvar def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\", _blockLabel).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nvar list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nvar _tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\";\nvar _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nvar html = edit(\n \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\n \"i\"\n).replace(\"comment\", _comment).replace(\"tag\", _tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nvar paragraph = edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", paragraph).getRegex();\nvar blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\nvar gfmTable = edit(\n \"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockGfm = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", gfmTable).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex()\n};\nvar blockPedantic = {\n ...blockNormal,\n html: edit(\n `^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`\n ).replace(\"comment\", _comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", lheading).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n};\nvar escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nvar inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nvar br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nvar inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\nvar _punctuation = /[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpace = /[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpace = /[^\\s\\p{P}\\p{S}]/u;\nvar punctuation = edit(/^((?![*_])punctSpace)/, \"u\").replace(/punctSpace/g, _punctuationOrSpace).getRegex();\nvar _punctuationGfmStrongEm = /(?!~)[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpaceGfmStrongEm = /(?!~)[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpaceGfmStrongEm = /(?:[^\\s\\p{P}\\p{S}]|~)/u;\nvar blockSkip = /\\[[^[\\]]*?\\]\\((?:\\\\.|[^\\\\\\(\\)]|\\((?:\\\\.|[^\\\\\\(\\)])*\\))*\\)|`[^`]*?`|<[^<>]*?>/g;\nvar emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/;\nvar emStrongLDelim = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongLDelimGfm = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimAstCore = \"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\";\nvar emStrongRDelimAst = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimUnd = edit(\n \"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\n \"gu\"\n).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar anyPunctuation = edit(/\\\\(punct)/, \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nvar _inlineComment = edit(_comment).replace(\"(?:-->|$)\", \"-->\").getRegex();\nvar tag = edit(\n \"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\"\n).replace(\"comment\", _inlineComment).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex();\nvar _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nvar link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\", _inlineLabel).replace(\"href\", /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nvar reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", _inlineLabel).replace(\"ref\", _blockLabel).getRegex();\nvar nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", _blockLabel).getRegex();\nvar reflinkSearch = edit(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", reflink).replace(\"nolink\", nolink).getRegex();\nvar inlineNormal = {\n _backpedal: noopTest,\n // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\nvar inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", _inlineLabel).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", _inlineLabel).getRegex()\n};\nvar inlineGfm = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\nvar inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace(\"{2,}\", \"*\").getRegex(),\n text: edit(inlineGfm.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n};\nvar block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nvar inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n// src/helpers.ts\nvar escapeReplacements = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#39;\"\n};\nvar getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape2(html2, encode) {\n if (encode) {\n if (other.escapeTest.test(html2)) {\n return html2.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html2)) {\n return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html2;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(other.percentDecode, \"%\");\n } catch {\n return null;\n }\n return href;\n}\nfunction splitCells(tableRow, count) {\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === \"\\\\\") escaped = !escaped;\n if (escaped) {\n return \"|\";\n } else {\n return \" |\";\n }\n }), cells = row.split(other.splitPipe);\n let i = 0;\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push(\"\");\n }\n }\n for (; i < cells.length; i++) {\n cells[i] = cells[i].trim().replace(other.slashPipe, \"|\");\n }\n return cells;\n}\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return \"\";\n }\n let suffLen = 0;\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && true) {\n suffLen++;\n } else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n return -1;\n}\n\n// src/Tokenizer.ts\nfunction outputLink(cap, link2, raw, lexer2, rules) {\n const href = link2.href;\n const title = link2.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, \"$1\");\n lexer2.state.inLink = true;\n const token = {\n type: cap[0].charAt(0) === \"!\" ? \"image\" : \"link\",\n raw,\n href,\n title,\n text,\n tokens: lexer2.inlineTokens(text)\n };\n lexer2.state.inLink = false;\n return token;\n}\nfunction indentCodeCompensation(raw, text, rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text.split(\"\\n\").map((node) => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n }).join(\"\\n\");\n}\nvar _Tokenizer = class {\n options;\n rules;\n // set by the lexer\n lexer;\n // set by the lexer\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: \"space\",\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(this.rules.other.codeRemoveIndent, \"\");\n return {\n type: \"code\",\n raw: cap[0],\n codeBlockStyle: \"indented\",\n text: !this.options.pedantic ? rtrim(text, \"\\n\") : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || \"\", this.rules);\n return {\n type: \"code\",\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, \"#\");\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n text = trimmed.trim();\n }\n }\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: \"hr\",\n raw: rtrim(cap[0], \"\\n\")\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], \"\\n\").split(\"\\n\");\n let raw = \"\";\n let text = \"\";\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join(\"\\n\");\n const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, \"\\n $1\").replace(this.rules.other.blockquoteSetextReplace2, \"\");\n raw = raw ? `${raw}\n${currentRaw}` : currentRaw;\n text = text ? `${text}\n${currentText}` : currentText;\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"code\") {\n break;\n } else if (lastToken?.type === \"blockquote\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === \"list\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1).raw.length).split(\"\\n\");\n continue;\n }\n }\n return {\n type: \"blockquote\",\n raw,\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list2 = {\n type: \"list\",\n raw: \"\",\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : \"\",\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : \"[*+-]\";\n }\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n while (src) {\n let endEarly = false;\n let raw = \"\";\n let itemContents = \"\";\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) {\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split(\"\\n\", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => \" \".repeat(3 * t.length));\n let nextLine = src.split(\"\\n\", 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = cap[2].search(this.rules.other.nonSpaceChar);\n indent = indent > 4 ? 1 : indent;\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && this.rules.other.blankLine.test(nextLine)) {\n raw += nextLine + \"\\n\";\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n while (src) {\n const rawLine = src.split(\"\\n\", 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, \" \");\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, \" \");\n }\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n if (hrRegex.test(nextLine)) {\n break;\n }\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {\n itemContents += \"\\n\" + nextLineWithoutTabs.slice(indent);\n } else {\n if (blankLine) {\n break;\n }\n if (line.replace(this.rules.other.tabCharGlobal, \" \").search(this.rules.other.nonSpaceChar) >= 4) {\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += \"\\n\" + nextLine;\n }\n if (!blankLine && !nextLine.trim()) {\n blankLine = true;\n }\n raw += rawLine + \"\\n\";\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n if (!list2.loose) {\n if (endsWithBlankLine) {\n list2.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n if (this.options.gfm) {\n istask = this.rules.other.listIsTask.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== \"[ ] \";\n itemContents = itemContents.replace(this.rules.other.listReplaceTask, \"\");\n }\n }\n list2.items.push({\n type: \"list_item\",\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list2.raw += raw;\n }\n const lastItem = list2.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n return;\n }\n list2.raw = list2.raw.trimEnd();\n for (let i = 0; i < list2.items.length; i++) {\n this.lexer.state.top = false;\n list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []);\n if (!list2.loose) {\n const spacers = list2.items[i].tokens.filter((t) => t.type === \"space\");\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw));\n list2.loose = hasMultipleLineBreaks;\n }\n }\n if (list2.loose) {\n for (let i = 0; i < list2.items.length; i++) {\n list2.items[i].loose = true;\n }\n }\n return list2;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: \"html\",\n block: true,\n raw: cap[0],\n pre: cap[1] === \"pre\" || cap[1] === \"script\" || cap[1] === \"style\",\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, \" \");\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\";\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : cap[3];\n return {\n type: \"def\",\n tag: tag2,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, \"\").split(\"|\");\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, \"\").split(\"\\n\") : [];\n const item = {\n type: \"table\",\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n return;\n }\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push(\"right\");\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push(\"center\");\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push(\"left\");\n } else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i]\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i]\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[2].charAt(0) === \"=\" ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === \"\\n\" ? cap[1].slice(0, -1) : cap[1];\n return {\n type: \"paragraph\",\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: \"escape\",\n raw: cap[0],\n text: cap[1]\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: \"html\",\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n if (!this.rules.other.endAngleBracket.test(trimmedUrl)) {\n return;\n }\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), \"\\\\\");\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n const lastParenIndex = findClosingBracket(cap[2], \"()\");\n if (lastParenIndex === -2) {\n return;\n }\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf(\"!\") === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = \"\";\n }\n }\n let href = cap[2];\n let title = \"\";\n if (this.options.pedantic) {\n const link2 = this.rules.other.pedanticHrefTitle.exec(href);\n if (link2) {\n href = link2[1];\n title = link2[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : \"\";\n }\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) {\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, \"$1\") : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, \"$1\") : title\n }, cap[0], this.lexer, this.rules);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, \" \");\n const link2 = links[linkString.toLowerCase()];\n if (!link2) {\n const text = cap[0].charAt(0);\n return {\n type: \"text\",\n raw: text,\n text\n };\n }\n return outputLink(cap, link2, cap[0], this.lexer, this.rules);\n }\n }\n emStrong(src, maskedSrc, prevChar = \"\") {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n const nextChar = match[1] || match[2] || \"\";\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue;\n rLength = [...rDelim].length;\n if (match[3] || match[4]) {\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue;\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0) continue;\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n if (Math.min(lLength, rLength) % 2) {\n const text2 = raw.slice(1, -1);\n return {\n type: \"em\",\n raw,\n text: text2,\n tokens: this.lexer.inlineTokens(text2)\n };\n }\n const text = raw.slice(2, -2);\n return {\n type: \"strong\",\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, \" \");\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: \"codespan\",\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: \"br\",\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: \"del\",\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[1];\n href = \"mailto:\" + text;\n } else {\n text = cap[1];\n href = text;\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[0];\n href = \"mailto:\" + text;\n } else {\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? \"\";\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === \"www.\") {\n href = \"http://\" + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n escaped\n };\n }\n }\n};\n\n// src/Lexer.ts\nvar _Lexer = class __Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options2) {\n this.tokens = [];\n this.tokens.links = /* @__PURE__ */ Object.create(null);\n this.options = options2 || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src.replace(other.carriageReturn, \"\\n\");\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, \" \").replace(other.spaceLine, \"\");\n }\n while (src) {\n let token;\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== void 0) {\n lastToken.raw += \"\\n\";\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.raw;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === \"paragraph\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let maskedSrc = src;\n let match = null;\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf(\"[\") + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"++\" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n let keepPrevChar = false;\n let prevChar = \"\";\n while (src) {\n if (!keepPrevChar) {\n prevChar = \"\";\n }\n keepPrevChar = false;\n let token;\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === \"text\" && lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== \"_\") {\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n};\n\n// src/Renderer.ts\nvar _Renderer = class {\n options;\n parser;\n // set by the parser\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(token) {\n return \"\";\n }\n code({ text, lang, escaped }) {\n const langString = (lang || \"\").match(other.notSpaceStart)?.[0];\n const code = text.replace(other.endingNewline, \"\") + \"\\n\";\n if (!langString) {\n return \"<pre><code>\" + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n return '<pre><code class=\"language-' + escape2(langString) + '\">' + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `<blockquote>\n${body}</blockquote>\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\n`;\n }\n hr(token) {\n return \"<hr>\\n\";\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = \"\";\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? \"ol\" : \"ul\";\n const startAttr = ordered && start !== 1 ? ' start=\"' + start + '\"' : \"\";\n return \"<\" + type + startAttr + \">\\n\" + body + \"</\" + type + \">\\n\";\n }\n listitem(item) {\n let itemBody = \"\";\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens[0]?.type === \"paragraph\") {\n item.tokens[0].text = checkbox + \" \" + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === \"text\") {\n item.tokens[0].tokens[0].text = checkbox + \" \" + escape2(item.tokens[0].tokens[0].text);\n item.tokens[0].tokens[0].escaped = true;\n }\n } else {\n item.tokens.unshift({\n type: \"text\",\n raw: checkbox + \" \",\n text: checkbox + \" \",\n escaped: true\n });\n }\n } else {\n itemBody += checkbox + \" \";\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `<li>${itemBody}</li>\n`;\n }\n checkbox({ checked }) {\n return \"<input \" + (checked ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph({ tokens }) {\n return `<p>${this.parser.parseInline(tokens)}</p>\n`;\n }\n table(token) {\n let header = \"\";\n let cell = \"\";\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = \"\";\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = \"\";\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body) body = `<tbody>${body}</tbody>`;\n return \"<table>\\n<thead>\\n\" + header + \"</thead>\\n\" + body + \"</table>\\n\";\n }\n tablerow({ text }) {\n return `<tr>\n${text}</tr>\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? \"th\" : \"td\";\n const tag2 = token.align ? `<${type} align=\"${token.align}\">` : `<${type}>`;\n return tag2 + content + `</${type}>\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `<strong>${this.parser.parseInline(tokens)}</strong>`;\n }\n em({ tokens }) {\n return `<em>${this.parser.parseInline(tokens)}</em>`;\n }\n codespan({ text }) {\n return `<code>${escape2(text, true)}</code>`;\n }\n br(token) {\n return \"<br>\";\n }\n del({ tokens }) {\n return `<del>${this.parser.parseInline(tokens)}</del>`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + escape2(title) + '\"';\n }\n out += \">\" + text + \"</a>\";\n return out;\n }\n image({ href, title, text, tokens }) {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer);\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escape2(text);\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${escape2(title)}\"`;\n }\n out += \">\";\n return out;\n }\n text(token) {\n return \"tokens\" in token && token.tokens ? this.parser.parseInline(token.tokens) : \"escaped\" in token && token.escaped ? token.text : escape2(token.text);\n }\n};\n\n// src/TextRenderer.ts\nvar _TextRenderer = class {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return \"\" + text;\n }\n image({ text }) {\n return \"\" + text;\n }\n br() {\n return \"\";\n }\n};\n\n// src/Parser.ts\nvar _Parser = class __Parser {\n options;\n renderer;\n textRenderer;\n constructor(options2) {\n this.options = options2 || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(genericToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"space\": {\n out += this.renderer.space(token);\n continue;\n }\n case \"hr\": {\n out += this.renderer.hr(token);\n continue;\n }\n case \"heading\": {\n out += this.renderer.heading(token);\n continue;\n }\n case \"code\": {\n out += this.renderer.code(token);\n continue;\n }\n case \"table\": {\n out += this.renderer.table(token);\n continue;\n }\n case \"blockquote\": {\n out += this.renderer.blockquote(token);\n continue;\n }\n case \"list\": {\n out += this.renderer.list(token);\n continue;\n }\n case \"html\": {\n out += this.renderer.html(token);\n continue;\n }\n case \"paragraph\": {\n out += this.renderer.paragraph(token);\n continue;\n }\n case \"text\": {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === \"text\") {\n textToken = tokens[++i];\n body += \"\\n\" + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: \"paragraph\",\n raw: body,\n text: body,\n tokens: [{ type: \"text\", raw: body, text: body, escaped: true }]\n });\n } else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer = this.renderer) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(anyToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"escape\": {\n out += renderer.text(token);\n break;\n }\n case \"html\": {\n out += renderer.html(token);\n break;\n }\n case \"link\": {\n out += renderer.link(token);\n break;\n }\n case \"image\": {\n out += renderer.image(token);\n break;\n }\n case \"strong\": {\n out += renderer.strong(token);\n break;\n }\n case \"em\": {\n out += renderer.em(token);\n break;\n }\n case \"codespan\": {\n out += renderer.codespan(token);\n break;\n }\n case \"br\": {\n out += renderer.br(token);\n break;\n }\n case \"del\": {\n out += renderer.del(token);\n break;\n }\n case \"text\": {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n};\n\n// src/Hooks.ts\nvar _Hooks = class {\n options;\n block;\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n static passThroughHooks = /* @__PURE__ */ new Set([\n \"preprocess\",\n \"postprocess\",\n \"processAllTokens\"\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html2) {\n return html2;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n /**\n * Provide function to tokenize markdown\n */\n provideLexer() {\n return this.block ? _Lexer.lex : _Lexer.lexInline;\n }\n /**\n * Provide function to parse tokens\n */\n provideParser() {\n return this.block ? _Parser.parse : _Parser.parseInline;\n }\n};\n\n// src/Instance.ts\nvar Marked = class {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case \"table\": {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case \"list\": {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens2 = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens2, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n const opts = { ...pack };\n opts.async = this.defaults.async || opts.async || false;\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error(\"extension name required\");\n }\n if (\"renderer\" in ext) {\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n extensions.renderers[ext.name] = function(...args2) {\n let ret = ext.renderer.apply(this, args2);\n if (ret === false) {\n ret = prevRenderer.apply(this, args2);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (\"tokenizer\" in ext) {\n if (!ext.level || ext.level !== \"block\" && ext.level !== \"inline\") {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) {\n if (ext.level === \"block\") {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === \"inline\") {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (\"childTokens\" in ext && ext.childTokens) {\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if ([\"options\", \"parser\"].includes(prop)) {\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n renderer[rendererProp] = (...args2) => {\n let ret = rendererFunc.apply(renderer, args2);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args2);\n }\n return ret || \"\";\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if ([\"options\", \"rules\", \"lexer\"].includes(prop)) {\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n tokenizer[tokenizerProp] = (...args2) => {\n let ret = tokenizerFunc.apply(tokenizer, args2);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args2);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if ([\"options\", \"block\"].includes(prop)) {\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => {\n return prevHook.call(hooks, ret2);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[hooksProp] = (...args2) => {\n let ret = hooksFunc.apply(hooks, args2);\n if (ret === false) {\n ret = prevHook.apply(hooks, args2);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n if (pack.walkTokens) {\n const walkTokens2 = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens2) {\n values = values.concat(walkTokens2.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options2) {\n return _Lexer.lex(src, options2 ?? this.defaults);\n }\n parser(tokens, options2) {\n return _Parser.parse(tokens, options2 ?? this.defaults);\n }\n parseMarkdown(blockType) {\n const parse2 = (src, options2) => {\n const origOpt = { ...options2 };\n const opt = { ...this.defaults, ...origOpt };\n const throwError = this.onError(!!opt.silent, !!opt.async);\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n }\n if (typeof src === \"undefined\" || src === null) {\n return throwError(new Error(\"marked(): input parameter is undefined or null\"));\n }\n if (typeof src !== \"string\") {\n return throwError(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(src) + \", string expected\"));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline;\n const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline;\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer2(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html2 = parser2(tokens, opt);\n if (opt.hooks) {\n html2 = opt.hooks.postprocess(html2);\n }\n return html2;\n } catch (e) {\n return throwError(e);\n }\n };\n return parse2;\n }\n onError(silent, async) {\n return (e) => {\n e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\";\n if (silent) {\n const msg = \"<p>An error occurred:</p><pre>\" + escape2(e.message + \"\", true) + \"</pre>\";\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n};\n\n// src/marked.ts\nvar markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\nmarked.options = marked.setOptions = function(options2) {\n markedInstance.setOptions(options2);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\nmarked.use = function(...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.walkTokens = function(tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\nmarked.parseInline = markedInstance.parseInline;\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\n\nconst SearchcraftSummaryBox$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSummaryBox extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n /**\n * The id of the Searchcraft instance that this component should use.\n */\n searchcraftId;\n summary = '';\n isLoading = false;\n isSummaryNotEnabled = false;\n get hostElement() { return this; }\n unsubscribe;\n cleanupCore;\n onCoreAvailable(core) {\n core.store.setState({ hasSummaryBox: true });\n this.unsubscribe = core.store.subscribe(this.handleStateChange.bind(this));\n }\n connectedCallback() {\n this.cleanupCore = registry.useCoreInstance(this.searchcraftId, this.onCoreAvailable.bind(this));\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n this.cleanupCore?.();\n }\n /**\n * Handles state changes from the store and updates component state.\n */\n handleStateChange(state) {\n this.isLoading = state.isSummaryLoading;\n this.isSummaryNotEnabled = state.isSummaryNotEnabled;\n this.summary = this.sanitizeMarkdown(state.summary);\n // Update DOM directly for performance (avoids re-render)\n this.updateContentElement(state.summary);\n }\n /**\n * Sanitizes and converts markdown to HTML.\n */\n sanitizeMarkdown(markdown) {\n return purify.sanitize(marked.parse(markdown));\n }\n /**\n * Updates the content element directly without triggering a re-render.\n */\n updateContentElement(markdown) {\n const contentElement = this.hostElement?.querySelector('.searchcraft-summary-box-content');\n if (contentElement) {\n contentElement.innerHTML = this.sanitizeMarkdown(markdown);\n }\n }\n /**\n * Renders the appropriate content based on current state.\n */\n renderContent() {\n if (this.isLoading) {\n return h(\"searchcraft-loading\", { label: 'LOADING' });\n }\n if (this.isSummaryNotEnabled) {\n return (h(\"div\", { class: 'searchcraft-summary-box-content' }, \"AI summaries are not enabled\"));\n }\n return h(\"div\", { class: 'searchcraft-summary-box-content' }, this.summary);\n }\n render() {\n return h(\"div\", { key: '94033d861f93036430eca149b3c017fb6099fb17', class: 'searchcraft-summary-box' }, this.renderContent());\n }\n}, [768, \"searchcraft-summary-box\", {\n \"searchcraftId\": [1, \"searchcraft-id\"],\n \"summary\": [32],\n \"isLoading\": [32],\n \"isSummaryNotEnabled\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-summary-box\", \"searchcraft-loading\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-summary-box\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftSummaryBox$1);\n }\n break;\n case \"searchcraft-loading\":\n if (!customElements.get(transformTag(tagName))) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSummaryBox = SearchcraftSummaryBox$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSummaryBox, defineCustomElement };\n//# sourceMappingURL=searchcraft-summary-box.js.map\n\n//# sourceMappingURL=searchcraft-summary-box.js.map","import { p as proxyCustomElement, H, h, t as transformTag } from './index2.js?v=0.13.2';\n\nvar styles = `[class*=searchcraft-],[class*=searchcraft-] *,[class*=searchcraft-]::before,[class*=searchcraft-]::after,[class*=searchcraft-] *,::before,[class*=searchcraft-] *,::after{box-sizing:border-box;padding:0;margin:0}:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2);--sc-border-radius-xl: calc(var(--sc-border-radius) * 3);--sc-border-radius-2xl: calc(var(--sc-border-radius) * 4);--sc-border-radius-full: 9999px}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #fafafa) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, var(--sc-color-background-active-computed, #f7f7f7) );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-color-background-secondary-hover-computed: hsl( from var(--sc-color-background-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #e6e6e6) );--sc-color-background-secondary-active-computed: hsl( from var(--sc-color-background-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active-computed, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var( --sc-color-foreground-secondary, var(--sc-color-foreground-secondary-computed, #404040) );--sc-border-neutral: var(--sc-color-border, rgba(0, 0, 0, 0.1));--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var( --sc-color-brand-hover, var(--sc-color-brand-hover-computed, #2e2e2e) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var( --sc-color-brand-active, var(--sc-color-brand-active-computed, #292929) );--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-color-brand-secondary-hover-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(10, calc(l + 5), 95) );--sc-surface-brand-secondary-hover: var( --sc-color-background-hover, var(--sc-color-background-hover-computed, #ebebeb) );--sc-color-brand-secondary-active-computed: hsl( from var(--sc-color-brand-secondary) h s clamp(5, calc(l - 5), 90) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active-computed, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30 );--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, var(--sc-color-success-primary-hover-computed, #009900) );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20 );--sc-surface-success-primary-active: var( --sc-color-success-primary-active, var(--sc-color-success-primary-active-computed, #006600) );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90 );--sc-surface-success-secondary: var( --sc-color-success-secondary, var(--sc-color-success-secondary-computed, #ccffcc) );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, var(--sc-color-success-secondary-hover-computed, #e6ffe6) );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, var(--sc-color-success-secondary-active-computed, #b2ffb2) );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30 );--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, var(--sc-color-caution-primary-hover-computed, #e57300) );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20 );--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, var(--sc-color-caution-primary-active-computed, #b25a00) );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90 );--sc-surface-caution-secondary: var( --sc-color-caution-secondary, var(--sc-color-caution-secondary-computed, #ffd9b3) );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, var(--sc-color-caution-secondary-hover-computed, #ffe5cc) );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, var(--sc-color-caution-secondary-active-computed, #ffcc99) );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30 );--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, var(--sc-color-danger-primary-hover-computed, #e50000) );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20 );--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, var(--sc-color-danger-primary-active-computed, #b30000) );--sc-color-danger-secondary-computed: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var( --sc-color-danger-secondary, var(--sc-color-danger-secondary-computed, #ffcccc) );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, var(--sc-color-danger-secondary-hover-computed, #ffe7e7) );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, var(--sc-color-danger-secondary-active-computed, #ffb3b3) );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover-computed: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active-computed: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary-computed: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover-computed: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active-computed: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover-computed: hsl( from var(--sc-color-success) h s 30% );--sc-color-success-primary-active-computed: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary-computed: hsl( from var(--sc-color-success) h s 90% );--sc-color-success-secondary-hover-computed: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active-computed: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover-computed: hsl( from var(--sc-color-caution) h s 30% );--sc-color-caution-primary-active-computed: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary-computed: hsl( from var(--sc-color-caution) h s 90% );--sc-color-caution-secondary-hover-computed: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active-computed: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover-computed: hsl( from var(--sc-color-danger) h s 30% );--sc-color-danger-primary-active-computed: hsl( from var(--sc-color-danger) h s 20% );--sc-color-danger-secondary-computed: hsl( from var(--sc-color-danger) h s 90% );--sc-color-danger-secondary-hover-computed: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active-computed: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-ad{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-ad-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-ad-no-template>p{margin:0}.searchcraft-adm-ad{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-result{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased}.searchcraft-search-result-no-template{display:flex;flex-direction:column;font-size:.875rem}.searchcraft-search-result-no-template>p{margin:0}.searchcraft-search-results{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state{text-align:center}.searchcraft-search-results-error-message{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-icon{fill:none}.searchcraft-error-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-danger);margin:0}.searchcraft-facet-list{display:flex;flex-direction:column;gap:8px;width:100%}.searchcraft-facet-list-checkbox-label{align-items:center;color:var(--sc-content-neutral-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);gap:8px;position:relative;-webkit-font-smoothing:antialiased}.searchcraft-facet-list-checkbox-input-wrapper{position:relative}.searchcraft-facet-list-checkbox-input{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;height:24px;justify-content:center;width:24px;margin:0}.searchcraft-facet-list-checkbox-input:focus{outline:2px solid var(--sc-surface-brand-primary);outline-offset:2px}.searchcraft-facet-list-checkbox-input:checked{background-color:var(--sc-surface-brand-primary);position:relative}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-check-icon{display:flex}.searchcraft-facet-list-checkbox-input:checked+.searchcraft-facet-list-checkbox-input-dash-icon{display:flex}.searchcraft-facet-child-list{display:flex;flex-direction:column;gap:6px}.searchcraft-facet-child-list-checkbox-label{margin-left:24px}.searchcraft-facet-child-list-checkbox-label:first-child{margin-top:6px}.searchcraft-facet-list-checkbox-input-check-icon{display:none;height:16px;left:50%;position:absolute;margin-top:2px;top:50%;transform:translate(-50%, -50%);width:16px}.searchcraft-facet-list-checkbox-input-dash-icon{display:none;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:14px}.searchcraft-facet-list-message{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-disabled);text-align:center}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}@media(max-width: 767px){[data-toggle-filter-panel]{cursor:pointer;display:flex !important;align-items:center;justify-content:space-between;width:100%}[data-toggle-filter-panel]::after{content:\"›\";display:inline-block;font-size:1.5em;line-height:1;margin-left:auto;flex-shrink:0;transition:transform .2s ease;transform-origin:center}[data-toggle-filter-panel][data-filter-panel-collapsed]::after{transform:rotate(90deg)}[data-toggle-filter-panel][data-filter-panel-expanded]::after{transform:rotate(-90deg)}}@media(min-width: 768px){[data-toggle-filter-panel]{cursor:default}[data-toggle-filter-panel]::after{display:none}}:root{--sc-input-form-border-radius: var(--sc-border-radius);--sc-input-form-search-icon-size: 20px;--sc-input-form-clear-icon-size: 20px}.searchcraft-input-form-grid{display:grid;gap:4px 8px}.searchcraft-input-form-grid-button-left{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-form-grid-button-left .searchcraft-input-form-button{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-label{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-error-message{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-left .searchcraft-input-form-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-form-grid-button-right .searchcraft-input-form-button{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-right .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-grid-button-none{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-form-grid-button-none .searchcraft-input-form-button{display:none}.searchcraft-input-form-grid-button-none .searchcraft-input-form-label{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-error-message{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-form-grid-button-none .searchcraft-input-form-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-form-input-wrapper{display:flex;position:relative}.searchcraft-input-form-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-form-border-radius);border:none;color:var(--sc-content-neutral-primary);flex:1;outline:none;padding:12px 44px}.searchcraft-input-form-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input-form-input:focus{outline:var(--sc-border-brand) solid 2px;outline-offset:-1px}.searchcraft-input-form-input.searchcraft-placeholder-hide-on-focus:focus::placeholder{opacity:0}.searchcraft-input-form-error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-form-input-icon{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;pointer-events:none;top:0;width:44px}.searchcraft-input-form-input-search-icon{color:var(--sc-content-neutral-secondary);fill:none;height:var(--sc-input-form-search-icon-size);pointer-events:none;width:var(--sc-input-form-search-icon-size)}.searchcraft-input-form-clear-button{all:unset;align-items:center;bottom:0;border:none;cursor:pointer;display:flex;justify-content:center;outline:none;position:absolute;right:0;top:0;width:44px}.searchcraft-input-form-clear-icon{color:var(--sc-content-brand);fill:none;height:var(--sc-input-form-clear-icon-size);width:var(--sc-input-form-clear-icon-size)}.searchcraft-input-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-button-border-radius: var(--sc-border-radius)}@media(min-width: 576px){:root{--sc-popover-button-border-radius: var(--sc-border-radius-lg)}}.searchcraft-popover-button{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);cursor:pointer}.searchcraft-popover-button-skeuomorphic{appearance:none;background:none;border:none;color:var(--sc-content-neutral-primary);display:block;width:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-popover-button-border-radius);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;display:flex;gap:24px;height:40px;justify-content:space-between;line-height:1;padding:4px 5px 4px 10px;background:var(--sc-surface-neutral-primary)}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-wrapper{box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-secondary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%) inset;height:63px;padding:8px 10px 8px 16px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{align-items:center;display:flex;gap:4px}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{color:var(--sc-content-neutral-secondary);display:flex;gap:4px;font-size:20px;font-weight:500}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps{gap:8px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 3px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 3px);background-color:var(--sc-surface-neutral-primary);box-shadow:0 3px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 6px 4px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 2px);position:relative}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap{border-radius:calc(var(--sc-popover-button-border-radius) - 8px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 8px);box-shadow:0 4px hsl(from var(--sc-surface-neutral-secondary) h s calc(l - 5)),0 1px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 6px 1px rgb(from var(--sc-content-neutral-secondary) r g b/20%),0 7px 2px rgb(from var(--sc-content-neutral-secondary) r g b/15%),0 9px 4px rgb(from var(--sc-content-neutral-secondary) r g b/10%),0 13px 8px rgb(from var(--sc-content-neutral-secondary) r g b/5%);height:calc(100% - 5px)}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before,.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{content:\"\";display:block}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 4px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 4px);background:linear-gradient(340deg, rgb(from var(--sc-surface-neutral-secondary) r g b/2%) 0%, var(--sc-surface-neutral-secondary) 100%);inset:2px;position:absolute}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::before{border-radius:calc(var(--sc-popover-button-border-radius) - 12px);border-radius:calc(var(var(--sc-popover-button-border-radius)) - 12px);inset:4px}}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap::after{aspect-ratio:1/1;height:100%}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-keycaps-keycap>span{display:flex;line-height:1;left:50%;margin-top:2%;position:absolute;top:50%;transform:translate(-50%, -50%)}.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:60%;width:auto}@media(min-width: 576px){.searchcraft-popover-button-skeuomorphic .searchcraft-popover-button-input-search-icon{height:50%}}:root{--sc-popover-list-view-height: 600px;--sc-popover-modal-max-width: 800px}.searchcraft-popover-form{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);display:flex;flex:1;flex-direction:column}.searchcraft-popover-form searchcraft-input-form,.searchcraft-popover-form searchcraft-popover-footer{width:100%}.searchcraft-popover-form.searchcraft-popover-form-active .searchcraft-popover-form-input{padding-bottom:1px}.searchcraft-popover-form searchcraft-popover-list-view{flex-shrink:1;height:100%;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-input{display:flex;flex-direction:row;gap:12px}.searchcraft-popover-form-input .searchcraft-input-form-input{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius-lg);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;width:0}.searchcraft-popover-form-cancel-button{background:none;border:none;cursor:pointer;font-size:14px}.searchcraft-popover-form-modal-input,.searchcraft-popover-form-fullscreen-input{padding:24px}.searchcraft-popover-form-modal-popover-list-view,.searchcraft-popover-form-fullscreen-popover-list-view{flex-grow:1;flex-shrink:1;min-height:0;overflow:auto;padding:0 24px}.searchcraft-popover-form-inline{background-color:var(--sc-surface-neutral-primary);border:1px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius-xl);padding:12px;position:relative}.searchcraft-popover-form-inline.searchcraft-popover-form-active{border:1px solid var(--sc-border-neutral);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:1px}.searchcraft-popover-form-inline searchcraft-popover-list-view{padding:0 12px}.searchcraft-popover-form-inline .searchcraft-input-form-input,.searchcraft-popover-form-inline .searchcraft-popover-list-item-link,.searchcraft-popover-form-inline .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-xl - 12px);border-radius:calc(var(--sc-border-radius-xl) - 12px)}.searchcraft-popover-form-inline-wrapper{background-color:var(--sc-surface-neutral-primary);border:1px solid var(--sc-border-neutral);border-top:none;border-bottom-left-radius:var(--sc-border-radius-xl);border-bottom-right-radius:var(--sc-border-radius-xl);display:flex;flex-direction:column;left:-1px;max-height:var(--sc-popover-list-view-height);overflow:hidden;position:absolute;right:-1px;top:100%}.searchcraft-popover-form-modal{align-items:center;display:flex;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-modal .searchcraft-input-form-input,.searchcraft-popover-form-modal .searchcraft-popover-list-item-link,.searchcraft-popover-form-modal .searchcraft-adm-ad-link{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px)}.searchcraft-popover-form-modal-backdrop{background-color:rgb(from var(--sc-content-neutral-primary) r g b/50%);display:none;inset:0;position:fixed}@media(min-width: 576px){.searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal-wrapper{background-color:var(--sc-surface-neutral-primary);box-shadow:1px 2px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 2px 4px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 4px 8px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 8px 16px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 16px 32px rgb(from var(--sc-content-neutral-primary) r g b/7%),0 32px 64px rgb(from var(--sc-content-neutral-primary) r g b/7%);display:flex;flex-direction:column;inset:0;max-width:var(--sc-popover-modal-max-width);overflow:hidden;position:absolute;width:100%;z-index:1001}@media(min-width: 576px){.searchcraft-popover-form-modal-wrapper{border-radius:var(--sc-border-radius-2xl);inset:0;margin-top:100px;max-height:var(--sc-popover-list-view-height);max-width:var(--sc-popover-modal-max-width);position:relative}}.searchcraft-popover-form-modal-cancel-button{border-radius:calc(--sc-border-radius-2xl - 20px);border-radius:calc(var(--sc-border-radius-2xl) - 20px);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-modal-cancel-button{padding:8px 12px}}.searchcraft-popover-form-fullscreen{background-color:var(--sc-surface-neutral-primary);display:flex;flex-direction:column;justify-content:space-between;inset:0;position:fixed;z-index:1000}.searchcraft-popover-form-fullscreen .searchcraft-popover-list-item-link,.searchcraft-popover-form-fullscreen .searchcraft-adm-ad-link{border-radius:var(--sc-border-radius-lg)}.searchcraft-popover-form-fullscreen-cancel-button{border-radius:var(--sc-border-radius-lg);padding:8px}@media(min-width: 576px){.searchcraft-popover-form-fullscreen-cancel-button{padding:8px 12px}}.searchcraft-popover-footer{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;background-color:var(--sc-surface-neutral-secondary);box-shadow:0 1px 1px rgb(from var(--sc-content-neutral-primary) r g b/10%) inset,0 2px 2px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset,0 4px 4px rgb(from var(--sc-content-neutral-primary) r g b/5%) inset;display:flex;gap:8px;justify-content:space-between;line-height:1;padding:20px 24px}@media(min-width: 576px){.searchcraft-popover-footer{padding:20px 32px}}.searchcraft-popover-footer-results-info{margin:0}.searchcraft-popover-footer-link{color:var(--sc-content-neutral-primary);display:flex;max-width:160px;width:100%}:root{--sc-popover-list-item-image-fit: contain}.searchcraft-popover-list-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;border-bottom:1px solid var(--sc-border-neutral);padding:12px 0}searchcraft-popover-list-item:last-child .searchcraft-popover-list-item{border-bottom:none}.searchcraft-popover-list-item-link{align-items:flex-start;color:var(--sc-content-neutral-primary);display:flex;gap:24px;padding:12px;text-decoration:none}.searchcraft-popover-list-item-link:focus,.searchcraft-popover-list-item-link:active{background-color:var(--sc-surface-neutral-primary-active)}.searchcraft-popover-list-item-link:hover{background-color:var(--sc-surface-neutral-primary-hover)}.searchcraft-popover-list-item-image-wrapper{align-items:center;aspect-ratio:16/9;display:flex;flex-shrink:0;justify-content:center;width:160px}.searchcraft-popover-list-item-image{height:100%;object-fit:var(--sc-popover-list-item-image-fit);width:100%}.searchcraft-popover-list-item-content{display:flex;flex-direction:column;flex-grow:1;gap:4px;justify-content:center}.searchcraft-popover-list-item-content-title,.searchcraft-popover-list-item-content-subtitle{display:-webkit-box;line-clamp:2;margin:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.searchcraft-popover-list-item-content-title{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-heading-5-font-size);font-weight:var(--sc-font-bold)}.searchcraft-popover-list-item-content-subtitle{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-popover-list-view{display:flex;flex-direction:column}.searchcraft-results-info{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-primary);margin:0}.searchcraft-slider{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%;margin-top:4px}.searchcraft-slider-range{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px;-webkit-appearance:none}.searchcraft-slider-range .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:1px solid var(--sc-border-neutral);cursor:pointer;height:18px;pointer-events:all;width:18px}.searchcraft-slider-range .searchcraft-slider-input:focus::-webkit-slider-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-range .searchcraft-slider-input:focus::-moz-range-thumb{outline:2px solid var(--sc-surface-brand-primary)}.searchcraft-slider-label{color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);justify-content:space-between;margin-top:4px;width:100%}.searchcraft-slider-start-label,.searchcraft-slider-end-label{min-width:30px;text-align:center}.searchcraft-toggle-button{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-primary);margin:0}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-toggle-button-background{background:var(--sc-surface-disabled);border-radius:var(--sc-border-radius-full);border:none;cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background-color .2s;width:44px}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-active .searchcraft-toggle-button-background{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-active .searchcraft-toggle-button-handle{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{fill:none;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-search-results-per-page-select-input{min-width:120px}.searchcraft-summary-box{padding:20px;border-radius:var(--sc-border-radius);background-color:var(--sc-surface-neutral-secondary);position:relative;min-height:200px;color:var(--sc-content-neutral-primary);font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);font-weight:var(--sc-font-normal)}.searchcraft-summary-box h1,.searchcraft-summary-box h2,.searchcraft-summary-box h3,.searchcraft-summary-box h4,.searchcraft-summary-box h5{padding-top:10px;padding-bottom:10px}.searchcraft-summary-box p{padding-bottom:10px}.searchcraft-summary-box img{max-width:200px}.searchcraft-summary-box ol,.searchcraft-summary-box ul{padding-left:1em;padding-bottom:10px}.searchcraft-summary-box a{color:var(--sc-content-brand)}.searchcraft-loading-label{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);margin-top:40px;letter-spacing:2px;color:#828282;font-family:var(--sc-font-family);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-normal)}.searchcraft-loading-bars{margin:0 auto;width:60px;height:50px;text-align:center;position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);display:flex;gap:2px}.searchcraft-loading-bars>div{height:100%;width:8px;-webkit-animation:delay .8s infinite ease-in-out;animation:delay .8s infinite ease-in-out;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-1{background-color:var(--sc-surface-brand-primary);opacity:.1}.searchcraft-loading-bars .searchcraft-loading-bar-2{background-color:var(--sc-surface-brand-primary);animation-delay:-0.7s;opacity:.2}.searchcraft-loading-bars .searchcraft-loading-bar-3{background-color:var(--sc-surface-brand-primary);animation-delay:-0.6s;opacity:.3}.searchcraft-loading-bars .searchcraft-loading-bar-4{background-color:var(--sc-surface-brand-primary);animation-delay:-0.5s;opacity:.4}.searchcraft-loading-bars .searchcraft-loading-bar-5{background-color:var(--sc-surface-brand-primary);animation-delay:-0.4s;opacity:.5}.searchcraft-loading-bars .searchcraft-loading-bar-6{background-color:var(--sc-surface-brand-primary);animation-delay:-0.3s;opacity:.6}@keyframes delay{0%,40%,100%{transform:scaleY(0.05)}20%{transform:scaleY(1)}}/*# sourceMappingURL=hologram.css.map */\n`;\n\nconst SearchcraftTheme$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftTheme extends H {\n constructor(registerHost) {\n super();\n if (registerHost !== false) {\n this.__registerHost();\n }\n }\n render() {\n return h(\"style\", { key: '13c28bb6075d6fcbec33938fd2227d9fb6129bf2' }, styles);\n }\n}, [256, \"searchcraft-theme\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-theme\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-theme\":\n if (!customElements.get(transformTag(tagName))) {\n customElements.define(transformTag(tagName), SearchcraftTheme$1);\n }\n break;\n } });\n}\n\nconst SearchcraftTheme = SearchcraftTheme$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftTheme, defineCustomElement };\n//# sourceMappingURL=searchcraft-theme.js.map\n\n//# sourceMappingURL=searchcraft-theme.js.map","import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './searchcraft-toggle-button2.js?v=0.13.2';\n\nconst SearchcraftToggleButton = SearchcraftToggleButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftToggleButton, defineCustomElement };\n//# sourceMappingURL=searchcraft-toggle-button.js.map\n\n//# sourceMappingURL=searchcraft-toggle-button.js.map","import { defineCustomElement as define_searchcraft_ad } from './searchcraft-ad.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_button } from './searchcraft-button.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_error_message } from './searchcraft-error-message.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_facet_list } from './searchcraft-facet-list.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_filter_panel } from './searchcraft-filter-panel.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_input_form } from './searchcraft-input-form.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_input_label } from './searchcraft-input-label.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_loading } from './searchcraft-loading.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_pagination } from './searchcraft-pagination.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_popover_button } from './searchcraft-popover-button.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_popover_footer } from './searchcraft-popover-footer.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_popover_form } from './searchcraft-popover-form.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_popover_list_item } from './searchcraft-popover-list-item.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_popover_list_view } from './searchcraft-popover-list-view.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_results_info } from './searchcraft-results-info.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_search_result } from './searchcraft-search-result.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_search_results_per_page } from './searchcraft-search-results-per-page.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_search_results } from './searchcraft-search-results.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_select } from './searchcraft-select.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_slider } from './searchcraft-slider.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_summary_box } from './searchcraft-summary-box.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_theme } from './searchcraft-theme.js?v=0.13.2';\nimport { defineCustomElement as define_searchcraft_toggle_button } from './searchcraft-toggle-button.js?v=0.13.2';\n\nexport const defineCustomElements = () => {\n define_searchcraft_ad();\n define_searchcraft_button();\n define_searchcraft_error_message();\n define_searchcraft_facet_list();\n define_searchcraft_filter_panel();\n define_searchcraft_input_form();\n define_searchcraft_input_label();\n define_searchcraft_loading();\n define_searchcraft_pagination();\n define_searchcraft_popover_button();\n define_searchcraft_popover_footer();\n define_searchcraft_popover_form();\n define_searchcraft_popover_list_item();\n define_searchcraft_popover_list_view();\n define_searchcraft_results_info();\n define_searchcraft_search_result();\n define_searchcraft_search_results_per_page();\n define_searchcraft_search_results();\n define_searchcraft_select();\n define_searchcraft_slider();\n define_searchcraft_summary_box();\n define_searchcraft_theme();\n define_searchcraft_toggle_button();\n};\n\n// Register the function with globalThis so that core can call it\nglobalThis.__scDefineCustomElements__ = defineCustomElements;","export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './index2.js?v=0.13.2';\nimport { n as nanoid } from './searchcraft-ad2.js?v=0.13.2';\nimport { D as DEFAULT_CORE_INSTANCE_ID, r as registry } from './CoreInstanceRegistry.js?v=0.13.2';\nexport { SearchcraftAd, defineCustomElement as defineCustomElementSearchcraftAd } from './searchcraft-ad.js?v=0.13.2';\nexport { SearchcraftButton, defineCustomElement as defineCustomElementSearchcraftButton } from './searchcraft-button.js?v=0.13.2';\nexport { SearchcraftErrorMessage, defineCustomElement as defineCustomElementSearchcraftErrorMessage } from './searchcraft-error-message.js?v=0.13.2';\nexport { SearchcraftFacetList, defineCustomElement as defineCustomElementSearchcraftFacetList } from './searchcraft-facet-list.js?v=0.13.2';\nexport { SearchcraftFilterPanel, defineCustomElement as defineCustomElementSearchcraftFilterPanel } from './searchcraft-filter-panel.js?v=0.13.2';\nexport { SearchcraftInputForm, defineCustomElement as defineCustomElementSearchcraftInputForm } from './searchcraft-input-form.js?v=0.13.2';\nexport { SearchcraftInputLabel, defineCustomElement as defineCustomElementSearchcraftInputLabel } from './searchcraft-input-label.js?v=0.13.2';\nexport { SearchcraftLoading, defineCustomElement as defineCustomElementSearchcraftLoading } from './searchcraft-loading.js?v=0.13.2';\nexport { SearchcraftPagination, defineCustomElement as defineCustomElementSearchcraftPagination } from './searchcraft-pagination.js?v=0.13.2';\nexport { SearchcraftPopoverButton, defineCustomElement as defineCustomElementSearchcraftPopoverButton } from './searchcraft-popover-button.js?v=0.13.2';\nexport { SearchcraftPopoverFooter, defineCustomElement as defineCustomElementSearchcraftPopoverFooter } from './searchcraft-popover-footer.js?v=0.13.2';\nexport { SearchcraftPopoverForm, defineCustomElement as defineCustomElementSearchcraftPopoverForm } from './searchcraft-popover-form.js?v=0.13.2';\nexport { SearchcraftPopoverListItem, defineCustomElement as defineCustomElementSearchcraftPopoverListItem } from './searchcraft-popover-list-item.js?v=0.13.2';\nexport { SearchcraftPopoverListView, defineCustomElement as defineCustomElementSearchcraftPopoverListView } from './searchcraft-popover-list-view.js?v=0.13.2';\nexport { SearchcraftResultsInfo, defineCustomElement as defineCustomElementSearchcraftResultsInfo } from './searchcraft-results-info.js?v=0.13.2';\nexport { SearchcraftSearchResult, defineCustomElement as defineCustomElementSearchcraftSearchResult } from './searchcraft-search-result.js?v=0.13.2';\nexport { SearchcraftSearchResults, defineCustomElement as defineCustomElementSearchcraftSearchResults } from './searchcraft-search-results.js?v=0.13.2';\nexport { SearchcraftSearchResultsPerPage, defineCustomElement as defineCustomElementSearchcraftSearchResultsPerPage } from './searchcraft-search-results-per-page.js?v=0.13.2';\nexport { SearchcraftSelect, defineCustomElement as defineCustomElementSearchcraftSelect } from './searchcraft-select.js?v=0.13.2';\nexport { SearchcraftSlider, defineCustomElement as defineCustomElementSearchcraftSlider } from './searchcraft-slider.js?v=0.13.2';\nexport { SearchcraftSummaryBox, defineCustomElement as defineCustomElementSearchcraftSummaryBox } from './searchcraft-summary-box.js?v=0.13.2';\nexport { SearchcraftTheme, defineCustomElement as defineCustomElementSearchcraftTheme } from './searchcraft-theme.js?v=0.13.2';\nexport { SearchcraftToggleButton, defineCustomElement as defineCustomElementSearchcraftToggleButton } from './searchcraft-toggle-button.js?v=0.13.2';\n\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n LogLevel[LogLevel[\"INFO\"] = 1] = \"INFO\";\n LogLevel[LogLevel[\"WARN\"] = 2] = \"WARN\";\n LogLevel[LogLevel[\"ERROR\"] = 3] = \"ERROR\";\n LogLevel[LogLevel[\"NONE\"] = 4] = \"NONE\";\n})(LogLevel || (LogLevel = {}));\nclass SearchcraftLogger {\n logLevel;\n logFormatter;\n constructor(options) {\n this.logLevel = options.logLevel || LogLevel.INFO;\n this.logFormatter = options.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(level, message) {\n const levelStr = LogLevel[level];\n return `[${levelStr}] ${new Date().toISOString()}: ${message}`;\n }\n debug(message) {\n if (this.logLevel <= LogLevel.DEBUG) {\n console.log(this.logFormatter(LogLevel.DEBUG, message));\n }\n }\n info(message) {\n if (this.logLevel <= LogLevel.INFO) {\n console.info(this.logFormatter(LogLevel.INFO, message));\n }\n }\n warn(message) {\n if (this.logLevel <= LogLevel.WARN) {\n console.warn(this.logFormatter(LogLevel.WARN, message));\n }\n }\n error(message) {\n if (this.logLevel <= LogLevel.ERROR) {\n console.error(this.logFormatter(LogLevel.ERROR, message));\n }\n }\n log(level, message) {\n switch (level) {\n case LogLevel.DEBUG:\n this.debug(message);\n break;\n case LogLevel.INFO:\n this.info(message);\n break;\n case LogLevel.WARN:\n this.warn(message);\n break;\n case LogLevel.ERROR:\n this.error(message);\n break;\n }\n }\n}\nconst Logger = new SearchcraftLogger({ logLevel: LogLevel.NONE });\n\nfunction e(e,r,n,t){return new(n||(n=Promise))((function(o,a){function i(e){try{c(t.next(e));}catch(e){a(e);}}function u(e){try{c(t.throw(e));}catch(e){a(e);}}function c(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n((function(e){e(r);}))).then(i,u);}c((t=t.apply(e,[])).next());}))}function r(e,r){var n,t,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:false};case 5:i.label++,t=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=r.call(e,i);}catch(e){u=[6,e],t=0;}finally{n=o=0;}if(5&u[0])throw u[1];return {value:u[0]?u[1]:void 0,done:true}}([u,c])}}}\"function\"==typeof SuppressedError&&SuppressedError;var n={exclude:[]};var o={},a={timeout:\"true\"},i=function(e,r){\"undefined\"!=typeof window&&(o[e]=r);},u=function(){return Object.fromEntries(Object.entries(o).filter((function(e){var r,t=e[0];return !(null===(r=null==n?void 0:n.exclude)||void 0===r?void 0:r.includes(t))})).map((function(e){return [e[0],(0, e[1])()]})))};function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}var s=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,r){return e<<r|e>>>32-r}function f(e,r){var n;if(void 0===r&&(r=0),r=r?0|r:0,\"string\"==typeof e&&(n=e,e=(new TextEncoder).encode(n).buffer),!(e instanceof ArrayBuffer))throw new TypeError(\"Expected key to be ArrayBuffer or string\");var t=new Uint32Array([r,r,r,r]);!function(e,r){for(var n=e.byteLength/16|0,t=new Uint32Array(e,0,4*n),o=0;o<n;o++){var a=t.subarray(4*o,4*(o+1));a[0]=Math.imul(a[0],s[0]),a[0]=l(a[0],15),a[0]=Math.imul(a[0],s[1]),r[0]=r[0]^a[0],r[0]=l(r[0],19),r[0]=r[0]+r[1],r[0]=Math.imul(r[0],5)+1444728091,a[1]=Math.imul(a[1],s[1]),a[1]=l(a[1],16),a[1]=Math.imul(a[1],s[2]),r[1]=r[1]^a[1],r[1]=l(r[1],17),r[1]=r[1]+r[2],r[1]=Math.imul(r[1],5)+197830471,a[2]=Math.imul(a[2],s[2]),a[2]=l(a[2],17),a[2]=Math.imul(a[2],s[3]),r[2]=r[2]^a[2],r[2]=l(r[2],15),r[2]=r[2]+r[3],r[2]=Math.imul(r[2],5)+2530024501,a[3]=Math.imul(a[3],s[3]),a[3]=l(a[3],18),a[3]=Math.imul(a[3],s[0]),r[3]=r[3]^a[3],r[3]=l(r[3],13),r[3]=r[3]+r[0],r[3]=Math.imul(r[3],5)+850148119;}}(e,t),function(e,r){var n=e.byteLength/16|0,t=e.byteLength%16,o=new Uint32Array(4),a=new Uint8Array(e,16*n,t);switch(t){case 15:o[3]=o[3]^a[14]<<16;case 14:o[3]=o[3]^a[13]<<8;case 13:o[3]=o[3]^a[12]<<0,o[3]=Math.imul(o[3],s[3]),o[3]=l(o[3],18),o[3]=Math.imul(o[3],s[0]),r[3]=r[3]^o[3];case 12:o[2]=o[2]^a[11]<<24;case 11:o[2]=o[2]^a[10]<<16;case 10:o[2]=o[2]^a[9]<<8;case 9:o[2]=o[2]^a[8]<<0,o[2]=Math.imul(o[2],s[2]),o[2]=l(o[2],17),o[2]=Math.imul(o[2],s[3]),r[2]=r[2]^o[2];case 8:o[1]=o[1]^a[7]<<24;case 7:o[1]=o[1]^a[6]<<16;case 6:o[1]=o[1]^a[5]<<8;case 5:o[1]=o[1]^a[4]<<0,o[1]=Math.imul(o[1],s[1]),o[1]=l(o[1],16),o[1]=Math.imul(o[1],s[2]),r[1]=r[1]^o[1];case 4:o[0]=o[0]^a[3]<<24;case 3:o[0]=o[0]^a[2]<<16;case 2:o[0]=o[0]^a[1]<<8;case 1:o[0]=o[0]^a[0]<<0,o[0]=Math.imul(o[0],s[0]),o[0]=l(o[0],15),o[0]=Math.imul(o[0],s[1]),r[0]=r[0]^o[0];}}(e,t),function(e,r){r[0]=r[0]^e.byteLength,r[1]=r[1]^e.byteLength,r[2]=r[2]^e.byteLength,r[3]=r[3]^e.byteLength,r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0,r[0]=c(r[0]),r[1]=c(r[1]),r[2]=c(r[2]),r[3]=c(r[3]),r[0]=r[0]+r[1]|0,r[0]=r[0]+r[2]|0,r[0]=r[0]+r[3]|0,r[1]=r[1]+r[0]|0,r[2]=r[2]+r[0]|0,r[3]=r[3]+r[0]|0;}(e,t);var o=new Uint8Array(t.buffer);return Array.from(o).map((function(e){return e.toString(16).padStart(2,\"0\")})).join(\"\")}function d(e,r){return new Promise((function(n){setTimeout((function(){return n(r)}),e);}))}function m(e,r,n){return Promise.all(e.map((function(e){return Promise.race([e,d(r,n)])})))}function v(){return e(this,void 0,void 0,(function(){var e,t,o,i,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),e=u(),t=Object.keys(e),[4,m(Object.values(e),(null==n?void 0:n.timeout)||1e3,a)];case 1:return o=r.sent(),i=o.filter((function(e){return void 0!==e})),c={},i.forEach((function(e,r){c[t[r]]=e;})),[2,p(c,n.exclude||[])];case 2:throw r.sent();case 3:return [2]}}))}))}function p(e,r){var n={},t=function(t){if(e.hasOwnProperty(t)){var o=e[t];if(\"object\"!=typeof o||Array.isArray(o))r.includes(t)||(n[t]=o);else {var a=p(o,r.map((function(e){return e.startsWith(t+\".\")?e.slice(t.length+1):e})));Object.keys(a).length>0&&(n[t]=a);}}};for(var o in e)t(o);return n}function g(n){return e(this,void 0,void 0,(function(){var e,t;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v()];case 1:return e=r.sent(),t=f(JSON.stringify(e)),[2,t.toString()];case 2:throw r.sent();case 3:return [2]}}))}))}function y(e){for(var r=0,n=0;n<e.length;++n)r+=Math.abs(e[n]);return r}function b(e,r,n){for(var t=[],o=0;o<e[0].data.length;o++){for(var a=[],i=0;i<e.length;i++)a.push(e[i].data[o]);t.push(S(a));}var u=new Uint8ClampedArray(t);return new ImageData(u,r,n)}function S(e){if(0===e.length)return 0;for(var r={},n=0,t=e;n<t.length;n++){r[a=t[n]]=(r[a]||0)+1;}var o=e[0];for(var a in r)r[a]>r[o]&&(o=parseInt(a,10));return o}function M(){if(\"undefined\"==typeof navigator)return {name:\"unknown\",version:\"unknown\"};for(var e=navigator.userAgent,r={Edg:\"Edge\",OPR:\"Opera\"},n=0,t=[/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/,/(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/];n<t.length;n++){var o=t[n],a=e.match(o);if(a&&a.groups)return {name:r[a.groups.name]||a.groups.name,version:a.groups.version}}return {name:\"unknown\",version:\"unknown\"}}i(\"audio\",(function(){return e(this,void 0,void 0,(function(){return r(this,(function(e){return [2,new Promise((function(e,r){try{var n=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),t=n.createBufferSource(),o=n.createOscillator();o.frequency.value=1e3;var a,i=n.createDynamicsCompressor();i.threshold.value=-50,i.knee.value=40,i.ratio.value=12,i.attack.value=0,i.release.value=.2,o.connect(i),i.connect(n.destination),o.start(),n.oncomplete=function(r){a=r.renderedBuffer.getChannelData(0),e({sampleHash:y(a),oscillator:o.type,maxChannels:n.destination.maxChannelCount,channelCountMode:t.channelCountMode});},n.startRendering();}catch(e){console.error(\"Error creating audio fingerprint:\",e),r(e);}}))]}))}))}));var E=\"SamsungBrowser\"!==M().name?1:3,P=280,A=20;\"Firefox\"!=M().name&&i(\"canvas\",(function(){return document.createElement(\"canvas\").getContext(\"2d\"),new Promise((function(e){var r=Array.from({length:E},(function(){return function(){var e=document.createElement(\"canvas\"),r=e.getContext(\"2d\");if(!r)return new ImageData(1,1);e.width=P,e.height=A;var n=r.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,\"red\"),n.addColorStop(1/6,\"orange\"),n.addColorStop(2/6,\"yellow\"),n.addColorStop(.5,\"green\"),n.addColorStop(4/6,\"blue\"),n.addColorStop(5/6,\"indigo\"),n.addColorStop(1,\"violet\"),r.fillStyle=n,r.fillRect(0,0,e.width,e.height);var t=\"Random Text WMwmil10Oo\";r.font=\"23.123px Arial\",r.fillStyle=\"black\",r.fillText(t,-5,15),r.fillStyle=\"rgba(0, 0, 255, 0.5)\",r.fillText(t,-3.3,17.7),r.beginPath(),r.moveTo(0,0),r.lineTo(2*e.width/7,e.height),r.strokeStyle=\"white\",r.lineWidth=2,r.stroke();var o=r.getImageData(0,0,e.width,e.height);return o}()}));e({commonImageDataHash:f(b(r,P,A).data.toString()).toString()});}))}));var C,x=[\"Arial\",\"Arial Black\",\"Arial Narrow\",\"Arial Rounded MT\",\"Arimo\",\"Archivo\",\"Barlow\",\"Bebas Neue\",\"Bitter\",\"Bookman\",\"Calibri\",\"Cabin\",\"Candara\",\"Century\",\"Century Gothic\",\"Comic Sans MS\",\"Constantia\",\"Courier\",\"Courier New\",\"Crimson Text\",\"DM Mono\",\"DM Sans\",\"DM Serif Display\",\"DM Serif Text\",\"Dosis\",\"Droid Sans\",\"Exo\",\"Fira Code\",\"Fira Sans\",\"Franklin Gothic Medium\",\"Garamond\",\"Geneva\",\"Georgia\",\"Gill Sans\",\"Helvetica\",\"Impact\",\"Inconsolata\",\"Indie Flower\",\"Inter\",\"Josefin Sans\",\"Karla\",\"Lato\",\"Lexend\",\"Lucida Bright\",\"Lucida Console\",\"Lucida Sans Unicode\",\"Manrope\",\"Merriweather\",\"Merriweather Sans\",\"Montserrat\",\"Myriad\",\"Noto Sans\",\"Nunito\",\"Nunito Sans\",\"Open Sans\",\"Optima\",\"Orbitron\",\"Oswald\",\"Pacifico\",\"Palatino\",\"Perpetua\",\"PT Sans\",\"PT Serif\",\"Poppins\",\"Prompt\",\"Public Sans\",\"Quicksand\",\"Rajdhani\",\"Recursive\",\"Roboto\",\"Roboto Condensed\",\"Rockwell\",\"Rubik\",\"Segoe Print\",\"Segoe Script\",\"Segoe UI\",\"Sora\",\"Source Sans Pro\",\"Space Mono\",\"Tahoma\",\"Taviraj\",\"Times\",\"Times New Roman\",\"Titillium Web\",\"Trebuchet MS\",\"Ubuntu\",\"Varela Round\",\"Verdana\",\"Work Sans\"],T=[\"monospace\",\"sans-serif\",\"serif\"];function k(e,r){if(!e)throw new Error(\"Canvas context not supported\");return e.font=\"72px \".concat(r),e.measureText(\"WwMmLli0Oo\").width}function R(){var e,r=document.createElement(\"canvas\"),n=null!==(e=r.getContext(\"webgl\"))&&void 0!==e?e:r.getContext(\"experimental-webgl\");if(n&&\"getParameter\"in n)try{var t=(n.getParameter(n.VENDOR)||\"\").toString(),o=(n.getParameter(n.RENDERER)||\"\").toString(),a={vendor:t,renderer:o,version:(n.getParameter(n.VERSION)||\"\").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||\"\").toString()};if(!o.length||!t.length){var i=n.getExtension(\"WEBGL_debug_renderer_info\");if(i){var u=(n.getParameter(i.UNMASKED_VENDOR_WEBGL)||\"\").toString(),c=(n.getParameter(i.UNMASKED_RENDERER_WEBGL)||\"\").toString();u&&(a.vendorUnmasked=u),c&&(a.rendererUnmasked=c);}}return a}catch(e){}return \"undefined\"}function I(){var e=new Float32Array(1),r=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],r[3]}function O(e,r){var n={};return r.forEach((function(r){var t=function(e){if(0===e.length)return null;var r={};e.forEach((function(e){var n=String(e);r[n]=(r[n]||0)+1;}));var n=e[0],t=1;return Object.keys(r).forEach((function(e){r[e]>t&&(n=e,t=r[e]);})),n}(e.map((function(e){return r in e?e[r]:void 0})).filter((function(e){return void 0!==e})));t&&(n[r]=t);})),n}function L(){var e=[],r={\"prefers-contrast\":[\"high\",\"more\",\"low\",\"less\",\"forced\",\"no-preference\"],\"any-hover\":[\"hover\",\"none\"],\"any-pointer\":[\"none\",\"coarse\",\"fine\"],pointer:[\"none\",\"coarse\",\"fine\"],hover:[\"hover\",\"none\"],update:[\"fast\",\"slow\"],\"inverted-colors\":[\"inverted\",\"none\"],\"prefers-reduced-motion\":[\"reduce\",\"no-preference\"],\"prefers-reduced-transparency\":[\"reduce\",\"no-preference\"],scripting:[\"none\",\"initial-only\",\"enabled\"],\"forced-colors\":[\"active\",\"none\"]};return Object.keys(r).forEach((function(n){r[n].forEach((function(r){matchMedia(\"(\".concat(n,\": \").concat(r,\")\")).matches&&e.push(\"\".concat(n,\": \").concat(r));}));})),e}function _(){if(\"https:\"===window.location.protocol&&\"function\"==typeof window.ApplePaySession)try{for(var e=window.ApplePaySession.supportsVersion,r=15;r>0;r--)if(e(r))return r}catch(e){return 0}return 0}\"Firefox\"!=M().name&&i(\"fonts\",(function(){var n=this;return new Promise((function(t,o){try{!function(n){var t;e(this,void 0,void 0,(function(){var e,o,a;return r(this,(function(r){switch(r.label){case 0:return document.body?[3,2]:[4,(i=50,new Promise((function(e){return setTimeout(e,i,u)})))];case 1:return r.sent(),[3,0];case 2:if((e=document.createElement(\"iframe\")).setAttribute(\"frameBorder\",\"0\"),(o=e.style).setProperty(\"position\",\"fixed\"),o.setProperty(\"display\",\"block\",\"important\"),o.setProperty(\"visibility\",\"visible\"),o.setProperty(\"border\",\"0\"),o.setProperty(\"opacity\",\"0\"),e.src=\"about:blank\",document.body.appendChild(e),!(a=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document)))throw new Error(\"Iframe document is not accessible\");return n({iframe:a}),setTimeout((function(){document.body.removeChild(e);}),0),[2]}var i,u;}))}));}((function(o){var a=o.iframe;return e(n,void 0,void 0,(function(){var e,n,o,i;return r(this,(function(r){return e=a.createElement(\"canvas\"),n=e.getContext(\"2d\"),o=T.map((function(e){return k(n,e)})),i={},x.forEach((function(e){var r=k(n,e);o.includes(r)||(i[e]=r);})),t(i),[2]}))}))}));}catch(e){o({error:\"unsupported\"});}}))})),i(\"hardware\",(function(){return new Promise((function(e,r){var n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,t=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:R(),architecture:I(),deviceMemory:n.toString()||\"undefined\",jsHeapSizeLimit:t.jsHeapSizeLimit||0});}))})),i(\"locales\",(function(){return new Promise((function(e){e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone});}))})),i(\"permissions\",(function(){return e(this,void 0,void 0,(function(){var t;return r(this,(function(o){return C=(null==n?void 0:n.permissions_to_check)||[\"accelerometer\",\"accessibility\",\"accessibility-events\",\"ambient-light-sensor\",\"background-fetch\",\"background-sync\",\"bluetooth\",\"camera\",\"clipboard-read\",\"clipboard-write\",\"device-info\",\"display-capture\",\"gyroscope\",\"geolocation\",\"local-fonts\",\"magnetometer\",\"microphone\",\"midi\",\"nfc\",\"notifications\",\"payment-handler\",\"persistent-storage\",\"push\",\"speaker\",\"storage-access\",\"top-level-storage-access\",\"window-management\",\"query\"],t=Array.from({length:(null==n?void 0:n.retries)||3},(function(){return function(){return e(this,void 0,void 0,(function(){var e,n,t,o,a;return r(this,(function(r){switch(r.label){case 0:e={},n=0,t=C,r.label=1;case 1:if(!(n<t.length))return [3,6];o=t[n],r.label=2;case 2:return r.trys.push([2,4,,5]),[4,navigator.permissions.query({name:o})];case 3:return a=r.sent(),e[o]=a.state.toString(),[3,5];case 4:return r.sent(),[3,5];case 5:return n++,[3,1];case 6:return [2,e]}}))}))}()})),[2,Promise.all(t).then((function(e){return O(e,C)}))]}))}))})),i(\"plugins\",(function(){var e=[];if(navigator.plugins)for(var r=0;r<navigator.plugins.length;r++){var n=navigator.plugins[r];e.push([n.name,n.filename,n.description].join(\"|\"));}return new Promise((function(r){r({plugins:e});}))})),i(\"screen\",(function(){return new Promise((function(e){e({is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:L()});}))})),i(\"system\",(function(){return new Promise((function(e){var r=M();e({platform:window.navigator.platform,cookieEnabled:window.navigator.cookieEnabled,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:r.name,version:r.version},applePayVersion:_()});}))}));var D,B=\"SamsungBrowser\"!==M().name?1:3,U=null;i(\"webgl\",(function(){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){\"undefined\"!=typeof document&&((D=document.createElement(\"canvas\")).width=200,D.height=100,U=D.getContext(\"webgl\"));try{if(!U)throw new Error(\"WebGL not supported\");return e=Array.from({length:B},(function(){return function(){try{if(!U)throw new Error(\"WebGL not supported\");var e=\"\\n attribute vec2 position;\\n void main() {\\n gl_Position = vec4(position, 0.0, 1.0);\\n }\\n \",r=\"\\n precision mediump float;\\n void main() {\\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\\n }\\n \",n=U.createShader(U.VERTEX_SHADER),t=U.createShader(U.FRAGMENT_SHADER);if(!n||!t)throw new Error(\"Failed to create shaders\");if(U.shaderSource(n,e),U.shaderSource(t,r),U.compileShader(n),!U.getShaderParameter(n,U.COMPILE_STATUS))throw new Error(\"Vertex shader compilation failed: \"+U.getShaderInfoLog(n));if(U.compileShader(t),!U.getShaderParameter(t,U.COMPILE_STATUS))throw new Error(\"Fragment shader compilation failed: \"+U.getShaderInfoLog(t));var o=U.createProgram();if(!o)throw new Error(\"Failed to create shader program\");if(U.attachShader(o,n),U.attachShader(o,t),U.linkProgram(o),!U.getProgramParameter(o,U.LINK_STATUS))throw new Error(\"Shader program linking failed: \"+U.getProgramInfoLog(o));U.useProgram(o);for(var a=137,i=new Float32Array(4*a),u=2*Math.PI/a,c=0;c<a;c++){var s=c*u;i[4*c]=0,i[4*c+1]=0,i[4*c+2]=Math.cos(s)*(D.width/2),i[4*c+3]=Math.sin(s)*(D.height/2);}var l=U.createBuffer();U.bindBuffer(U.ARRAY_BUFFER,l),U.bufferData(U.ARRAY_BUFFER,i,U.STATIC_DRAW);var f=U.getAttribLocation(o,\"position\");U.enableVertexAttribArray(f),U.vertexAttribPointer(f,2,U.FLOAT,false,0,0),U.viewport(0,0,D.width,D.height),U.clearColor(0,0,0,1),U.clear(U.COLOR_BUFFER_BIT),U.drawArrays(U.LINES,0,2*a);var d=new Uint8ClampedArray(D.width*D.height*4);return U.readPixels(0,0,D.width,D.height,U.RGBA,U.UNSIGNED_BYTE,d),new ImageData(d,D.width,D.height)}catch(e){return new ImageData(1,1)}finally{U&&(U.bindBuffer(U.ARRAY_BUFFER,null),U.useProgram(null),U.viewport(0,0,U.drawingBufferWidth,U.drawingBufferHeight),U.clearColor(0,0,0,0));}}()})),[2,{commonImageHash:f(b(e,D.width,D.height).data.toString()).toString()}]}catch(e){return [2,{webgl:\"unsupported\"}]}return [2]}))}))}));var F=function(e,r,n,t){for(var o=(n-r)/t,a=0,i=0;i<t;i++){a+=e(r+(i+.5)*o);}return a*o};i(\"math\",(function(){return e(void 0,void 0,void 0,(function(){return r(this,(function(e){return [2,{acos:Math.acos(.5),asin:F(Math.asin,-1,1,97),atan:F(Math.atan,-1,1,97),cos:F(Math.cos,0,Math.PI,97),cosh:Math.cosh(9/7),e:Math.E,largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),log:Math.log(1e3),pi:Math.PI,sin:F(Math.sin,-Math.PI,Math.PI,97),sinh:F(Math.sinh,-9/7,7/9,97),sqrt:Math.sqrt(2),tan:F(Math.tan,0,2*Math.PI,97),tanh:F(Math.tanh,-9/7,7/9,97)}]}))}))}));\n\nclass AdClient {\n config;\n constructor(config) {\n this.config = config;\n }\n async getAds(_properties) {\n return [];\n }\n async onQuerySubmitted(_properties) { }\n async onQueryFetched(_properties, _response) { }\n async onInputCleared() { }\n async onAdContainerRendered(_data) { }\n async onAdContainerViewed(_data) { }\n}\n\nclass AdMarketplaceClient extends AdClient {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAds(_properties) {\n const admConfig = this.config.admAdConfig;\n if (!admConfig?.sub) {\n console.error('No admSub specified in config.');\n return [];\n }\n const paramString = new URLSearchParams({\n partner: 'demofeed',\n sub1: admConfig.sub,\n qt: _properties.searchTerm,\n v: '2.0',\n rfr: 'searchcraft.io',\n 'results-ta': `${admConfig.textAdQuantity || 0}`,\n 'results-pa': `${admConfig.productAdQuantity || 0}`,\n }).toString();\n const path = `https://demofeed.is.ampfeed.com/is?${paramString}`;\n const response = await fetch(path, { method: 'GET' });\n const admResponse = (await response.json());\n const productAds = admResponse.product_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-product-ad',\n admAd: ad,\n }));\n const textAds = admResponse.text_ads.map((ad) => ({\n id: nanoid(),\n adSource: 'adMarketplace',\n admAdType: 'adm-text-ad',\n admAd: ad,\n }));\n const allAds = productAds.concat(textAds);\n return allAds;\n }\n async onAdContainerViewed(data) {\n // Calls fetch on the impression url, to record an impression for adMarketplace\n const item = data.adClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n}\n\nclass CustomAdClient extends AdClient {\n async getAds(_properties) {\n return [];\n }\n}\n\nconst AD_CALL_AFTER_FETCH_DELAY = 1000;\nclass NativoClient extends AdClient {\n adCallTimeout;\n constructor(config) {\n super(config);\n this.addScriptTagToDocument();\n }\n async onQuerySubmitted(_properties) {\n this.addScriptTagToDocument();\n }\n async onQueryFetched(_properties, response) {\n if ((response.data.hits?.length || 0) === 0) {\n this.removeScriptTagFromDocument();\n return;\n }\n this.performAdCall(AD_CALL_AFTER_FETCH_DELAY);\n }\n async onInputCleared() {\n this.removeScriptTagFromDocument();\n }\n performAdCall(delay) {\n if (this.adCallTimeout) {\n clearTimeout(this.adCallTimeout);\n }\n this.adCallTimeout = setTimeout(() => {\n this.addScriptTagToDocument();\n try {\n // @ts-ignore\n PostRelease?.Start({ ptd: [this.config.nativoPlacementId] });\n }\n catch (error) {\n console.error(error);\n }\n // console.log('Performing ad call');\n }, delay);\n }\n async getAds(_properties) {\n return [];\n }\n addScriptTagToDocument() {\n if (!document.head.querySelector('#nativo-tag')) {\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = 'https://s.ntv.io/serve/load.js';\n scriptTag.id = 'nativo-tag';\n scriptTag.setAttribute('data-ntv-set-no-auto-start', 'true');\n document.head.appendChild(scriptTag);\n }\n }\n removeScriptTagFromDocument() {\n const scriptTag = document.head.querySelector('#nativo-tag');\n if (scriptTag) {\n document.head.removeChild(scriptTag);\n }\n }\n}\n\nconst MEASURE_REQUEST_DEBOUNCE = 600;\nclass MeasureClient {\n measureRequestTimeout;\n measureRequestsBatched = [];\n config;\n sdkInfo;\n userId;\n userType;\n sessionId;\n constructor(config, sdkInfo, userId, userType) {\n this.config = config;\n this.sdkInfo = sdkInfo;\n this.userId = userId;\n this.userType = userType;\n this.sessionId = nanoid();\n this.sendMeasureEvent('sdk_initialized').catch((error) => {\n console.error('Error sending sdk_initialized event:', error);\n });\n }\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n get baseMeasureUrl() {\n return `${this.config.endpointURL}/measure`;\n }\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n get measureRequestUser() {\n return {\n user_id: this.userId,\n locale: navigator.language || 'en-US',\n os: navigator.userAgent.includes('Windows')\n ? 'Windows'\n : navigator.userAgent.includes('Mac')\n ? 'Mac'\n : navigator.userAgent.includes('Linux')\n ? 'Linux'\n : 'Unknown',\n platform: navigator.platform || 'Unknown',\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || 'Unknown',\n };\n }\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n sendMeasureEvent = async (eventName, properties = {}, user = {}) => {\n /**\n * Builds the request object based on config values + provided arguments.\n */\n const request = {\n event_name: eventName,\n properties: {\n searchcraft_index_names: this.config.indexName\n ? [this.config.indexName]\n : [],\n searchcraft_federation_name: this.config.federationName,\n session_id: this.sessionId,\n ...properties,\n },\n user: {\n ...this.measureRequestUser,\n ...user,\n },\n };\n // Send document_clicked events immediately\n if (eventName === 'document_clicked') {\n const body = JSON.stringify(request);\n const url = `${this.baseMeasureUrl}/event`;\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body,\n keepalive: true,\n });\n if (!response.ok) {\n console.error(`Error sending MeasureRequest: ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n console.error('Error sending MeasureRequest:', error);\n }\n }\n else {\n // Otherwise send in batches\n this.measureRequestsBatched.push(request);\n clearTimeout(this.measureRequestTimeout);\n this.measureRequestTimeout = setTimeout(() => {\n const payload = JSON.stringify({ items: this.measureRequestsBatched });\n const url = `${this.baseMeasureUrl}/batch`;\n (async () => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: this.config.readKey,\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.sessionId,\n 'X-Sc-User-Type': this.userType,\n },\n body: payload,\n keepalive: true,\n });\n this.measureRequestsBatched = [];\n if (!response.ok) {\n console.error(`Error sending MeasureRequest: ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n this.measureRequestsBatched = [];\n console.error('Error sending MeasureRequest:', error);\n }\n })().catch((error) => {\n console.error('Unhandled error in MeasureRequest batch:', error);\n });\n }, MEASURE_REQUEST_DEBOUNCE);\n }\n };\n}\n\nconst removeTrailingSlashFromURL = (endpointURL) => endpointURL.endsWith('/') ? endpointURL.slice(0, -1) : endpointURL;\n\nconst sanitize = (str) => {\n let sanitizedStr = '';\n // Trim whitespace\n sanitizedStr = str.trim();\n // Replace fancy quotes\n sanitizedStr = sanitizedStr.replace(/[‘’“”]/g, (match) => {\n const map = {\n '‘': \"'\",\n '’': \"'\",\n '“': '\"',\n '”': '\"',\n };\n return map[match] || match;\n });\n // Whether there are an equal number of quotes\n const quoteCount = (sanitizedStr.match(/\"/g) || []).length;\n if (quoteCount % 2 !== 0) {\n throw new Error('The search term contains an uneven number of quote characters.');\n }\n return sanitizedStr;\n};\n\nconst SEARCH_COMPLETED_EVENT_DEBOUNCE = 500;\nclass SearchClient {\n config;\n userId;\n parent;\n searchCompletedEventTimeout;\n abortController;\n supplementalAbortController;\n constructor(parent, config, userId) {\n this.parent = parent;\n this.config = config;\n this.userId = userId;\n }\n /**\n * Getter for the base url used by the /search endpoint.\n * Supports both index and federation search endpoints.\n */\n get baseSearchUrl() {\n return this.config.federationName\n ? `${this.config.endpointURL}/federation/${this.config.federationName}/search`\n : `${this.config.endpointURL}/index/${this.config.indexName}/search`;\n }\n /**\n * Immediately cancels all pending search requests.\n */\n abortRequests = () => {\n this.abortController?.abort('The pending search request has been cancelled.');\n this.supplementalAbortController?.abort('The pending search request has been cancelled.');\n };\n /**\n * Make the request to get the search results.\n * @param {properties} properties - The properties for the search.\n * @param isSupplemental - Whether or not this is a supplemental search request (for the purpose of getting top-level facet counts)\n * @returns\n */\n getSearchResponseItems = async (properties, isSupplemental = false) => {\n let response;\n let searchTerm = '';\n let abortController;\n if (isSupplemental) {\n this.supplementalAbortController?.abort('A newer search request has replaced this one.');\n abortController = new AbortController();\n this.supplementalAbortController = abortController;\n }\n else {\n this.abortController?.abort('A newer search request has replaced this one.');\n abortController = new AbortController();\n this.abortController = abortController;\n }\n // Sanitize the search term prior to any request\n // The function will throw if it is not valid\n if (typeof properties === 'string') {\n searchTerm = sanitize(properties);\n }\n else {\n properties.searchTerm = sanitize(properties.searchTerm);\n searchTerm = properties.searchTerm;\n }\n this.parent.measureClient?.sendMeasureEvent('search_requested', {\n search_term: searchTerm,\n });\n this.parent.emitEvent('query_submitted', {\n name: 'query_submitted',\n data: {\n searchTerm,\n },\n });\n this.parent.adClient?.onQuerySubmitted(typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties);\n if (typeof properties === 'string') {\n response = await this.handleGetSearchResponseItemsWithString(searchTerm, abortController);\n }\n else {\n response = await this.handleGetSearchResponseItemsWithObject(properties, abortController);\n }\n if (!isSupplemental) {\n this.parent.measureClient?.sendMeasureEvent('search_response_received', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n clearTimeout(this.searchCompletedEventTimeout);\n this.searchCompletedEventTimeout = setTimeout(() => {\n this.parent.measureClient?.sendMeasureEvent('search_completed', {\n search_term: searchTerm,\n number_of_documents: response.data.count,\n });\n }, SEARCH_COMPLETED_EVENT_DEBOUNCE);\n this.parent.emitEvent('query_fetched', {\n name: 'query_fetched',\n data: {\n searchTerm,\n },\n });\n if ((response.data.hits?.length || 0) === 0) {\n this.parent.emitEvent('no_results_returned', {\n name: 'no_results_returned',\n });\n }\n this.parent.adClient?.onQueryFetched(typeof properties === 'string'\n ? { searchTerm, mode: 'exact' }\n : properties, response);\n }\n return response;\n };\n handleGetSearchResponseItemsWithString = async (str, abortController) => {\n let searchClientRequest;\n try {\n searchClientRequest = JSON.parse(str);\n searchClientRequest = {\n limit: this.config.searchResultsPerPage,\n ...searchClientRequest,\n };\n }\n catch {\n throw new Error('Error: Query string is not valid json.');\n }\n this.parent.store.setState({ searchClientRequest });\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText} (Status: ${response.status})`);\n }\n return (await response.json());\n };\n handleGetSearchResponseItemsWithObject = async (properties, abortController) => {\n const searchClientRequest = {\n query: this.formatParamsForRequest(properties),\n offset: properties.offset || 0,\n limit: properties.limit || this.config.searchResultsPerPage || 20,\n ...(properties.order_by && {\n order_by: properties.order_by,\n }),\n ...(properties.sort && {\n sort: properties.sort,\n }),\n };\n this.parent.store.setState({ searchClientRequest });\n const response = await fetch(this.baseSearchUrl, {\n method: 'POST',\n headers: {\n Authorization: this.config.readKey,\n 'Content-Type': 'application/json',\n 'X-Sc-User-Id': this.userId,\n 'X-Sc-Session-Id': this.parent.measureClient?.sessionId || nanoid(),\n 'X-Sc-User-Type': this.parent.userType,\n },\n body: JSON.stringify(searchClientRequest),\n signal: abortController.signal,\n });\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText} (Status: ${response.status})`);\n }\n return (await response.json());\n };\n /**\n * Builds a query object for the SearchClient request.\n * @param {properties} properties - The properties for the search.\n * @returns {SearchClientQuery} - A properly formatted SearchClient query object.\n */\n formatParamsForRequest(properties) {\n const queries = [];\n let occur = 'should';\n if (properties.facetPathsForIndexFields) {\n Object.keys(properties.facetPathsForIndexFields).forEach((fieldName) => {\n const item = properties.facetPathsForIndexFields?.[fieldName];\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n if (properties.rangeValueForIndexFields) {\n Object.keys(properties.rangeValueForIndexFields).forEach((fieldName) => {\n const item = properties.rangeValueForIndexFields?.[fieldName];\n if (item) {\n occur = 'must';\n queries.push({\n occur: 'must',\n exact: {\n ctx: sanitize(item.value),\n },\n });\n }\n });\n }\n const searchTerm = properties.searchTerm;\n const query = properties.mode === 'fuzzy'\n ? { fuzzy: { ctx: searchTerm } }\n : {\n exact: {\n ctx: `${searchTerm.startsWith('\"') ? searchTerm : `\"${searchTerm}\"`}`,\n },\n };\n queries.push({\n occur: properties.mode === 'exact' ? 'must' : occur, // Valid, as 'occur' is a required property in SearchClientQuery\n ...query,\n });\n return queries;\n }\n}\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nconst DEBOUNCE_DELAY = 1000;\nclass SummaryClient {\n set;\n get;\n abortController;\n timeout;\n constructor(get, set) {\n this.get = get;\n this.set = set;\n }\n streamSummaryData() {\n const begin = async () => {\n const state = this.get();\n const config = state.core?.config;\n if (!config) {\n console.error('Could not stream summary data, no config found.');\n return;\n }\n if (!config.cortexURL) {\n console.error('Could not stream summary data, cortexURL was not specified in the config.');\n return;\n }\n const indexName = state.core?.config.indexName;\n if (!state.hasSummaryBox || !indexName) {\n return;\n }\n this.abortController?.abort('A newer request has replaced this one.');\n this.abortController = new AbortController();\n this.set({\n isSummaryLoading: true,\n summary: '',\n });\n const endpointUrl = `${config.cortexURL.replace(/\\/$/, '')}/api/search/summary`;\n try {\n const fetchResponse = await fetch(endpointUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: state.core?.config.readKey || '',\n 'X-Sc-User-Id': state.core?.userId || '',\n 'X-Sc-Session-Id': state.core?.measureClient?.sessionId || '',\n 'X-Sc-User-Type': state.core?.userType || 'anonymous',\n },\n body: JSON.stringify({\n searchQuery: state.searchClientRequest,\n summaryInstructionsPrompt: state.core?.config.summaryInstructionsPrompt,\n indexName: indexName,\n endpointUrl: state.core?.config.endpointURL,\n }),\n signal: this.abortController.signal,\n });\n if (!fetchResponse) {\n throw new Error('Invalid fetch response');\n }\n if (!fetchResponse.body) {\n throw new Error('Invalid fetch response');\n }\n if (!fetchResponse.ok) {\n if (fetchResponse.status === 403) {\n console.warn('Please contact Searchcraft to enable AI summaries with your account');\n this.set({\n isSummaryLoading: false,\n isSummaryNotEnabled: true,\n });\n return;\n }\n throw new Error(`HTTP ${fetchResponse.status}`);\n }\n const reader = fetchResponse.body.getReader();\n const decoder = new TextDecoder();\n let finishedReading = false;\n do {\n const { done, value } = await reader.read();\n finishedReading = done;\n const chunk = decoder.decode(value, { stream: true });\n this.set((state) => ({\n isSummaryLoading: false,\n summary: `${state.summary}${chunk}`,\n }));\n } while (!finishedReading);\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n }\n this.set({\n isSummaryLoading: false,\n });\n }\n };\n const delay = this.get().core?.config.summaryDebounceDelay || DEBOUNCE_DELAY;\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => begin(), delay);\n }\n}\n\nconst initialSearchcraftStateValues = {\n adClientResponseItems: [],\n cachedAdClientResponseItems: [],\n core: undefined,\n hotkey: 'k',\n hotkeyModifier: 'meta',\n facetPathsForIndexFields: {},\n isFilterPanelVisible: true,\n isPopoverVisible: false,\n isSearchInProgress: false,\n rangeValueForIndexFields: {},\n searchTerm: '',\n searchMode: 'fuzzy',\n searchClientRequest: undefined,\n searchClientRequestProperties: undefined,\n searchClientResponseItems: [],\n cachedSearchClientResponseItems: [],\n cachedSearchResponseFacetPrime: undefined,\n cachedSupplementalFacetPrime: undefined,\n cachedSearchResponseTimeTaken: undefined,\n cachedSearchResultsCount: undefined,\n cachedSearchClientRequestProperties: undefined,\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n supplementalFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: undefined,\n orderByField: undefined,\n summary: '',\n hasSummaryBox: false,\n summaryClient: undefined,\n isSummaryLoading: false,\n isSummaryNotEnabled: false,\n};\n// const logger = new Logger({ logLevel: LogLevel.NONE });\nconst existingStores = {};\n/**\n * This is a factory function for creating new searchcraft stores.\n *\n * Searchcraft Stores contain the state information used by a SearchcraftCore instance.\n *\n * This factory function only needs to be called when a new SearchcraftCore is instantiated.\n * @returns\n */\nconst createSearchcraftStore = (searchcraftId, initialState = {}) => {\n const id = searchcraftId || DEFAULT_CORE_INSTANCE_ID;\n if (existingStores[id]) {\n existingStores[id].setState(initialState);\n return existingStores[id];\n }\n const newStore = createStore((set, get) => {\n const functions = {\n addFacetPathsForIndexField: (facetPaths) => {\n set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [facetPaths.fieldName]: facetPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n }));\n },\n addRangeValueForIndexField: (rangeValue) => set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [rangeValue.fieldName]: rangeValue,\n },\n })),\n removeFacetPathsForIndexField: (fieldName) => {\n console.log('[FACET] removeFacetPathsForIndexField', {\n fieldName,\n currentPage: get().searchResultsPage,\n stackTrace: new Error().stack,\n });\n set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n searchResultsPage: 1, // Reset to page 1 when filters change\n };\n });\n },\n removeRangeValueForIndexField: (fieldName) => set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetSearchValues: () => {\n const state = get();\n state.core?.searchClient?.abortRequests();\n set({\n searchTerm: '',\n searchResultsPage: 1,\n searchClientResponseItems: [...state.cachedSearchClientResponseItems],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n });\n },\n search: async (options) => {\n const state = get();\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n if (state.core.config.cortexURL && !options?.skipSummary) {\n state.summaryClient?.streamSummaryData();\n }\n // Check if this is an initialQuery case (string requestProperties with empty searchTerm)\n const isInitialQuery = typeof state.cachedSearchClientRequestProperties === 'string' &&\n state.searchTerm.trim() === '';\n // Check if there are any active filters or pagination changes\n const hasActiveFilters = Object.keys(state.facetPathsForIndexFields).length > 0 ||\n Object.keys(state.rangeValueForIndexFields).length > 0;\n const hasNonDefaultPagination = state.searchResultsPage !== 1;\n const hasNonDefaultSearchMode = state.searchMode !== 'fuzzy';\n if (!state.searchTerm.trim()) {\n // If it's initialQuery and there are filters, pagination, or mode changes, perform a search\n if (isInitialQuery &&\n (hasActiveFilters ||\n hasNonDefaultPagination ||\n hasNonDefaultSearchMode)) {\n // Parse the initialQuery\n const initialQueryObj = JSON.parse(state.cachedSearchClientRequestProperties);\n set({ isSearchInProgress: true });\n // Build the modified query array starting with the base query\n const baseQuery = Array.isArray(initialQueryObj.query)\n ? initialQueryObj.query.filter((q) => !q.occur)\n : [initialQueryObj.query];\n const queries = [...baseQuery];\n // Add facet filters\n if (state.facetPathsForIndexFields) {\n Object.keys(state.facetPathsForIndexFields).forEach((fieldName) => {\n const item = state.facetPathsForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n });\n }\n // Add range filters\n if (state.rangeValueForIndexFields) {\n Object.keys(state.rangeValueForIndexFields).forEach((fieldName) => {\n const item = state.rangeValueForIndexFields?.[fieldName];\n if (item) {\n queries.push({\n occur: 'must',\n exact: {\n ctx: item.value,\n },\n });\n }\n });\n }\n // Build the modified request with filters and pagination\n const modifiedRequest = {\n ...initialQueryObj,\n query: queries,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n state.core.getResponseItems({\n requestProperties: JSON.stringify(modifiedRequest),\n shouldCacheResultsForEmptyState: false,\n });\n return;\n }\n // Otherwise, restore cached results\n state.core?.searchClient?.abortRequests();\n set({\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties: state.cachedSearchClientRequestProperties,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n set({ isSearchInProgress: true });\n const searchClientRequestProperites = {\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n order_by: state.orderByField,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n };\n state.core.getResponseItems({\n requestProperties: searchClientRequestProperites,\n shouldCacheResultsForEmptyState: false,\n });\n },\n setFilterPanelVisibility: (isVisible) => set({\n isFilterPanelVisible: isVisible,\n }),\n setPopoverVisibility: (isVisible) => set({\n isPopoverVisible: isVisible,\n }),\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortOrder: ({ orderByField, sortType }) => set({ sortType, orderByField }),\n setSearchTerm: (searchTerm) => {\n const state = get();\n if (searchTerm.length === 0) {\n state.core?.handleInputCleared();\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode\n */\n set({\n searchTerm,\n searchResultsPage: 1,\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: null,\n orderByField: null,\n searchClientResponseItems: [\n ...state.cachedSearchClientResponseItems,\n ],\n adClientResponseItems: [...state.cachedAdClientResponseItems],\n searchResponseFacetPrime: state.cachedSearchResponseFacetPrime,\n supplementalFacetPrime: state.cachedSupplementalFacetPrime,\n searchResponseTimeTaken: state.cachedSearchResponseTimeTaken,\n searchResultsCount: state.cachedSearchResultsCount || 0,\n searchClientRequestProperties: state.cachedSearchClientRequestProperties,\n }),\n });\n },\n setSearchResultsCount: (count) => set({ searchResultsCount: count }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search({ skipSummary: true });\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search({ skipSummary: true });\n },\n setHotKeyAndHotKeyModifier: (hotkey, hotkeyModifier) => {\n const { hotkey: initialHotkey, hotkeyModifier: initialHotkeyModifier } = initialSearchcraftStateValues;\n set({\n hotkey: hotkey || initialHotkey,\n hotkeyModifier: hotkeyModifier || initialHotkeyModifier,\n });\n },\n };\n const stateObject = {\n ...initialSearchcraftStateValues,\n ...initialState,\n ...functions,\n ...{\n summaryClient: new SummaryClient(get, set),\n },\n };\n return stateObject;\n });\n existingStores[id] = newStore;\n return newStore;\n};\n\n/**\n * Javascript Class providing the functionality to interact with the Searchcraft BE\n */\nclass SearchcraftCore {\n store;\n config;\n measureClient;\n searchClient;\n adClient;\n userId;\n userType;\n requestTimeout;\n subscriptionEvents = {};\n /**\n * @param config The SearchcraftConfig object for this Searchcraft instance.\n * @param sdkInfo The SDK info object for this searchcraft instance\n * @param searchcraftId The identifier to use to reference this instance of SearchcraftCore.\n */\n constructor(config, sdkInfo, searchcraftId) {\n if (!config.endpointURL) {\n throw new Error('SDK Configuration Error: endpointURL not specified.');\n }\n if (!config.readKey) {\n throw new Error('SDK Configuration Error: readKey not specified.');\n }\n if (!config.indexName && !config.federationName) {\n throw new Error('SDK Configuration Error: Either indexName or federationName must be specified.');\n }\n if (config.indexName && config.federationName) {\n throw new Error('SDK Configuration Error: Cannot specify both indexName and federationName. Please specify only one.');\n }\n this.config = {\n ...config,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: removeTrailingSlashFromURL(config.endpointURL),\n };\n this.userId = '';\n this.userType = 'anonymous';\n if (typeof window !== 'undefined' &&\n typeof customElements !== 'undefined' &&\n sdkInfo.sdkName === '@searchcraft/javascript-sdk' &&\n globalThis.__scDefineCustomElements__) {\n globalThis.__scDefineCustomElements__();\n }\n this.store = createSearchcraftStore(searchcraftId, {\n core: this,\n searchResultsPerPage: config.searchResultsPerPage || 20,\n });\n registry.addCoreInstance(this, searchcraftId);\n (async (config) => {\n if (typeof window !== 'undefined') {\n await this.initClients(config, sdkInfo);\n }\n if (config.initialQuery) {\n this.getResponseItems({\n requestProperties: config.initialQuery,\n shouldCacheResultsForEmptyState: true,\n });\n }\n })(this.config);\n }\n async initClients(config, sdkInfo) {\n let userId = this.config.measureUserIdentifier;\n if (!userId) {\n const fingerprint = await g();\n userId = fingerprint;\n this.userType = 'anonymous';\n }\n else {\n this.userType = 'authenticated';\n await Promise.resolve();\n }\n this.measureClient = new MeasureClient(config, sdkInfo, userId, this.userType);\n this.searchClient = new SearchClient(this, config, userId);\n if (config.customAdConfig) {\n this.adClient = new CustomAdClient(config);\n }\n else if (config.nativoConfig) {\n this.adClient = new NativoClient(config);\n }\n else if (config.admAdConfig) {\n this.adClient = new AdMarketplaceClient(config);\n }\n this.emitEvent('initialized', {\n name: 'initialized',\n });\n }\n emitEvent(eventName, event) {\n this.subscriptionEvents[eventName]?.forEach((callback) => {\n callback(event);\n });\n }\n subscribe(eventName, callback) {\n if (!this.subscriptionEvents[eventName]) {\n this.subscriptionEvents[eventName] = [];\n }\n this.subscriptionEvents[eventName].push(callback);\n return () => {\n this.subscriptionEvents[eventName] = this.subscriptionEvents[eventName].filter((cb) => cb !== callback);\n };\n }\n /**\n * Called when a `<searchcraft-ad>` component is rendered\n */\n handleAdContainerRendered(data) {\n this.adClient?.onAdContainerRendered(data);\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n /**\n * Called when a `<searchcraft-ad>` is viewed\n */\n handleAdContainerViewed(data) {\n this.adClient?.onAdContainerViewed(data);\n // Emits ad_container_rendered event.\n this.emitEvent('ad_container_viewed', {\n name: 'ad_container_viewed',\n data: {\n adContainerId: data.adContainerId,\n searchTerm: data.searchTerm,\n },\n });\n }\n /**\n * Perform various actions when the input is cleared\n */\n handleInputCleared() {\n this.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n this.adClient?.onInputCleared();\n }\n getResponseItems = (props) => {\n const getResponseItemsDebounced = async () => {\n /**\n * Handles search response from the search client.\n */\n (async () => {\n if (!this.searchClient) {\n console.error('Search client was not initialized.');\n return;\n }\n let response;\n try {\n response = await this.searchClient.getSearchResponseItems(props.requestProperties, false);\n }\n catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n if (!response) {\n Logger.info('Search request error: Search response was undefined');\n return;\n }\n const items = (response.data.hits || [])\n .filter((hit) => !!hit.doc)\n .map((hit) => ({\n id: nanoid(),\n document: hit.doc || { id: -1 },\n source_index: hit.source_index,\n type: 'SearchDocument',\n }));\n /**\n * Handles sending a supplemental search request (For getting top-level facet counts)\n */\n let supplementalResponse;\n if (typeof props.requestProperties === 'object') {\n if (props.requestProperties.facetPathsForIndexFields &&\n Object.keys(props.requestProperties.facetPathsForIndexFields)\n .length > 0) {\n const { facetPathsForIndexFields: _, ...supplementalRequestProperties } = props.requestProperties;\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(supplementalRequestProperties, true);\n }\n catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n else if (typeof props.requestProperties === 'string') {\n // Handle supplemental search for initialQuery with filters\n const requestObj = JSON.parse(props.requestProperties);\n // Check if there are any filter queries (queries beyond the base query)\n const queryArray = Array.isArray(requestObj.query)\n ? requestObj.query\n : [requestObj.query];\n if (queryArray.length > 1) {\n // Remove filter queries to get base query for supplemental search\n const baseQuery = queryArray.filter((q) => q.occur !== 'must');\n const supplementalRequest = {\n ...requestObj,\n query: baseQuery.length > 0 ? baseQuery : queryArray.slice(0, 1),\n };\n try {\n supplementalResponse =\n await this?.searchClient?.getSearchResponseItems(JSON.stringify(supplementalRequest), true);\n }\n catch (error) {\n Logger.info(`Search request error: ${error}`);\n return;\n }\n }\n }\n this.store.setState({\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken,\n searchResultsCount: response.data.count,\n searchResponseFacetPrime: response.data.facets,\n supplementalFacetPrime: supplementalResponse?.data.facets,\n searchClientRequestProperties: props.requestProperties,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedSearchClientResponseItems: items,\n cachedSearchResponseFacetPrime: response.data.facets,\n cachedSupplementalFacetPrime: supplementalResponse?.data.facets,\n cachedSearchResponseTimeTaken: response.data.time_taken,\n cachedSearchResultsCount: response.data.count,\n cachedSearchClientRequestProperties: props.requestProperties,\n }),\n });\n })();\n /**\n * Handles ad response from the ad client.\n */\n (async () => {\n if (this.adClient && typeof props.requestProperties !== 'string') {\n const items = await this.adClient.getAds(props.requestProperties);\n this.store.setState({\n adClientResponseItems: items,\n ...(props.shouldCacheResultsForEmptyState && {\n cachedAdClientResponseItems: items,\n }),\n });\n }\n })();\n };\n clearTimeout(this.requestTimeout);\n if (this.config.searchDebounceDelay) {\n this.requestTimeout = setTimeout(getResponseItemsDebounced, this.config.searchDebounceDelay);\n }\n else {\n getResponseItemsDebounced();\n }\n };\n}\n\nconst name = \"@searchcraft/javascript-sdk\";\nconst version = \"0.13.2\";\n\n/**\n * @fileoverview entry point for your component library\n *\n * This is the entry point for your component library. Use this file to export utilities,\n * constants or data structure that accompany your components.\n *\n * DO NOT use this file to export your components. Instead, use the recommended approaches\n * to consume components of this package as outlined in the `README.md`.\n */\n/**\n * The consumer-facing `Searchcraft` class.\n */\nclass Searchcraft extends SearchcraftCore {\n constructor(config, searchcraftId = undefined) {\n super(config, {\n sdkName: name,\n sdkVersion: version,\n }, searchcraftId);\n }\n}\n\nexport { Searchcraft, SearchcraftCore };\n//# sourceMappingURL=index.js.map\n\n//# sourceMappingURL=index.js.map\nexport { defineCustomElements } from './defineCustomElements.js?v=0.13.2';\n","import { defineComponent, useSlots, createSSRApp, compile, ref, onMounted, getCurrentInstance, inject, h, withDirectives } from 'vue';\n\nconst LOG_PREFIX = '[vue-output-target]';\n/**\n * returns true if the value is a primitive, e.g. string, number, boolean\n * @param value - the value to check\n * @returns true if the value is a primitive, false otherwise\n */\nfunction isPrimitive(value) {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\nfunction defineStencilSSRComponent(options) {\n return defineComponent({\n async setup(props, context) {\n /**\n * resolve light dom into a string\n */\n const slots = useSlots();\n let renderedLightDom = '';\n if (typeof slots.default === 'function') {\n const ssrLightDom = createSSRApp({ render: () => slots.default() });\n const { renderToString: vueRenderToString } = await import('vue/server-renderer');\n renderedLightDom = await vueRenderToString(ssrLightDom, { context });\n }\n /**\n * compose element props into a string\n */\n let stringProps = '';\n for (const [key, value] of Object.entries(props)) {\n if (typeof value === 'undefined') {\n continue;\n }\n /**\n * Stencils metadata tells us which properties can be serialized\n */\n const propName = options.props?.[key][1];\n const propValue = isPrimitive(value)\n ? typeof value === 'boolean'\n ? /**\n * omit boolean properties that are false all together\n */\n value\n ? '\"true\"'\n : undefined\n : `\"${value}\"`\n : Array.isArray(value) && value.every(isPrimitive)\n ? JSON.stringify(value)\n : undefined;\n if (!propName || !propValue) {\n console.warn(`${LOG_PREFIX} ignore component property \"${key}\" for ${options.tagName} ` +\n \"- property type is unknown or not a primitive and can't be serialized\");\n continue;\n }\n stringProps += ` ${propName}=${propValue}`;\n }\n /**\n * transform component into Declarative Shadow DOM by lazy loading the hydrate module\n */\n const toSerialize = `<${options.tagName}${stringProps}>${renderedLightDom}</${options.tagName}>`;\n const { renderToString } = await options.hydrateModule;\n const { html } = await renderToString(toSerialize, {\n fullDocument: false,\n serializeShadowRoot: true,\n });\n if (!html) {\n throw new Error(`'${options.tagName}' component did not render anything.`);\n }\n return compile(html\n /**\n * by default Vue strips out the <style> tag, so this little trick\n * makes it work by wrapping it in a component tag\n */\n .replace('<style>', `<component :is=\"'style'\">`)\n .replace('</style>', '</component>'), {\n comments: true,\n isCustomElement: (tag) => tag === options.tagName,\n });\n },\n props: Object.entries(options.props || {}).reduce((acc, [key, value]) => {\n acc[key] = value[0];\n return acc;\n }, {}),\n /**\n * the template tags can be arbitrary as they will be replaced with above compiled template\n */\n template: '<div></div>',\n });\n}\n\nconst UPDATE_VALUE_EVENT = 'update:modelValue';\nconst MODEL_VALUE = 'modelValue';\nconst ROUTER_LINK_VALUE = 'routerLink';\nconst NAV_MANAGER = 'navManager';\nconst ROUTER_PROP_PREFIX = 'router';\nconst ARIA_PROP_PREFIX = 'aria';\n/**\n * Starting in Vue 3.1.0, all properties are\n * added as keys to the props object, even if\n * they are not being used. In order to correctly\n * account for both value props and v-model props,\n * we need to check if the key exists for Vue <3.1.0\n * and then check if it is not undefined for Vue >= 3.1.0.\n * See https://github.com/vuejs/vue-next/issues/3889\n */\nconst EMPTY_PROP = Symbol();\nconst DEFAULT_EMPTY_PROP = { default: EMPTY_PROP };\nconst getComponentClasses = (classes) => {\n return classes?.split(' ') || [];\n};\nconst getElementClasses = (ref, componentClasses, defaultClasses = []) => {\n return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter((c, i, self) => !componentClasses.has(c) && self.indexOf(c) === i);\n};\n/**\n * Create a callback to define a Vue component wrapper around a Web Component.\n *\n * @prop name - The component tag name (i.e. `ion-button`)\n * @prop componentProps - An array of properties on the\n * component. These usually match up with the @Prop definitions\n * in each component's TSX file.\n * @prop emitProps - An array of for event listener on the Component.\n * these usually match up with the @Event definitions\n * in each compont's TSX file.\n * @prop customElement - An option custom element instance to pass\n * to customElements.define. Only set if `includeImportCustomElements: true` in your config.\n * @prop modelProp - The prop that v-model binds to (i.e. value)\n * @prop modelUpdateEvent - The event that is fired from your Web Component when the value changes (i.e. ionChange)\n */\nconst defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent) => {\n /**\n * Create a Vue component wrapper around a Web Component.\n * Note: The `props` here are not all properties on a component.\n * They refer to whatever properties are set on an instance of a component.\n */\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n const Container = defineComponent((props, { attrs, slots, emit }) => {\n let modelPropValue = modelProp ? props[modelProp] : undefined;\n const containerRef = ref();\n const classes = new Set(getComponentClasses(attrs.class));\n onMounted(() => {\n /**\n * we register the event emmiter for @Event definitions\n * so we can use @event\n */\n emitProps.forEach((eventName) => {\n containerRef.value.addEventListener(eventName, (e) => {\n emit(eventName, e);\n });\n });\n });\n /**\n * This directive is responsible for updating any reactive\n * reference associated with v-model on the component.\n * This code must be run inside of the \"created\" callback.\n * Since the following listener callbacks as well as any potential\n * event callback defined in the developer's app are set on\n * the same element, we need to make sure the following callbacks\n * are set first so they fire first. If the developer's callback fires first\n * then the reactive reference will not have been updated yet.\n */\n const vModelDirective = {\n created: (el) => {\n const eventsNames = (Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent]).map((ev) => ev.replace(/-([a-z])/g, (g) => g[1].toUpperCase()));\n eventsNames.forEach((eventName) => {\n el.addEventListener(eventName, (e) => {\n /**\n * Only update the v-model binding if the event's target is the element we are\n * listening on. For example, Component A could emit ionChange, but it could also\n * have a descendant Component B that also emits ionChange. We only want to update\n * the v-model for Component A when ionChange originates from that element and not\n * when ionChange bubbles up from Component B.\n */\n if (e.target.tagName === el.tagName && modelProp) {\n modelPropValue = (e?.target)[modelProp];\n emit(UPDATE_VALUE_EVENT, modelPropValue);\n }\n });\n });\n },\n };\n const currentInstance = getCurrentInstance();\n const hasRouter = currentInstance?.appContext?.provides[NAV_MANAGER];\n const navManager = hasRouter ? inject(NAV_MANAGER) : undefined;\n const handleRouterLink = (ev) => {\n const { routerLink } = props;\n if (routerLink === EMPTY_PROP)\n return;\n if (navManager !== undefined) {\n /**\n * This prevents the browser from\n * performing a page reload when pressing\n * an Ionic component with routerLink.\n * The page reload interferes with routing\n * and causes ion-back-button to disappear\n * since the local history is wiped on reload.\n */\n ev.preventDefault();\n let navigationPayload = { event: ev };\n for (const key in props) {\n const value = props[key];\n if (props.hasOwnProperty(key) && key.startsWith(ROUTER_PROP_PREFIX) && value !== EMPTY_PROP) {\n navigationPayload[key] = value;\n }\n }\n navManager.navigate(navigationPayload);\n }\n else {\n console.warn('Tried to navigate, but no router was found. Make sure you have mounted Vue Router.');\n }\n };\n return () => {\n modelPropValue = props[modelProp];\n getComponentClasses(attrs.class).forEach((value) => {\n classes.add(value);\n });\n // @ts-expect-error\n const oldClick = props.onClick;\n const handleClick = (ev) => {\n if (oldClick !== undefined) {\n oldClick(ev);\n }\n if (!ev.defaultPrevented) {\n handleRouterLink(ev);\n }\n };\n let propsToAdd = {\n ref: containerRef,\n class: getElementClasses(containerRef, classes),\n onClick: handleClick,\n };\n /**\n * We can use Object.entries here\n * to avoid the hasOwnProperty check,\n * but that would require 2 iterations\n * where as this only requires 1.\n */\n for (const key in props) {\n const value = props[key];\n if ((props.hasOwnProperty(key) && value !== EMPTY_PROP) || key.startsWith(ARIA_PROP_PREFIX)) {\n propsToAdd[key] = value;\n }\n /**\n * register event handlers on the component\n */\n const eventHandlerKey = 'on' + key.slice(0, 1).toUpperCase() + key.slice(1);\n const eventHandler = attrs[eventHandlerKey];\n if (containerRef.value && attrs.hasOwnProperty(eventHandlerKey) && 'addEventListener' in containerRef.value) {\n containerRef.value.addEventListener(key, eventHandler);\n }\n }\n if (modelProp) {\n /**\n * If form value property was set using v-model\n * then we should use that value.\n * Otherwise, check to see if form value property\n * was set as a static value (i.e. no v-model).\n */\n if (props[MODEL_VALUE] !== EMPTY_PROP) {\n propsToAdd = {\n ...propsToAdd,\n [modelProp]: props[MODEL_VALUE],\n };\n }\n else if (modelPropValue !== EMPTY_PROP) {\n propsToAdd = {\n ...propsToAdd,\n [modelProp]: modelPropValue,\n };\n }\n }\n // If router link is defined, add href to props\n // in order to properly render an anchor tag inside\n // of components that should become activatable and\n // focusable with router link.\n if (ROUTER_LINK_VALUE in props && props[ROUTER_LINK_VALUE] !== EMPTY_PROP) {\n propsToAdd = {\n ...propsToAdd,\n href: props[ROUTER_LINK_VALUE],\n };\n }\n /**\n * vModelDirective is only needed on components that support v-model.\n * As a result, we conditionally call withDirectives with v-model components.\n */\n const node = h(name, propsToAdd, slots.default && slots.default());\n return modelProp === undefined ? node : withDirectives(node, [[vModelDirective]]);\n };\n });\n if (typeof Container !== 'function') {\n let emits = [];\n let props = {};\n props[ROUTER_LINK_VALUE] = DEFAULT_EMPTY_PROP;\n componentProps.forEach((componentProp) => (props[componentProp] = DEFAULT_EMPTY_PROP));\n emits = emitProps;\n if (modelProp) {\n props[MODEL_VALUE] = DEFAULT_EMPTY_PROP;\n emits.push(UPDATE_VALUE_EVENT);\n }\n /**\n * Add emit props to the component.\n * This is necessary for Vue to know\n * which events to listen to.\n * @see https://v3.vuejs.org/guide/component-custom-events.html#event-names\n */\n // @ts-expect-error\n Container.name = name;\n // @ts-expect-error\n Container.emits = emits;\n // @ts-expect-error\n Container.props = props;\n }\n return Container;\n};\n\nexport { defineContainer, defineStencilSSRComponent };\n","/* eslint-disable */\n/* tslint:disable */\n/* auto-generated vue proxies */\nimport { defineContainer } from '@stencil/vue-output-target/runtime';\n\nimport type { JSX } from '@searchcraft/javascript-sdk';\n\n\n\n\nexport const SearchcraftFilterPanel = /*@__PURE__*/ defineContainer<JSX.SearchcraftFilterPanel>('searchcraft-filter-panel', () => {}, [\n 'searchcraftId',\n 'items',\n 'responsiveBreakpoint',\n 'responsiveBehavior'\n]);\n\n\nexport const SearchcraftInputForm = /*@__PURE__*/ defineContainer<JSX.SearchcraftInputForm>('searchcraft-input-form', () => {}, [\n 'searchcraftId',\n 'autoSearch',\n 'buttonPlacement',\n 'buttonLabel',\n 'inputLabel',\n 'placeholderValue',\n 'placeholderBehavior',\n 'value',\n 'inputFocus',\n 'inputBlur',\n 'inputInit'\n], [\n 'inputFocus',\n 'inputBlur',\n 'inputInit'\n]);\n\n\nexport const SearchcraftPagination = /*@__PURE__*/ defineContainer<JSX.SearchcraftPagination>('searchcraft-pagination', () => {}, [\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftPopoverButton = /*@__PURE__*/ defineContainer<JSX.SearchcraftPopoverButton>('searchcraft-popover-button', () => {}, [\n 'template',\n 'type',\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftPopoverForm = /*@__PURE__*/ defineContainer<JSX.SearchcraftPopoverForm>('searchcraft-popover-form', () => {}, [\n 'type',\n 'popoverResultMappings',\n 'hotkey',\n 'hotkeyModifier',\n 'searchcraftId',\n 'placeholderValue',\n 'placeholderBehavior'\n]);\n\n\nexport const SearchcraftResultsInfo = /*@__PURE__*/ defineContainer<JSX.SearchcraftResultsInfo>('searchcraft-results-info', () => {}, [\n 'template',\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftSearchResults = /*@__PURE__*/ defineContainer<JSX.SearchcraftSearchResults>('searchcraft-search-results', () => {}, [\n 'searchcraftId',\n 'initialQuery',\n 'template'\n]);\n\n\nexport const SearchcraftSearchResultsPerPage = /*@__PURE__*/ defineContainer<JSX.SearchcraftSearchResultsPerPage>('searchcraft-search-results-per-page', () => {}, [\n 'increment',\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftSummaryBox = /*@__PURE__*/ defineContainer<JSX.SearchcraftSummaryBox>('searchcraft-summary-box', () => {}, [\n 'searchcraftId'\n]);\n\n\nexport const SearchcraftTheme = /*@__PURE__*/ defineContainer<JSX.SearchcraftTheme>('searchcraft-theme', () => {});\n\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftSearchResults as Component } from '../stencil-web-components';\n\n/**\n * The Props Used by the `SearchcraftSearchResults` Component.\n */\ninterface SearchcraftSearchResultsProps\n extends Components.SearchcraftSearchResults {}\n\n/**\n * A component that renders a list of search results with customizable styles, layout, and link behavior.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftSearchResults from '@searchcraft/vue-sdk';\n * import searchResultMappings from './searchResultMappings';\n *\n * const handleNoResults = () => {\n * console.log(\"No search results found\");\n * };\n * </script>\n *\n * <template>\n * <SearchcraftSearchResults\n * :searchResultMappings=\"searchResultMappings\"\n * resultImagePlacement=\"left\"\n * buttonLabel=\"View More\"\n * buttonTarget=\"_blank\"\n * buttonRel=\"noopener\"\n * containerTarget=\"_self\"\n * containerRel=\"nofollow\"\n * @noResults=\"handleNoResults\"\n * />\n * </template>\n * ```\n */\nconst SearchcraftSearchResults = Component;\n\nexport { SearchcraftSearchResults };\n\nexport type { SearchcraftSearchResultsProps };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftFilterPanel as Component } from '../stencil-web-components';\n\n/**\n * The props used by the SearchcraftFilterPanel.\n */\ninterface SearchcraftFilterPanelProps\n extends Components.SearchcraftFilterPanel {}\n\n/**\n * A component that represents a filter panel UI view, allowing users to refine and control their search queries by applying various filter criteria.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftFilterPanel from '@my-library/vue';\n * import filterItems from './filterItems';\n * </script>\n *\n * <template>\n * <SearchcraftFilterPanel :items=\"filterItems\" />\n * </template>\n * ```\n */\nconst SearchcraftFilterPanel = Component;\n\nexport { SearchcraftFilterPanel };\n\nexport type { SearchcraftFilterPanelProps };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftInputForm as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftInputForm component.\n */\nexport interface SearchcraftInputFormProps\n extends Components.SearchcraftInputForm {}\n\n/**\n * A component that provides a user-friendly interface for querying an indexed dataset,\n * enabling users to easily search large collections of data. It abstracts the complexities\n * of index-based searching, making it accessible to users of all technical levels.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftInputForm from '@searchcraft/vue-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n *\n * const handleQuerySubmit = (event) => {\n * console.log(\"Query submitted\", event.detail);\n * };\n * </script>\n *\n * <template>\n * <SearchcraftInputForm\n * :config=\"searchcraftConfig\"\n * :autoSearch=\"true\"\n * buttonPlacement=\"right\"\n * buttonLabel=\"Search\"\n * inputLabel=\"Search Database\"\n * :customStyles=\"{ border: '1px solid gray', padding: '5px' }\"\n * placeholderValue=\"Search here...\"\n * searchTerm=\"\"\n * @querySubmit=\"handleQuerySubmit\"\n * @inputCleared=\"() => console.log('Input cleared')\"\n * @noResultsReceived=\"() => console.log('No results found')\"\n * @inputFocus=\"() => console.log('Input focused')\"\n * @inputBlur=\"() => console.log('Input blurred')\"\n * @inputInit=\"() => console.log('Input initialized')\"\n * />\n * </template>\n * ```\n */\nconst SearchcraftInputForm = Component;\n\nexport { SearchcraftInputForm };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverButton as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftPopoverButton.\n */\nexport interface SearchcraftPopoverButtonProps\n extends Components.SearchcraftPopoverButton {}\n\n/**\n * A button component that, when clicked, toggles the visibility of a popover.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftPopoverButton from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftPopoverButton>\n * Open Popover\n * </SearchcraftPopoverButton>\n * </template>\n * ```\n */\nconst SearchcraftPopoverButton = Component;\n\nexport { SearchcraftPopoverButton };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverForm as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftPopoverForm.\n */\nexport interface SearchcraftPopoverFormProps\n extends Components.SearchcraftPopoverForm {}\n\n/**\n * A component that displays search results in a popover container that dynamically appears\n * when the user interacts with a search input field, or when a Popover Button has been clicked.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftPopoverForm from '@searchcraft/vue-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n * import popoverResultMappings from './popoverResultMappings';\n * </script>\n *\n * <template>\n * <SearchcraftPopoverForm\n * :config=\"searchcraftConfig\"\n * type=\"fullscreen\"\n * :popoverResultMappings=\"popoverResultMappings\"\n * hotkey=\"k\"\n * hotkeyModifier=\"meta\"\n * />\n * </template>\n * ```\n */\nconst SearchcraftPopoverForm = Component;\n\nexport { SearchcraftPopoverForm };\n","import type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftResultsInfo as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftResultsInfo component.\n */\nexport interface SearchcraftResultsInfoProps\n extends Components.SearchcraftResultsInfo {}\n\n/**\n * This Vue component is designed to display the number of results returned from a search query.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftResultsInfo from '@searchcraft/vue-sdk';\n *\n * const customFormatter = (range, count, responseTime) =>\n * `${range[0]}-${range[1]} of ${count} results in ${responseTime}ms`;\n * </script>\n *\n * <template>\n * <SearchcraftResultsInfo :customFormatter=\"customFormatter\" />\n * </template>\n * ```\n */\nconst SearchcraftResultsInfo = Component;\nexport { SearchcraftResultsInfo };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftTheme as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftTheme component.\n */\nexport interface SearchcraftThemeProps extends Components.SearchcraftTheme {}\n\n/**\n * A component that applies Searchcraft's built-in CSS theme to your page.\n * It does not render anything visible—its only function is to manage the CSS styles on the page.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftTheme from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftTheme />\n * </template>\n * ```\n */\nconst SearchcraftTheme = Component;\n\nexport { SearchcraftTheme };\n","import type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftPagination as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftPagination component.\n */\nexport interface SearchcraftPaginationProps\n extends Components.SearchcraftPagination {}\n\n/**\n * This React component is designed to facilitate pagination of search results.\n * Once a query is submitted, calculates the number for pages.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftPagination from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftPagination />\n * </template>\n * ```\n */\nconst SearchcraftPagination = Component;\nexport { SearchcraftPagination };\n","import type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftSearchResultsPerPage as Component } from '../stencil-web-components';\n\n/**\n * The Props for the SearchcraftSearchResultsPerPage component.\n */\nexport interface SearchcraftSearchResultsPerPageProps\n extends Components.SearchcraftSearchResultsPerPage {}\n\n/**\n * This Vue component is designed to choose the number of search results displayed.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftSearchResultsPerPage from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftSearchResultsPerPage increment=\"20\" />\n * </template>\n * ```\n */\nconst SearchcraftSearchResultsPerPage = Component;\nexport { SearchcraftSearchResultsPerPage };\n","import type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftSummaryBox as Component } from '../stencil-web-components';\n\n/**\n * The Props Used by the `SearchcraftSummaryBox` Component.\n */\ninterface SearchcraftSummaryBoxProps extends Components.SearchcraftSummaryBox {}\n\n/**\n * This React component displays an ai-generated summary of the given search term.\n *\n * @example\n * ```vue\n * <script setup>\n * import SearchcraftSummaryBox from '@searchcraft/vue-sdk';\n * </script>\n *\n * <template>\n * <SearchcraftSummaryBox />\n * </template>\n * ```\n */\nconst SearchcraftSummaryBox = Component;\n\nexport { SearchcraftSummaryBox };\n\nexport type { SearchcraftSummaryBoxProps };\n","import {\n type SearchcraftConfig,\n SearchcraftCore,\n} from '@searchcraft/javascript-sdk';\nimport { defineCustomElements } from '@searchcraft/javascript-sdk';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../package.json';\n\n/**\n * Export all components and plugins for the Vue SDK here.\n */\nexport * from './components';\n\n/**\n * The consumer-facing Searchcraft class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(\n config: SearchcraftConfig,\n searchcraftId: string | undefined = undefined,\n ) {\n super(\n config,\n {\n sdkName: packageName,\n sdkVersion: packageVersion,\n },\n searchcraftId,\n );\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type * from '@searchcraft/javascript-sdk';\n\n/**\n * Call the javascript sdk's defineCustomElementsFunction\n */\ndefineCustomElements();\n"],"names":["NAMESPACE","BUILD","__defProp","__export","target","all","name","SVG_NS","HTML_NS","PrimitiveType","PrimitiveType2","NonPrimitiveType","NonPrimitiveType2","TYPE_CONSTANT","VALUE_CONSTANT","SERIALIZED_PREFIX","reWireGetterSetter","instance","hostRef","_a","cmpMeta","memberName","memberFlags","ogValue","ogDescriptor","getPropertyDescriptor","newValue","obj","desc","getHostRef","ref","registerHost","hostElement","r","isMemberInElement","elm","consoleError","e","el","CONTENT_REF_ID","ORG_LOCATION_ID","SLOT_NODE_ID","TEXT_NODE_ID","COMMENT_NODE_ID","HYDRATE_ID","HYDRATE_CHILD_ID","win","H","plt","h2","eventName","listener","opts","supportsShadow","promiseResolve","v","queuePending","queueDomReads","queueDomWrites","queueTask","queue","write","cb","nextTick","flush","consume","i2","writeTask","isComplexType","o","escapeRegExpSpecialCharacters","text","RemoteValue","_RemoteValue","serialized","type","value","item","map2","key","val","deserializedKey","deserializedValue","pattern","flags","set","serializedValues","result_exports","err","map","ok","unwrap","unwrapErr","result","fn","newVal","deserializeProperty","updateFallbackSlotVisibility","childNodes","internalCall","getHostSlotNodes","slotNode","getSlotChildSiblings","getSlotName","childNode","getSlottedChildNodes","slottedNode","hostName","slotName","slottedNodes","slot","includeSlot","node","isNodeLocatedInSlot","nodeToRelocate","addSlotRelocateNode","newChild","prepend","position","slottedNodeLocation","parent","appendMethod","slotRelocateNodes","n","a","b","patchSlotNode","assignedFactory","elementsOnly","toReturn","method","createTime","fnName","tagName","rootAppliedStyles","getScopeId","cmp","mode","h","nodeName","vnodeData","children","child","simple","lastSimple","vNodeChildren","walk","c","newVNode","classData","k","vdomFnUtils","vnode","tag","Host","isHost","convertToPublic","convertToPrivate","initializeClientHydrate","hostElm","hostId","_b","endHydrate","shadowRoot","childRenderNodes","slotNodes","shadowRootNodes","initializeDocumentHydrate","clientHydrate","crIndex","crLength","childRenderNode","orgLocationId","orgLocationNode","scopeId3","styleSheet","hosts","snLen","snIndex","slotGroup","snGroupIdx","snGroupLen","slottedItem","hostEle","parentVNode","childNodeType","childIdSplt","childVNode","createSimpleVNode","addSlot","nonShadowNodes","findCorrespondingNode","orgLocNodes","componentId","slotId","parentNodeId","shouldMove","addSlottedNodes","slotNodeId","sibling","createSupportsRuleRe","selector","safeSelector2","parsePropertyValue","propValue","propType","isFormAssociated","getElement","createEvent","detail","emitEvent","ev","setAccessor","oldValue","isSvg","initialRender","isProp","ln","classList","oldClasses","parseClassList","newClasses","scopeId2","prop","capture","CAPTURE_EVENT_SUFFIX","CAPTURE_EVENT_REGEX","isComplex","parseClassListRegex","updateElement","oldVnode","newVnode","isSvgMode2","isInitialRender","oldVnodeAttrs","newVnodeAttrs","sortedAttrNames","attrNames","attr","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","createElm","oldParentVNode","newParentVNode","childIndex","newVNode2","oldVNode","putBackInOriginalLocation","parentElm","recursive","oldSlotChildNodes","insertBefore","referenceNode","addVnodes","before","vnodes","startIdx","endIdx","containerElm","removeVnodes","index","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","relocateNode","newNode","reference","renderVdom","renderFnResults","isInitialLoad","_c","_d","rootVnode","relocateData","slotRefNode","parentNodeRef","insertBeforeNode","refNode","nextSibling","attachToAncestor","ancestorComponent","scheduleUpdate","dispatch","dispatchHooks","endSchedule","maybePromise","safeCall","enqueue","updateComponent","isPromisey","err2","endUpdate","rc","endRender","callRender","childrenPromises","postUpdate","postUpdateComponent","endPostUpdate","addHydratedFlag","appDidLoad","who","arg","getValue","propName","setValue","oldVal","areBothNaN","watchMethods","watchMethodName","proxyComponent","Cstr","prototype","members","origGetter","origSetter","attrNameToPropName","attrName","_a2","flags2","entry","callbackName","propFlags","m","propDesc","_","initializeComponent","hmrVersionId","cmpTag","schedule","fireConnectedCallback","connectedCallback","endConnected","setContentReference","contentRefElm","disconnectedCallback","proxyCustomElement","compactMeta","originalConnectedCallback","originalDisconnectedCallback","Fragment","transformTag","getDefaultExportFromCjs","x","classnames","hasRequiredClassnames","requireClassnames","module","hasOwn","classNames","classes","i","appendClass","parseValue","newClass","classnamesExports","DEFAULT_CORE_INSTANCE_ID","CoreInstanceRegistry","__publicField","coreInstance","searchcraftId","id","callback","onAvailable","registry","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","apply","construct","func","thisArg","_len","args","_key","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","array","transformCaseFunc","l","element","lcElement","cleanArray","clone","object","newObject","property","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","window","DOMPurify","root","document","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parentTagName","_forceRemove","_removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_isClobbered","_isNode","_executeHooks","currentNode","data","hook","_sanitizeElements","content","_isBasicCustomElement","parentNode","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","namespaceURI","attrValue","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","entryPoint","hookFunction","purify","strings","values","urlAlphabet","nanoid","size","bytes","SearchcraftPopoverListItemAd","state","requestProperties","core","currentState","templateHtml","_e","templateRenderFunction","containerId","nativoClassName","defineCustomElement","defineCustomElement$1","SearchcraftButton","SearchcraftErrorMessage","getFacetTreeNodeAtPath","tree","nodePaths","cursor","nodePath","deepMergeWithSpread","obj1","obj2","removeSubstringMatches","arr","otherEntry","otherIndex","mergeFacetTrees","currentTree","incomingTree","mergedTree","merge","currentBranch","mergedBranch","incomingBranch","facetWithChildrenArrayToCompleteFacetTree","rootArray","exclude","allFacets","collect","path","count","segments","shouldExclude","excludeValue","segment","prefixPath","SearchcraftFacetList","char","actionType","incomingFacetRoot","facet","incomingFacetsWithChildrenArray","incomingFacetTree","supplementalFacetRoot","supplementalFacetsWithChildrenArray","supplementalFacetTree","collectedFacetArray","pathName","wasFoundInFacetTree","pathKeyName","_state","isInitialQuery","requestObj","filterQueries","q","currentFilters","updatedPaths","testPath","acc","str","paths","pathsWithParentPathsRemoved","keyName","isChildSelected","isSelected","shouldRenderChildren","_event","getDocumentValueFromSearchResultMapping","mapping","fieldNameDetails","valueFound","formatRelativeDate","formatNumberWithCommas","number","dateInput","locale","options","date","diffMillis","oneMonthInMillis","diffSeconds","diffMinutes","diffHours","diffDays","relativeTimeFormat","getStartOf","timestamp","unit","offset","d","getDifferenceInUnits","startTime","endTime","start","end","getOrdinal","getFormattedDateString","granularity","monthFormatter","timeFormatter","throttle","delayInMilliseconds","isThrottleOnCooldown","trailingCallArgs","invokeAction","nextArgs","SearchcraftSlider","startTimestamp","endTimestamp","event","inputElement","dateOffset","startPercent","endPercent","startLabel","endLabel","SearchcraftToggleButton","SearchcraftFilterPanel$1","prevState","autoVisibility","currentVisibility","shouldBeVisible","isVisible","dateItem","startingMinDate","startingMaxDate","min","max","fieldName","_f","isActive","filterItem","maxDate","defineCustomElement$4","defineCustomElement$3","defineCustomElement$2","SearchcraftInputLabel","SearchcraftInputForm","input","isShowingClearButton","inputGridClassNames","inputGridStyles","SearchcraftPagination$1","page","SearchcraftPopoverButton$1","userAgent","SearchcraftPopoverFooter","SearchcraftPopoverListItem","document_position","search_term","number_of_documents","SearchcraftPopoverListView","itemsToRender","interstitialInterval","interstitialQuantity","adStartQuantity","adEndQuantity","_h","_g","searchItems","interstitialStartIndex","_j","_i","SearchcraftPopoverForm$1","computedStyle","hostElementInput","direction","listItems","currentIndex","isListViewVisible","defineCustomElement$9","defineCustomElement$8","defineCustomElement$7","defineCustomElement$6","defineCustomElement$5","SearchcraftResultsInfo$1","SearchcraftSearchResult","link","error","SearchcraftSearchResults$1","items","searchClientResponseItems","SearchcraftSelect","label","selected","SearchcraftSearchResultsPerPage$1","_getDefaults","_defaults","changeDefaults","newDefaults","noopTest","edit","regex","opt","source","valSource","other","bull","indent","newline","blockCode","fences","hr","heading","bullet","lheadingCore","lheading","lheadingGfm","_paragraph","blockText","_blockLabel","def","list","_tag","_comment","paragraph","blockquote","blockNormal","gfmTable","blockGfm","blockPedantic","escape","inlineCode","br","inlineText","_punctuation","_punctuationOrSpace","_notPunctuationOrSpace","punctuation","_punctuationGfmStrongEm","_punctuationOrSpaceGfmStrongEm","_notPunctuationOrSpaceGfmStrongEm","blockSkip","emStrongLDelimCore","emStrongLDelim","emStrongLDelimGfm","emStrongRDelimAstCore","emStrongRDelimAst","emStrongRDelimAstGfm","emStrongRDelimUnd","anyPunctuation","autolink","_inlineComment","_inlineLabel","reflink","nolink","reflinkSearch","inlineNormal","inlinePedantic","inlineGfm","inlineBreaks","block","inline","escapeReplacements","getEscapeReplacement","ch","escape2","html2","encode","cleanUrl","href","splitCells","tableRow","row","match","escaped","curr","cells","rtrim","invert","suffLen","findClosingBracket","level","outputLink","cap","link2","raw","lexer2","rules","title","token","indentCodeCompensation","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","_Tokenizer","options2","src","trimmed","lines","tokens","inBlockquote","currentLines","currentRaw","currentText","top","lastToken","oldToken","newText","newToken","isordered","list2","itemRegex","endsWithBlankLine","endEarly","itemContents","line","t","nextLine","blankLine","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","htmlBeginRegex","rawLine","nextLineWithoutTabs","istask","ischecked","lastItem","spacers","hasMultipleLineBreaks","tag2","headers","aligns","rows","align","cell","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","links","linkString","maskedSrc","prevChar","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","lastCharLength","text2","hasNonSpaceChars","hasSpaceCharsOnBothEnds","prevCapZero","_Lexer","__Lexer","next","lastParagraphClipped","extTokenizer","cutSrc","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","_Renderer","lang","langString","code","depth","ordered","startAttr","itemBody","checkbox","checked","header","cleanHref","out","_TextRenderer","_Parser","__Parser","anyToken","genericToken","ret","textToken","renderer","_Hooks","markdown","Marked","tableToken","listToken","childTokens","tokens2","extensions","pack","ext","prevRenderer","args2","extLevel","rendererProp","rendererFunc","tokenizer","tokenizerProp","tokenizerFunc","prevTokenizer","hooksProp","hooksFunc","prevHook","ret2","walkTokens2","packWalktokens","blockType","origOpt","throwError","parser2","src2","silent","async","msg","markedInstance","marked","SearchcraftSummaryBox$1","contentElement","styles","SearchcraftTheme$1","defineCustomElements","define_searchcraft_ad","define_searchcraft_button","define_searchcraft_error_message","define_searchcraft_facet_list","define_searchcraft_filter_panel","define_searchcraft_input_form","define_searchcraft_input_label","define_searchcraft_loading","define_searchcraft_pagination","define_searchcraft_popover_button","define_searchcraft_popover_footer","define_searchcraft_popover_form","define_searchcraft_popover_list_item","define_searchcraft_popover_list_view","define_searchcraft_results_info","define_searchcraft_search_result","define_searchcraft_search_results_per_page","define_searchcraft_search_results","define_searchcraft_select","define_searchcraft_slider","define_searchcraft_summary_box","define_searchcraft_theme","define_searchcraft_toggle_button","LogLevel","SearchcraftLogger","message","Logger","u","s","f","p","g","y","S","M","E","P","A","C","T","R","I","O","L","D","B","U","F","AdClient","config","_properties","_response","_data","AdMarketplaceClient","admConfig","admResponse","productAds","ad","textAds","CustomAdClient","AD_CALL_AFTER_FETCH_DELAY","NativoClient","response","delay","scriptTag","MEASURE_REQUEST_DEBOUNCE","MeasureClient","sdkInfo","userId","userType","properties","user","request","url","payload","removeTrailingSlashFromURL","endpointURL","sanitize","sanitizedStr","SEARCH_COMPLETED_EVENT_DEBOUNCE","SearchClient","isSupplemental","searchTerm","abortController","searchClientRequest","queries","occur","query","createStoreImpl","createState","listeners","setState","partial","replace","nextState","previousState","getState","api","initialState","createStore","DEBOUNCE_DELAY","SummaryClient","get","begin","indexName","endpointUrl","fetchResponse","reader","decoder","finishedReading","done","chunk","initialSearchcraftStateValues","existingStores","createSearchcraftStore","newStore","functions","facetPaths","rangeValue","currentPaths","currentValues","hasActiveFilters","hasNonDefaultPagination","hasNonDefaultSearchMode","initialQueryObj","modifiedRequest","searchClientRequestProperites","orderByField","sortType","perPage","hotkey","hotkeyModifier","initialHotkey","initialHotkeyModifier","SearchcraftCore","props","getResponseItemsDebounced","hit","supplementalResponse","supplementalRequestProperties","queryArray","baseQuery","supplementalRequest","ROUTER_LINK_VALUE","NAV_MANAGER","ROUTER_PROP_PREFIX","ARIA_PROP_PREFIX","EMPTY_PROP","DEFAULT_EMPTY_PROP","getComponentClasses","getElementClasses","componentClasses","defaultClasses","self","defineContainer","componentProps","emitProps","modelProp","modelUpdateEvent","Container","defineComponent","attrs","slots","emit","containerRef","onMounted","currentInstance","getCurrentInstance","navManager","inject","handleRouterLink","routerLink","navigationPayload","oldClick","handleClick","propsToAdd","eventHandlerKey","eventHandler","emits","componentProp","SearchcraftFilterPanel","SearchcraftPagination","SearchcraftPopoverButton","SearchcraftPopoverForm","SearchcraftResultsInfo","SearchcraftSearchResults","SearchcraftSearchResultsPerPage","SearchcraftSummaryBox","SearchcraftTheme","Component","Searchcraft","packageName","packageVersion"],"mappings":"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","x_google_ignoreList":[46]}