@telia-ace/widget-conversation-flamingo 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/conversation/conversation.d.ts.map +1 -1
- package/dist/{conversation-d7cd0ee9.js → conversation-d8f60ca8.js} +31 -23
- package/dist/{conversation-d7cd0ee9.js.map → conversation-d8f60ca8.js.map} +1 -1
- package/dist/{index-87a5d014.js → index-b38e12e1.js} +2 -2
- package/dist/{index-87a5d014.js.map → index-b38e12e1.js.map} +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-87a5d014.js","sources":["../../../node_modules/.pnpm/@webprovisions+bootstrapping@1.0.13/node_modules/@webprovisions/bootstrapping/dist/index.js","../../../node_modules/.pnpm/@webprovisions+platform@1.1.4/node_modules/@webprovisions/platform/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-utilities@1.0.16/node_modules/@telia-ace/widget-utilities/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-core@1.0.27/node_modules/@telia-ace/widget-core/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-services@1.0.27/node_modules/@telia-ace/widget-services/dist/index.js","../src/conversation-history.ts","../src/agent.ts","../src/conversation-provider.ts","../src/store.ts","../src/user.ts","../src/utils/swap-provider.ts","../src/conversation-controller.ts","../src/utils/open-chat-widget.ts","../src/conversation-platform.ts","../../runtime/dist/index-e248f756.js","../src/components/conversation/plugin.ts","../src/types.ts","../src/utils/custom-message.ts"],"sourcesContent":["const f = (n, t, e, ...r) => {\n const o = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(o, ...r);\n break;\n case \"warning\":\n console.warn(o, ...r);\n break;\n case \"error\":\n console.error(o, ...r);\n break;\n }\n}, E = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => f(t, \"info\", e, ...r),\n warn: (e, ...r) => f(t, \"warning\", e, ...r),\n error: (e, ...r) => f(t, \"error\", e, ...r)\n };\n}, b = (n, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let r = 0, o = e.length; r < o; r++) {\n const i = e[r].trim();\n if (i === n || i === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(n) > -1 : !1;\n}, x = (n, t) => {\n if (typeof t == \"function\")\n return t(n);\n const e = typeof t == \"string\" ? q(t) : t;\n return !(!b(n.tenant || \"\", e.tenant || \"\") || !b(n.name, e.implementation || \"\"));\n}, I = (n) => (t) => x(t, n), h = (n) => n instanceof Array && n.length === 1 ? n[0] : n, q = (n) => {\n const t = {}, e = n.split(\":\");\n return e.length === 1 ? t.implementation = h(e[0].split(\",\")) : (t.tenant = h(e[0].split(\",\")), t.implementation = h(e[1].split(\",\"))), t;\n};\nvar m = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(m || {}), g = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(g || {});\nconst L = (n, t, e, r) => {\n try {\n const o = new t(e, r);\n return {\n name: n,\n invoke: (i, s) => {\n let a;\n return o[i] && (a = o[i].call(o, s)), Promise.resolve(a);\n },\n getInstance: () => o\n };\n } catch (o) {\n if (o.message && o.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let s;\n return i === \"initialize\" && (s = t(e, r)), Promise.resolve(s);\n },\n getInstance: () => t\n };\n throw o;\n }\n};\nfunction y(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nclass O {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let o;\n typeof e == \"function\" ? o = {\n scope: m.Widget,\n stage: g.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : o = {\n scope: y(e.scope, m.Widget),\n stage: y(e.stage, g.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const s = t.split(\".\");\n return s.forEach((a, c) => {\n c === s.length - 1 ? i[a] || (i[a] = () => o) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst A = (n) => {\n const t = new O({});\n return n(t), t.get();\n};\nA((n) => {\n n.createCommand(\n \"types.register\",\n { scope: m.Implementation, stage: g.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: g.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: g.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: g.Pre },\n (t) => (e, r, o) => {\n const { container: i } = t;\n let s = null, a = e, c = r;\n typeof e == \"string\" && (s = e, a = r, c = o);\n const u = (l) => {\n const { transformPluginSettings: p } = t.container.get(\"$environmentOptions\"), k = p ? p(\n c || {},\n s,\n t.container,\n a\n ) : r;\n try {\n const d = L(\n s,\n a,\n i,\n k\n );\n i.get(\"$plugins\").push(d), l && d.invoke(\"initialize\", null);\n } catch (d) {\n E(t).warn(\"Error when initializing plugin\", d);\n }\n };\n t.container.get(\"$instance\") ? u(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => u(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nfunction S(n, t, e) {\n return Array.from(n.querySelectorAll(\n `div[id^=\"${t}_\"], div[id^=\"${t}:\"]`\n )).map((o) => {\n if (o.id.substr(0, 7) === `${t}_`)\n return { widgetName: o.id.substr(7), element: o };\n const { 3: i } = o.id.split(\":\");\n return { widgetName: i, element: o };\n });\n}\nconst W = (n) => {\n const t = n.map((e) => e.replace(/\\./g, \"\\\\.\")).join(\"|\");\n return new RegExp(\"^((http[s]?:)?//)?(\" + t + \")/([^\\\\s]+)\");\n}, R = (n) => n.href;\nfunction M(n, t) {\n const e = W(t), r = (i) => {\n const s = e.exec(R(i));\n return s ? {\n element: i,\n widget: s[4]\n } : null;\n };\n return Array.from(n.querySelectorAll(\"a\")).map((i) => r(i)).filter((i) => !!i).map((i) => ({\n element: i.element,\n widgetName: i.widget\n }));\n}\nfunction P(n) {\n return n.filter((t, e, r) => r.indexOf(t) === e);\n}\nclass N {\n constructor(t) {\n this.container = t.container, this.events = t.events;\n }\n watch(t) {\n const e = this.container.get(\"triggerElements\") || [], r = P(e.concat(t));\n this.container.register(\"triggerElements\", r), this.events.dispatch(\n \"bootstrap:trigger-elements-updated\",\n { triggerElements: r },\n { bubbles: !0 }\n );\n }\n}\nfunction C(n, ...t) {\n return n.implementation.events.subscribe(\"widget:create-instance\", (e, r) => {\n if (e.target === n) {\n let o = n.container.get(\"bootstrapping.monitor\");\n o || (o = new N(n), n.container.register(\"bootstrapping.monitor\", o)), o.watch(t);\n }\n }), n.load();\n}\nfunction $(n, t = document) {\n var s;\n const e = n.bindings, r = [].concat(\n M(t, e),\n S(t, ((s = n.environment) == null ? void 0 : s.name) || \"\")\n ), i = P(r.map(({ widgetName: a }) => a)).reduce((a, c) => {\n const u = n.widgets.get(c);\n if (!u)\n return process.env.NODE_ENV !== \"production\" && E(n).warn(`A trigger element for \"${c}\" was found but no widget with that name is available on the implementation (\"${n.name}\"). Make sure this is not a mistake.`), a;\n const l = r.filter((p) => p.widgetName === c).map((p) => p.element);\n return a.push(C(u, ...l)), a;\n }, []);\n return Promise.all(i);\n}\nfunction z() {\n return new Promise((n) => {\n document.readyState === \"loading\" ? document.addEventListener(\"DOMContentLoaded\", () => n()) : n();\n });\n}\nconst D = (n, t) => {\n const e = n;\n e.scan = (o) => $(e, o), e.bindings = t, e.attach = (o, ...i) => C(o, ...i);\n const { environment: r } = e;\n return typeof r.configure == \"undefined\" && (r.configure = (o, i) => {\n let s, a;\n i ? (s = o, a = i) : (s = \"*\", a = o), r.implementations.query(s).forEach((c) => c.configure(a)), r.events.subscribe(\"implementation:created\", (c, u) => {\n const { implementation: l } = u;\n I(s)(l) && l.configure(a);\n });\n }), e;\n};\nfunction B(n, t, e = () => [], r) {\n const o = { ready: !1 };\n n.container.register(\"bootstrapping\", o);\n const i = D(n, t);\n return z().then(() => {\n n.configure((...s) => {\n e().forEach((a) => a(...s));\n });\n }).then(() => $(i, r())).then(() => (o.ready = !0, n.events.dispatch(\"bootstrap:ready\", {}), i));\n}\nfunction _(n) {\n const t = {};\n return [].filter.call(n.attributes, (e) => /^data-/.test(e.name)).map((e) => e.name).forEach((e) => t[e.substr(5)] = n.getAttribute(e)), t;\n}\nconst v = (n, t, e) => {\n const r = _(n);\n e({\n sourceDOMElement: n,\n eventType: t,\n data: r\n });\n};\nfunction w(n, t, e) {\n n.forEach((r) => {\n r.dataset.attached !== \"true\" && (t === \"load\" ? v(r, t, e) : r.addEventListener(t, (o) => {\n o.preventDefault(), v(r, t, e);\n }), r.dataset.monitored = \"true\");\n });\n}\nfunction U(n, t, e) {\n const r = n.container.get(\"bootstrapping.monitor\");\n r && r.events.subscribe(\"bootstrap:trigger-elements-updated\", (i, s) => {\n w(\n s.triggerElements,\n t,\n e\n );\n });\n const o = n.container.get(\"triggerElements\");\n o && w(\n o,\n t,\n e\n );\n}\nconst j = (n, t, e) => {\n const r = n.split(\":\"), o = r[0], i = r.length > 1 ? r[1] : \"*\";\n return (t === \"*\" || o === t) && (e === \"*\" || i === e);\n};\nfunction V(n, t = \"*\", e = \"*\") {\n return n.filter((r) => {\n const o = r[0], i = r[1];\n return typeof o == \"string\" && typeof i == \"function\" ? j(o, t, e) : !1;\n }).map((r) => r[1]);\n}\nconst F = A((n) => {\n n.createCommand(\n \"ready\",\n { scope: m.Implementation, stage: g.Pre },\n (t) => (e) => {\n const { container: r } = t, o = r.owner;\n r.get(\"bootstrapping\").ready ? e(o) : o.events.subscribeOnce(\"bootstrap:ready\", () => {\n e(o);\n });\n }\n );\n});\nexport {\n F as ConfigurationApi,\n B as bootstrapImplementation,\n V as parseConfigurationHandlers,\n U as supportBootstrapping\n};\n//# sourceMappingURL=index.js.map\n","const z = /* @__PURE__ */ new WeakMap();\nfunction b() {\n return (s) => (z.has(s) || z.set(s, {}), z.get(s));\n}\nconst I = (s, t, e, ...n) => {\n const o = `[${s.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(o, ...n);\n break;\n case \"warning\":\n console.warn(o, ...n);\n break;\n case \"error\":\n console.error(o, ...n);\n break;\n }\n}, u = (s) => {\n const t = s.container || s;\n return {\n info: (e, ...n) => I(t, \"info\", e, ...n),\n warn: (e, ...n) => I(t, \"warning\", e, ...n),\n error: (e, ...n) => I(t, \"error\", e, ...n)\n };\n}, c = b(), M = (() => {\n let s = 0;\n return () => ++s;\n})(), _ = (s, t, e) => {\n const n = c(s).touchQueue.get(t);\n n && n.forEach((i) => {\n i(e, s);\n });\n};\nclass G {\n constructor(t, e, n, i) {\n this.key = t, this.factory = e, this.parent = n, this.container = i, this.id = M(), this.resolved = !1, this.constructed = !1, this.async = !0;\n }\n resolve() {\n if (!this.constructed) {\n const t = this.factory(this.parent, this.container);\n return this.constructed = !0, this.value = Promise.resolve(t).then((e) => (this.resolved = !0, _(this.container, this.key, e), e));\n }\n return this.value;\n }\n}\nclass J {\n constructor(t, e, n, i) {\n this.key = t, this.value = e, this.parent = n, this.container = i, this.id = M(), this.async = !1, this.resolved = !1, this.constructed = !0, this.resolve = () => (this.resolved = !0, _(this.container, this.key, this.value), this.value);\n }\n}\nclass X {\n constructor(t, e, n, i) {\n this.key = t, this.value = e, this.parent = n, this.container = i, this.id = M(), this.async = !1, this.resolved = !1, this.constructed = !1, this.resolve = () => {\n this.resolved = !0, this.constructed = !0;\n const r = this.value(this.parent, this.container);\n return _(this.container, this.key, this.value), r;\n };\n }\n}\nclass W {\n /**\n * Creates a new instance of `Container`.\n * @param owner The object owning this inctance.\n * @param name Optional name for the container.\n * @param parent Parent container this should be a child of.\n */\n constructor(t, e, n) {\n this.owner = t, this.name = e, this.parent = n, c(this).resolvers = /* @__PURE__ */ new Map(), c(this).touchQueue = /* @__PURE__ */ new Map(), c(this).children = [];\n }\n /**\n * Deletes an existing resolver by its unique id.\n * @param id Resolver id.\n */\n delete(t) {\n const e = c(this).resolvers, i = Array.from(e.values()).find((r) => r.id === t);\n return i ? (c(this).touchQueue.delete(i.key), Promise.resolve(e.delete(i.key))) : this.parent ? this.parent.delete(t) : Promise.resolve(!1);\n }\n /**\n * Clears the `Container` and any child containers by deleteing all registered resolvers.\n */\n clear() {\n const t = c(this).resolvers, e = Array.from(t.values());\n return Promise.all(e.map((n) => {\n if (n.constructed)\n return Promise.resolve(n.resolve()).then((i) => {\n if (i !== null && typeof i == \"object\" && typeof i.dispose == \"function\")\n return i.dispose.call(i, this, n);\n });\n })).then(() => {\n e.forEach((n) => this.delete(n.id)), c(this).children.forEach((n) => n.clear());\n });\n }\n /**\n * Detaches this `Container` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = c(this.parent).children, e = t.indexOf(this);\n e > -1 && (t.splice(e, 1), delete this.parent);\n }\n }\n /**\n * Provides a way of touching a value in the `Container` without forcing it to be resolved.\n * @param key Key of the resolved value to touch.\n * @param handler Handler function for touching the resolved value.\n */\n touch(t, e) {\n const i = c(this).resolvers.get(t);\n if (i && i.constructed)\n Promise.resolve(i.resolve()).then((o) => {\n e(o, this);\n });\n else {\n const o = c(this).touchQueue;\n let a = o.get(t);\n a || (a = [], o.set(t, a)), a.push(e);\n }\n return this.parent && !i ? this.parent.touch(t, e) : Promise.resolve();\n }\n /**\n * Registers an asynchronous resolver.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerAsync(t, e) {\n const n = c(this).resolvers.get(t);\n n && !n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering an async resolver with a key ('${t}') previously used by a non-async resolver.`);\n const i = new G(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers a factory resolver for constructing the value to be resolved.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerFactory(t, e) {\n const n = c(this).resolvers.get(t);\n n && n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new X(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers an synchronous resolver.\n * @param key Key of the resolver.\n * @param value Value.\n */\n register(t, e) {\n const n = c(this).resolvers.get(t);\n n && n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new J(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Gets the value for a synchronous resolver.\n * @param key Key of resolver to get.\n */\n get(t) {\n const e = c(this).resolvers.get(t);\n if (e)\n return e.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`You are retrieving an async value (with key '${t}') by the non-async function 'container.get(key)'. This will not be supported in future versions. Use 'container.getAsync(key) instead.'`), e.resolve();\n if (this.parent)\n return this.parent.get(t);\n }\n /**\n * Gets the value for a asynchronous resolver.\n * @param key Key of resolver to get.\n */\n getAsync(t) {\n const e = c(this).resolvers.get(t);\n if (e) {\n if (!e.async)\n throw process.env.NODE_ENV !== \"production\" && u(this).warn(`You are retrieving a non-async value (with key '${t}') by the async function 'container.getAsync(key)'.Use 'container.get(key) instead.'`), \"Mismatching resolver type\";\n return e.resolve();\n }\n return this.parent ? this.parent.getAsync(t) : Promise.resolve(void 0);\n }\n getMany(...t) {\n const e = {};\n return t.forEach((n) => e[n] = this.get(n)), e;\n }\n getManyAsync(...t) {\n const e = {};\n return Promise.all(t.map((n) => this.getAsync(n).then((i) => e[n] = i))).then(() => e);\n }\n createChild(t, e) {\n const n = new W(t, e, this);\n return c(this).children.push(n), n;\n }\n}\nclass L {\n /**\n * \n * @param type Type of event.\n * @param target The target of the event, which will handle the default behavour.\n * @param cancelable Whether the event is cancelable by calling preventDefault().\n * @param bubbles Whether the event will bubble up the parent hierarchy.\n */\n constructor(t, e, n = !1, i = !1) {\n this.type = t, this.target = e, this.cancelable = !!n, this.bubbles = !!i, this.defaultPrevented = !1;\n }\n /**\n * Cancels the default behaviour (if the event is cancelable).\n */\n preventDefault() {\n this.cancelable && (this.defaultPrevented = !0);\n }\n}\nconst p = b(), q = (s, t) => [].concat(\n p(s).listenerLookup.get(t.toLowerCase()) || [],\n p(s).listenerLookup.get(\"*\") || []\n), F = (s, t, e, n) => {\n let i, r;\n return t instanceof L ? (i = t, r = t.type) : (i = new L(t, s.target, !!e.cancelable, !!e.bubbles), r = t), { event: i, type: r, async: n };\n};\nclass D {\n /**\n * Creates a new Event Manager instance.\n * @param target The target of events dispatched from this Event Manager instance.\n * @param parent Parent Event Manager instance.\n */\n constructor(t, e) {\n this.target = t, this.parent = e, p(this).listenerLookup = /* @__PURE__ */ new Map(), p(this).children = [];\n }\n /**\n * Clears registered event listeners in this `EventManager` as well as in any children.\n */\n clear() {\n p(this).listenerLookup.clear(), p(this).children.forEach((t) => t.clear());\n }\n /**\n * Detaches this `EventManager` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = p(this.parent).children, e = t.indexOf(this);\n e > -1 && t.splice(e, 1);\n }\n }\n /**\n * Creates an event subscription by registering an listener for an event type.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribe(t, e, n) {\n const i = p(this).listenerLookup, r = t.toLowerCase();\n return i.has(r) || i.set(r, []), i.get(r).push(e), () => this.unsubscribe(t, e);\n }\n /**\n * Similar to `subscribe()` but immediately removes the subscription after the first call.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribeOnce(t, e) {\n const n = this.subscribe(t, (i, r) => (n(), e(i, r)));\n }\n /**\n * Removes a listener for the specified event type.\n * @param type Event type to remove subscription for.\n * @param listener Event listener to remove.\n */\n unsubscribe(t, e) {\n const n = p(this).listenerLookup.get(t.toLowerCase());\n if (n) {\n const i = n.indexOf(e);\n i > -1 && n.splice(i, 1);\n }\n }\n /**\n * Dispatches an asynchonous event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatchAsync(t, e, n = {}) {\n const { event: i, type: r } = F(this, t, n, !0), o = q(this, r);\n let a = 0;\n const l = o.length;\n let h = Promise.resolve();\n for (a = 0; a < l; a++)\n ((m) => {\n h = h.then((y) => y ? Promise.resolve(!0) : Promise.resolve(m(i, e)).then(() => i.defaultPrevented));\n })(o[a]);\n return h.then((m) => !m && i.bubbles && this.parent ? this.parent.dispatchAsync(i, e) : m);\n }\n /**\n * Dispatches an event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatch(t, e, n = {}) {\n const { event: i, type: r } = F(this, t, n, !1), o = q(this, r);\n let a = 0;\n const l = o.length;\n let h = !1;\n for (a = 0; a < l; a++)\n if (o[a](i, e), i.defaultPrevented) {\n h = !0;\n break;\n }\n return !h && i.bubbles && this.parent && (h = this.parent.dispatch(i, e)), h;\n }\n /**\n * Creates a child instance to the current Event manager.\n */\n createChild(t) {\n const e = new D(t, this);\n return p(this).children.push(e), e;\n }\n}\nconst P = (s, t, e) => {\n const i = s.get(\"$plugins\").map((r) => {\n try {\n return r.invoke(t, e);\n } catch (o) {\n u(s).error(\"An error occured when invoking a plugin.\", r, o);\n }\n });\n return Promise.all(i);\n};\nclass Z {\n constructor(t) {\n this.widget = t.get(\"$widget\"), this.events = this.widget.events, this.container = this.widget.container, this.initialized = null, this.activated = null, this.initialize = this.initialize.bind(this), this.activate = this.activate.bind(this), this.deactivate = this.deactivate.bind(this), this.invoke = this.invoke.bind(this), this.createInstance();\n }\n createInstance() {\n if (!this.widget.container.get(\"$instance\")) {\n const t = this.widget.container.get(\"$types\"), e = this.widget.container.get(\"$type\");\n !e && u(this).error(\"Unable to create widget. No type is specified.\");\n const n = t[e];\n !n && u(this).error(`Unable to create widget. Type '${e}' is not registered.`), this.widget.events.dispatch(\"widget:create-instance\", {}, { bubbles: !0 });\n try {\n this.widget.container.register(\n \"$instance\",\n new n(this.container)\n );\n } catch (i) {\n u(this).error(\"Unable to create widget type.\", i);\n }\n this.widget.events.dispatch(\"widget:instance-created\", {}, { bubbles: !0 });\n }\n }\n /**\n * The initialization is performed before the widget is activated but after it's configured\n * and thus all required services are available. This hook is a good place to bind events that\n * should trigger activation (e.g. click on \"trigger links\" or routing events)\n * @param {object} data Custom initialization data passed to the widget.\n */\n initialize(t) {\n return this.initialized = this.initialized || (() => {\n const e = this.container.get(\"$instance\"), n = e.initialize || (() => {\n });\n return this.initialized = Promise.resolve(n.call(e, t)).then(() => P(this.container, \"initialize\", t)).then(() => {\n });\n })();\n }\n /**\n * The activation is where the widget is actually created and rendered.\n * Activation can be initialized from the outside or from an event originated\n * in the \"initialize\" hook.\n * @param {object} data Custom activation data passed to the widget.\n */\n activate(t) {\n return (this.initialized || this.initialize()).then(() => {\n this.activated = this.activated || (() => P(this.container, \"activate\").then(() => {\n const n = this.container.get(\"$instance\");\n return this.activated = n.activate(t);\n }))();\n });\n }\n deactivate() {\n const t = this.container.get(\"$instance\"), e = t.deactivate || (() => {\n });\n return P(this.container, \"deactivate\").then(() => Promise.resolve(e.call(t))).then(() => {\n this.initialized = null, this.activated = null;\n }).then(() => {\n });\n }\n /**\n * Invokes a command on the widget component.\n * @param command Name of command\n * @param args Command arguments\n */\n invoke(t, ...e) {\n return P(this.container, \"invoke\", { command: t, args: e }).then(() => {\n const n = this.container.get(\"$instance\");\n if (n[t])\n return n[t].apply(n, e);\n const i = n.invoke;\n if (i)\n return i.call(n, t, ...e);\n });\n }\n}\nconst w = (s, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let n = 0, i = e.length; n < i; n++) {\n const r = e[n].trim();\n if (r === s || r === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(s) > -1 : !1;\n}, K = (s, t) => {\n if (typeof t == \"function\")\n return t(s);\n const e = typeof t == \"string\" ? nt(t) : t;\n return !(!w(s.implementation.tenant || \"\", e.tenant || \"\") || !w(s.implementation.name, e.implementation || \"\") || !w(s.name, e.widget || \"\") || !w(s.container.get(\"$type\"), e.type || \"\"));\n}, tt = (s, t) => {\n if (typeof t == \"function\")\n return t(s);\n const e = typeof t == \"string\" ? st(t) : t;\n return !(!w(s.tenant || \"\", e.tenant || \"\") || !w(s.name, e.implementation || \"\"));\n}, Q = (s) => (t) => K(t, s), et = (s) => (t) => tt(t, s), f = (s) => s instanceof Array && s.length === 1 ? s[0] : s, nt = (s) => {\n const t = {}, e = s.split(\":\");\n return e.length === 1 ? t.widget = f(e[0].split(\",\")) : e.length === 2 ? (t.implementation = f(e[0].split(\",\")), t.widget = f(e[1].split(\",\"))) : (t.tenant = f(e[0].split(\",\")), t.implementation = f(e[1].split(\",\")), t.widget = f(e[2].split(\",\"))), t;\n}, st = (s) => {\n const t = {}, e = s.split(\":\");\n return e.length === 1 ? t.implementation = f(e[0].split(\",\")) : (t.tenant = f(e[0].split(\",\")), t.implementation = f(e[1].split(\",\"))), t;\n}, E = b(), V = (s, t, e) => s.filter((n) => n.stage === t && Q(n.selector)(e));\nfunction it(s) {\n const t = s.container.get(\"$environment\");\n let e = E(t).configurationCache;\n e && (e = e.filter((n) => n[0] !== s), E(t).configurationCache = e);\n}\nvar k = /* @__PURE__ */ ((s) => (s.Implementation = \"implementation\", s.Widget = \"widget\", s))(k || {}), g = /* @__PURE__ */ ((s) => (s.Pre = \"pre\", s.Post = \"post\", s))(g || {});\nconst T = (s, t, e) => (Object.keys(t).forEach((n) => {\n const i = t[n];\n if (typeof i == \"function\") {\n const r = i();\n typeof r.defaultArgs != \"undefined\" && e(r, ...r.defaultArgs), s[n] = (...o) => {\n const a = Object.assign(\n {},\n r,\n { handlerResolver: r.handlerResolver.bind({}) }\n );\n return e(a, ...o), s;\n };\n } else\n s[n] = T(\n {},\n i,\n e\n );\n}), s), rt = (s, t) => {\n switch (t) {\n case \"implementation\":\n return s.implementation;\n case \"widget\":\n return s;\n }\n}, O = (s, t, e, n) => (n.forEach((i) => {\n T(\n s,\n i,\n (r, ...o) => {\n const a = {\n selector: t,\n stage: r.stage,\n handler: (l) => {\n const h = rt(l, r.scope), m = { container: h.container, events: h.events }, y = r.handlerResolver, x = y(m);\n let v = E(e.environment).configurationCache;\n return v || (v = E(e.environment).configurationCache = []), v.find((R) => R.indexOf(h) > -1 && R.indexOf(y) > -1) ? Promise.resolve() : (v.push([h, y]), Promise.resolve(x(...o)));\n }\n };\n e.instructions.push(a);\n }\n );\n}), s);\nfunction ot(s, t) {\n function e(n) {\n return O(\n {},\n n,\n s,\n t\n );\n }\n return O(\n e,\n \"*\",\n s,\n t\n );\n}\nclass $t {\n constructor(t, e) {\n this.container = t, this.settings = e, this.widget = t.get(\"$widget\"), this.events = this.widget.events;\n }\n}\nconst at = (s, t, e, n) => {\n try {\n const i = new t(e, n);\n return {\n name: s,\n invoke: (r, o) => {\n let a;\n return i[r] && (a = i[r].call(i, o)), Promise.resolve(a);\n },\n getInstance: () => i\n };\n } catch (i) {\n if (i.message && i.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: s,\n invoke: (r) => {\n let o;\n return r === \"initialize\" && (o = t(e, n)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw i;\n }\n};\nfunction j(s, t) {\n return typeof s == \"undefined\" ? t : s;\n}\nclass ct {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, n) {\n let i;\n typeof e == \"function\" ? i = {\n scope: k.Widget,\n stage: g.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : i = {\n scope: j(e.scope, k.Widget),\n stage: j(e.stage, g.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: n\n };\n let r = this.part;\n const o = t.split(\".\");\n return o.forEach((a, l) => {\n l === o.length - 1 ? r[a] || (r[a] = () => i) : r = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst ht = (s) => {\n const t = new ct({});\n return s(t), t.get();\n}, lt = ht((s) => {\n s.createCommand(\n \"types.register\",\n { scope: k.Implementation, stage: g.Pre },\n (t) => (e, n) => {\n t.container.get(\"$types\")[e] = n;\n }\n ).createCommand(\n \"type\",\n { stage: g.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: g.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: g.Pre },\n (t) => (e, n, i) => {\n const { container: r } = t;\n let o = null, a = e, l = n;\n typeof e == \"string\" && (o = e, a = n, l = i);\n const h = (m) => {\n const { transformPluginSettings: y } = t.container.get(\"$environmentOptions\"), x = y ? y(\n l || {},\n o,\n t.container,\n a\n ) : n;\n try {\n const v = at(\n o,\n a,\n r,\n x\n );\n r.get(\"$plugins\").push(v), m && v.invoke(\"initialize\", null);\n } catch (v) {\n u(t).warn(\"Error when initializing plugin\", v);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, n) => {\n t.container.register(e, n);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, n) => {\n t.container.registerAsync(e, n);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, n) => {\n t.container.registerFactory(e, n);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, n) => {\n t.container.touch(e, n);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n}), ut = lt;\nfunction dt(s, t, e = []) {\n const n = [ut].concat(e), i = ot(\n t,\n n\n );\n s(i, t);\n}\nclass pt {\n constructor() {\n this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, e, n, i) {\n this.tasks.push({ task: t, resolve: e, reject: n, done: i }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n const e = Promise.resolve(t.task());\n return Promise.resolve(e).then(this.next).then(() => e.then((n) => {\n t.done(), t.resolve(n);\n })).catch((n) => (t.done(), t.reject(n), this.next()));\n }\n return Promise.resolve();\n });\n }\n}\nconst A = /* @__PURE__ */ new WeakMap();\nfunction vt(s) {\n return A.has(s) || A.set(s, new pt()), (t) => new Promise((e, n) => {\n const i = A.get(s);\n i.add(t, e, n, () => {\n i.tasks.length || A.delete(s);\n });\n });\n}\nconst U = (s) => typeof s != \"undefined\";\nvar ft = /* @__PURE__ */ ((s) => (s.Activating = \"activating\", s.Loading = \"loading\", s.Activated = \"activated\", s.Deactivating = \"deactivating\", s.Deactivated = \"deactivated\", s))(ft || {});\nconst $ = (s, t) => {\n s.events.dispatch(\"widget:state-change\", { state: t }, { bubbles: !0 }), s.state = t, s.events.dispatch(\"widget:state-changed\", {}, { bubbles: !0 });\n}, d = b(), gt = (s) => {\n const { container: t, events: e } = s;\n t.get(\"$controller\") || (t.register(\"$controller\", new Z(t)), e.dispatch(\"widget:controller-created\", {}, { bubbles: !0 }));\n};\nclass mt {\n /**\n * Creates a new `Widget` instance.\n * @param name Name of widget.\n * @param implementation The implementation this instance belongs to.\n * @param configuration Configuration for the widget.\n */\n constructor(t, e, n) {\n this.state = \"deactivated\", this.name = t, this.implementation = e, this.container = e.container.createChild(this, t), this.events = e.events.createChild(this), d(this).subscriptions = [], n && e.configure((i) => {\n const r = i(t);\n U(n.type) && r.type(n.type), U(n.settings) && r.settings(n.settings), n.plugins && Object.keys(n.plugins).forEach((o) => {\n var l;\n const a = (l = n.plugins) == null ? void 0 : l[o];\n r.plugin(o, a);\n });\n }), this.load = this.load.bind(this), this.activate = this.activate.bind(this), this.invoke = this.invoke.bind(this), this.deactivate = this.deactivate.bind(this);\n }\n /**\n * Initializes the widget, if not already initialized, and applies any\n * pending configuration.\n */\n load() {\n return vt(this)(() => {\n d(this).deactivatedPromise = null;\n const t = this.state === \"deactivated\";\n t && ($(\n this,\n \"activating\"\n /* Activating */\n ), this.container.register(\"$widget\", this), this.container.register(\"$controller\", null), this.container.register(\"$plugins\", []), this.container.register(\"$type\", null), this.container.register(\"$instance\", null)), $(\n this,\n \"loading\"\n /* Loading */\n );\n const e = this.implementation.instructions, n = V(e, g.Pre, this);\n return Promise.all(n.map((i) => i.handler(this))).then(() => {\n gt(this);\n const i = V(e, g.Post, this);\n return Promise.all(i.map((r) => r.handler(this))).then(() => {\n t && this.container.get(\"$controller\").initialize();\n });\n }).then(() => ($(\n this,\n \"activated\"\n /* Activated */\n ), this));\n });\n }\n /**\n * Activates the widget and makes it ready for receiving commands.\n * @param data Activation data\n */\n activate(t) {\n d(this).subscriptions.push(\n this.implementation.events.subscribe(\"implementation:configured\", () => {\n [\n \"activated\",\n \"activating\",\n \"loading\"\n /* Loading */\n ].indexOf(this.state) > -1 && this.load();\n })\n );\n const e = d(this).activatedPromise;\n return e ? (process.env.NODE_ENV !== \"production\" && u(this).warn(`Widget '${this.name}' has already been activated. The passed arguments for this activation will be discarded.`, t), e) : d(this).activatedPromise = this.load().then(() => this.container.get(\"$controller\").activate(t));\n }\n /**\n * Invokes a command on a widget. If the widget isn't activate the invocation \n * will be suspended until activation.\n * @param command Command to invoke.\n * @param args Command arguments.\n */\n invoke(t, ...e) {\n const n = d(this).activatedPromise, i = (r, ...o) => n.then(this.load).then(() => this.container.get(\"$controller\").invoke(r, ...o));\n return n ? i(t, ...e) : (process.env.NODE_ENV !== \"production\" && u(this).warn(\"You are invoking a command on a deactivated widget. The invocation will be queued until the widget is activated.\", this), new Promise((r) => {\n const o = this.events.subscribe(\"widget:state-changed\", () => {\n this.state === \"activated\" && (o(), r(i(t, ...e)));\n });\n }));\n }\n /**\n * Deactivates the widget by clearing the `Container` and removing any event subscriptions in the\n * `EventManager`.\n */\n deactivate() {\n const t = d(this).deactivatedPromise;\n return t || (this.state === \"deactivated\" ? Promise.resolve() : ($(\n this,\n \"deactivating\"\n /* Deactivating */\n ), d(this).deactivatedPromise = this.container.get(\"$controller\").deactivate().then(() => (d(this).activatedPromise = null, d(this).subscriptions.forEach((e) => e()), d(this).subscriptions = [], this.container.clear().then(() => {\n this.events.clear(), it(this), $(\n this,\n \"deactivated\"\n /* Deactivated */\n );\n })))));\n }\n}\nconst Pt = (s) => s.deactivate().then(() => {\n s.events.detach(), s.container.detach(), s.implementation.widgets.delete(s.name);\n});\nclass At {\n /**\n * Creates a new `Widget` instance.\n * @param container The `Container` instance to base the widget upon.\n */\n constructor(t) {\n this.container = t, this.widget = t.get(\"$widget\"), this.settings = t.get(\"$settings\"), this.events = this.widget.events, this.widget.events.subscribe(\"settings:change\", (e, n) => {\n this.settings = n;\n });\n }\n}\nconst Y = b();\nclass yt {\n /**\n * Creates a new Implementation instance.\n * @param configuration Configuration for the implementation.\n * @param environment The parent environment.\n * @param configurationApiExtensions Optional configuration API extensions.\n */\n constructor(t, e, n = []) {\n this.instructions = [], this.widgets = /* @__PURE__ */ new Map(), this.name = t.name, this.tenant = t.tenant, this.environment = e, this.container = e.container.createChild(this, this.name), this.events = e.events.createChild(this), this.container.register(\"$types\", {}), Y(this).configurationApiExtensions = n;\n }\n /**\n * Loads all widgets in the implementation.\n */\n load() {\n const t = Array.from(this.widgets.values());\n return Promise.all(t.map((e) => e.load())).then(() => t);\n }\n /**\n * Configures the implementation by adding a configuration callback.\n * @param configFn Callback function for configuration.\n */\n configure(t) {\n return dt(t, this, Y(this).configurationApiExtensions), this.events.dispatch(\n \"implementation:configured\",\n { implementation: this },\n { bubbles: !0 }\n ), this;\n }\n /**\n * Creates a widget on the implementation and returns its `WidgetData`.\n * @param name Widget name.\n * @param configuration Widget configuration.\n */\n createWidget(t, e) {\n const n = new mt(t, this, e);\n return this.widgets.set(n.name, n), n;\n }\n}\nfunction wt(s, t, e) {\n const n = new yt(s, t, e);\n return s.widgets && Object.keys(s.widgets).forEach((i) => {\n var o;\n const r = (o = s.widgets) == null ? void 0 : o[i];\n n.createWidget(i, r);\n }), n;\n}\nclass C {\n constructor(t, e) {\n this.selectorFactory = e, typeof t == \"function\" ? this.resolver = t : this.resolver = () => t;\n }\n append(t) {\n const e = typeof t == \"function\" ? t : () => t;\n return new C(\n () => this.all().concat(e()),\n this.selectorFactory\n );\n }\n all() {\n return this.resolver().concat([]);\n }\n query(t) {\n return this.all().filter(this.selectorFactory(t));\n }\n find(t) {\n const e = this.query(t);\n if (e.length)\n return e[0];\n }\n}\nconst S = \"#____version____#\";\nfunction Et(s, t) {\n const e = B.create(s);\n return Promise.all(\n (t || []).map((n) => Promise.resolve(n(e)))\n ).then(() => e);\n}\nconst N = b(), bt = (s) => s.tenant ? `${s.name}:${s.tenant}` : s.name, H = class {\n constructor(s, t = [], e = {}) {\n this.widgets = new C(\n () => {\n let n = [];\n return this.implementations.all().forEach((i) => {\n n = n.concat(Array.from(i.widgets.values()));\n }), n;\n },\n Q\n ), this.implementations = new C([], et), this.name = s, this.container = new W(this, s), this.events = new D(this), this.container.register(\"$version\", S), this.container.register(\"$environment\", this), this.container.register(\"$environmentOptions\", e), N(this).configurationApiExtensions = t;\n }\n /**\n * Creates an implementation based on the provided configuration.\n * @param config Implementation configuration.\n */\n createImplementation(s) {\n const t = bt(s);\n let e = this.implementations.find(t);\n if (e)\n return process.env.NODE_ENV !== \"production\" && u(e).warn(`Implementation \"${t}\" already exist on current environment.`), e;\n const n = N(this).configurationApiExtensions;\n return e = wt(\n s,\n this,\n n\n ), this.implementations = this.implementations.append([e]), this.events.dispatch(\"implementation:created\", { implementation: e }), e;\n }\n /**\n * Patches the Environment instance configuration.\n * @param configuration Environment configuration.\n */\n patch(s = {}) {\n const { name: t, configurationApiExtensions: e } = s;\n typeof t != \"undefined\" && t !== null && (this.name = t), e && e.forEach(\n (n) => {\n N(this).configurationApiExtensions.push(n);\n }\n );\n }\n /**\n * Creates a new Environment instance based on the provided configuration.\n * @param configuration Environment configuration.\n */\n static create(s = {}) {\n return new H(\n s.name || \"\",\n s.configurationApiExtensions,\n s.options\n );\n }\n};\nlet B = H;\nB.version = S;\nexport {\n k as ConfigurationScope,\n g as ConfigurationStage,\n W as Container,\n B as Environment,\n D as EventManager,\n L as EventObject,\n yt as Implementation,\n $t as Plugin,\n mt as Widget,\n Z as WidgetController,\n ft as WidgetState,\n At as WidgetType,\n ht as createConfigurationApi,\n Et as createEnvironment,\n Pt as destroy,\n Pt as destroyWidget,\n u as logger,\n et as selectImplementations,\n Q as selectWidgets,\n S as version\n};\n//# sourceMappingURL=index.js.map\n","var O = Object.getOwnPropertySymbols;\nvar L = Object.prototype.hasOwnProperty, B = Object.prototype.propertyIsEnumerable;\nvar x = (e, t) => {\n var o = {};\n for (var r in e)\n L.call(e, r) && t.indexOf(r) < 0 && (o[r] = e[r]);\n if (e != null && O)\n for (var r of O(e))\n t.indexOf(r) < 0 && B.call(e, r) && (o[r] = e[r]);\n return o;\n};\nfunction I(e) {\n const t = [];\n return e.forEach((o) => {\n t.indexOf(o) === -1 && t.push(o);\n }), t;\n}\nfunction k(e = \"\", t = \"\") {\n const o = e.split(\" \").concat(t.split(\" \"));\n return I(o).join(\" \").trim();\n}\nfunction U(e, t) {\n if (e) {\n if (typeof t == \"string\")\n return t;\n if (Array.isArray(t)) {\n let o = \"\";\n return t.forEach((r) => o = k(o, r)), o;\n }\n }\n}\nfunction X(...e) {\n let t = \"\";\n return e.length && e.forEach((o) => {\n typeof o == \"string\" ? t = k(t, o) : Array.isArray(o) ? t = k(t, U(...o)) : typeof o != \"undefined\" && o !== null && process.env.NODE_ENV !== \"production\" && p.warn(\n \"appendClassNames: arguments either haveto be a string or [boolean, ...string[]]. Passed args:\",\n ...e\n );\n }), t;\n}\nconst z = (e, t) => {\n let o, r = [];\n return (i) => (clearTimeout(o), new Promise((n, a) => {\n r.push([i, n, a]), o = setTimeout(() => {\n let f = t();\n r.forEach(([c, g, m]) => {\n f = c(f);\n }), r = [], n(f);\n }, e);\n }));\n}, tt = z;\nfunction T(e) {\n const t = {};\n if (typeof e == \"number\" || typeof e == \"string\")\n return e;\n for (const o in e)\n if (e.hasOwnProperty(o)) {\n const r = e[o], i = o.substring(0, 1).toLowerCase() + o.substring(1);\n if (Object.prototype.toString.call(r) === \"[object Array]\") {\n t[i] = [];\n for (let n = 0, a = r.length; n < a; n++)\n t[i].push(T(r[n]));\n } else\n r !== null && typeof r == \"object\" ? t[i] = T(r) : t[i] = r;\n }\n return t;\n}\nfunction N(e = {}) {\n const $ = e, {\n phrase: t = \"\",\n category: o,\n guideCategory: r,\n contactCategory: i,\n take: n,\n connectionKey: a,\n accordion: f,\n id: c,\n uriName: g,\n sorting: m,\n tag: u,\n tagId: l,\n tagTitle: h\n } = $, P = x($, [\n \"phrase\",\n \"category\",\n \"guideCategory\",\n \"contactCategory\",\n \"take\",\n \"connectionKey\",\n \"accordion\",\n \"id\",\n \"uriName\",\n \"sorting\",\n \"tag\",\n \"tagId\",\n \"tagTitle\"\n ]), s = {};\n return Object.keys(P).forEach((A) => {\n typeof e[A] == \"string\" && (s[A] = e[A]);\n }), typeof t == \"string\" && t.length && (s.phrase = t), t === null && (s.phrase = t), typeof r == \"string\" && r !== \"0\" && (s.guideCategory = r), typeof r == \"number\" && r !== 0 && (s.guideCategory = r), typeof r == \"object\" && r !== null && (typeof r.id == \"string\" && r.id !== \"0\" && (s.guideCategory = r.id), typeof r.id == \"number\" && r.id !== 0 && (s.guideCategory = r.id)), typeof i == \"string\" && i !== \"0\" && (s.contactCategory = i), typeof i == \"number\" && i !== 0 && (s.contactCategory = i), typeof i == \"object\" && i !== null && (typeof i.id == \"string\" && i.id !== \"0\" && (s.contactCategory = i.id), typeof i.id == \"number\" && i.id !== 0 && (s.contactCategory = i.id)), typeof o == \"string\" && o !== \"0\" && (s.category = o), typeof o == \"number\" && o !== 0 && (s.category = o), typeof o == \"object\" && o !== null && (typeof o.id == \"string\" && o.id !== \"0\" && (s.category = o.id), typeof o.id == \"number\" && o.id !== 0 && (s.category = o.id)), c && (s.id = c), g && (+s.category || +s.guideCategory || +s.guide || +s.contactCategory || +s.contactMethod) && (s.uriName = g), a && (s.connectionKey = a), n && (s.take = n), m && (s.sorting = m), typeof f == \"string\" && f.length > 0 && (s.accordion = f), typeof u == \"string\" && u !== \"0\" && (s.tag = u), typeof u == \"number\" && u !== 0 && (s.tag = u), Array.isArray(u) && u.length && (s.tag = u), (typeof l == \"string\" || typeof l == \"number\") && (s.tagId = l), typeof h == \"string\" && (s.tagTitle = h), typeof s.tag == \"string\" && (s.tag = s.tag.split(\",\")), s;\n}\nfunction* q(e) {\n if (e)\n for (let t = 0; t < e.length; t++) {\n const o = e[t];\n yield o, o.items && (yield* q(o.items));\n }\n}\nconst V = (e, t) => {\n const o = q(t);\n let r = o.next(), i = null;\n for (; !r.done; )\n r.value.id === e && (i = r.value), r = o.next();\n return i;\n}, W = V, M = (e) => {\n if (!e)\n return \"\";\n const t = [\n { from: /[äæǽ]+/gi, to: \"ae\" },\n { from: /[öœ]+/gi, to: \"oe\" },\n { from: /[ü]+/gi, to: \"ue\" },\n { from: /[Ä]+/gi, to: \"Ae\" },\n { from: /[Ü]+/gi, to: \"Ue\" },\n { from: /[Ö]+/gi, to: \"Oe\" },\n { from: /[ÀÁÂÃÄÅǺĀĂĄǍΑΆẢẠẦẪẨẬẰẮẴẲẶА]+/gi, to: \"A\" },\n { from: /[àáâãåǻāăąǎªαάảạầấẫẩậằắẵẳặа]+/gi, to: \"a\" },\n { from: /[Б]+/gi, to: \"B\" },\n { from: /[б]+/gi, to: \"b\" },\n { from: /[ÇĆĈĊČ]+/gi, to: \"C\" },\n { from: /[çćĉċč]+/gi, to: \"c\" },\n { from: /[Д]+/gi, to: \"D\" },\n { from: /[д]+/gi, to: \"d\" },\n { from: /[ÐĎĐΔ]+/gi, to: \"Dj\" },\n { from: /[ðďđδ]+/gi, to: \"dj\" },\n { from: /[ÈÉÊËĒĔĖĘĚΕΈẼẺẸỀẾỄỂỆЕЭ]+/gi, to: \"E\" },\n { from: /[èéêëēĕėęěέεẽẻẹềếễểệеэ]+/gi, to: \"e\" },\n { from: /[Ф]+/gi, to: \"F\" },\n { from: /[ф]+/gi, to: \"f\" },\n { from: /[ĜĞĠĢΓГҐ]+/gi, to: \"G\" },\n { from: /[ĝğġģγгґ]+/gi, to: \"g\" },\n { from: /[ĤĦ]+/gi, to: \"H\" },\n { from: /[ĥħ]+/gi, to: \"h\" },\n { from: /[ÌÍÎÏĨĪĬǏĮİΗΉΊΙΪỈỊИЫ]+/gi, to: \"I\" },\n { from: /[ìíîïĩīĭǐįıηήίιϊỉịиыї]+/gi, to: \"i\" },\n { from: /[Ĵ]+/gi, to: \"J\" },\n { from: /[ĵ]+/gi, to: \"j\" },\n { from: /[ĶΚК]+/gi, to: \"K\" },\n { from: /[ķκк]+/gi, to: \"k\" },\n { from: /[ĹĻĽĿŁΛЛ]+/gi, to: \"L\" },\n { from: /[ĺļľŀłλл]+/gi, to: \"l\" },\n { from: /[М]+/gi, to: \"M\" },\n { from: /[м]+/gi, to: \"m\" },\n { from: /[ÑŃŅŇΝН]+/gi, to: \"N\" },\n { from: /[ñńņňʼnνн]+/gi, to: \"n\" },\n { from: /[ÒÓÔÕŌŎǑŐƠØǾΟΌΩΏỎỌỒỐỖỔỘỜỚỠỞỢО]+/gi, to: \"O\" },\n { from: /[òóôõōŏǒőơøǿºοόωώỏọồốỗổộờớỡởợо]+/gi, to: \"o\" },\n { from: /[П]+/gi, to: \"P\" },\n { from: /[п]+/gi, to: \"p\" },\n { from: /[ŔŖŘΡР]+/gi, to: \"R\" },\n { from: /[ŕŗřρр]+/gi, to: \"r\" },\n { from: /[ŚŜŞȘŠΣС]+/gi, to: \"S\" },\n { from: /[śŝşșšſσςс]+/gi, to: \"s\" },\n { from: /[ȚŢŤŦτТ]+/gi, to: \"T\" },\n { from: /[țţťŧт]+/gi, to: \"t\" },\n { from: /[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛŨỦỤỪỨỮỬỰУ]+/gi, to: \"U\" },\n { from: /[ùúûũūŭůűųưǔǖǘǚǜυύϋủụừứữửựу]+/gi, to: \"u\" },\n { from: /[ÝŸŶΥΎΫỲỸỶỴЙ]+/gi, to: \"Y\" },\n { from: /[ýÿŷỳỹỷỵй]+/gi, to: \"y\" },\n { from: /[В]+/gi, to: \"V\" },\n { from: /[в]+/gi, to: \"v\" },\n { from: /[Ŵ]+/gi, to: \"W\" },\n { from: /[ŵ]+/gi, to: \"w\" },\n { from: /[ŹŻŽΖЗ]+/gi, to: \"Z\" },\n { from: /[źżžζз]+/gi, to: \"z\" },\n { from: /[ÆǼ]+/gi, to: \"AE\" },\n { from: /[ß]+/gi, to: \"ss\" },\n { from: /[IJ]+/gi, to: \"IJ\" },\n { from: /[ij]+/gi, to: \"ij\" },\n { from: /[Œ]+/gi, to: \"OE\" },\n { from: /[ƒ]+/gi, to: \"f\" },\n { from: /[ξ]+/gi, to: \"ks\" },\n { from: /[π]+/gi, to: \"p\" },\n { from: /[β]+/gi, to: \"v\" },\n { from: /[μ]+/gi, to: \"m\" },\n { from: /[ψ]+/gi, to: \"ps\" },\n { from: /[Ё]+/gi, to: \"Yo\" },\n { from: /[ё]+/gi, to: \"yo\" },\n { from: /[Є]+/gi, to: \"Ye\" },\n { from: /[є]+/gi, to: \"ye\" },\n { from: /[Ї]+/gi, to: \"Yi\" },\n { from: /[Ж]+/gi, to: \"Zh\" },\n { from: /[ж]+/gi, to: \"zh\" },\n { from: /[Х]+/gi, to: \"Kh\" },\n { from: /[х]+/gi, to: \"kh\" },\n { from: /[Ц]+/gi, to: \"Ts\" },\n { from: /[ц]+/gi, to: \"ts\" },\n { from: /[Ч]+/gi, to: \"Ch\" },\n { from: /[ч]+/gi, to: \"ch\" },\n { from: /[Ш]+/gi, to: \"Sh\" },\n { from: /[ш]+/gi, to: \"sh\" },\n { from: /[Щ]+/gi, to: \"Shch\" },\n { from: /[щ]+/gi, to: \"shch\" },\n { from: /[ЪъЬь]+/gi, to: \"\" },\n { from: /[Ю]+/gi, to: \"Yu\" },\n { from: /[ю]+/gi, to: \"yu\" },\n { from: /[Я]+/gi, to: \"Ya\" },\n { from: /[я]+/gi, to: \"ya\" }\n ], o = /[^a-zA-Z0-9]+/g, r = /[-]$/;\n let i = e;\n for (const n in t)\n t.hasOwnProperty(n) && t[n].from.test(e) && (i = i.replace(t[n].from, t[n].to));\n return i = i.replace(o, \"-\"), i = i.replace(r, \"\"), i = i.toLowerCase(), i || \"humany\";\n}, E = M;\nfunction S(e, t = {}, o) {\n return e.forEach((r) => {\n o && (t[+r.id] = o), r.items && S(r.items, t, r.id);\n }), t;\n}\nfunction Y(e, t, o = [e], r = S(t)) {\n const i = (a) => {\n const f = r[+a];\n f && (o.unshift(f), i(f));\n }, n = r[+e];\n return n && (o.unshift(n), i(n)), o;\n}\nconst F = (e, t) => typeof e == \"undefined\" || typeof t == \"undefined\" ? /* @__PURE__ */ new Map() : new Map(\n e.map((o) => {\n const r = W(o, t);\n return [o, r];\n })\n), et = (e, t, o, r = \"guide-categories\") => o.getAsync(\"dataClient\").then((i) => i.fetch(r, { expandCategories: \"descendants\" }).then(({ categories: n }) => {\n const a = (f) => {\n const c = Y(f, n), g = F(c, n), m = [];\n return c.forEach((u) => {\n const l = g.get(u);\n l && m.push({\n routeName: e,\n title: l.title,\n symbol: l.symbol,\n id: l.id,\n routeParams: N(r === \"contact-method-categories\" ? {\n contactCategory: l.id,\n uriName: E(l.title)\n } : {\n guideCategory: l.id,\n uriName: E(l.title)\n })\n });\n }), m;\n };\n return Array.isArray(t) ? t.reduce((f, c) => {\n const g = a(c);\n return g.length > 0 && f.push(g), f;\n }, []) : a(t);\n})), K = (e) => {\n let t, o;\n e.split(\",\")[0].indexOf(\"base64\") !== -1 ? t = atob(e.split(\",\")[1]) : t = decodeURI(e.split(\",\")[1]), o = e.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n const r = [];\n for (let i = 0; i < t.length; i++)\n r[i] = t.charCodeAt(i);\n return new Blob([new Uint8Array(r)], { type: o });\n}, ot = K;\nfunction rt(...e) {\n return process.env.NODE_ENV !== \"production\" && console && console.warn(...e);\n}\nconst C = (e, t, ...o) => typeof t == \"string\" ? e(`[humany] ${t}`, ...o) : e(t, ...o), y = class {\n constructor() {\n this.keys = [], this.log = (e, ...t) => this.lookup(e, () => y.log(...t)), this.warn = (e, ...t) => this.lookup(e, () => y.warn(...t)), this.error = (e, ...t) => this.lookup(e, () => y.error(...t)), this.info = (e, ...t) => this.lookup(e, () => y.info(...t));\n }\n lookup(e, t) {\n this.keys.indexOf(e) === -1 && (this.keys.push(e), t());\n }\n};\nlet p = y;\np.log = (...e) => C(console.log, ...e);\np.warn = (...e) => C(console.warn, ...e);\np.error = (...e) => C(console.error, ...e);\np.info = (...e) => C(console.info, ...e);\nconst D = (e) => {\n let t = {}, o, r;\n if (typeof e != \"object\" || e === null)\n return e;\n t = Array.isArray(e) ? [] : {};\n for (r in e)\n o = e[r], t[r] = typeof o == \"object\" && o !== null ? D(o) : o;\n return t;\n}, j = D, it = (e) => {\n if (!e)\n return null;\n const t = localStorage.getItem(\n `humany_${_(e.tenant + e.name)}`\n );\n if (t) {\n const { activeStickyWidget: o } = JSON.parse(t);\n if (o && o.value && e.widgets.get(o.value)) {\n const i = document.createElement(\"a\");\n i.setAttribute(\n \"href\",\n `//${e.bindings[0]}/${o.value}`\n ), document.body.appendChild(i);\n }\n }\n}, nt = (e, t = !1) => {\n const o = new Date(e);\n let r = `${o.getMonth() + 1}`, i = `${o.getDate()}`;\n const n = o.getFullYear();\n if (r.length < 2 && (r = `0${r}`), i.length < 2 && (i = `0${i}`), t) {\n let a = `${o.getHours()}`, f = `${o.getMinutes()}`;\n return a.length < 2 && (a = `0${a}`), f.length < 2 && (f = `0${f}`), `${[n, r, i].join(\"-\")} ${[a, f].join(\":\")}`;\n }\n return [n, r, i].join(\"-\");\n};\nfunction st(e) {\n const t = document.cookie;\n if (t.length > 0) {\n let o = t.indexOf(`${e}=`);\n if (o !== -1) {\n o = o + e.length + 1;\n let r = t.indexOf(\";\", o);\n return r === -1 && (r = t.length), unescape(t.substring(o, r));\n }\n }\n return null;\n}\nfunction _(e) {\n let t = 0;\n if (e.length === 0)\n return t.toString();\n for (let o = 0; o < e.length; o++) {\n const r = e.charCodeAt(o);\n t = (t << 5) - t + r, t = t & t;\n }\n return t.toString();\n}\nconst ft = (e, t) => {\n if (!e || !t)\n return !0;\n let o = t.parentNode, r = !1;\n for (; o !== null; )\n o === e && (r = !0), o = o.parentNode;\n return r;\n};\nfunction at(e) {\n return e.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/\\s+/g, \"-\").toLowerCase();\n}\nclass Z {\n constructor(t, o) {\n this.lockWarningTime = t, this.lockErrorTime = o, this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, o, r, i) {\n this.tasks.push({ task: t, resolve: o, reject: r, done: i }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n let o;\n const r = setTimeout(() => {\n process.env.NODE_ENV !== \"production\" && p.warn(\n `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\n t\n ), o = setTimeout(() => {\n t.reject(\"lock timeout exceeded\");\n }, this.lockErrorTime);\n }, this.lockWarningTime), i = Promise.resolve(t.task()).then((n) => (clearTimeout(r), clearTimeout(o), n));\n return Promise.resolve(i).then(this.next).then(\n () => i.then((n) => {\n t.done(), t.resolve(n);\n })\n ).catch((n) => (t.done(), t.reject(n), this.next()));\n }\n return Promise.resolve();\n });\n }\n}\nconst b = /* @__PURE__ */ new WeakMap();\nfunction ct(e, t = 5e3, o = 1e3) {\n return b.has(e) || b.set(e, new Z(t, o)), (r) => new Promise((i, n) => {\n const a = b.get(e);\n a.add(r, i, n, () => {\n a.tasks.length || b.delete(e);\n });\n });\n}\nconst v = (e) => !!e && typeof e == \"object\" && !Array.isArray(e), J = (e, ...t) => {\n const o = j(e), r = j(t);\n return w(o, ...r);\n}, w = (e, ...t) => {\n if (!t.length)\n return e;\n const o = t.shift();\n if (v(e) && v(o))\n for (const r in o)\n v(o[r]) ? (e[r] || Object.assign(e, { [r]: {} }), w(e[r], o[r])) : Object.assign(e, { [r]: o[r] });\n return w(e, ...t);\n}, ut = J, Q = (e, t) => {\n const o = () => t.querySelectorAll(\"[data-loading=true]\").length > 0, i = (() => {\n let a = !1;\n return () => {\n if (a)\n return;\n e.get(\"$widget\").events.dispatch(\"widget:data-loaded\", {\n element: t\n }), a = !0;\n };\n })();\n if (!o())\n return i();\n new MutationObserver((a, f) => {\n a.find(\n (g) => g.type === \"attributes\" && g.attributeName === \"data-loading\"\n ) && !o() && (f.disconnect(), i());\n }).observe(t, {\n attributes: !0,\n childList: !0,\n subtree: !0\n });\n}, R = (e, t) => {\n e.get(\"$widget\").container.getAsync(\"components\").then((r) => {\n r.events.subscribeOnce(\"components:component-model-initialized\", () => {\n let i = r.nodes.visible.reduce(\n (f, c) => (!c.name || !c.type || c.type === \"view\" || c.type === \"root\" || c.attributes.layout.size === \"none\" || t.querySelector(`[data-name=\"${c.name}\"]`) || f.push(c.name), f),\n []\n ), n = !1;\n new MutationObserver((f, c) => {\n f.forEach((g) => {\n if (g.addedNodes) {\n const m = Array.from(\n g.addedNodes\n ).reduce((u, l) => {\n const h = l.getAttribute && l.getAttribute(\"data-name\");\n return h && i.indexOf(h) > -1 && u.push(h), u;\n }, []);\n i = i.filter((u) => m.indexOf(u) === -1), !n && i.length === 0 && (n = !0, Q(e, t), c.disconnect());\n }\n });\n }).observe(t, {\n attributes: !1,\n characterData: !1,\n childList: !0,\n subtree: !0,\n attributeOldValue: !1,\n characterDataOldValue: !1\n });\n });\n });\n}, lt = R, H = (e = {}) => (Object.keys(e).forEach((t) => {\n (e[t] === null || typeof e[t] == \"undefined\") && delete e[t];\n}), e), gt = H;\nfunction mt(e, t, o) {\n let r = \"\";\n if (o) {\n const i = /* @__PURE__ */ new Date();\n i.setTime(i.getTime() + o * 24 * 60 * 60 * 1e3), r = `; expires=${i.toUTCString()}`;\n }\n document.cookie = `${e}=${t}${r}; path=/`;\n}\nconst dt = (e, t) => {\n let o = !0;\n return Object.keys(e).length !== Object.keys(t).length || Object.keys(e).some((i) => !Object.keys(t).some((a) => i === a)) ? !1 : (Object.keys(e).forEach((i) => {\n if (o) {\n const n = typeof e[i] == \"undefined\" ? \"\" : e[i], a = typeof t[i] == \"undefined\" ? \"\" : t[i];\n o = n.toString() === a.toString();\n }\n }), o);\n}, d = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction ht() {\n return d() + d() + \"-\" + d() + \"-\" + d() + \"-\" + d() + \"-\" + d() + d() + d();\n}\nclass pt {\n constructor(t) {\n this.queue = [], this.queueAttemptCalls = 0, this.callCount = 5, this.add = (o) => {\n this.queue.push(o), this.queueAttempt = setInterval(this.processQueue, 1e3);\n }, this.processQueue = () => {\n if (this.queue.length > 0) {\n const o = [];\n this.queue.forEach((r, i) => {\n const n = r();\n typeof n == \"function\" && (n(), o.push(i));\n }), this.queue = this.queue.filter((r, i) => !(o.indexOf(i) > -1)), this.queueAttempt && clearInterval(this.queueAttempt);\n }\n this.queueAttemptCalls > this.callCount && (clearInterval(this.queueAttempt), this.queueAttemptCalls = 0), this.queueAttemptCalls = this.queueAttemptCalls + 1;\n }, t && t.callCount && (this.callCount = t.callCount);\n }\n}\nexport {\n p as Logger,\n pt as WaitFor,\n X as appendClassNames,\n et as buildCategoryTrail,\n T as camilize,\n Y as categoryTrail,\n tt as createBatch,\n N as createParams,\n ot as dataURItoBlob,\n rt as debugLog,\n j as deepClone,\n it as findAndActivateStoredWidgets,\n W as findCategoryById,\n nt as formatDate,\n E as formatUrl,\n F as getCategoryTrailAsObjects,\n st as getCookie,\n _ as hash,\n ft as htmlParentContains,\n at as kebabCase,\n ct as lock,\n ut as mergeDeep,\n lt as notifyDataLoaded,\n gt as removeNullAndUndefinedValues,\n mt as setCookie,\n dt as shallowCompare,\n ht as uuid\n};\n//# sourceMappingURL=index.js.map\n","var V = Object.defineProperty, j = Object.defineProperties;\nvar q = Object.getOwnPropertyDescriptors;\nvar D = Object.getOwnPropertySymbols;\nvar z = Object.prototype.hasOwnProperty, Q = Object.prototype.propertyIsEnumerable;\nvar S = (s, t, e) => t in s ? V(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e, y = (s, t) => {\n for (var e in t || (t = {}))\n z.call(t, e) && S(s, e, t[e]);\n if (D)\n for (var e of D(t))\n Q.call(t, e) && S(s, e, t[e]);\n return s;\n}, _ = (s, t) => j(s, q(t));\nimport { bootstrapImplementation as F, ConfigurationApi as G } from \"@webprovisions/bootstrapping\";\nimport { selectImplementations as K, createConfigurationApi as U, version as W, Environment as Y, Implementation as J, Plugin as X, WidgetType as Z } from \"@webprovisions/platform\";\nimport { uuid as O, Logger as N } from \"@telia-ace/widget-utilities\";\nclass yt {\n constructor(t) {\n const { events: e } = t.get(\"$widget\");\n this.events = e.createChild(this);\n }\n action(t, e, n) {\n this.events.dispatch(\"data:action\", { action: e, value: n, target: t }, { bubbles: !0 });\n }\n subscribe(t, e) {\n return this.events.subscribe(\n \"data:action\",\n (n, { action: i, value: r, target: c }) => t === c && e(t, i, r)\n );\n }\n}\nconst xt = (s, t, e = {}) => F(\n s,\n s.bindings,\n () => {\n const n = s.container.get(\"$runtimecfg\").map((i) => {\n const r = i[0];\n if (typeof r == \"function\")\n return r;\n if (K(r)(s))\n return i[1];\n }).filter((i) => !!i);\n return (t ? [t] : []).concat(n);\n },\n e.rootElementResolver || (() => document.body)\n), tt = (s) => {\n const t = [];\n return [\n (n, i) => {\n t.push(s.subscribe(n, i));\n },\n () => {\n t.forEach((n) => {\n n();\n });\n }\n ];\n};\nclass P {\n constructor(t, e = []) {\n this.platform = t, this.rules = e;\n }\n match(t) {\n return this.rules.every((e) => !(e.id && e.id !== t.id || e.type && e.type !== t.type));\n }\n ofType(t) {\n return this.rules.push({ type: t }), this;\n }\n withId(t) {\n return this.rules.push({ id: t }), this;\n }\n select() {\n return new et(this.platform, this);\n }\n}\nclass H {\n constructor(t, e, n) {\n this.platform = t, this.node = e, this.actions = new k(\n t,\n new P(t).withId(e.id),\n n\n );\n const [i, r] = tt(this.platform.events);\n this.subscribe = i, this.unsubscribe = r;\n }\n properties(t) {\n return t && this.node.touchProperties((e) => t(e)), this.node.attributes.properties;\n }\n context(t) {\n return t && this.subscribe(\"components:context-changed\", (e, { node: n }) => {\n n === this.node && t(this.node.attributes.context);\n }), this.node.attributes.context;\n }\n layout(t) {\n return t && this.subscribe(\"components:layout-changed\", (e, { node: n }) => {\n n === this.node && t(this.node.attributes.layout);\n }), this.node.attributes.layout;\n }\n writeProperties(t, e) {\n this.node.writeProperties(t, e);\n }\n writeContext(t, e) {\n this.node.writeProperties(t, e);\n }\n writeLayout(t, e) {\n this.node.writeLayout(t, e);\n }\n dispose() {\n this.unsubscribe(), this.actions.dispose();\n }\n}\nclass et {\n constructor(t, e, n = !0) {\n this.platform = t, this.target = e, this.clearOnDispose = n, this.removes = [], this.actions = new k(this.platform, this.target);\n }\n writeProperties(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { properties: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeContext(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { context: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeLayout(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { layout: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n dispose() {\n this.removes.forEach((t) => {\n t();\n }), this.actions.dispose();\n }\n}\nconst st = (s, t, e) => {\n const n = s.concat(), i = (r, c, a) => {\n let u = !0;\n if (n.length) {\n const h = n.shift(), o = (p, l) => (u = !1, i(p, Object.assign({}, c, l), a));\n return Promise.resolve(h(r, o, a)).then((p) => _(y({}, p), {\n cancelled: u\n }));\n }\n return Promise.resolve({ data: r, cancelled: !1, options: c });\n };\n return i(t, {}, e);\n};\nclass k {\n constructor(t, e, n) {\n this.platform = t, this.target = e, this.ns = n, this.subscriptions = [], this.create = this.create.bind(this);\n }\n create(t, e = () => {\n }) {\n const n = {\n key: t,\n fn: e,\n target: this.target,\n ns: this.ns\n };\n this.platform.actionsState.handlers.push(n);\n const i = () => {\n const r = this.platform.actionsState.handlers.indexOf(n);\n r > -1 && this.platform.actionsState.handlers.splice(r, 1);\n };\n return this.subscriptions.push(i), i;\n }\n dispatch(t, e) {\n const n = this.platform.nodes.all.concat(\n this.platform.nodes.detached\n ), i = {}, r = this.platform.actionsState.handlers.filter(\n (c) => c.key === t && (!c.ns || !this.ns || c.ns === this.ns)\n );\n return Promise.all(\n r.map((c) => {\n const a = n.filter(\n (h) => c.target.match(h) && this.target.match(h)\n ), u = this.platform.actionsState.watchers.filter((h) => h.key === t && (!h.ns || !this.ns || h.ns === this.ns) && a.some((o) => h.target.match(o))).map((h) => h.fn);\n return Promise.all(\n a.map((h) => {\n const o = new H(\n this.platform,\n h,\n this.ns\n );\n return st(u, e, o).then((p) => {\n const { data: l = {}, options: d, cancelled: b } = p;\n return Promise.resolve(\n b ? {} : c.fn(l, d, o)\n ).then((g) => {\n i[h.id] = g;\n });\n });\n })\n );\n })\n ).then(() => i);\n }\n watch(t, e) {\n let n = t, i = this.ns;\n const r = t.split(\".\");\n r.length > 1 && (i = r[0], n = r.splice(1).join(\".\"));\n const c = {\n fn: e,\n target: this.target,\n key: n,\n ns: i\n };\n this.platform.actionsState.watchers.push(c);\n const a = () => {\n const u = this.platform.actionsState.watchers.indexOf(c);\n u > -1 && this.platform.actionsState.watchers.splice(u, 1);\n };\n return this.subscriptions.push(a), a;\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n}\nconst wt = U((s) => {\n s.createCommand(\"components\", (t) => (e) => {\n t.events.subscribeOnce(\"components:platform-created\", (n, { platform: i }) => {\n e.handlers && e.handlers.forEach(([r, c]) => {\n i.addComponentHandler(r, c);\n });\n });\n });\n});\nclass L {\n constructor(t, e) {\n this.events = t, this.tags = [], this.children = {}, this.changesets = [], this.mountCount = 0, this.id = O(), this.type = e, this.attributes = {\n context: {},\n properties: {},\n layout: {},\n tags: []\n }, this.writeLayout({ size: \"full\", indent: 0 });\n }\n mount(t, e) {\n let n = t.get(\"mounted-nodes\");\n return n || (n = /* @__PURE__ */ new Map(), t.register(\"mounted-nodes\", n)), n.has(this) ? (process.env.NODE_ENV !== \"production\" && N.error(\"Trying to mount an already mounted component node.\", this), () => {\n }) : (this.events.dispatch(\"components:node-mounted\", { node: this }), this.mountCount === 0 && (this.mountCount = this.mountCount + 1, this.events.dispatch(\"components:node-enter\", { node: this })), () => {\n n.delete(this), this.events.dispatch(\"components:node-unmounted\", { node: this }), this.mountCount = this.mountCount - 1, this.mountCount === 0 && this.events.dispatch(\"components:node-exit\", { node: this });\n });\n }\n appendChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].push(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n prependChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].unshift(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n touchProperties(t, e = {}, n) {\n const r = [{ properties: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (n) {\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeProperties(t, e = {}, n) {\n const r = [{ properties: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (n) {\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeLayout(t, e = {}, n) {\n const r = [{ layout: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-layout\", { node: this }), () => {\n if (!n)\n return;\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-layout\", { node: this }));\n };\n }\n writeContext(t, e = {}, n) {\n const r = [{ context: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-context\", { node: this }), () => {\n if (!n)\n return;\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-context\", { node: this }));\n };\n }\n getChildren(t = \"default\") {\n const e = this.children[t] || [];\n return e.reduce((n, i, r) => {\n const { order: c = r } = i.attributes.layout;\n return n[c] ? n.splice(c, 0, i) : n[c] = i, n;\n }, Array(e.length));\n }\n remove() {\n this.parent && this.parent.removeChild(this);\n }\n removeChild(t) {\n Object.keys(this.children).forEach((e) => {\n const n = this.children[e], i = n.indexOf(t);\n i > -1 && (n.splice(i, 1), this.events.dispatch(\"components:node-removed\", { node: t, parentNode: this }));\n }), delete t.parent;\n }\n}\nconst B = (s, t, e) => {\n for (let n = 0, i = s.length; n < i && e(s[n]) !== !0; n++) {\n const r = t[s[n].id] || \"default\", c = s[n].getChildren(r);\n B(c, t, e);\n }\n}, $ = (s, t, e) => {\n if (e(s) !== !0) {\n const n = t[s.id] || \"default\", i = s.children[n];\n B(i, t, e);\n }\n}, w = (s, t) => {\n const e = [];\n return $(s, t, (n) => {\n e.push(n);\n }), e;\n}, nt = (s, t, e) => {\n let n;\n return $(s, t, (i) => {\n if (e(i))\n return n = i, !0;\n }), n;\n};\nclass it {\n constructor(t, e, n) {\n this.root = t, this.switches = e, this.all = [], this.visible = [], this.detached = [], n.subscribe(\"components:node-appended\", (i, r) => {\n this.all.push(r.node), this.visible = w(t, e);\n }), n.subscribe(\"components:node-removed\", (i, r) => {\n let c = this.all.indexOf(r.node);\n c > -1 && this.all.splice(c, 1), c = this.visible.indexOf(r.node), c > -1 && this.visible.splice(c, 1), this.visible = w(t, e);\n }), n.subscribe(\"components:node-switched\", (i, r) => {\n this.visible = w(t, e);\n });\n }\n query(t = {}) {\n const e = [];\n return $(this.root, this.switches, (n) => {\n Object.keys(t).every((r) => t[r] === n[r]) && e.push(n);\n }), e;\n }\n get(t) {\n return nt(this.root, this.switches, (e) => e.id === t) || this.detached.find((e) => e.id === t);\n }\n}\nclass ot {\n constructor() {\n this.handlers = /* @__PURE__ */ new Map();\n }\n add(t, e) {\n this.handlers.set(t, e);\n }\n get(t) {\n return this.handlers.get(t);\n }\n}\nconst rt = (s) => {\n let t = s, e = 0;\n for (; t.parent; )\n e = e + 1, t = t.parent;\n return e;\n}, ct = (s) => s.map(([e, n]) => [rt(e), e, n]).sort(([e], [n]) => e - n).map(([, e, n]) => [e, n]), C = (s) => s instanceof Date ? !1 : s && typeof s == \"object\" && !Array.isArray(s), v = (s, ...t) => {\n if (!t.length)\n return s;\n const e = t.shift();\n if (C(s) && C(e))\n for (const n in e)\n C(e[n]) ? (s[n] || Object.assign(s, { [n]: {} }), v(s[n], e[n])) : Object.assign(s, { [n]: e[n] });\n return v(s, ...t);\n}, ht = (s, t) => !s || s === \"all\" ? !0 : s.some((e) => t.indexOf(e) > -1), at = (s, t) => {\n let e = [], n = [], i;\n const r = () => {\n process.env.NODE_ENV !== \"production\" && console.time(\"state-processor.flush\");\n const a = /* @__PURE__ */ new Map(), u = ct(e.map((o, p) => [o, n[p]])), h = (o, p) => {\n var I;\n const l = a.get(o) || {}, d = p.context && !l.context, b = p.properties && !l.properties, g = p.layout && !l.layout;\n a.set(o, {\n context: l.context || d,\n properties: l.properties || b,\n layout: l.layout || g\n }), b && (o.attributes.properties = {}), g && (o.attributes.layout = {}), d && (o.attributes.context = v({}, (I = o.parent) == null ? void 0 : I.attributes.context));\n const R = [], A = [], T = [];\n if (o.changesets.forEach((f) => {\n const [m, x] = f;\n ht(x.breakpoints, s.breakpoints) && (b && (typeof m.properties == \"function\" ? R.push(\n m.properties\n ) : v(o.attributes.properties, m.properties)), g && (typeof m.layout == \"function\" ? A.push(m.layout) : v(o.attributes.layout, m.layout)), d && (typeof m.context == \"function\" ? T.push(m.context) : v(o.attributes.context, m.context)));\n }), R.forEach((f) => {\n v(o.attributes.properties, f(o.attributes.properties));\n }), A.forEach((f) => {\n v(o.attributes.layout, f(o.attributes.layout));\n }), T.forEach((f) => {\n v(o.attributes.context, f(o.attributes.context));\n }), d || p.recursive) {\n const f = s.getBranch(o), m = p.recursive ? p : {\n context: !!d\n };\n o.getChildren(f).forEach((x) => {\n h(x, m);\n });\n }\n };\n process.env.NODE_ENV !== \"production\" && console.timeEnd(\"state-processor.flush\"), u.forEach(([o, p]) => {\n h(o, p);\n }), e = [], n = [], t(a);\n }, c = () => {\n clearTimeout(i), i = setTimeout(r, 0);\n };\n return (a, u) => {\n const h = e.indexOf(a);\n if (h > -1) {\n const o = n[h];\n return u.context && (o.context = !0), u.properties && (o.properties = !0), u.layout && (o.layout = !0), u.recursive && (o.recursive = !0), c();\n }\n return e.push(a), n.push(u), c();\n };\n};\nclass pt {\n constructor(t, e = {}) {\n this.providers = e, this.breakpoints = [], this.actionsState = { handlers: [], watchers: [] }, this.switches = {}, this.changesets = [], this.subscriptions = [], this.customComponentHandler = new ot(), this.events = t.events.createChild(this);\n const n = new L(this.events, \"root\");\n n.name = `root-${t.name}`, this.nodes = new it(n, this.switches, this.events);\n const i = this.processNode = at(this, (r) => {\n const c = Array.from(r.keys());\n process.env.NODE_ENV !== \"production\" && console.info(`STATE PROCESSOR: ${c.length} node(s) processed:\n${c.map(\n (a) => `${a.name || \"<no name>\"} (${a.id})\n`\n )}`), c.forEach((a) => {\n const u = r.get(a);\n a.parent && a.parent.type === \"root\" && this.events.dispatch(\"components:root-children-changed\", { node: a }), u != null && u.context && this.events.dispatch(\"components:context-changed\", { node: a }), u != null && u.properties && this.events.dispatch(\"components:properties-changed\", { node: a }), u != null && u.layout && this.events.dispatch(\"components:layout-changed\", { node: a });\n }), this.events.dispatch(\"components:component-model-initialized\", {}, { bubbles: !0 });\n });\n Promise.all(\n Object.keys(e).map((r) => e[r].load(this))\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (r, c) => {\n const { node: a } = c;\n this.changesets.forEach((u) => {\n const { changeset: h, target: o, removes: p } = u, [l, d] = h;\n o.match(c.node) && (l.properties && p.push(a.writeProperties(l.properties, d)), l.context && p.push(a.writeContext(l.context, d)), l.layout && p.push(a.writeLayout(l.layout, d)));\n });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (r, c) => {\n i(c.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-properties\",\n (r, c) => {\n i(c.node, { properties: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-context\",\n (r, c) => {\n i(c.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-indent\",\n (r, c) => {\n i(c.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-layout\",\n (r, c) => {\n i(c.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-switched\", (r, { node: c, branch: a }) => {\n i(c, {\n layout: !0,\n recursive: !0,\n properties: !0,\n context: !0\n });\n })\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-removed\", (r, { parentNode: c }) => {\n i(c, { properties: !0 });\n })\n ), this.events.parent && this.events.parent.dispatch(\"components:platform-created\", { platform: this });\n }\n static getInstance(t) {\n return t.getAsync(\"components\");\n }\n addBreakpoint(t) {\n this.breakpoints.indexOf(t) === -1 && (this.breakpoints.push(t), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n removeBreakpoint(t) {\n const e = this.breakpoints.indexOf(t);\n e > -1 && (this.breakpoints.splice(e, 1), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n setSwitch(t, e) {\n this.switches[t.id] = e, this.events.dispatch(\"components:node-switched\", { node: t, branch: e });\n }\n getBranch(t) {\n return this.switches[t.id];\n }\n /**\n * Creates a `ComponentNode` of the specified type.\n * @param type Type of node.\n */\n createNode(t, e = {}) {\n const n = new L(this.events, t);\n return e.detached && this.nodes.detached.push(n), n;\n }\n components() {\n return new P(this);\n }\n actions(t, e) {\n return new k(this, t, e);\n }\n write(t) {\n const { provider: e, target: n, attributes: i, options: r = {}, removable: c } = t, a = t.key || O(), h = { changeset: [i, r], target: n, removes: [] };\n if (e) {\n const o = this.providers[e];\n o.write(a, n, i, r), h.removes.push(() => {\n o.remove(a);\n });\n }\n return this.changesets.push(h), this.nodes.all.forEach((o) => {\n if (n.match(o)) {\n let p = () => {\n };\n i.properties && (p = o.writeProperties(i.properties, r, c)), i.context && (p = o.writeContext(i.context, r, c)), i.layout && (p = o.writeContext(i.layout, r, c)), h.removes.push(p);\n }\n }), () => {\n if (c) {\n h.removes.forEach((p) => p());\n const o = this.changesets.indexOf(h);\n o > -1 && this.changesets.splice(o, 1);\n }\n };\n }\n addComponentHandler(t, e) {\n this.customComponentHandler.add(t, e);\n }\n getComponentHandler(t) {\n return this.customComponentHandler.get(t);\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n}\nconst ut = (s) => {\n if (Array.isArray(s)) {\n const [t, ...e] = s;\n return {\n definitionId: t,\n overrides: e\n };\n }\n return {\n definitionId: s,\n overrides: []\n };\n}, E = (s, t, e, n, i, r) => {\n e.forEach((c) => {\n const a = ut(c), u = n[a.definitionId];\n if (a.definitionId === \"view\") {\n const h = s.createNode(\"view\");\n h.name = \"view\", Object.keys(i).forEach((o) => {\n const p = i[o];\n E(s, h, [p.entry], n, i, o);\n }), t.appendChild(h), a.overrides.forEach((o) => {\n o.properties && h.writeProperties(o.properties, {\n breakpoints: o.breakpoints\n }), o.context && h.writeContext(o.context, { breakpoints: o.breakpoints }), o.layout && h.writeLayout(o.layout, { breakpoints: o.breakpoints });\n });\n } else if (s.getComponentHandler(u.type)) {\n const h = s.getComponentHandler(u.type);\n h && h(a, {\n platform: s,\n node: t,\n references: e,\n definitions: n,\n views: i,\n branch: r\n });\n } else {\n const h = n[a.definitionId];\n if (process.env.NODE_ENV !== \"production\" && !h) {\n N.error(\n `No definition found for component type '${a.definitionId}'.`\n );\n return;\n }\n const o = s.createNode(h.type);\n o.name = a.definitionId, o.tags = h.tags || [], h.properties && o.writeProperties(h.properties), h.context && o.writeContext(h.context), h.layout && o.writeLayout(h.layout), t.appendChild(o, r), a.overrides.forEach((p) => {\n const l = { breakpoints: p.breakpoints };\n p.properties && o.writeProperties(p.properties, l), p.context && o.writeContext(p.context, l), p.layout && o.writeLayout(p.layout, l);\n }), h.children && E(s, o, h.children, n, i);\n }\n });\n}, Ct = (s, t) => {\n const { entry: e, components: n, breakpoints: i, views: r } = t, c = [];\n return Object.keys(i).forEach((a) => {\n const u = i[a], h = window.matchMedia(u);\n h.matches && s.breakpoints.push(a);\n const o = (p) => {\n p.matches ? s.addBreakpoint(a) : s.removeBreakpoint(a);\n };\n h.addListener(o), c.push(() => h.removeListener(o));\n }), E(s, s.nodes.root, [e], n, r), () => c.forEach((a) => {\n a();\n });\n}, Et = (s, t) => ({\n id: s.id,\n type: s.type,\n name: s.name,\n branch: t || \"default\"\n}), Ot = (s, t, e, n = O(), i = {}) => s.getAsync(\"components\").then((r) => {\n let c;\n if (typeof t == \"string\") {\n const h = new P(r);\n h.ofType(t), c = h;\n } else\n c = t;\n const a = {}, u = (h) => {\n const o = a[h.id];\n return o ? Promise.resolve(o.controller) : pt.getInstance(s).then((p) => new H(p, h, n));\n };\n r.events.subscribe(\n \"components:node-enter\",\n (h, { node: o }) => {\n c.match(o) && u(o).then((p) => {\n Promise.resolve(e(p)).then((l) => {\n a[o.id] = {\n dispose: l,\n controller: p\n };\n });\n });\n }\n ), r.events.subscribe(\n \"components:node-exit\",\n (h, { node: o }) => {\n const p = a[o.id];\n p && (p.dispose && p.dispose(), i.reuseController || (p.controller.dispose(), delete a[o.id]));\n }\n );\n});\nclass Nt {\n constructor(t) {\n this.aliases = /* @__PURE__ */ new Map(), this.components = /* @__PURE__ */ new Map(), this.logger = new N();\n const { events: e } = t.get(\"$widget\");\n this.events = e;\n }\n getComponent(t) {\n const e = this.aliases.get(t), n = this.components.get(e || t) || null;\n return process.env.NODE_ENV !== \"production\" && (n || this.logger.warn(\n e || t,\n `Unable to resolve component: \"${e || t}\". You most likely forgot to register the required plugin for: ${e || t}.`\n )), n;\n }\n registerComponent(t, e) {\n return this.components.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.components.delete(t);\n };\n }\n registerResolver(t, e) {\n return this.events.subscribe(\"component-resolver:resolve\", (n, i) => {\n if (i === t) {\n const r = this.getComponent(t);\n e(r);\n }\n });\n }\n registerAlias(t, e) {\n return this.aliases.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.aliases.delete(t);\n };\n }\n}\nconst lt = \"#____version____#\", M = class extends Y {\n constructor(s, t = []) {\n super(s, t, {\n transformPluginSettings: (e, n, i) => {\n const r = i.get(\"$settings\"), c = r.plugins && n ? r.plugins[n] || {} : {};\n return y(y({}, c), e);\n }\n });\n }\n createImplementation(s) {\n const t = super.createImplementation(s);\n return t.bindings = s.bindings, t;\n }\n /**\n * Performs navigation for widgets matching the specified selector by invoking a\n * 'navigate' command.\n * @param selector Widget selector matching the widget(s) to perform navigation on.\n * @param route Route name.\n * @param params Route params.\n */\n navigate(s, t, e) {\n this.widgets.query(s).forEach((n) => n.invoke(\"navigate\", { route: t, params: e }));\n }\n /**\n * Creates a runtime based on provided configuration.\n * @param configuration Runtime configuration.\n */\n static create(s = {}) {\n const t = [G].concat(\n s.configurationApiExtensions || []\n );\n return new M(\"humany\", t);\n }\n /**\n * Creates a widget runtime based on provided configuration and retains configuration handlers\n * registered on global context. Use this factory to fully support the default embed script.\n * Will return any existing widget runtime if available.\n * @param configuration Runtime configuration.\n * @param global Object to read configuration handlers from (default: window).\n */\n static createFromGlobal(s, t = {}) {\n if (this.isRuntime(s))\n return s.patch(t), s;\n const e = [], n = s && s._c;\n n && n.forEach((r) => e.push(r));\n const i = this.create(t);\n return i.container.register(\"$runtimecfg\", e), i;\n }\n /**\n * Determines whether the specified object is a valid widget runtime.\n * @param obj Object to compare.\n */\n static isRuntime(s) {\n return !!(s && typeof s == \"object\" && s.container && typeof s.container.get == \"function\" && s.container.get(\"$environment\") === s && s.container.owner === s);\n }\n};\nlet dt = M;\ndt.version = `${lt} (${W})`;\nclass Pt extends J {\n constructor() {\n super(...arguments), this.bindings = [];\n }\n}\nclass kt extends X {\n constructor(t, e) {\n super(t, e);\n }\n}\nvar mt = /* @__PURE__ */ ((s) => (s.open = \"open\", s.closed = \"closed\", s.hidden = \"hidden\", s))(mt || {});\nclass $t extends Z {\n constructor(t) {\n super(t);\n }\n}\nexport {\n yt as ActionResolver,\n k as ActionsController,\n L as ComponentNode,\n H as ComponentNodeController,\n pt as ComponentPlatform,\n P as ComponentQuery,\n Nt as ComponentResolver,\n dt as Environment,\n Pt as Implementation,\n kt as Plugin,\n mt as WidgetRenderState,\n $t as WidgetType,\n Et as asDescriptor,\n xt as bootstrap,\n wt as componentConfigurationApi,\n E as createChildren,\n Ct as createComponentModel,\n tt as createEventSubscriber,\n Ot as extendComponent,\n nt as findComponent,\n w as findVisibleComponents,\n $ as traverseComponents,\n lt as version\n};\n//# sourceMappingURL=index.js.map\n","var q = Object.defineProperty;\nvar V = Object.getOwnPropertySymbols;\nvar B = Object.prototype.hasOwnProperty, G = Object.prototype.propertyIsEnumerable;\nvar W = (n, e, t) => e in n ? q(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, p = (n, e) => {\n for (var t in e || (e = {}))\n B.call(e, t) && W(n, t, e[t]);\n if (V)\n for (var t of V(e))\n G.call(e, t) && W(n, t, e[t]);\n return n;\n};\nvar S = (n, e, t) => new Promise((r, s) => {\n var o = (a) => {\n try {\n c(t.next(a));\n } catch (g) {\n s(g);\n }\n }, i = (a) => {\n try {\n c(t.throw(a));\n } catch (g) {\n s(g);\n }\n }, c = (a) => a.done ? r(a.value) : Promise.resolve(a.value).then(o, i);\n c((t = t.apply(n, e)).next());\n});\nimport { Logger as l, lock as f, deepClone as H, hash as L } from \"@telia-ace/widget-utilities\";\nvar u = /* @__PURE__ */ ((n) => (n.Cookie = \"cookie\", n.Local = \"local\", n.Session = \"session\", n))(u || {}), C = /* @__PURE__ */ ((n) => (n.Tenant = \"tenant\", n.Implementation = \"implementation\", n.Widget = \"widget\", n))(C || {}), m = /* @__PURE__ */ ((n) => (n.Necessary = \"necessary\", n.Functional = \"functional\", n.Analytical = \"analytical\", n.Marketing = \"marketing\", n))(m || {});\nconst Q = (n, e, t, r = {}) => j(n, t).then((s) => (process.env.NODE_ENV !== \"production\" && s && l.warn(\n `createStorageWriter: Attempted to create storage writer using unallowed category.\n Key: ${e}\n Category: ${JSON.stringify(t)}\n Options: ${JSON.stringify(r)}`\n), (o) => (T(n), j(n, t).then((i) => {\n if (i) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storageWriter: Attempted to write to storage using unallowed category.\n Key: ${e}\n Category: ${JSON.stringify(t)}\n Value: ${JSON.stringify(o)}\n Options: ${JSON.stringify(r)}`\n );\n return;\n }\n const {\n scope: c = C.Widget,\n medium: a = u.Session,\n duration: g\n } = r, d = Z();\n return d[c][e] = x(o, t, g), a === u.Cookie ? re(n, d) : se(n, a, d);\n})))), X = (n, e, t = u.Session) => (T(n), typeof e == \"undefined\" ? (process.env.NODE_ENV !== \"production\" && l.warn(\"readStorage: Undefined key passed when reading storage. \", e, t), Promise.resolve(void 0)) : t === u.Cookie ? ne(n).then((r) => $(r, e)) : oe(n, t).then((r) => $(r, e))), h = (n) => !!Object.entries(n).filter(([e, t]) => typeof t != \"undefined\").length, b = (n) => Object.entries(n).filter(([e, t]) => typeof t != \"undefined\").forEach(([e, { value: t }]) => {\n typeof t == \"undefined\" && delete n[e];\n}), z = (n, e) => {\n const t = {\n tenant: p(p({}, n.tenant), e.tenant),\n implementation: p(p({}, n.implementation), e.implementation),\n widget: p(p({}, n.widget), e.widget)\n };\n return b(t.tenant), b(t.implementation), b(t.widget), t;\n}, Y = (n) => Object.entries(n).reduce((t, r) => {\n const [s, o] = r;\n return Object.entries(o).forEach((i) => {\n const [c, { expiration: a }] = i;\n a && t.push(a);\n }), t;\n}, []).slice().sort((t, r) => new Date(r).valueOf() - new Date(t).valueOf()).shift() || P(), E = (n) => {\n const {\n name: e,\n implementation: { name: t, tenant: r }\n } = n.get(\"$widget\");\n return [\n `humany_${r}`,\n `humany_${L(r + t)}`,\n `humany_${L(r + t + e)}`\n ];\n}, I = (n) => {\n const e = new RegExp(`(?:^|;)\\\\s?${n}=(.*?)(?:;|$)`, \"i\"), t = document.cookie.match(e);\n return t && t[1] && JSON.parse(t[1]) || void 0;\n}, J = (n, e, t) => {\n const r = `${n}=${JSON.stringify(e).trim()}`, s = `expires=${new Date(t).toUTCString()}`, o = \"path=/\", i = \"SameSite=None;Secure\";\n return document.cookie = `${r}; ${s}; ${o}; ${i}`;\n}, _ = (n) => {\n const [e, t, r] = E(n), s = I(e) || {}, o = I(t) || {}, i = I(r) || {};\n return {\n tenant: s,\n implementation: o,\n widget: i\n };\n}, M = (n, e) => {\n const t = _(n), r = z(t, e), [s, o, i] = E(n), { tenant: c, implementation: a, widget: g } = r, d = Y(e), w = P({ days: -1 });\n J(s, c, h(c) ? d : w), J(\n o,\n a,\n h(a) ? d : w\n ), J(i, g, h(g) ? d : w);\n}, O = (n, e) => {\n const [t, r, s] = E(n), o = e.getItem(t) || \"{}\", i = e.getItem(r) || \"{}\", c = e.getItem(s) || \"{}\";\n return {\n tenant: JSON.parse(o),\n implementation: JSON.parse(i),\n widget: JSON.parse(c)\n };\n}, K = (n, e, t) => {\n const r = O(n, e), s = z(r, t), [o, i, c] = E(n), { tenant: a, implementation: g, widget: d } = s;\n h(a) ? e.setItem(o, JSON.stringify(a)) : e.removeItem(o), h(g) ? e.setItem(i, JSON.stringify(g)) : e.removeItem(i), h(d) ? e.setItem(c, JSON.stringify(d)) : e.removeItem(c);\n}, Z = () => ({ tenant: {}, implementation: {}, widget: {} }), ee = (n) => n ? !!n && /* @__PURE__ */ new Date() > new Date(n) : !1, $ = (n, e) => {\n const t = n.widget[e] || n.implementation[e] || n.tenant[e];\n return t == null ? void 0 : t.value;\n}, x = (n, e, t) => t ? {\n value: n,\n category: e,\n expiration: typeof t == \"object\" ? P(t) : t\n} : {\n value: n,\n category: e\n}, v = (n, e) => {\n const t = H(n);\n return Object.entries(t).forEach(([r, s]) => {\n Object.entries(s).forEach(([o, i]) => {\n const { expiration: c, category: a } = i;\n (ee(c) || te(e, a)) && (s[o] = x(void 0, a, c));\n });\n }), t;\n}, j = (n, e) => X(n, \"storagePolicy\", u.Cookie).then(\n (t = [m.Necessary]) => !!e && t.indexOf(e) === -1\n), te = (n = [m.Necessary], e) => !!e && n.indexOf(e) === -1, T = (n) => {\n const e = _(n), t = O(n, window.localStorage), r = O(n, sessionStorage), s = $(e, \"storagePolicy\"), [o, i, c] = [\n e,\n t,\n r\n ].map((a) => v(a, s));\n M(n, o), K(n, window.localStorage, i), K(n, window.sessionStorage, c);\n}, P = (n = { days: 30 }) => {\n const { days: e = 0, hours: t = 0, minutes: r = 0, seconds: s = 0 } = n, o = /* @__PURE__ */ new Date();\n return o.setTime(o.getTime() + t * 60 * 60 * 1e3), o.setTime(o.getTime() + e * 24 * 60 * 60 * 1e3), o.setTime(o.getTime() + r * 60 * 1e3), o.setTime(o.getTime() + s * 1e3), o.toISOString();\n}, ne = (n) => f(document)(() => _(n)), re = (n, e) => f(document)(() => M(n, e)), oe = (n, e) => {\n const t = e === u.Local ? window.localStorage : window.sessionStorage;\n return f(t)(() => O(n, t));\n}, se = (n, e, t) => {\n const r = e === u.Local ? window.localStorage : window.sessionStorage;\n return f(r)(() => K(n, r, t));\n};\nclass k {\n constructor() {\n this.memory = {\n tenant: {},\n implementation: {},\n widget: {}\n };\n }\n setItem(s, o) {\n return S(this, arguments, function* (e, t, r = {}) {\n return f(this)(() => {\n const i = v(this.memory, [m.Necessary]), { scope: c = C.Tenant, expiration: a } = r;\n i[c][e] = x(\n t,\n m.Necessary,\n (a == null ? void 0 : a.toISOString()) || P()\n ), this.memory = i, process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value stored temporarily in memory.\n Key: ${e}\n Value: ${JSON.stringify(t)}\n Options: ${JSON.stringify(r)}\n Memory: ${JSON.stringify(i)}`\n );\n });\n });\n }\n getItem(e) {\n return S(this, null, function* () {\n return f(this)(() => {\n const t = v(this.memory, [m.Necessary]);\n process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value fetched from legacy memory storage.\n Key: ${e}\n Memory: ${JSON.stringify(t)}`\n );\n const r = $(t, e);\n return this.memory = t, r;\n });\n });\n }\n removeItem(e) {\n return S(this, null, function* () {\n return f(this)(() => {\n const t = v(this.memory, [m.Necessary]);\n delete t.tenant[e], delete t.implementation[e], delete t.widget[e], this.memory = t, process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value removed from memory.\n Key: ${e}\n Memory: ${JSON.stringify(t)}`\n );\n });\n });\n }\n clear() {\n return S(this, null, function* () {\n return Promise.resolve();\n });\n }\n}\nclass de {\n constructor() {\n this.cookies = new k(), this.session = new k(), this.local = new k();\n }\n}\nconst D = (n, e, t, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${t}`;\n switch (e) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, ie = (n) => {\n const e = n.container || n;\n return {\n info: (t, ...r) => D(e, \"info\", t, ...r),\n warn: (t, ...r) => D(e, \"warning\", t, ...r),\n error: (t, ...r) => D(e, \"error\", t, ...r)\n };\n};\nvar A = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(A || {}), y = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(y || {});\nconst ae = (n, e, t, r) => {\n try {\n const s = new e(t, r);\n return {\n name: n,\n invoke: (o, i) => {\n let c;\n return s[o] && (c = s[o].call(s, i)), Promise.resolve(c);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (o) => {\n let i;\n return o === \"initialize\" && (i = e(t, r)), Promise.resolve(i);\n },\n getInstance: () => e\n };\n throw s;\n }\n};\nfunction F(n, e) {\n return typeof n == \"undefined\" ? e : n;\n}\nclass ce {\n constructor(e = {}) {\n this.part = e;\n }\n createCommand(e, t, r) {\n let s;\n typeof t == \"function\" ? s = {\n scope: A.Widget,\n stage: y.Post,\n defaultArgs: void 0,\n handlerResolver: t\n } : s = {\n scope: F(t.scope, A.Widget),\n stage: F(t.stage, y.Post),\n defaultArgs: t.defaultArgs,\n handlerResolver: r\n };\n let o = this.part;\n const i = e.split(\".\");\n return i.forEach((c, a) => {\n a === i.length - 1 ? o[c] || (o[c] = () => s) : o = this.part[c] = this.part[c] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst R = (n) => {\n const e = new ce({});\n return n(e), e.get();\n};\nR((n) => {\n n.createCommand(\n \"types.register\",\n { scope: A.Implementation, stage: y.Pre },\n (e) => (t, r) => {\n e.container.get(\"$types\")[t] = r;\n }\n ).createCommand(\n \"type\",\n { stage: y.Pre },\n (e) => (t) => {\n e.container.register(\"$type\", t);\n }\n ).createCommand(\n \"settings\",\n { stage: y.Pre, defaultArgs: [null] },\n (e) => (t) => {\n e.events.dispatch(\n \"settings:change\",\n t,\n { bubbles: !0 }\n ), e.container.register(\"$settings\", t);\n }\n ).createCommand(\n \"plugin\",\n { stage: y.Pre },\n (e) => (t, r, s) => {\n const { container: o } = e;\n let i = null, c = t, a = r;\n typeof t == \"string\" && (i = t, c = r, a = s);\n const g = (d) => {\n const { transformPluginSettings: w } = e.container.get(\"$environmentOptions\"), U = w ? w(\n a || {},\n i,\n e.container,\n c\n ) : r;\n try {\n const N = ae(\n i,\n c,\n o,\n U\n );\n o.get(\"$plugins\").push(N), d && N.invoke(\"initialize\", null);\n } catch (N) {\n ie(e).warn(\"Error when initializing plugin\", N);\n }\n };\n e.container.get(\"$instance\") ? g(!0) : e.events.subscribeOnce(\"widget:instance-created\", () => g(!1));\n }\n ).createCommand(\n \"container.register\",\n (e) => (t, r) => {\n e.container.register(t, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (e) => (t, r) => {\n e.container.registerAsync(t, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (e) => (t, r) => {\n e.container.registerFactory(t, r);\n }\n ).createCommand(\n \"container.touch\",\n (e) => (t, r) => {\n e.container.touch(t, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (e) => (t) => {\n e.container.register(\"csp\", t);\n }\n );\n});\nconst le = R((n) => {\n n.createCommand(\"storage\", (e) => (t = {}) => {\n const { consent: r } = t;\n if (typeof r != \"undefined\") {\n if (typeof r != \"number\" && typeof r != \"string\" && !Array.isArray(r)) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n if (Array.isArray(r) && !r.every(\n (o) => typeof o == \"number\" || typeof o == \"string\"\n )) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n const s = [\n m.Necessary,\n m.Functional,\n m.Analytical,\n m.Marketing\n ].filter((o, i, c) => typeof r == \"number\" ? r > i : typeof r == \"string\" ? c.indexOf(r) + 1 > i : Array.isArray(r) ? r.findIndex((a) => a === i + 1 || a === o) > -1 : !0);\n return s.indexOf(m.Necessary) === -1 && (process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent does not include category: '${m.Necessary}'. Consent has to atleast include the '${m.Necessary}' category.\n Passed consent: ${JSON.stringify(r)}`\n ), s.unshift(m.Necessary)), Q(\n e.container,\n \"storagePolicy\",\n m.Necessary,\n {\n medium: u.Cookie,\n scope: C.Tenant,\n duration: { days: 365 }\n }\n ).then((o) => o(s)).then(() => {\n T(e.container), e.events.dispatch(\"storage:policy-changed\", s);\n });\n }\n });\n});\nexport {\n m as StorageCategory,\n u as StorageMedium,\n de as StorageProvider,\n C as StorageScope,\n k as StorageService,\n Q as createStorageWriter,\n X as readStorage,\n le as storagePolicyConfigurationApi\n};\n//# sourceMappingURL=index.js.map\n","import { EventSubscriptionCancellation, Widget } from '@webprovisions/platform';\r\nimport {\r\n ConversationController,\r\n ConversationMessageType,\r\n getNormalizedMessageSettings,\r\n} from './conversation-controller';\r\nimport { ConversationMessageContent, ConversationMessageSender } from './types';\r\n\r\ntype ConversationLogMessage = {\r\n message?: string;\r\n options?: string[];\r\n alias: string;\r\n source: string;\r\n timestamp: number | null;\r\n};\r\n\r\nexport class ConversationHistory {\r\n private cache: Map<string, any> = new Map();\r\n\r\n private subscriptions: EventSubscriptionCancellation[] = [];\r\n\r\n constructor(private controller: ConversationController) {\r\n const { events } = controller.container.get('$widget') as Widget;\r\n\r\n const unsubscribe = events.subscribe('data-client:fetched', (_e, data) => {\r\n if (data.type === 'contact-method') {\r\n this.cache.set(data.response.id, data.response);\r\n }\r\n });\r\n this.subscriptions.push(unsubscribe);\r\n }\r\n\r\n getConversationLogs(): ConversationLogMessage[] {\r\n const logs = this.controller.messages.reduce<ConversationLogMessage[]>(\r\n (acc, message) => {\r\n const normalized = getNormalizedMessageSettings(message as any);\r\n const { content, type, sender, timestamp } = normalized.content;\r\n\r\n const parsed = this.parseEntry(content, type, sender, timestamp);\r\n\r\n if (parsed) {\r\n acc.push(parsed);\r\n }\r\n\r\n return acc;\r\n },\r\n []\r\n );\r\n\r\n return logs;\r\n }\r\n\r\n parseEntry(\r\n content: ConversationMessageContent,\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender,\r\n timestamp?: any | null\r\n ) {\r\n const handle = (body: any | any[]) => {\r\n let options: string[] = [];\r\n let messagesAsList: string[] = [];\r\n\r\n let messageData: any;\r\n\r\n // the actual content could also be an array,\r\n if (Array.isArray(body)) {\r\n const [_type, data] = body;\r\n messageData = data;\r\n } else {\r\n messageData = body;\r\n }\r\n\r\n const message = this.createMessageContent(messageData);\r\n if (message.length) {\r\n messagesAsList = [\r\n ...messagesAsList,\r\n this.createMessageContent(messageData),\r\n ];\r\n }\r\n options = [...options, ...this.createMessageOptions(messageData)];\r\n\r\n return {\r\n messagesAsList,\r\n options,\r\n };\r\n };\r\n\r\n let options: string[] = [];\r\n let messagesAsList: string[] = [];\r\n\r\n // a message could be either an array or just the content itself\r\n if (Array.isArray(content.items)) {\r\n const { items } = content;\r\n items.forEach((item) => {\r\n const res = handle(item);\r\n options = [...options, ...res.options];\r\n messagesAsList = [...messagesAsList, ...res.messagesAsList];\r\n });\r\n } else {\r\n const res = handle(content);\r\n options = [...options, ...res.options];\r\n messagesAsList = [...messagesAsList, ...res.messagesAsList];\r\n }\r\n\r\n const result: ConversationLogMessage = {\r\n options: options,\r\n message: messagesAsList.length ? messagesAsList.join('\\n') : undefined,\r\n source: this.createMessageSource(type),\r\n alias: this.createAlias(type, sender),\r\n timestamp,\r\n };\r\n\r\n return result;\r\n }\r\n\r\n private createMessageSource(type: ConversationMessageType) {\r\n return type;\r\n }\r\n\r\n private createAlias(\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender\r\n ) {\r\n if (type === ConversationMessageType.System) {\r\n return 'system';\r\n }\r\n return sender?.name || 'Me';\r\n }\r\n\r\n private handleContactMethod(contactMethodId: string) {\r\n if (!this.cache.has(contactMethodId)) {\r\n return;\r\n }\r\n\r\n const method = this.cache.get(contactMethodId);\r\n\r\n let result = '';\r\n\r\n result = this.appendText(result, `${method.clientName}:`);\r\n result = this.appendText(result, method.title);\r\n if (method.description) {\r\n result = this.appendText(result, method.title);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getDetails(item: any, linebreak = true) {\r\n if (!item) {\r\n return '';\r\n }\r\n\r\n const {\r\n header,\r\n title,\r\n label,\r\n description,\r\n text,\r\n html,\r\n body,\r\n contactMethodId,\r\n } = item;\r\n let result = '';\r\n\r\n if (contactMethodId) {\r\n const text = this.handleContactMethod(contactMethodId.toString());\r\n if (text) {\r\n result = this.appendText(result, text, linebreak);\r\n }\r\n }\r\n\r\n if (header) {\r\n result = this.appendText(result, header, linebreak);\r\n }\r\n if (title) {\r\n result = this.appendText(result, title, linebreak);\r\n }\r\n if (description) {\r\n result = this.appendText(result, description, linebreak);\r\n }\r\n if (text) {\r\n result = this.appendText(result, text, linebreak);\r\n }\r\n if (label) {\r\n result = this.appendText(result, label, linebreak);\r\n }\r\n if (html) {\r\n result = this.appendText(result, html, linebreak);\r\n }\r\n if (body) {\r\n if (typeof body === 'string') {\r\n result = this.appendText(result, body, linebreak);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n private createMessageContent(data: any) {\r\n let message = '';\r\n\r\n message = this.getDetails(data);\r\n\r\n return message;\r\n }\r\n\r\n private createMessageOptions(data: any): any[] {\r\n let options = [];\r\n let actions = [];\r\n\r\n if (Array.isArray(data?.actions)) {\r\n actions = data.actions;\r\n } else if (typeof data?.actions === 'object') {\r\n actions = Object.entries(data.actions).map(([key, value]) => {\r\n return {\r\n actionKey: key,\r\n label: value,\r\n };\r\n });\r\n }\r\n\r\n if (actions.length) {\r\n options = actions.map((option: any) => {\r\n return this.getDetails(option, false);\r\n });\r\n }\r\n return options;\r\n }\r\n\r\n private appendText(target: string, value: string, linebreak = true) {\r\n if (linebreak) {\r\n if (target.length) {\r\n return `${target}\\n${value}`;\r\n }\r\n }\r\n return target.length ? `${target} ${value}` : value;\r\n }\r\n\r\n dispose() {\r\n this.subscriptions.forEach((unsubscribe) => {\r\n unsubscribe();\r\n });\r\n }\r\n}\r\n","import { uuid } from '@telia-ace/widget-utilities';\r\nimport {\r\n ConversationEntry,\r\n ConversationMessageType,\r\n getNormalizedMessageSettings,\r\n} from './conversation-controller';\r\nimport { ConversationProvider } from './conversation-provider';\r\nimport {\r\n ConversationMessageSender,\r\n ConversationMessageSettings,\r\n ConverstationMessageItem,\r\n Symbol,\r\n} from './types';\r\n\r\nexport type AgentSettings = {\r\n id?: string;\r\n name?: string;\r\n avatar?: string | Symbol;\r\n};\r\n\r\nexport class Agent {\r\n id: string;\r\n name?: string;\r\n avatar?: string | Symbol;\r\n\r\n constructor(\r\n private provider: ConversationProvider,\r\n settings: AgentSettings\r\n ) {\r\n this.id = settings.id || uuid();\r\n this.name = settings.name;\r\n this.avatar = settings.avatar;\r\n }\r\n\r\n print = (\r\n settings:\r\n | string\r\n | ConversationMessageSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[],\r\n options?: {\r\n key?: string;\r\n }\r\n ): ConversationEntry | undefined => {\r\n const sender: ConversationMessageSender = {\r\n name: this.name,\r\n avatar: this.avatar,\r\n id: this.id,\r\n };\r\n const normalized = getNormalizedMessageSettings(settings, options);\r\n\r\n return this.provider.createEntry(\r\n normalized.key,\r\n normalized.content,\r\n ConversationMessageType.Agent,\r\n sender,\r\n normalized.timestamp\r\n );\r\n };\r\n typing = () => {\r\n return this.provider.setTypingState({\r\n name: this.name,\r\n avatar: this.avatar,\r\n });\r\n };\r\n\r\n update(settings: AgentSettings): void {\r\n const { name, avatar } = settings;\r\n if (avatar === null) {\r\n this.avatar = undefined;\r\n } else if (avatar) {\r\n this.avatar = avatar;\r\n }\r\n\r\n if (name === null) {\r\n this.name = undefined;\r\n } else if (name) {\r\n this.name = name;\r\n }\r\n\r\n this.provider.controller?.events.dispatch('conversation:agent-updated', {\r\n agent: this,\r\n });\r\n }\r\n}\r\n","import {\r\n Container,\r\n EventListener,\r\n EventObject,\r\n EventSubscriptionCancellation,\r\n} from '@webprovisions/platform';\r\nimport { Agent, AgentSettings } from './agent';\r\nimport {\r\n CancelLoaderDelegate,\r\n ConversationController,\r\n ConversationEntry,\r\n ConversationMessageType,\r\n ConversationOptions,\r\n} from './conversation-controller';\r\nimport {\r\n ConversationMessageContent,\r\n ConversationMessageSender,\r\n ConversationMessageSettings,\r\n} from './types';\r\n\r\nexport class ConversationProvider {\r\n private subscriptions: EventSubscriptionCancellation[] = [];\r\n public options: ConversationOptions;\r\n public user: any;\r\n\r\n private constructor(\r\n public name: string,\r\n _container: Container,\r\n public controller: ConversationController | null\r\n ) {\r\n this.user = controller?.user;\r\n this.options = {\r\n silent: false,\r\n };\r\n }\r\n\r\n static create(\r\n name: string,\r\n container: Container,\r\n controller: ConversationController\r\n ) {\r\n return new ConversationProvider(name, container, controller);\r\n }\r\n\r\n createAgent(settings: AgentSettings = {}): Agent | undefined {\r\n if (this.controller) {\r\n const storedAgent = this.controller.getAgentById(settings.id);\r\n\r\n const agent = storedAgent\r\n ? new Agent(this, { ...storedAgent, ...settings })\r\n : new Agent(this, settings);\r\n if (!storedAgent) {\r\n this.controller?.events.dispatch('conversation:agent-created', {\r\n agent,\r\n });\r\n }\r\n return agent;\r\n }\r\n }\r\n\r\n print(\r\n settings: string | ConversationMessageSettings\r\n ): ConversationEntry | undefined {\r\n return this.controller?.print(settings);\r\n }\r\n\r\n setTypingState(\r\n sender: ConversationMessageSender,\r\n type?: ConversationMessageType\r\n ) {\r\n return this.controller?.setTypingState(sender, type);\r\n }\r\n\r\n loading(): CancelLoaderDelegate {\r\n if (!this.controller) {\r\n return () => () => {};\r\n }\r\n return this.controller.loader();\r\n }\r\n\r\n createEntry(\r\n key: string,\r\n content: ConversationMessageContent,\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender,\r\n timestamp?: number | null\r\n ) {\r\n return this.controller?.createEntry(key, content, type, sender, timestamp);\r\n }\r\n\r\n dispose() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.log(`conversation-provider: dispose (${this.name})`);\r\n }\r\n this.controller?.disposeProvider(this);\r\n this.controller = null;\r\n this.subscriptions.forEach((unsub) => unsub());\r\n }\r\n\r\n isRehydrated() {\r\n return this.controller?.isRehydrated() || Promise.resolve(false);\r\n }\r\n\r\n getHistory() {\r\n return this.controller?.getHistory() || [];\r\n }\r\n\r\n complete() {\r\n this.controller?.onCompleteProvider();\r\n }\r\n\r\n setOptions(options: ConversationOptions = { silent: false }) {\r\n this.options = options;\r\n }\r\n\r\n onUnreadMessage(fn: EventListener): EventSubscriptionCancellation | void {\r\n if (this.controller) {\r\n const unsubscribe = this.controller?.onUnreadMessage(fn);\r\n this.subscriptions.push(unsubscribe);\r\n return () => {\r\n unsubscribe();\r\n };\r\n }\r\n }\r\n\r\n onMounted(fn: EventListener): EventSubscriptionCancellation | void {\r\n if (this.controller) {\r\n const unsubscribe = this.controller?.events.subscribe(\r\n 'conversation:component-mount-changed',\r\n fn\r\n );\r\n this.subscriptions.push(unsubscribe);\r\n fn({} as EventObject, this.controller.getComponentMountedState());\r\n return () => {\r\n unsubscribe();\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport default ConversationProvider;\r\n","import {\r\n createStorageWriter,\r\n readStorage,\r\n StorageCategory,\r\n} from '@telia-ace/widget-services';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { Agent, AgentSettings } from './agent';\r\nimport { ConversationController } from './conversation-controller';\r\n\r\ntype StoredConversationAgent = {\r\n id: string;\r\n name: string;\r\n avatar?: string;\r\n providerName: string;\r\n};\r\ntype StoredConversationMessage = any;\r\n\r\ntype StoredConversation = {\r\n agents: StoredConversationAgent[];\r\n messages: StoredConversationMessage[];\r\n};\r\n\r\nexport const createSessionStorageKey = (id: string) => {\r\n return `conversation-${id}`;\r\n};\r\n\r\nclass Locker {\r\n private _locking: Promise<void> = Promise.resolve();\r\n private _locks: number = 0;\r\n\r\n isLocked() {\r\n return this._locks > 0;\r\n }\r\n\r\n lock() {\r\n this._locks += 1;\r\n\r\n let unlockNext: () => void;\r\n\r\n let willLock = new Promise<void>(\r\n (resolve) =>\r\n (unlockNext = () => {\r\n this._locks -= 1;\r\n\r\n resolve();\r\n })\r\n );\r\n\r\n let willUnlock = this._locking.then(() => unlockNext);\r\n\r\n this._locking = this._locking.then(() => willLock);\r\n\r\n return willUnlock;\r\n }\r\n}\r\n\r\nclass Store {\r\n private sessionStorageKey: string;\r\n private locker = new Locker();\r\n private initialStoredAgents: StoredConversationAgent[] = [];\r\n\r\n constructor(\r\n private container: Container,\r\n conversation: ConversationController,\r\n private enabled: boolean // whether or not to store data\r\n ) {\r\n this.sessionStorageKey = createSessionStorageKey(conversation.id);\r\n\r\n conversation.onStarted(async () => {\r\n if (conversation.messages.length > 0) {\r\n // if the conversation already contains messages\r\n // for example when re-opening a minimized widget,\r\n // we do not want to do anything\r\n return;\r\n }\r\n const { agents: storedAgents } = await this.read();\r\n\r\n const agents: Agent[] = [];\r\n\r\n if (storedAgents) {\r\n storedAgents.forEach((a) => {\r\n const providerIndex = conversation.providerIndex(a.providerName);\r\n const provider =\r\n providerIndex > -1\r\n ? conversation.registeredProviders[providerIndex]\r\n : conversation.createProvider(a.providerName);\r\n\r\n const agent = new Agent(provider, {\r\n name: a.name,\r\n avatar: a.avatar,\r\n id: a.id,\r\n });\r\n agents.push(agent);\r\n });\r\n }\r\n\r\n const { messages: storedMessages } = await this.read();\r\n storedMessages.forEach((message) => {\r\n switch (message.type) {\r\n case 'agent': {\r\n const agent = agents.find((a) => a.id === message.sender?.id);\r\n if (agent) {\r\n agent.print(message.content.items || message.content, {\r\n key: message.key,\r\n });\r\n }\r\n return;\r\n }\r\n case 'user': {\r\n conversation.user.print(message.content.items || message.content, {\r\n key: message.key,\r\n });\r\n return;\r\n }\r\n case 'system':\r\n default: {\r\n conversation.print(message.content.items || message.content);\r\n }\r\n }\r\n });\r\n });\r\n conversation.onMessageCreated(async (_, data) => {\r\n this.write(data.message, 'messages');\r\n });\r\n\r\n conversation.events.subscribe(\r\n 'conversation:agent-created',\r\n async (_, data) => {\r\n const agent = {\r\n id: data.agent.id,\r\n name: data.agent.name,\r\n avatar: data.agent.avatar,\r\n providerName: data.agent.provider.name,\r\n };\r\n await this.write(agent, 'agents');\r\n }\r\n );\r\n\r\n conversation.events.subscribe(\r\n 'conversation:agent-updated',\r\n async (_, data) => {\r\n const { agents } = await this.read();\r\n\r\n await this.write(\r\n [\r\n ...agents.map((a) => {\r\n if (a.id === data.agent.id) {\r\n return {\r\n ...a,\r\n name: data.agent.name,\r\n avatar: data.agent.avatar,\r\n };\r\n }\r\n return a;\r\n }),\r\n ],\r\n 'agents',\r\n 'update'\r\n );\r\n }\r\n );\r\n }\r\n\r\n setInitialData(data: { agents: AgentSettings[] }) {\r\n this.initialStoredAgents = data.agents as StoredConversationAgent[];\r\n }\r\n\r\n async isRehydrated() {\r\n const { messages } = await this.read();\r\n return messages.length > 0;\r\n }\r\n\r\n getStoredAgent(agentId: string) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n return this.initialStoredAgents.find((a) => a.id === agentId);\r\n }\r\n\r\n async write(\r\n data: any,\r\n type: 'messages' | 'agents',\r\n action: 'add' | 'update' = 'add'\r\n ) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n\r\n const unlock = await this.locker.lock();\r\n return createStorageWriter(\r\n this.container,\r\n this.sessionStorageKey,\r\n StorageCategory.Necessary\r\n ).then(async (write) => {\r\n if (action === 'add') {\r\n const prev = await this.read();\r\n\r\n // ensure that we don't duplicate messages by looking at their unqiue keys\r\n if (\r\n type === 'messages' &&\r\n prev.messages.findIndex((m) => m.key === data.key) > -1\r\n ) {\r\n unlock();\r\n return;\r\n }\r\n\r\n let newData = {\r\n ...prev,\r\n };\r\n\r\n if (type === 'messages') {\r\n newData.messages = [...newData.messages, data];\r\n } else if (type === 'agents') {\r\n newData.agents = [...newData.agents, data];\r\n }\r\n\r\n return write({\r\n ...prev,\r\n ...newData,\r\n }).then(() => {\r\n unlock();\r\n });\r\n }\r\n\r\n if (action === 'update') {\r\n if (type === 'agents') {\r\n const prev = await this.read();\r\n\r\n return write({\r\n ...prev,\r\n agents: data,\r\n }).then(() => {\r\n unlock();\r\n });\r\n }\r\n }\r\n\r\n return write(data).then(() => {\r\n unlock();\r\n });\r\n });\r\n }\r\n\r\n async read() {\r\n return readStorage(this.container, this.sessionStorageKey).then((data) => {\r\n if (!data) {\r\n return {\r\n messages: [],\r\n agents: [],\r\n };\r\n }\r\n return data as StoredConversation;\r\n });\r\n }\r\n}\r\n\r\nexport default Store;\r\n","import {\r\n ConversationController,\r\n ConversationEntry,\r\n ConversationMessageType,\r\n getNormalizedMessageSettings,\r\n} from './conversation-controller';\r\nimport { ConversationMessageSettings } from './types';\r\n\r\nexport class User {\r\n constructor(private controller: ConversationController) {}\r\n\r\n print = (\r\n settings: string | ConversationMessageSettings,\r\n options?: {\r\n key?: string;\r\n }\r\n ): ConversationEntry => {\r\n const normalized = getNormalizedMessageSettings(settings, options);\r\n return this.controller.createEntry(\r\n normalized.key,\r\n normalized.content,\r\n ConversationMessageType.User,\r\n undefined,\r\n normalized.timestamp\r\n );\r\n };\r\n}\r\n","import { ComponentPlatform } from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { ConversationPlatform } from '../conversation-platform';\r\n\r\n/**\r\n * This will put the current provider(s) in a queue and\r\n * swap current provider to another one based on the providerName.\r\n * When ConversationProvider.complete() is called, the provider(s) in the\r\n * queue will become active again\r\n */\r\nexport const swapProvider = async (\r\n container: Container,\r\n conversationId: string,\r\n providerName: string\r\n) => {\r\n const conversation: ConversationPlatform = await container.getAsync('conversation');\r\n const components: ComponentPlatform = await container.getAsync('components');\r\n const currentInstance = conversation.controllers.find((c) => {\r\n return c.conversation.id === conversationId;\r\n });\r\n\r\n if (currentInstance) {\r\n const toQueue = [...currentInstance.conversation.providers];\r\n toQueue.forEach((name) => {\r\n currentInstance.conversation.setProviderOptions(name, { silent: true });\r\n });\r\n currentInstance.conversation.queueProviders(toQueue);\r\n currentInstance.conversation.setProviders([providerName]);\r\n const conversationQuery = components.components().ofType('conversation');\r\n components.write({\r\n key: 'setConversationProvider',\r\n attributes: {\r\n properties: { providers: [providerName] },\r\n },\r\n target: conversationQuery,\r\n provider: 'localStorage',\r\n });\r\n }\r\n};\r\n","// import { FormBuilder } from '@telia-ace/widget-forms';\r\nimport { uuid } from '@telia-ace/widget-utilities';\r\nimport {\r\n Container,\r\n EventListener,\r\n EventManager,\r\n Widget,\r\n} from '@webprovisions/platform';\r\nimport { AgentSettings } from './agent';\r\nimport { ConversationHistory } from './conversation-history';\r\nimport { ConversationProvider } from './conversation-provider';\r\nimport Store from './store';\r\nimport {\r\n ConversationMessageContent,\r\n ConversationMessageSender,\r\n ConversationMessageSettings,\r\n ConversationMessageUpdateSettings,\r\n ConverstationMessageItem,\r\n NormalizedMessageSettings,\r\n} from './types';\r\nimport { User } from './user';\r\nimport { swapProvider } from './utils/swap-provider';\r\nexport type ValidateHandler = (formValues: {\r\n [key: string]: any;\r\n}) => Promise<any>;\r\n\r\nexport type SubmitHandler = (formValues: {\r\n [key: string]: any;\r\n}) => Promise<any>;\r\n\r\nexport type ConversationOptions = { silent: boolean };\r\n\r\nexport type Print = (\r\n content: string | ConversationMessageContent\r\n) => ConversationEntry;\r\n\r\nexport type FormHandlers = { [key: string]: FormHandler };\r\nexport type FormHandler = { validate?: ValidateHandler; submit: SubmitHandler };\r\n\r\nexport type CancelLoaderDelegate = () => void;\r\n\r\nexport class ConversationEntry {\r\n constructor(private writer: EntryWriter) {}\r\n\r\n update(\r\n content:\r\n | string\r\n | ConversationMessageUpdateSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[]\r\n ) {\r\n const normalized = this.getNormalizedSettings(content);\r\n // const normalized = typeof content === 'string' ? { body: content } : content;\r\n this.writer(<ConversationMessageUpdateSettings>normalized);\r\n }\r\n\r\n remove() {\r\n this.writer(null);\r\n }\r\n\r\n private getNormalizedSettings(\r\n content:\r\n | string\r\n | ConversationMessageUpdateSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[]\r\n ) {\r\n if (typeof content === 'string') return { body: content };\r\n else if (content.length > -1 && typeof content === 'object')\r\n return { items: content };\r\n else return content;\r\n }\r\n}\r\n\r\nexport enum ConversationMessageType {\r\n User = 'user',\r\n Agent = 'agent',\r\n System = 'system',\r\n}\r\n\r\nexport type ConversationMessage = {\r\n key: string;\r\n timestamp: number | null;\r\n content: ConversationMessageContent | null;\r\n sender: ConversationMessageSender | null;\r\n type: ConversationMessageType;\r\n};\r\n\r\nexport type EntryWriter = (\r\n content: ConversationMessageUpdateSettings | null\r\n) => void;\r\n\r\nexport const getNormalizedMessageSettings = (\r\n settings:\r\n | string\r\n | ConversationMessageSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[],\r\n options?: {\r\n key?: string;\r\n }\r\n): NormalizedMessageSettings => {\r\n let content: ConversationMessageContent;\r\n let key = options?.key || uuid();\r\n let timestamp: number | null = Date.now();\r\n\r\n if (Array.isArray(settings) && settings.length > -1) {\r\n if (typeof settings[0] === 'string') {\r\n content = { items: [<ConverstationMessageItem<any>>settings] };\r\n } else {\r\n content = { items: <ConverstationMessageItem<any>[]>settings };\r\n }\r\n } else if (typeof settings === 'string') {\r\n content = { body: settings };\r\n } else {\r\n settings = <ConversationMessageSettings>settings || {};\r\n\r\n if (settings.type) {\r\n content = {\r\n ...(<any>settings),\r\n };\r\n } else {\r\n content = {\r\n body: settings.body,\r\n actions: settings.actions,\r\n title: settings.title,\r\n };\r\n if (settings.key) {\r\n key = settings.key;\r\n }\r\n if (settings.timestamp) {\r\n timestamp = settings.timestamp;\r\n }\r\n if (typeof settings.form === 'function') {\r\n // const builder = FormBuilder.create(key); // TODO:\r\n // settings.form(builder);\r\n // const builtForm = builder.get();\r\n // content.form = builtForm;\r\n }\r\n if (settings.timestamp === null) {\r\n timestamp = null;\r\n }\r\n }\r\n }\r\n return { content, key, timestamp };\r\n};\r\n\r\nconst removeTypingState = (\r\n typingActors: ConversationMessageSender[],\r\n sender?: ConversationMessageSender\r\n) => {\r\n if (!sender) {\r\n return;\r\n }\r\n const senderString = JSON.stringify(sender);\r\n const indexToRemove = typingActors.findIndex((item) => {\r\n return senderString === JSON.stringify(item);\r\n });\r\n if (indexToRemove > -1) {\r\n return typingActors.splice(indexToRemove, 1);\r\n }\r\n};\r\n\r\n/**\r\n * Manages the stream of messages inside a `ConversationComponent` and provides external read-write\r\n * access to it as well as exposing emitted actions.\r\n */\r\nexport class ConversationController {\r\n formHandlers: FormHandlers = {};\r\n\r\n /**\r\n * Represents the current end user.\r\n */\r\n user: User = new User(this);\r\n\r\n events: EventManager;\r\n\r\n providers: string[] = [];\r\n\r\n active: boolean = false;\r\n\r\n queuedProviders: string[] = [];\r\n\r\n registeredProviders: ConversationProvider[] = [];\r\n\r\n private loaders: number = 0;\r\n private componentMounted: boolean = false;\r\n\r\n private store: Store;\r\n\r\n messages: ConversationMessage[] = [];\r\n private typingActors: ConversationMessageSender[] = [];\r\n\r\n private conversationHistory: ConversationHistory;\r\n\r\n constructor(\r\n public container: Container,\r\n public id: string,\r\n options: { rehydrate: boolean }\r\n ) {\r\n const widget: Widget = container.get('$widget');\r\n this.events = widget.events.createChild(this);\r\n this.store = new Store(container, this, options.rehydrate);\r\n this.conversationHistory = new ConversationHistory(this);\r\n }\r\n\r\n setInitialStorage(data: { agents: AgentSettings[] }) {\r\n this.store.setInitialData(data);\r\n }\r\n\r\n setProviders(providers: string[]) {\r\n const removed: string[] = [];\r\n const added: string[] = [];\r\n\r\n // remove\r\n this.providers\r\n .reduce<string[]>((acc, provider) => {\r\n if (providers.indexOf(provider) === -1) {\r\n acc.push(provider);\r\n }\r\n return acc;\r\n }, [])\r\n .forEach((providerToRemove) => {\r\n const indexToRemove = this.providers.indexOf(providerToRemove);\r\n if (indexToRemove > -1) {\r\n removed.push(providerToRemove);\r\n this.providers.splice(indexToRemove, 1);\r\n }\r\n });\r\n\r\n // add\r\n providers.forEach((provider) => {\r\n if (this.providers.indexOf(provider) === -1) {\r\n added.push(provider);\r\n this.providers.push(provider);\r\n }\r\n });\r\n\r\n if (added.length || removed.length) {\r\n this.events.dispatch('conversation:providers-changed', {\r\n added,\r\n removed,\r\n });\r\n }\r\n }\r\n\r\n createProvider(name: string): ConversationProvider {\r\n const index = this.providerIndex(name);\r\n if (index > -1) {\r\n return this.registeredProviders[index];\r\n }\r\n const provider = ConversationProvider.create(name, this.container, this);\r\n this.registeredProviders.push(provider);\r\n return provider;\r\n }\r\n\r\n providerIndex(name: string) {\r\n return this.registeredProviders.findIndex((p) => p.name === name);\r\n }\r\n\r\n getAgentById(id?: string) {\r\n if (!id) {\r\n return;\r\n }\r\n return this.store.getStoredAgent(id);\r\n }\r\n\r\n dispose() {\r\n this.conversationHistory.dispose();\r\n this.registeredProviders.forEach((provider) => provider.dispose());\r\n this.messages = [];\r\n this.events.dispatch('conversation:controller-disposed', this);\r\n this.active = false;\r\n }\r\n\r\n onDispose(fn: EventListener) {\r\n return this.events.subscribe('conversation:controller-disposed', fn);\r\n }\r\n\r\n onStarted(fn: EventListener) {\r\n return this.events.subscribe('conversation:started', fn);\r\n }\r\n\r\n onMessageCreated(fn: EventListener) {\r\n return this.events.subscribe('conversation:message-created', fn);\r\n }\r\n\r\n isRehydrated() {\r\n return this.store.isRehydrated();\r\n }\r\n\r\n disposeProvider(target: ConversationProvider) {\r\n const index = this.providerIndex(target.name);\r\n index > -1 && this.registeredProviders.splice(index, 1);\r\n this.events.dispatch('conversation:providers-changed', {\r\n removed: [target.name],\r\n });\r\n if (!this.registeredProviders.length) {\r\n this.dispose();\r\n }\r\n }\r\n\r\n onProvidersChange(fn: EventListener) {\r\n return this.events.subscribe('conversation:providers-changed', fn);\r\n }\r\n\r\n setComponentMountedState(mounted: boolean) {\r\n if (this.componentMounted === mounted) {\r\n return;\r\n }\r\n this.componentMounted = mounted;\r\n if (mounted) {\r\n this.events.dispatch('conversation:unread-message', false);\r\n this.events.dispatch('conversation:started', true);\r\n this.active = true;\r\n }\r\n this.events.dispatch('conversation:component-mount-changed', mounted);\r\n }\r\n\r\n setProviderOptions(providerName: string, options: ConversationOptions) {\r\n const index = this.providerIndex(providerName);\r\n\r\n if (index > -1) {\r\n this.registeredProviders[index].setOptions(options);\r\n }\r\n }\r\n\r\n changeProvider(providerName: string) {\r\n const provider = this.registeredProviders.find(\r\n (p) => p.name === providerName\r\n );\r\n\r\n if (provider) {\r\n swapProvider(this.container, this.id, providerName);\r\n }\r\n }\r\n\r\n queueProviders(providers: string[]) {\r\n this.queuedProviders = providers;\r\n }\r\n\r\n onCompleteProvider() {\r\n const nextProvider = this.queuedProviders.pop();\r\n\r\n if (nextProvider) {\r\n swapProvider(this.container, this.id, nextProvider);\r\n }\r\n }\r\n\r\n getComponentMountedState() {\r\n return this.componentMounted;\r\n }\r\n\r\n onUnreadMessage(fn: EventListener) {\r\n return this.events.subscribe('conversation:unread-message', fn);\r\n }\r\n\r\n createEntry(\r\n key: string,\r\n content: ConversationMessageContent,\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender,\r\n timestamp?: number | null\r\n ): ConversationEntry {\r\n const message: ConversationMessage = {\r\n key,\r\n content,\r\n type,\r\n sender: sender || null,\r\n timestamp: timestamp || timestamp === null ? timestamp : Date.now(),\r\n };\r\n this.messages.push(message);\r\n message.type === ConversationMessageType.Agent &&\r\n removeTypingState(this.typingActors, sender);\r\n const entry = new ConversationEntry((updated) => {\r\n if (updated !== null) {\r\n const { timestamp: updatedTimestamp = undefined, ...content } = updated;\r\n message.content = content;\r\n if (updatedTimestamp) {\r\n message.timestamp = updatedTimestamp;\r\n }\r\n } else {\r\n const indexToRemove = this.messages.indexOf(message);\r\n message.content = null;\r\n if (indexToRemove > -1) {\r\n this.messages.splice(indexToRemove, 1);\r\n }\r\n }\r\n this.events.dispatch('conversation:message-updated', { message });\r\n this.update();\r\n });\r\n this.events.dispatch('conversation:message-created', { message });\r\n this.update();\r\n if (!this.componentMounted) {\r\n this.events.dispatch('conversation:unread-message', true);\r\n }\r\n return entry;\r\n }\r\n\r\n print = (\r\n settings: string | ConversationMessageSettings\r\n ): ConversationEntry => {\r\n const normalized = getNormalizedMessageSettings(settings);\r\n\r\n return this.createEntry(\r\n normalized.key,\r\n normalized.content,\r\n ConversationMessageType.System,\r\n undefined,\r\n normalized.timestamp\r\n );\r\n };\r\n\r\n update() {\r\n this.events.dispatch('conversation:updated', {\r\n messages: this.messages,\r\n loading: this.loaders > 0,\r\n typingActors: this.typingActors,\r\n });\r\n }\r\n\r\n getMessageStream() {\r\n return {\r\n messages: this.messages,\r\n loading: this.loaders > 0,\r\n typingActors: this.typingActors,\r\n };\r\n }\r\n\r\n setTypingState(\r\n sender: ConversationMessageSender,\r\n _type?: ConversationMessageType\r\n ) {\r\n if (this.typingActors.indexOf(sender) === -1) {\r\n this.typingActors.push(sender);\r\n this.update();\r\n }\r\n\r\n return () => {\r\n removeTypingState(this.typingActors, sender);\r\n this.update();\r\n };\r\n }\r\n\r\n /**\r\n * Displays a loader in the conversation.\r\n */\r\n loader(): CancelLoaderDelegate {\r\n this.loaders = this.loaders + 1;\r\n let dismissed = false;\r\n if (this.loaders === 1) {\r\n this.update();\r\n }\r\n return () => {\r\n if (!dismissed) {\r\n dismissed = true;\r\n this.loaders = this.loaders - 1;\r\n if (this.loaders === 0) {\r\n this.update();\r\n }\r\n }\r\n };\r\n }\r\n\r\n submitForm(key: string, handler: SubmitHandler) {\r\n this.formHandlers[key] = { ...this.formHandlers[key], submit: handler };\r\n }\r\n\r\n validateForm(key: string, handler: ValidateHandler) {\r\n this.formHandlers[key] = { ...this.formHandlers[key], validate: handler };\r\n }\r\n\r\n getHistory() {\r\n return this.conversationHistory.getConversationLogs();\r\n }\r\n}\r\n","import { ComponentPlatform, WidgetSettings } from '@telia-ace/widget-core';\r\n// import { closeAllModals } from '@telia-ace/widget-plugins';\r\nimport {\r\n createStorageWriter,\r\n StorageCategory,\r\n StorageMedium,\r\n StorageScope,\r\n} from '@telia-ace/widget-services';\r\nimport { Container, Implementation, Widget } from '@webprovisions/platform';\r\nimport {\r\n ConversationEndedBehavior,\r\n ConversationPlatform,\r\n} from '../conversation-platform';\r\n\r\nconst getParentWidget = (\r\n widgetName: string,\r\n implementation: Implementation\r\n) => {\r\n const mainWidgetName = widgetName.split('_contact');\r\n return implementation.widgets.get(mainWidgetName[0]);\r\n};\r\n\r\nconst getSeparateWidget = (container: Container) => {\r\n const originWidget = container.get('$widget');\r\n const { name, implementation }: Widget = container.get('$widget');\r\n\r\n const mainWidget =\r\n name.indexOf('_contact') > -1\r\n ? getParentWidget(name, implementation)\r\n : originWidget;\r\n const { data }: WidgetSettings = container.get('$settings');\r\n const { trigger }: WidgetSettings = mainWidget.container.get('$settings');\r\n const chatWidgetName = `${name\r\n .replace('_contact-method', '')\r\n .replace('_contact', '')}_contact-method`;\r\n\r\n const chatWidget = implementation.widgets.get(chatWidgetName);\r\n if (chatWidget && !trigger) {\r\n return { chatWidget, mainWidget, data };\r\n }\r\n return { mainWidget, data };\r\n};\r\n\r\nexport const shouldPreventDefault = (container: Container) => {\r\n const { chatWidget } = getSeparateWidget(container);\r\n return !!chatWidget;\r\n};\r\n\r\nexport const openChatWidget = (\r\n container: Container,\r\n contactMethod: any /*ContactMethodType*/,\r\n triggerDOMTarget?: HTMLElement\r\n) => {\r\n const { mainWidget, data, chatWidget } = getSeparateWidget(container);\r\n\r\n if (chatWidget) {\r\n if (chatWidget.state === 'activated') {\r\n return chatWidget.invoke('open').then(() => {\r\n chatWidget.container.getAsync('conversation').then((conversation) => {\r\n conversation.navigateToConversationIfActive(contactMethod.id);\r\n // .then(() => closeAllModals(container)); // TODO:\r\n });\r\n });\r\n }\r\n return chatWidget\r\n .activate()\r\n .then(() => {\r\n const { trigger } = chatWidget.container.get('$settings');\r\n trigger.action = 'hide'; // could be default in configuration\r\n return chatWidget\r\n .invoke('setSettings', () => ({\r\n data,\r\n trigger,\r\n activate: true,\r\n }))\r\n .then(() => {\r\n return chatWidget.container\r\n .getAsync('components')\r\n .then((components: ComponentPlatform) => {\r\n /**\r\n * Could cause issues if target widget is no longer as specific for this use case\r\n */\r\n const contactMethodsQuery = components\r\n .components()\r\n .ofType('contact-method');\r\n components.write({\r\n key: 'setContactMethodId',\r\n attributes: {\r\n properties: {\r\n id: contactMethod.id,\r\n guideId: contactMethod.guideId,\r\n },\r\n },\r\n target: contactMethodsQuery,\r\n provider: 'localStorage',\r\n });\r\n const conversationsQuery = components\r\n .components()\r\n .ofType('conversation');\r\n components.write({\r\n key: 'setConversationProvider',\r\n attributes: {\r\n properties: { providers: [contactMethod.clientName] },\r\n },\r\n target: conversationsQuery,\r\n provider: 'localStorage',\r\n });\r\n });\r\n });\r\n })\r\n .then(() => {\r\n return chatWidget.invoke('attach', {\r\n key: 'contact-method',\r\n triggerDOMElement: triggerDOMTarget,\r\n withRenderState: 'open',\r\n });\r\n })\r\n .then(() => {\r\n createStorageWriter(\r\n chatWidget.container,\r\n 'activeStickyWidget',\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n scope: StorageScope.Implementation,\r\n }\r\n ).then((write) => write(chatWidget.name));\r\n\r\n return (\r\n chatWidget.container\r\n .getAsync('conversation')\r\n .then((platform) => {\r\n platform.setConversationEndedBehavior(\r\n ConversationEndedBehavior.Deactivate\r\n );\r\n })\r\n // .then(() => closeAllModals(container)) // TODO:\r\n .then(() => false)\r\n );\r\n });\r\n }\r\n mainWidget.container\r\n .getAsync('conversation')\r\n .then((platform: ConversationPlatform) => {\r\n return platform\r\n .navigateToConversationIfActive(contactMethod.id)\r\n .then(() =>\r\n platform.setConversationEndedBehavior(\r\n ConversationEndedBehavior.Navigate\r\n )\r\n );\r\n });\r\n return chatWidget ? false : true;\r\n};\r\n\r\nexport const navigateToConversation = (\r\n container: Container,\r\n contactMethod: any /*ContactMethodType*/,\r\n routeName = 'conversation'\r\n) => {\r\n const { mainWidget, chatWidget } = getSeparateWidget(container);\r\n if (chatWidget) {\r\n return chatWidget.container.getAsync('router').then((router: any) => {\r\n router.navigate(routeName, { id: contactMethod.id });\r\n });\r\n }\r\n\r\n return mainWidget.container\r\n .getAsync('conversation')\r\n .then((platform: ConversationPlatform) => {\r\n platform\r\n .setConversationEndedBehavior(ConversationEndedBehavior.Navigate)\r\n ?.then(() => {\r\n mainWidget.container.getAsync('router').then((router: any) => {\r\n mainWidget.container\r\n .getAsync('components')\r\n .then((components: ComponentPlatform) => {\r\n const conversationQuery = components\r\n .components()\r\n .ofType('conversation');\r\n components.write({\r\n key: 'setConversationProvider',\r\n attributes: {\r\n properties: { providers: [contactMethod.clientName] },\r\n },\r\n target: conversationQuery,\r\n provider: 'localStorage',\r\n });\r\n })\r\n .then(() => {\r\n router.navigate(routeName, { id: contactMethod.id });\r\n });\r\n });\r\n });\r\n });\r\n};\r\n","import {\r\n ComponentNodeController,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n} from '@telia-ace/widget-core';\r\nimport { RouteData, RoutingService } from '@telia-ace/widget-routing';\r\nimport {\r\n createStorageWriter,\r\n readStorage,\r\n StorageCategory,\r\n StorageMedium,\r\n StorageWriter,\r\n} from '@telia-ace/widget-services';\r\nimport { lock } from '@telia-ace/widget-utilities';\r\nimport {\r\n Container,\r\n EventManager,\r\n EventSubscriptionCancellation,\r\n Widget,\r\n} from '@webprovisions/platform';\r\nimport { AgentSettings } from './agent';\r\nimport { ConversationController } from './conversation-controller';\r\nimport { ConversationProvider } from './conversation-provider';\r\nimport { createSessionStorageKey } from './store';\r\nimport {\r\n navigateToConversation,\r\n openChatWidget,\r\n shouldPreventDefault,\r\n} from './utils';\r\nimport { swapProvider } from './utils/swap-provider';\r\n\r\nconst STORAGE_KEY = 'conversations';\r\n\r\nexport type ConversationHandler = (\r\n conversation: ConversationProvider,\r\n component: ComponentNodeController\r\n) => void | (() => void);\r\n\r\nexport type UnregisterControllerDelegate = () => void;\r\n\r\nexport type ConversationProviderRegistration = {\r\n name: string;\r\n handler: ConversationHandler;\r\n};\r\n\r\nexport enum ConversationEndedBehavior {\r\n Deactivate = 'deactivate',\r\n Navigate = 'navigate',\r\n None = 'none',\r\n}\r\n\r\nexport type SessionInfo = {\r\n id?: string;\r\n route?: RouteData;\r\n conversationEndedBehavior?: ConversationEndedBehavior;\r\n};\r\n\r\nexport class ConversationPlatform {\r\n events: EventManager;\r\n public controllers: {\r\n conversation: ConversationController;\r\n component: ComponentNodeController;\r\n }[] = [];\r\n private providers: ConversationProviderRegistration[] = [];\r\n private disposeProviders: { [providerKey: string]: (() => void)[] } = {};\r\n private subscriptions: EventSubscriptionCancellation[] = [];\r\n private storageWriter: StorageWriter | null = null;\r\n private router: RoutingService | null = null;\r\n private buttonQuery: ComponentQuery | null = null;\r\n private sessionInfo: SessionInfo | null = null;\r\n\r\n constructor(\r\n private container: Container,\r\n private components: ComponentPlatform\r\n ) {\r\n const widget: Widget = container.get('$widget');\r\n this.events = widget.events.createChild(this);\r\n }\r\n\r\n initialize() {\r\n createStorageWriter(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ).then((writer) => (this.storageWriter = writer));\r\n\r\n readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((storedSession) => {\r\n this.buttonQuery = this.components\r\n .components()\r\n .ofType('conversation-return-button');\r\n if (storedSession) {\r\n this.sessionInfo = storedSession;\r\n if (storedSession.id && storedSession.route) {\r\n this.writeToComponents({ active: true, alert: { show: false } });\r\n }\r\n }\r\n });\r\n this.container.getAsync('router').then((router) => (this.router = router));\r\n this.events.subscribe('conversation:ended', (_event, _data) => {\r\n switch (this.sessionInfo?.conversationEndedBehavior) {\r\n case ConversationEndedBehavior.Deactivate:\r\n const widget: Widget = this.container.get('$widget');\r\n widget.deactivate();\r\n break;\r\n case ConversationEndedBehavior.Navigate:\r\n const initialRoute = this.router?.getInitialRoute();\r\n if (initialRoute) {\r\n this.router?.navigate(initialRoute.name);\r\n }\r\n break;\r\n case ConversationEndedBehavior.None:\r\n default:\r\n break;\r\n }\r\n this.writeToComponents({ active: false });\r\n this.sessionInfo = null;\r\n this.storageWriter && this.storageWriter();\r\n });\r\n }\r\n\r\n addSubscription(sub: EventSubscriptionCancellation) {\r\n this.subscriptions.push(sub);\r\n }\r\n\r\n static getInstance(\r\n container: Container,\r\n key: string = 'conversation'\r\n ): Promise<ConversationPlatform> {\r\n return lock(container)(() => {\r\n return container.getAsync(key).then((value: ConversationPlatform) => {\r\n let conversation = value;\r\n\r\n if (!conversation) {\r\n return ComponentPlatform.getInstance(container).then((components) => {\r\n conversation = new ConversationPlatform(container, components);\r\n conversation.initialize();\r\n container.registerAsync(key, () => conversation);\r\n return conversation;\r\n });\r\n }\r\n return conversation;\r\n });\r\n });\r\n }\r\n\r\n navigateToConversationIfActive(id: string): Promise<void> {\r\n return readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((storedSession) => {\r\n if (storedSession && storedSession.id === id) {\r\n if (storedSession.route) {\r\n const { name, params } = storedSession.route;\r\n this.router?.navigate(name, params);\r\n }\r\n }\r\n });\r\n }\r\n\r\n setConversationEndedBehavior(behavior: ConversationEndedBehavior) {\r\n return readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((stored) => {\r\n let storedSession = stored;\r\n if (storedSession) {\r\n storedSession.conversationEndedBehavior = behavior;\r\n } else {\r\n storedSession = { conversationEndedBehavior: behavior };\r\n }\r\n this.sessionInfo = storedSession;\r\n return (\r\n (this.storageWriter && this.storageWriter(this.sessionInfo)) ||\r\n Promise.resolve()\r\n );\r\n });\r\n }\r\n\r\n async createController(id: string, options: { rehydrate: boolean }) {\r\n const storageKey = createSessionStorageKey(id);\r\n const { agents: storedAgents } = (await readStorage<{\r\n agents: AgentSettings[];\r\n }>(this.container, storageKey)) || { agents: [] };\r\n\r\n const index = this.controllers.findIndex((c) => c.conversation.id === id);\r\n let controller;\r\n if (index > -1) {\r\n controller = this.controllers[index].conversation;\r\n } else {\r\n controller = new ConversationController(this.container, id, options);\r\n }\r\n\r\n controller.setInitialStorage({ agents: storedAgents || [] });\r\n return controller;\r\n }\r\n\r\n registerProvider(name: string, handler: ConversationHandler): void {\r\n const provider = {\r\n name,\r\n handler,\r\n };\r\n this.providers.push(provider);\r\n // execute provider for all matching controllers\r\n this.controllers\r\n .filter(\r\n (controller) => controller.conversation.providers.indexOf(name) > -1\r\n )\r\n .forEach((controller) => {\r\n this.invokeHandler(provider, controller);\r\n });\r\n }\r\n\r\n registerController(\r\n conversation: ConversationController,\r\n component: ComponentNodeController\r\n ): boolean {\r\n const index = this.controllers.findIndex(\r\n (c) => c.conversation.id === conversation.id\r\n );\r\n let controller: any;\r\n if (index < 0) {\r\n controller = { conversation, component };\r\n this.controllers.push(controller);\r\n const invokeHandlers = (providers: string[]) => {\r\n if (providers) {\r\n this.providers\r\n .filter((provider) => providers.indexOf(provider.name) > -1)\r\n .forEach((provider) => {\r\n this.invokeHandler(provider, controller);\r\n });\r\n }\r\n };\r\n\r\n this.subscriptions.push(\r\n conversation.onDispose((_event, data) => {\r\n const index = this.controllers.findIndex(\r\n (c) => c.conversation === data\r\n );\r\n index > -1 && this.controllers.splice(index, 1);\r\n this.components\r\n .components()\r\n .ofType('conversation-return-button')\r\n .select()\r\n .writeProperties({ active: false });\r\n\r\n this.events.dispatch('conversation:ended', {}, { bubbles: true });\r\n })\r\n );\r\n this.subscriptions.push(\r\n conversation.onProvidersChange((_event, data) => {\r\n const {\r\n added,\r\n removed = [],\r\n }: { added: string[]; removed: string[] } = data;\r\n removed.forEach((removedProvider) => {\r\n (this.disposeProviders[removedProvider] || []).forEach(\r\n (dispose) => {\r\n dispose();\r\n }\r\n );\r\n });\r\n invokeHandlers(added);\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n conversation.onStarted((_event, isActive) => {\r\n const session: SessionInfo = {\r\n id: conversation.id,\r\n route: this.router?.getRouteData(),\r\n conversationEndedBehavior:\r\n this.sessionInfo?.conversationEndedBehavior,\r\n };\r\n this.sessionInfo = session;\r\n this.storageWriter && this.storageWriter(session);\r\n\r\n this.writeToComponents({ active: isActive });\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n conversation.onUnreadMessage((_event, data) => {\r\n this.events.dispatch('conversation:unread-message', data);\r\n this.writeToComponents({ alert: { show: data } });\r\n })\r\n );\r\n\r\n invokeHandlers(conversation.providers);\r\n return true;\r\n }\r\n controller = this.controllers[index];\r\n return false;\r\n }\r\n\r\n private writeToComponents(\r\n properties: any,\r\n _key: string = 'conversationReturnButtonState'\r\n ) {\r\n if (this.buttonQuery) {\r\n this.components.write({\r\n key: 'conversationReturnButtonState',\r\n attributes: { properties },\r\n target: this.buttonQuery,\r\n provider: 'localStorage',\r\n });\r\n }\r\n }\r\n\r\n private invokeHandler(\r\n provider: ConversationProviderRegistration,\r\n controller: any\r\n ) {\r\n const dispose = provider.handler(\r\n controller.conversation.createProvider(provider.name),\r\n controller.component\r\n );\r\n if (dispose) {\r\n if (!this.disposeProviders[provider.name]) {\r\n this.disposeProviders[provider.name] = [];\r\n }\r\n this.disposeProviders[provider.name].push(dispose);\r\n }\r\n }\r\n\r\n getComponentRoute() {\r\n return readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((stored) => stored?.route);\r\n }\r\n\r\n dispose() {\r\n Object.keys(this.disposeProviders).forEach((key) => {\r\n this.disposeProviders[key].forEach((dispose) => {\r\n dispose();\r\n });\r\n });\r\n this.subscriptions.forEach((unsubscribe) => {\r\n unsubscribe();\r\n });\r\n this.controllers = [];\r\n this.providers = [];\r\n }\r\n\r\n public static async handleContactMethodClick(\r\n event: any,\r\n container: Container,\r\n contactMethod: any,\r\n _callback?: Function\r\n ) {\r\n if (shouldPreventDefault(container)) {\r\n event.preventDefault();\r\n let triggerEl = document.getElementById('humany-dynamic-anchor');\r\n if (!triggerEl) {\r\n triggerEl = document.createElement('a');\r\n triggerEl.setAttribute('href', '#');\r\n triggerEl.id = 'humany-dynamic-anchor';\r\n document.body.appendChild(triggerEl);\r\n }\r\n openChatWidget(container, contactMethod, triggerEl);\r\n }\r\n openChatWidget(container, contactMethod);\r\n }\r\n\r\n public static async handleContactMethodSubmit(\r\n container: Container,\r\n contactMethod: any\r\n ) {\r\n if (contactMethod?.body.form.meta?.conversation?.id) {\r\n // if we already are in a conversational context, we always want to swap\r\n // the current provider instead of a route navigation\r\n return swapProvider(\r\n container,\r\n contactMethod.body.form.meta.conversation.id,\r\n contactMethod.clientName\r\n );\r\n }\r\n\r\n return navigateToConversation(container, contactMethod);\r\n }\r\n}\r\n","var Br = Object.defineProperty, Vr = Object.defineProperties;\nvar zr = Object.getOwnPropertyDescriptors;\nvar on = Object.getOwnPropertySymbols, Wr = Object.getPrototypeOf, Fr = Object.prototype.hasOwnProperty, qr = Object.prototype.propertyIsEnumerable, Jr = Reflect.get;\nvar an = (n, t, e) => t in n ? Br(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, st = (n, t) => {\n for (var e in t || (t = {}))\n Fr.call(t, e) && an(n, e, t[e]);\n if (on)\n for (var e of on(t))\n qr.call(t, e) && an(n, e, t[e]);\n return n;\n}, zt = (n, t) => Vr(n, zr(t));\nvar cn = (n, t, e) => Jr(Wr(n), e, t);\nvar z = (n, t, e) => new Promise((r, s) => {\n var i = (c) => {\n try {\n a(e.next(c));\n } catch (h) {\n s(h);\n }\n }, o = (c) => {\n try {\n a(e.throw(c));\n } catch (h) {\n s(h);\n }\n }, a = (c) => c.done ? r(c.value) : Promise.resolve(c.value).then(i, o);\n a((e = e.apply(n, t)).next());\n});\nconst Ee = (n, t, e, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, Kr = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Ee(t, \"info\", e, ...r),\n warn: (e, ...r) => Ee(t, \"warning\", e, ...r),\n error: (e, ...r) => Ee(t, \"error\", e, ...r)\n };\n};\nvar se = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(se || {}), pt = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(pt || {});\nconst Gr = (n, t, e, r) => {\n try {\n const s = new t(e, r);\n return {\n name: n,\n invoke: (i, o) => {\n let a;\n return s[i] && (a = s[i].call(s, o)), Promise.resolve(a);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let o;\n return i === \"initialize\" && (o = t(e, r)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw s;\n }\n};\nfunction hn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet Yr = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: se.Widget,\n stage: pt.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: hn(e.scope, se.Widget),\n stage: hn(e.stage, pt.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const o = t.split(\".\");\n return o.forEach((a, c) => {\n c === o.length - 1 ? i[a] || (i[a] = () => s) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n};\nconst Je = (n) => {\n const t = new Yr({});\n return n(t), t.get();\n};\nJe((n) => {\n n.createCommand(\n \"types.register\",\n { scope: se.Implementation, stage: pt.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: pt.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: pt.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: pt.Pre },\n (t) => (e, r, s) => {\n const { container: i } = t;\n let o = null, a = e, c = r;\n typeof e == \"string\" && (o = e, a = r, c = s);\n const h = (l) => {\n const { transformPluginSettings: u } = t.container.get(\"$environmentOptions\"), d = u ? u(\n c || {},\n o,\n t.container,\n a\n ) : r;\n try {\n const p = Gr(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n Kr(t).warn(\"Error when initializing plugin\", p);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nvar Qn = /* @__PURE__ */ ((n) => (n.Activating = \"activating\", n.Loading = \"loading\", n.Activated = \"activated\", n.Deactivating = \"deactivating\", n.Deactivated = \"deactivated\", n))(Qn || {});\nlet Zr = class {\n /**\n * Creates a new `Widget` instance.\n * @param container The `Container` instance to base the widget upon.\n */\n constructor(t) {\n this.container = t, this.widget = t.get(\"$widget\"), this.settings = t.get(\"$settings\"), this.events = this.widget.events, this.widget.events.subscribe(\"settings:change\", (e, r) => {\n this.settings = r;\n });\n }\n};\nvar ln = Object.getOwnPropertySymbols, Qr = Object.prototype.hasOwnProperty, Xr = Object.prototype.propertyIsEnumerable, ts = (n, t) => {\n var e = {};\n for (var r in n)\n Qr.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && ln)\n for (var r of ln(n))\n t.indexOf(r) < 0 && Xr.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction es(n = {}) {\n const t = n, {\n phrase: e = \"\",\n category: r,\n guideCategory: s,\n contactCategory: i,\n take: o,\n connectionKey: a,\n accordion: c,\n id: h,\n uriName: l,\n sorting: u,\n tag: d,\n tagId: p,\n tagTitle: b\n } = t, v = ts(t, [\n \"phrase\",\n \"category\",\n \"guideCategory\",\n \"contactCategory\",\n \"take\",\n \"connectionKey\",\n \"accordion\",\n \"id\",\n \"uriName\",\n \"sorting\",\n \"tag\",\n \"tagId\",\n \"tagTitle\"\n ]), g = {};\n return Object.keys(v).forEach((O) => {\n typeof n[O] == \"string\" && (g[O] = n[O]);\n }), typeof e == \"string\" && e.length && (g.phrase = e), e === null && (g.phrase = e), typeof s == \"string\" && s !== \"0\" && (g.guideCategory = s), typeof s == \"number\" && s !== 0 && (g.guideCategory = s), typeof s == \"object\" && s !== null && (typeof s.id == \"string\" && s.id !== \"0\" && (g.guideCategory = s.id), typeof s.id == \"number\" && s.id !== 0 && (g.guideCategory = s.id)), typeof i == \"string\" && i !== \"0\" && (g.contactCategory = i), typeof i == \"number\" && i !== 0 && (g.contactCategory = i), typeof i == \"object\" && i !== null && (typeof i.id == \"string\" && i.id !== \"0\" && (g.contactCategory = i.id), typeof i.id == \"number\" && i.id !== 0 && (g.contactCategory = i.id)), typeof r == \"string\" && r !== \"0\" && (g.category = r), typeof r == \"number\" && r !== 0 && (g.category = r), typeof r == \"object\" && r !== null && (typeof r.id == \"string\" && r.id !== \"0\" && (g.category = r.id), typeof r.id == \"number\" && r.id !== 0 && (g.category = r.id)), h && (g.id = h), l && (+g.category || +g.guideCategory || +g.guide || +g.contactCategory || +g.contactMethod) && (g.uriName = l), a && (g.connectionKey = a), o && (g.take = o), u && (g.sorting = u), typeof c == \"string\" && c.length > 0 && (g.accordion = c), typeof d == \"string\" && d !== \"0\" && (g.tag = d), typeof d == \"number\" && d !== 0 && (g.tag = d), Array.isArray(d) && d.length && (g.tag = d), (typeof p == \"string\" || typeof p == \"number\") && (g.tagId = p), typeof b == \"string\" && (g.tagTitle = b), typeof g.tag == \"string\" && (g.tag = g.tag.split(\",\")), g;\n}\nconst pe = (n, t, ...e) => typeof t == \"string\" ? n(`[humany] ${t}`, ...e) : n(t, ...e), Nt = class {\n constructor() {\n this.keys = [], this.log = (t, ...e) => this.lookup(t, () => Nt.log(...e)), this.warn = (t, ...e) => this.lookup(t, () => Nt.warn(...e)), this.error = (t, ...e) => this.lookup(t, () => Nt.error(...e)), this.info = (t, ...e) => this.lookup(t, () => Nt.info(...e));\n }\n lookup(t, e) {\n this.keys.indexOf(t) === -1 && (this.keys.push(t), e());\n }\n};\nlet I = Nt;\nI.log = (...n) => pe(console.log, ...n);\nI.warn = (...n) => pe(console.warn, ...n);\nI.error = (...n) => pe(console.error, ...n);\nI.info = (...n) => pe(console.info, ...n);\nconst Xn = (n) => {\n let t = {}, e, r;\n if (typeof n != \"object\" || n === null)\n return n;\n t = Array.isArray(n) ? [] : {};\n for (r in n)\n e = n[r], t[r] = typeof e == \"object\" && e !== null ? Xn(e) : e;\n return t;\n}, ns = Xn;\nfunction un(n) {\n let t = 0;\n if (n.length === 0)\n return t.toString();\n for (let e = 0; e < n.length; e++) {\n const r = n.charCodeAt(e);\n t = (t << 5) - t + r, t = t & t;\n }\n return t.toString();\n}\nlet rs = class {\n constructor(t, e) {\n this.lockWarningTime = t, this.lockErrorTime = e, this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, e, r, s) {\n this.tasks.push({ task: t, resolve: e, reject: r, done: s }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n let e;\n const r = setTimeout(() => {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\n t\n ), e = setTimeout(() => {\n t.reject(\"lock timeout exceeded\");\n }, this.lockErrorTime);\n }, this.lockWarningTime), s = Promise.resolve(t.task()).then((i) => (clearTimeout(r), clearTimeout(e), i));\n return Promise.resolve(s).then(this.next).then(\n () => s.then((i) => {\n t.done(), t.resolve(i);\n })\n ).catch((i) => (t.done(), t.reject(i), this.next()));\n }\n return Promise.resolve();\n });\n }\n};\nconst Wt = /* @__PURE__ */ new WeakMap();\nfunction Q(n, t = 5e3, e = 1e3) {\n return Wt.has(n) || Wt.set(n, new rs(t, e)), (r) => new Promise((s, i) => {\n const o = Wt.get(n);\n o.add(r, s, i, () => {\n o.tasks.length || Wt.delete(n);\n });\n });\n}\nconst ss = (n, t) => {\n const e = () => t.querySelectorAll(\"[data-loading=true]\").length > 0, r = (() => {\n let s = !1;\n return () => {\n s || (n.get(\"$widget\").events.dispatch(\"widget:data-loaded\", {\n element: t\n }), s = !0);\n };\n })();\n if (!e())\n return r();\n new MutationObserver((s, i) => {\n s.find(\n (o) => o.type === \"attributes\" && o.attributeName === \"data-loading\"\n ) && !e() && (i.disconnect(), r());\n }).observe(t, {\n attributes: !0,\n childList: !0,\n subtree: !0\n });\n}, is = (n, t) => {\n n.get(\"$widget\").container.getAsync(\"components\").then((e) => {\n e.events.subscribeOnce(\"components:component-model-initialized\", () => {\n let r = e.nodes.visible.reduce(\n (i, o) => (!o.name || !o.type || o.type === \"view\" || o.type === \"root\" || o.attributes.layout.size === \"none\" || t.querySelector(`[data-name=\"${o.name}\"]`) || i.push(o.name), i),\n []\n ), s = !1;\n new MutationObserver((i, o) => {\n i.forEach((a) => {\n if (a.addedNodes) {\n const c = Array.from(\n a.addedNodes\n ).reduce((h, l) => {\n const u = l.getAttribute && l.getAttribute(\"data-name\");\n return u && r.indexOf(u) > -1 && h.push(u), h;\n }, []);\n r = r.filter((h) => c.indexOf(h) === -1), !s && r.length === 0 && (s = !0, ss(n, t), o.disconnect());\n }\n });\n }).observe(t, {\n attributes: !1,\n characterData: !1,\n childList: !0,\n subtree: !0,\n attributeOldValue: !1,\n characterDataOldValue: !1\n });\n });\n });\n}, os = is, as = (n = {}) => (Object.keys(n).forEach((t) => {\n (n[t] === null || typeof n[t] == \"undefined\") && delete n[t];\n}), n), yt = as, dn = (n, t) => {\n let e = !0;\n return Object.keys(n).length !== Object.keys(t).length || Object.keys(n).some((r) => !Object.keys(t).some((s) => r === s)) ? !1 : (Object.keys(n).forEach((r) => {\n if (e) {\n const s = typeof n[r] == \"undefined\" ? \"\" : n[r], i = typeof t[r] == \"undefined\" ? \"\" : t[r];\n e = s.toString() === i.toString();\n }\n }), e);\n}, it = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction Bt() {\n return it() + it() + \"-\" + it() + \"-\" + it() + \"-\" + it() + \"-\" + it() + it() + it();\n}\nvar cs = Object.defineProperty, hs = Object.defineProperties, ls = Object.getOwnPropertyDescriptors, pn = Object.getOwnPropertySymbols, us = Object.prototype.hasOwnProperty, ds = Object.prototype.propertyIsEnumerable, gn = (n, t, e) => t in n ? cs(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, ps = (n, t) => {\n for (var e in t || (t = {}))\n us.call(t, e) && gn(n, e, t[e]);\n if (pn)\n for (var e of pn(t))\n ds.call(t, e) && gn(n, e, t[e]);\n return n;\n}, gs = (n, t) => hs(n, ls(t));\nclass fs {\n constructor(t) {\n const { events: e } = t.get(\"$widget\");\n this.events = e.createChild(this);\n }\n action(t, e, r) {\n this.events.dispatch(\"data:action\", { action: e, value: r, target: t }, { bubbles: !0 });\n }\n subscribe(t, e) {\n return this.events.subscribe(\n \"data:action\",\n (r, { action: s, value: i, target: o }) => t === o && e(t, s, i)\n );\n }\n}\nconst tr = (n) => {\n const t = [];\n return [\n (e, r) => {\n t.push(n.subscribe(e, r));\n },\n () => {\n t.forEach((e) => {\n e();\n });\n }\n ];\n};\nlet Pt = class {\n constructor(t, e = []) {\n this.platform = t, this.rules = e;\n }\n match(t) {\n return this.rules.every((e) => !(e.id && e.id !== t.id || e.type && e.type !== t.type));\n }\n ofType(t) {\n return this.rules.push({ type: t }), this;\n }\n withId(t) {\n return this.rules.push({ id: t }), this;\n }\n select() {\n return new ms(this.platform, this);\n }\n}, Ke = class {\n constructor(t, e, r) {\n this.platform = t, this.node = e, this.actions = new ge(\n t,\n new Pt(t).withId(e.id),\n r\n );\n const [s, i] = tr(this.platform.events);\n this.subscribe = s, this.unsubscribe = i;\n }\n properties(t) {\n return t && this.node.touchProperties((e) => t(e)), this.node.attributes.properties;\n }\n context(t) {\n return t && this.subscribe(\"components:context-changed\", (e, { node: r }) => {\n r === this.node && t(this.node.attributes.context);\n }), this.node.attributes.context;\n }\n layout(t) {\n return t && this.subscribe(\"components:layout-changed\", (e, { node: r }) => {\n r === this.node && t(this.node.attributes.layout);\n }), this.node.attributes.layout;\n }\n writeProperties(t, e) {\n this.node.writeProperties(t, e);\n }\n writeContext(t, e) {\n this.node.writeProperties(t, e);\n }\n writeLayout(t, e) {\n this.node.writeLayout(t, e);\n }\n dispose() {\n this.unsubscribe(), this.actions.dispose();\n }\n};\nclass ms {\n constructor(t, e, r = !0) {\n this.platform = t, this.target = e, this.clearOnDispose = r, this.removes = [], this.actions = new ge(this.platform, this.target);\n }\n writeProperties(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { properties: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeContext(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { context: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeLayout(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { layout: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n dispose() {\n this.removes.forEach((t) => {\n t();\n }), this.actions.dispose();\n }\n}\nconst vs = (n, t, e) => {\n const r = n.concat(), s = (i, o, a) => {\n let c = !0;\n if (r.length) {\n const h = r.shift(), l = (u, d) => (c = !1, s(u, Object.assign({}, o, d), a));\n return Promise.resolve(h(i, l, a)).then((u) => gs(ps({}, u), {\n cancelled: c\n }));\n }\n return Promise.resolve({ data: i, cancelled: !1, options: o });\n };\n return s(t, {}, e);\n};\nlet ge = class {\n constructor(t, e, r) {\n this.platform = t, this.target = e, this.ns = r, this.subscriptions = [], this.create = this.create.bind(this);\n }\n create(t, e = () => {\n }) {\n const r = {\n key: t,\n fn: e,\n target: this.target,\n ns: this.ns\n };\n this.platform.actionsState.handlers.push(r);\n const s = () => {\n const i = this.platform.actionsState.handlers.indexOf(r);\n i > -1 && this.platform.actionsState.handlers.splice(i, 1);\n };\n return this.subscriptions.push(s), s;\n }\n dispatch(t, e) {\n const r = this.platform.nodes.all.concat(\n this.platform.nodes.detached\n ), s = {}, i = this.platform.actionsState.handlers.filter(\n (o) => o.key === t && (!o.ns || !this.ns || o.ns === this.ns)\n );\n return Promise.all(\n i.map((o) => {\n const a = r.filter(\n (h) => o.target.match(h) && this.target.match(h)\n ), c = this.platform.actionsState.watchers.filter((h) => h.key === t && (!h.ns || !this.ns || h.ns === this.ns) && a.some((l) => h.target.match(l))).map((h) => h.fn);\n return Promise.all(\n a.map((h) => {\n const l = new Ke(\n this.platform,\n h,\n this.ns\n );\n return vs(c, e, l).then((u) => {\n const { data: d = {}, options: p, cancelled: b } = u;\n return Promise.resolve(\n b ? {} : o.fn(d, p, l)\n ).then((v) => {\n s[h.id] = v;\n });\n });\n })\n );\n })\n ).then(() => s);\n }\n watch(t, e) {\n let r = t, s = this.ns;\n const i = t.split(\".\");\n i.length > 1 && (s = i[0], r = i.splice(1).join(\".\"));\n const o = {\n fn: e,\n target: this.target,\n key: r,\n ns: s\n };\n this.platform.actionsState.watchers.push(o);\n const a = () => {\n const c = this.platform.actionsState.watchers.indexOf(o);\n c > -1 && this.platform.actionsState.watchers.splice(c, 1);\n };\n return this.subscriptions.push(a), a;\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n};\nJe((n) => {\n n.createCommand(\"components\", (t) => (e) => {\n t.events.subscribeOnce(\"components:platform-created\", (r, { platform: s }) => {\n e.handlers && e.handlers.forEach(([i, o]) => {\n s.addComponentHandler(i, o);\n });\n });\n });\n});\nlet Be = class {\n constructor(t, e) {\n this.events = t, this.tags = [], this.children = {}, this.changesets = [], this.mountCount = 0, this.id = Bt(), this.type = e, this.attributes = {\n context: {},\n properties: {},\n layout: {},\n tags: []\n }, this.writeLayout({ size: \"full\", indent: 0 });\n }\n mount(t, e) {\n let r = t.get(\"mounted-nodes\");\n return r || (r = /* @__PURE__ */ new Map(), t.register(\"mounted-nodes\", r)), r.has(this) ? (process.env.NODE_ENV !== \"production\" && I.error(\"Trying to mount an already mounted component node.\", this), () => {\n }) : (this.events.dispatch(\"components:node-mounted\", { node: this }), this.mountCount === 0 && (this.mountCount = this.mountCount + 1, this.events.dispatch(\"components:node-enter\", { node: this })), () => {\n r.delete(this), this.events.dispatch(\"components:node-unmounted\", { node: this }), this.mountCount = this.mountCount - 1, this.mountCount === 0 && this.events.dispatch(\"components:node-exit\", { node: this });\n });\n }\n appendChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].push(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n prependChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].unshift(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n touchProperties(t, e = {}, r) {\n const s = [{ properties: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (r) {\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeProperties(t, e = {}, r) {\n const s = [{ properties: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (r) {\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeLayout(t, e = {}, r) {\n const s = [{ layout: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-layout\", { node: this }), () => {\n if (!r)\n return;\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-layout\", { node: this }));\n };\n }\n writeContext(t, e = {}, r) {\n const s = [{ context: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-context\", { node: this }), () => {\n if (!r)\n return;\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-context\", { node: this }));\n };\n }\n getChildren(t = \"default\") {\n const e = this.children[t] || [];\n return e.reduce((r, s, i) => {\n const { order: o = i } = s.attributes.layout;\n return r[o] ? r.splice(o, 0, s) : r[o] = s, r;\n }, Array(e.length));\n }\n remove() {\n this.parent && this.parent.removeChild(this);\n }\n removeChild(t) {\n Object.keys(this.children).forEach((e) => {\n const r = this.children[e], s = r.indexOf(t);\n s > -1 && (r.splice(s, 1), this.events.dispatch(\"components:node-removed\", { node: t, parentNode: this }));\n }), delete t.parent;\n }\n};\nconst er = (n, t, e) => {\n for (let r = 0, s = n.length; r < s && e(n[r]) !== !0; r++) {\n const i = t[n[r].id] || \"default\", o = n[r].getChildren(i);\n er(o, t, e);\n }\n}, fe = (n, t, e) => {\n if (e(n) !== !0) {\n const r = t[n.id] || \"default\", s = n.children[r];\n er(s, t, e);\n }\n}, Zt = (n, t) => {\n const e = [];\n return fe(n, t, (r) => {\n e.push(r);\n }), e;\n}, nr = (n, t, e) => {\n let r;\n return fe(n, t, (s) => {\n if (e(s))\n return r = s, !0;\n }), r;\n};\nlet ys = class {\n constructor(t, e, r) {\n this.root = t, this.switches = e, this.all = [], this.visible = [], this.detached = [], r.subscribe(\"components:node-appended\", (s, i) => {\n this.all.push(i.node), this.visible = Zt(t, e);\n }), r.subscribe(\"components:node-removed\", (s, i) => {\n let o = this.all.indexOf(i.node);\n o > -1 && this.all.splice(o, 1), o = this.visible.indexOf(i.node), o > -1 && this.visible.splice(o, 1), this.visible = Zt(t, e);\n }), r.subscribe(\"components:node-switched\", (s, i) => {\n this.visible = Zt(t, e);\n });\n }\n query(t = {}) {\n const e = [];\n return fe(this.root, this.switches, (r) => {\n Object.keys(t).every((s) => t[s] === r[s]) && e.push(r);\n }), e;\n }\n get(t) {\n return nr(this.root, this.switches, (e) => e.id === t) || this.detached.find((e) => e.id === t);\n }\n}, bs = class {\n constructor() {\n this.handlers = /* @__PURE__ */ new Map();\n }\n add(t, e) {\n this.handlers.set(t, e);\n }\n get(t) {\n return this.handlers.get(t);\n }\n};\nconst ws = (n) => {\n let t = n, e = 0;\n for (; t.parent; )\n e = e + 1, t = t.parent;\n return e;\n}, $s = (n) => n.map(([t, e]) => [ws(t), t, e]).sort(([t], [e]) => t - e).map(([, t, e]) => [t, e]), Oe = (n) => n instanceof Date ? !1 : n && typeof n == \"object\" && !Array.isArray(n), X = (n, ...t) => {\n if (!t.length)\n return n;\n const e = t.shift();\n if (Oe(n) && Oe(e))\n for (const r in e)\n Oe(e[r]) ? (n[r] || Object.assign(n, { [r]: {} }), X(n[r], e[r])) : Object.assign(n, { [r]: e[r] });\n return X(n, ...t);\n}, Es = (n, t) => !n || n === \"all\" ? !0 : n.some((e) => t.indexOf(e) > -1), Os = (n, t) => {\n let e = [], r = [], s;\n const i = () => {\n process.env.NODE_ENV !== \"production\" && console.time(\"state-processor.flush\");\n const a = /* @__PURE__ */ new Map(), c = $s(e.map((l, u) => [l, r[u]])), h = (l, u) => {\n var d;\n const p = a.get(l) || {}, b = u.context && !p.context, v = u.properties && !p.properties, g = u.layout && !p.layout;\n a.set(l, {\n context: p.context || b,\n properties: p.properties || v,\n layout: p.layout || g\n }), v && (l.attributes.properties = {}), g && (l.attributes.layout = {}), b && (l.attributes.context = X({}, (d = l.parent) == null ? void 0 : d.attributes.context));\n const O = [], j = [], W = [];\n if (l.changesets.forEach((H) => {\n const [k, U] = H;\n Es(U.breakpoints, n.breakpoints) && (v && (typeof k.properties == \"function\" ? O.push(\n k.properties\n ) : X(l.attributes.properties, k.properties)), g && (typeof k.layout == \"function\" ? j.push(k.layout) : X(l.attributes.layout, k.layout)), b && (typeof k.context == \"function\" ? W.push(k.context) : X(l.attributes.context, k.context)));\n }), O.forEach((H) => {\n X(l.attributes.properties, H(l.attributes.properties));\n }), j.forEach((H) => {\n X(l.attributes.layout, H(l.attributes.layout));\n }), W.forEach((H) => {\n X(l.attributes.context, H(l.attributes.context));\n }), b || u.recursive) {\n const H = n.getBranch(l), k = u.recursive ? u : {\n context: !!b\n };\n l.getChildren(H).forEach((U) => {\n h(U, k);\n });\n }\n };\n process.env.NODE_ENV !== \"production\" && console.timeEnd(\"state-processor.flush\"), c.forEach(([l, u]) => {\n h(l, u);\n }), e = [], r = [], t(a);\n }, o = () => {\n clearTimeout(s), s = setTimeout(i, 0);\n };\n return (a, c) => {\n const h = e.indexOf(a);\n if (h > -1) {\n const l = r[h];\n return c.context && (l.context = !0), c.properties && (l.properties = !0), c.layout && (l.layout = !0), c.recursive && (l.recursive = !0), o();\n }\n return e.push(a), r.push(c), o();\n };\n};\nlet me = class {\n constructor(t, e = {}) {\n this.providers = e, this.breakpoints = [], this.actionsState = { handlers: [], watchers: [] }, this.switches = {}, this.changesets = [], this.subscriptions = [], this.customComponentHandler = new bs(), this.events = t.events.createChild(this);\n const r = new Be(this.events, \"root\");\n r.name = `root-${t.name}`, this.nodes = new ys(r, this.switches, this.events);\n const s = this.processNode = Os(this, (i) => {\n const o = Array.from(i.keys());\n process.env.NODE_ENV !== \"production\" && console.info(`STATE PROCESSOR: ${o.length} node(s) processed:\n${o.map(\n (a) => `${a.name || \"<no name>\"} (${a.id})\n`\n )}`), o.forEach((a) => {\n const c = i.get(a);\n a.parent && a.parent.type === \"root\" && this.events.dispatch(\"components:root-children-changed\", { node: a }), c != null && c.context && this.events.dispatch(\"components:context-changed\", { node: a }), c != null && c.properties && this.events.dispatch(\"components:properties-changed\", { node: a }), c != null && c.layout && this.events.dispatch(\"components:layout-changed\", { node: a });\n }), this.events.dispatch(\"components:component-model-initialized\", {}, { bubbles: !0 });\n });\n Promise.all(\n Object.keys(e).map((i) => e[i].load(this))\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (i, o) => {\n const { node: a } = o;\n this.changesets.forEach((c) => {\n const { changeset: h, target: l, removes: u } = c, [d, p] = h;\n l.match(o.node) && (d.properties && u.push(a.writeProperties(d.properties, p)), d.context && u.push(a.writeContext(d.context, p)), d.layout && u.push(a.writeLayout(d.layout, p)));\n });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (i, o) => {\n s(o.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-properties\",\n (i, o) => {\n s(o.node, { properties: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-context\",\n (i, o) => {\n s(o.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-indent\",\n (i, o) => {\n s(o.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-layout\",\n (i, o) => {\n s(o.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-switched\", (i, { node: o, branch: a }) => {\n s(o, {\n layout: !0,\n recursive: !0,\n properties: !0,\n context: !0\n });\n })\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-removed\", (i, { parentNode: o }) => {\n s(o, { properties: !0 });\n })\n ), this.events.parent && this.events.parent.dispatch(\"components:platform-created\", { platform: this });\n }\n static getInstance(t) {\n return t.getAsync(\"components\");\n }\n addBreakpoint(t) {\n this.breakpoints.indexOf(t) === -1 && (this.breakpoints.push(t), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n removeBreakpoint(t) {\n const e = this.breakpoints.indexOf(t);\n e > -1 && (this.breakpoints.splice(e, 1), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n setSwitch(t, e) {\n this.switches[t.id] = e, this.events.dispatch(\"components:node-switched\", { node: t, branch: e });\n }\n getBranch(t) {\n return this.switches[t.id];\n }\n /**\n * Creates a `ComponentNode` of the specified type.\n * @param type Type of node.\n */\n createNode(t, e = {}) {\n const r = new Be(this.events, t);\n return e.detached && this.nodes.detached.push(r), r;\n }\n components() {\n return new Pt(this);\n }\n actions(t, e) {\n return new ge(this, t, e);\n }\n write(t) {\n const { provider: e, target: r, attributes: s, options: i = {}, removable: o } = t, a = t.key || Bt(), c = { changeset: [s, i], target: r, removes: [] };\n if (e) {\n const h = this.providers[e];\n h.write(a, r, s, i), c.removes.push(() => {\n h.remove(a);\n });\n }\n return this.changesets.push(c), this.nodes.all.forEach((h) => {\n if (r.match(h)) {\n let l = () => {\n };\n s.properties && (l = h.writeProperties(s.properties, i, o)), s.context && (l = h.writeContext(s.context, i, o)), s.layout && (l = h.writeContext(s.layout, i, o)), c.removes.push(l);\n }\n }), () => {\n if (o) {\n c.removes.forEach((l) => l());\n const h = this.changesets.indexOf(c);\n h > -1 && this.changesets.splice(h, 1);\n }\n };\n }\n addComponentHandler(t, e) {\n this.customComponentHandler.add(t, e);\n }\n getComponentHandler(t) {\n return this.customComponentHandler.get(t);\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n};\nconst As = (n) => {\n if (Array.isArray(n)) {\n const [t, ...e] = n;\n return {\n definitionId: t,\n overrides: e\n };\n }\n return {\n definitionId: n,\n overrides: []\n };\n}, ie = (n, t, e, r, s, i) => {\n e.forEach((o) => {\n const a = As(o), c = r[a.definitionId];\n if (a.definitionId === \"view\") {\n const h = n.createNode(\"view\");\n h.name = \"view\", Object.keys(s).forEach((l) => {\n const u = s[l];\n ie(n, h, [u.entry], r, s, l);\n }), t.appendChild(h), a.overrides.forEach((l) => {\n l.properties && h.writeProperties(l.properties, {\n breakpoints: l.breakpoints\n }), l.context && h.writeContext(l.context, { breakpoints: l.breakpoints }), l.layout && h.writeLayout(l.layout, { breakpoints: l.breakpoints });\n });\n } else if (n.getComponentHandler(c.type)) {\n const h = n.getComponentHandler(c.type);\n h && h(a, {\n platform: n,\n node: t,\n references: e,\n definitions: r,\n views: s,\n branch: i\n });\n } else {\n const h = r[a.definitionId];\n if (process.env.NODE_ENV !== \"production\" && !h) {\n I.error(\n `No definition found for component type '${a.definitionId}'.`\n );\n return;\n }\n const l = n.createNode(h.type);\n l.name = a.definitionId, l.tags = h.tags || [], h.properties && l.writeProperties(h.properties), h.context && l.writeContext(h.context), h.layout && l.writeLayout(h.layout), t.appendChild(l, i), a.overrides.forEach((u) => {\n const d = { breakpoints: u.breakpoints };\n u.properties && l.writeProperties(u.properties, d), u.context && l.writeContext(u.context, d), u.layout && l.writeLayout(u.layout, d);\n }), h.children && ie(n, l, h.children, r, s);\n }\n });\n}, rr = (n, t) => {\n const { entry: e, components: r, breakpoints: s, views: i } = t, o = [];\n return Object.keys(s).forEach((a) => {\n const c = s[a], h = window.matchMedia(c);\n h.matches && n.breakpoints.push(a);\n const l = (u) => {\n u.matches ? n.addBreakpoint(a) : n.removeBreakpoint(a);\n };\n h.addListener(l), o.push(() => h.removeListener(l));\n }), ie(n, n.nodes.root, [e], r, i), () => o.forEach((a) => {\n a();\n });\n}, xs = (n, t) => ({\n id: n.id,\n type: n.type,\n name: n.name,\n branch: t || \"default\"\n}), sr = (n, t, e, r = Bt(), s = {}) => n.getAsync(\"components\").then((i) => {\n let o;\n if (typeof t == \"string\") {\n const h = new Pt(i);\n h.ofType(t), o = h;\n } else\n o = t;\n const a = {}, c = (h) => {\n const l = a[h.id];\n return l ? Promise.resolve(l.controller) : me.getInstance(n).then((u) => new Ke(u, h, r));\n };\n i.events.subscribe(\n \"components:node-enter\",\n (h, { node: l }) => {\n o.match(l) && c(l).then((u) => {\n Promise.resolve(e(u)).then((d) => {\n a[l.id] = {\n dispose: d,\n controller: u\n };\n });\n });\n }\n ), i.events.subscribe(\n \"components:node-exit\",\n (h, { node: l }) => {\n const u = a[l.id];\n u && (u.dispose && u.dispose(), s.reuseController || (u.controller.dispose(), delete a[l.id]));\n }\n );\n});\nclass _s {\n constructor(t) {\n this.aliases = /* @__PURE__ */ new Map(), this.components = /* @__PURE__ */ new Map(), this.logger = new I();\n const { events: e } = t.get(\"$widget\");\n this.events = e;\n }\n getComponent(t) {\n const e = this.aliases.get(t), r = this.components.get(e || t) || null;\n return process.env.NODE_ENV !== \"production\" && (r || this.logger.warn(\n e || t,\n `Unable to resolve component: \"${e || t}\". You most likely forgot to register the required plugin for: ${e || t}.`\n )), r;\n }\n registerComponent(t, e) {\n return this.components.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.components.delete(t);\n };\n }\n registerResolver(t, e) {\n return this.events.subscribe(\"component-resolver:resolve\", (r, s) => {\n if (s === t) {\n const i = this.getComponent(t);\n e(i);\n }\n });\n }\n registerAlias(t, e) {\n return this.aliases.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.aliases.delete(t);\n };\n }\n}\nvar q = /* @__PURE__ */ ((n) => (n.open = \"open\", n.closed = \"closed\", n.hidden = \"hidden\", n))(q || {});\nconst Ge = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n ActionResolver: fs,\n ActionsController: ge,\n ComponentNode: Be,\n ComponentNodeController: Ke,\n ComponentPlatform: me,\n ComponentQuery: Pt,\n ComponentResolver: _s,\n WidgetRenderState: q,\n asDescriptor: xs,\n createChildren: ie,\n createComponentModel: rr,\n createEventSubscriber: tr,\n extendComponent: sr,\n findComponent: nr,\n findVisibleComponents: Zt,\n traverseComponents: fe\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ir(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar or = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (or = function(n, t, e) {\n var r = arguments.length;\n e = new Array(r > 2 ? r - 2 : 0);\n for (var s = 2; s < r; s++)\n e[s - 2] = arguments[s];\n if (t === void 0)\n throw new Error(\n \"`warning(condition, format, ...args)` requires a warning message argument\"\n );\n if (t.length < 10 || /^[s\\W]*$/.test(t))\n throw new Error(\n \"The warning format should be able to uniquely identify this warning. Please, use a more descriptive format than: \" + t\n );\n if (!n) {\n var i = 0, o = \"Warning: \" + t.replace(/%s/g, function() {\n return e[i++];\n });\n typeof console != \"undefined\" && console.error(o);\n try {\n throw new Error(o);\n } catch (a) {\n }\n }\n});\nvar Ss = or;\nconst tt = /* @__PURE__ */ ir(Ss);\nvar Ps = function(n, t, e, r, s, i, o, a) {\n if (process.env.NODE_ENV !== \"production\" && t === void 0)\n throw new Error(\"invariant requires an error message argument\");\n if (!n) {\n var c;\n if (t === void 0)\n c = new Error(\n \"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\"\n );\n else {\n var h = [e, r, s, i, o, a], l = 0;\n c = new Error(\n t.replace(/%s/g, function() {\n return h[l++];\n })\n ), c.name = \"Invariant Violation\";\n }\n throw c.framesToPop = 1, c;\n }\n}, Cs = Ps;\nconst ks = /* @__PURE__ */ ir(Cs);\nfunction Ft(n) {\n return n.charAt(0) === \"/\";\n}\nfunction Ae(n, t) {\n for (var e = t, r = e + 1, s = n.length; r < s; e += 1, r += 1)\n n[e] = n[r];\n n.pop();\n}\nfunction Ns(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Ft(n), i = t && Ft(t), o = s || i;\n if (n && Ft(n) ? r = e : e.length && (r.pop(), r = r.concat(e)), !r.length)\n return \"/\";\n var a = void 0;\n if (r.length) {\n var c = r[r.length - 1];\n a = c === \".\" || c === \"..\" || c === \"\";\n } else\n a = !1;\n for (var h = 0, l = r.length; l >= 0; l--) {\n var u = r[l];\n u === \".\" ? Ae(r, l) : u === \"..\" ? (Ae(r, l), h++) : h && (Ae(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Ft(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nvar Ms = function(t) {\n return t.charAt(0) === \"/\" ? t : \"/\" + t;\n}, ar = function(t, e) {\n return new RegExp(\"^\" + e + \"(\\\\/|\\\\?|#|$)\", \"i\").test(t);\n}, Ls = function(t, e) {\n return ar(t, e) ? t.substr(e.length) : t;\n}, Ds = function(t) {\n return t.charAt(t.length - 1) === \"/\" ? t.slice(0, -1) : t;\n}, Ts = function(t) {\n var e = t || \"/\", r = \"\", s = \"\", i = e.indexOf(\"#\");\n i !== -1 && (s = e.substr(i), e = e.substr(0, i));\n var o = e.indexOf(\"?\");\n return o !== -1 && (r = e.substr(o), e = e.substr(0, o)), {\n pathname: e,\n search: r === \"?\" ? \"\" : r,\n hash: s === \"#\" ? \"\" : s\n };\n}, cr = function(t) {\n var e = t.pathname, r = t.search, s = t.hash, i = e || \"/\";\n return r && r !== \"?\" && (i += r.charAt(0) === \"?\" ? r : \"?\" + r), s && s !== \"#\" && (i += s.charAt(0) === \"#\" ? s : \"#\" + s), i;\n}, js = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, gt = function(t, e, r, s) {\n var i = void 0;\n typeof t == \"string\" ? (i = Ts(t), i.state = e) : (i = js({}, t), i.pathname === void 0 && (i.pathname = \"\"), i.search ? i.search.charAt(0) !== \"?\" && (i.search = \"?\" + i.search) : i.search = \"\", i.hash ? i.hash.charAt(0) !== \"#\" && (i.hash = \"#\" + i.hash) : i.hash = \"\", e !== void 0 && i.state === void 0 && (i.state = e));\n try {\n i.pathname = decodeURI(i.pathname);\n } catch (o) {\n throw o instanceof URIError ? new URIError('Pathname \"' + i.pathname + '\" could not be decoded. This is likely caused by an invalid percent-encoding.') : o;\n }\n return r && (i.key = r), s ? i.pathname ? i.pathname.charAt(0) !== \"/\" && (i.pathname = Ns(i.pathname, s.pathname)) : i.pathname = s.pathname : i.pathname || (i.pathname = \"/\"), i;\n}, hr = function() {\n var t = null, e = function(c) {\n return tt(t == null, \"A history supports only one prompt at a time\"), t = c, function() {\n t === c && (t = null);\n };\n }, r = function(c, h, l, u) {\n if (t != null) {\n var d = typeof t == \"function\" ? t(c, h) : t;\n typeof d == \"string\" ? typeof l == \"function\" ? l(d, u) : (tt(!1, \"A history needs a getUserConfirmation function in order to use a prompt message\"), u(!0)) : u(d !== !1);\n } else\n u(!0);\n }, s = [], i = function(c) {\n var h = !0, l = function() {\n h && c.apply(void 0, arguments);\n };\n return s.push(l), function() {\n h = !1, s = s.filter(function(u) {\n return u !== l;\n });\n };\n }, o = function() {\n for (var c = arguments.length, h = Array(c), l = 0; l < c; l++)\n h[l] = arguments[l];\n s.forEach(function(u) {\n return u.apply(void 0, h);\n });\n };\n return {\n setPrompt: e,\n confirmTransitionTo: r,\n appendListener: i,\n notifyListeners: o\n };\n}, Rs = !!(typeof window != \"undefined\" && window.document && window.document.createElement), fn = function(t, e, r) {\n return t.addEventListener ? t.addEventListener(e, r, !1) : t.attachEvent(\"on\" + e, r);\n}, mn = function(t, e, r) {\n return t.removeEventListener ? t.removeEventListener(e, r, !1) : t.detachEvent(\"on\" + e, r);\n}, Is = function(t, e) {\n return e(window.confirm(t));\n}, Hs = function() {\n var t = window.navigator.userAgent;\n return (t.indexOf(\"Android 2.\") !== -1 || t.indexOf(\"Android 4.0\") !== -1) && t.indexOf(\"Mobile Safari\") !== -1 && t.indexOf(\"Chrome\") === -1 && t.indexOf(\"Windows Phone\") === -1 ? !1 : window.history && \"pushState\" in window.history;\n}, Us = function() {\n return window.navigator.userAgent.indexOf(\"Trident\") === -1;\n}, Bs = function(t) {\n return t.state === void 0 && navigator.userAgent.indexOf(\"CriOS\") === -1;\n}, vn = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n} : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n}, Vs = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, yn = \"popstate\", bn = \"hashchange\", wn = function() {\n try {\n return window.history.state || {};\n } catch (t) {\n return {};\n }\n}, zs = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n ks(Rs, \"Browser history needs a DOM\");\n var e = window.history, r = Hs(), s = !Us(), i = t.forceRefresh, o = i === void 0 ? !1 : i, a = t.getUserConfirmation, c = a === void 0 ? Is : a, h = t.keyLength, l = h === void 0 ? 6 : h, u = t.basename ? Ds(Ms(t.basename)) : \"\", d = function(m) {\n var E = m || {}, M = E.key, L = E.state, J = window.location, K = J.pathname, rt = J.search, Z = J.hash, F = K + rt + Z;\n return tt(!u || ar(F, u), 'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path \"' + F + '\" to begin with \"' + u + '\".'), u && (F = Ls(F, u)), gt(F, L, M);\n }, p = function() {\n return Math.random().toString(36).substr(2, l);\n }, b = hr(), v = function(m) {\n Vs(_, m), _.length = e.length, b.notifyListeners(_.location, _.action);\n }, g = function(m) {\n Bs(m) || W(d(m.state));\n }, O = function() {\n W(d(wn()));\n }, j = !1, W = function(m) {\n if (j)\n j = !1, v();\n else {\n var E = \"POP\";\n b.confirmTransitionTo(m, E, c, function(M) {\n M ? v({ action: E, location: m }) : H(m);\n });\n }\n }, H = function(m) {\n var E = _.location, M = U.indexOf(E.key);\n M === -1 && (M = 0);\n var L = U.indexOf(m.key);\n L === -1 && (L = 0);\n var J = M - L;\n J && (j = !0, D(J));\n }, k = d(wn()), U = [k.key], A = function(m) {\n return u + cr(m);\n }, N = function(m, E) {\n tt(!((typeof m == \"undefined\" ? \"undefined\" : vn(m)) === \"object\" && m.state !== void 0 && E !== void 0), \"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored\");\n var M = \"PUSH\", L = gt(m, E, p(), _.location);\n b.confirmTransitionTo(L, M, c, function(J) {\n if (J) {\n var K = A(L), rt = L.key, Z = L.state;\n if (r)\n if (e.pushState({ key: rt, state: Z }, null, K), o)\n window.location.href = K;\n else {\n var F = U.indexOf(_.location.key), sn = U.slice(0, F === -1 ? 0 : F + 1);\n sn.push(L.key), U = sn, v({ action: M, location: L });\n }\n else\n tt(Z === void 0, \"Browser history cannot push state in browsers that do not support HTML5 history\"), window.location.href = K;\n }\n });\n }, C = function(m, E) {\n tt(!((typeof m == \"undefined\" ? \"undefined\" : vn(m)) === \"object\" && m.state !== void 0 && E !== void 0), \"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored\");\n var M = \"REPLACE\", L = gt(m, E, p(), _.location);\n b.confirmTransitionTo(L, M, c, function(J) {\n if (J) {\n var K = A(L), rt = L.key, Z = L.state;\n if (r)\n if (e.replaceState({ key: rt, state: Z }, null, K), o)\n window.location.replace(K);\n else {\n var F = U.indexOf(_.location.key);\n F !== -1 && (U[F] = L.key), v({ action: M, location: L });\n }\n else\n tt(Z === void 0, \"Browser history cannot replace state in browsers that do not support HTML5 history\"), window.location.replace(K);\n }\n });\n }, D = function(m) {\n e.go(m);\n }, V = function() {\n return D(-1);\n }, B = function() {\n return D(1);\n }, R = 0, f = function(m) {\n R += m, R === 1 ? (fn(window, yn, g), s && fn(window, bn, O)) : R === 0 && (mn(window, yn, g), s && mn(window, bn, O));\n }, w = !1, y = function() {\n var m = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, E = b.setPrompt(m);\n return w || (f(1), w = !0), function() {\n return w && (w = !1, f(-1)), E();\n };\n }, $ = function(m) {\n var E = b.appendListener(m);\n return f(1), function() {\n f(-1), E();\n };\n }, _ = {\n length: e.length,\n action: \"POP\",\n location: k,\n createHref: A,\n push: N,\n replace: C,\n go: D,\n goBack: V,\n goForward: B,\n block: y,\n listen: $\n };\n return _;\n}, $n = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n} : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n}, Ws = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, En = function(t, e, r) {\n return Math.min(Math.max(t, e), r);\n}, Fs = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, e = t.getUserConfirmation, r = t.initialEntries, s = r === void 0 ? [\"/\"] : r, i = t.initialIndex, o = i === void 0 ? 0 : i, a = t.keyLength, c = a === void 0 ? 6 : a, h = hr(), l = function(C) {\n Ws(A, C), A.length = A.entries.length, h.notifyListeners(A.location, A.action);\n }, u = function() {\n return Math.random().toString(36).substr(2, c);\n }, d = En(o, 0, s.length - 1), p = s.map(function(N) {\n return typeof N == \"string\" ? gt(N, void 0, u()) : gt(N, void 0, N.key || u());\n }), b = cr, v = function(C, D) {\n tt(!((typeof C == \"undefined\" ? \"undefined\" : $n(C)) === \"object\" && C.state !== void 0 && D !== void 0), \"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored\");\n var V = \"PUSH\", B = gt(C, D, u(), A.location);\n h.confirmTransitionTo(B, V, e, function(R) {\n if (R) {\n var f = A.index, w = f + 1, y = A.entries.slice(0);\n y.length > w ? y.splice(w, y.length - w, B) : y.push(B), l({\n action: V,\n location: B,\n index: w,\n entries: y\n });\n }\n });\n }, g = function(C, D) {\n tt(!((typeof C == \"undefined\" ? \"undefined\" : $n(C)) === \"object\" && C.state !== void 0 && D !== void 0), \"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored\");\n var V = \"REPLACE\", B = gt(C, D, u(), A.location);\n h.confirmTransitionTo(B, V, e, function(R) {\n R && (A.entries[A.index] = B, l({ action: V, location: B }));\n });\n }, O = function(C) {\n var D = En(A.index + C, 0, A.entries.length - 1), V = \"POP\", B = A.entries[D];\n h.confirmTransitionTo(B, V, e, function(R) {\n R ? l({\n action: V,\n location: B,\n index: D\n }) : l();\n });\n }, j = function() {\n return O(-1);\n }, W = function() {\n return O(1);\n }, H = function(C) {\n var D = A.index + C;\n return D >= 0 && D < A.entries.length;\n }, k = function() {\n var C = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1;\n return h.setPrompt(C);\n }, U = function(C) {\n return h.appendListener(C);\n }, A = {\n length: p.length,\n action: \"POP\",\n location: p[d],\n index: d,\n entries: p,\n createHref: b,\n push: v,\n replace: g,\n go: O,\n goBack: j,\n goForward: W,\n canGo: H,\n block: k,\n listen: U\n };\n return A;\n}, qs = Object.defineProperty, On = Object.getOwnPropertySymbols, Js = Object.prototype.hasOwnProperty, Ks = Object.prototype.propertyIsEnumerable, An = (n, t, e) => t in n ? qs(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, $t = (n, t) => {\n for (var e in t || (t = {}))\n Js.call(t, e) && An(n, e, t[e]);\n if (On)\n for (var e of On(t))\n Ks.call(t, e) && An(n, e, t[e]);\n return n;\n}, qt = (n, t, e) => new Promise((r, s) => {\n var i = (c) => {\n try {\n a(e.next(c));\n } catch (h) {\n s(h);\n }\n }, o = (c) => {\n try {\n a(e.throw(c));\n } catch (h) {\n s(h);\n }\n }, a = (c) => c.done ? r(c.value) : Promise.resolve(c.value).then(i, o);\n a((e = e.apply(n, t)).next());\n}), S = /* @__PURE__ */ ((n) => (n.Cookie = \"cookie\", n.Local = \"local\", n.Session = \"session\", n))(S || {}), Ct = /* @__PURE__ */ ((n) => (n.Tenant = \"tenant\", n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Ct || {}), P = /* @__PURE__ */ ((n) => (n.Necessary = \"necessary\", n.Functional = \"functional\", n.Analytical = \"analytical\", n.Marketing = \"marketing\", n))(P || {});\nconst et = (n, t, e, r = {}) => xn(n, e).then((s) => (process.env.NODE_ENV !== \"production\" && s && I.warn(\n `createStorageWriter: Attempted to create storage writer using unallowed category.\n Key: ${t}\n Category: ${JSON.stringify(e)}\n Options: ${JSON.stringify(r)}`\n), (i) => (Qe(n), xn(n, e).then((o) => {\n if (o) {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `storageWriter: Attempted to write to storage using unallowed category.\n Key: ${t}\n Category: ${JSON.stringify(e)}\n Value: ${JSON.stringify(i)}\n Options: ${JSON.stringify(r)}`\n );\n return;\n }\n const {\n scope: a = Ct.Widget,\n medium: c = S.Session,\n duration: h\n } = r, l = Ys();\n return l[a][t] = Ze(i, e, h), c === S.Cookie ? ti(n, l) : ni(n, c, l);\n})))), Y = (n, t, e = S.Session) => (Qe(n), typeof t == \"undefined\" ? (process.env.NODE_ENV !== \"production\" && I.warn(\"readStorage: Undefined key passed when reading storage. \", t, e), Promise.resolve(void 0)) : e === S.Cookie ? Xs(n).then((r) => ae(r, t)) : ei(n, e).then((r) => ae(r, t))), xt = (n) => !!Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").length, xe = (n) => Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").forEach(([t, { value: e }]) => {\n typeof e == \"undefined\" && delete n[t];\n}), lr = (n, t) => {\n const e = {\n tenant: $t($t({}, n.tenant), t.tenant),\n implementation: $t($t({}, n.implementation), t.implementation),\n widget: $t($t({}, n.widget), t.widget)\n };\n return xe(e.tenant), xe(e.implementation), xe(e.widget), e;\n}, Gs = (n) => Object.entries(n).reduce((t, e) => {\n const [r, s] = e;\n return Object.entries(s).forEach((i) => {\n const [o, { expiration: a }] = i;\n a && t.push(a);\n }), t;\n}, []).slice().sort((t, e) => new Date(e).valueOf() - new Date(t).valueOf()).shift() || ye(), ve = (n) => {\n const {\n name: t,\n implementation: { name: e, tenant: r }\n } = n.get(\"$widget\");\n return [\n `humany_${r}`,\n `humany_${un(r + e)}`,\n `humany_${un(r + e + t)}`\n ];\n}, _e = (n) => {\n const t = new RegExp(`(?:^|;)\\\\s?${n}=(.*?)(?:;|$)`, \"i\"), e = document.cookie.match(t);\n return e && e[1] && JSON.parse(e[1]) || void 0;\n}, Se = (n, t, e) => {\n const r = `${n}=${JSON.stringify(t).trim()}`, s = `expires=${new Date(e).toUTCString()}`, i = \"path=/\", o = \"SameSite=None;Secure\";\n return document.cookie = `${r}; ${s}; ${i}; ${o}`;\n}, Ye = (n) => {\n const [t, e, r] = ve(n), s = _e(t) || {}, i = _e(e) || {}, o = _e(r) || {};\n return {\n tenant: s,\n implementation: i,\n widget: o\n };\n}, ur = (n, t) => {\n const e = Ye(n), r = lr(e, t), [s, i, o] = ve(n), { tenant: a, implementation: c, widget: h } = r, l = Gs(t), u = ye({ days: -1 });\n Se(s, a, xt(a) ? l : u), Se(\n i,\n c,\n xt(c) ? l : u\n ), Se(o, h, xt(h) ? l : u);\n}, oe = (n, t) => {\n const [e, r, s] = ve(n), i = t.getItem(e) || \"{}\", o = t.getItem(r) || \"{}\", a = t.getItem(s) || \"{}\";\n return {\n tenant: JSON.parse(i),\n implementation: JSON.parse(o),\n widget: JSON.parse(a)\n };\n}, Ve = (n, t, e) => {\n const r = oe(n, t), s = lr(r, e), [i, o, a] = ve(n), { tenant: c, implementation: h, widget: l } = s;\n xt(c) ? t.setItem(i, JSON.stringify(c)) : t.removeItem(i), xt(h) ? t.setItem(o, JSON.stringify(h)) : t.removeItem(o), xt(l) ? t.setItem(a, JSON.stringify(l)) : t.removeItem(a);\n}, Ys = () => ({ tenant: {}, implementation: {}, widget: {} }), Zs = (n) => n ? !!n && /* @__PURE__ */ new Date() > new Date(n) : !1, ae = (n, t) => {\n const e = n.widget[t] || n.implementation[t] || n.tenant[t];\n return e == null ? void 0 : e.value;\n}, Ze = (n, t, e) => e ? {\n value: n,\n category: t,\n expiration: typeof e == \"object\" ? ye(e) : e\n} : {\n value: n,\n category: t\n}, Qt = (n, t) => {\n const e = ns(n);\n return Object.entries(e).forEach(([r, s]) => {\n Object.entries(s).forEach(([i, o]) => {\n const { expiration: a, category: c } = o;\n (Zs(a) || Qs(t, c)) && (s[i] = Ze(void 0, c, a));\n });\n }), e;\n}, xn = (n, t) => Y(n, \"storagePolicy\", S.Cookie).then(\n (e = [P.Necessary]) => !!t && e.indexOf(t) === -1\n), Qs = (n = [P.Necessary], t) => !!t && n.indexOf(t) === -1, Qe = (n) => {\n const t = Ye(n), e = oe(n, window.localStorage), r = oe(n, sessionStorage), s = ae(t, \"storagePolicy\"), [i, o, a] = [\n t,\n e,\n r\n ].map((c) => Qt(c, s));\n ur(n, i), Ve(n, window.localStorage, o), Ve(n, window.sessionStorage, a);\n}, ye = (n = { days: 30 }) => {\n const { days: t = 0, hours: e = 0, minutes: r = 0, seconds: s = 0 } = n, i = /* @__PURE__ */ new Date();\n return i.setTime(i.getTime() + e * 60 * 60 * 1e3), i.setTime(i.getTime() + t * 24 * 60 * 60 * 1e3), i.setTime(i.getTime() + r * 60 * 1e3), i.setTime(i.getTime() + s * 1e3), i.toISOString();\n}, Xs = (n) => Q(document)(() => Ye(n)), ti = (n, t) => Q(document)(() => ur(n, t)), ei = (n, t) => {\n const e = t === S.Local ? window.localStorage : window.sessionStorage;\n return Q(e)(() => oe(n, e));\n}, ni = (n, t, e) => {\n const r = t === S.Local ? window.localStorage : window.sessionStorage;\n return Q(r)(() => Ve(n, r, e));\n};\nlet Xt = class {\n constructor() {\n this.memory = {\n tenant: {},\n implementation: {},\n widget: {}\n };\n }\n setItem(t, e) {\n return qt(this, arguments, function* (r, s, i = {}) {\n return Q(this)(() => {\n const o = Qt(this.memory, [P.Necessary]), { scope: a = Ct.Tenant, expiration: c } = i;\n o[a][r] = Ze(\n s,\n P.Necessary,\n (c == null ? void 0 : c.toISOString()) || ye()\n ), this.memory = o, process.env.NODE_ENV !== \"production\" && I.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value stored temporarily in memory.\n Key: ${r}\n Value: ${JSON.stringify(s)}\n Options: ${JSON.stringify(i)}\n Memory: ${JSON.stringify(o)}`\n );\n });\n });\n }\n getItem(t) {\n return qt(this, null, function* () {\n return Q(this)(() => {\n const e = Qt(this.memory, [P.Necessary]);\n process.env.NODE_ENV !== \"production\" && I.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value fetched from legacy memory storage.\n Key: ${t}\n Memory: ${JSON.stringify(e)}`\n );\n const r = ae(e, t);\n return this.memory = e, r;\n });\n });\n }\n removeItem(t) {\n return qt(this, null, function* () {\n return Q(this)(() => {\n const e = Qt(this.memory, [P.Necessary]);\n delete e.tenant[t], delete e.implementation[t], delete e.widget[t], this.memory = e, process.env.NODE_ENV !== \"production\" && I.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value removed from memory.\n Key: ${t}\n Memory: ${JSON.stringify(e)}`\n );\n });\n });\n }\n clear() {\n return qt(this, null, function* () {\n return Promise.resolve();\n });\n }\n}, ri = class {\n constructor() {\n this.cookies = new Xt(), this.session = new Xt(), this.local = new Xt();\n }\n};\nconst Pe = (n, t, e, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, si = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Pe(t, \"info\", e, ...r),\n warn: (e, ...r) => Pe(t, \"warning\", e, ...r),\n error: (e, ...r) => Pe(t, \"error\", e, ...r)\n };\n};\nvar ce = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(ce || {}), ft = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(ft || {});\nconst ii = (n, t, e, r) => {\n try {\n const s = new t(e, r);\n return {\n name: n,\n invoke: (i, o) => {\n let a;\n return s[i] && (a = s[i].call(s, o)), Promise.resolve(a);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let o;\n return i === \"initialize\" && (o = t(e, r)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw s;\n }\n};\nfunction _n(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet oi = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: ce.Widget,\n stage: ft.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: _n(e.scope, ce.Widget),\n stage: _n(e.stage, ft.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const o = t.split(\".\");\n return o.forEach((a, c) => {\n c === o.length - 1 ? i[a] || (i[a] = () => s) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n};\nconst dr = (n) => {\n const t = new oi({});\n return n(t), t.get();\n};\ndr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: ce.Implementation, stage: ft.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: ft.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: ft.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: ft.Pre },\n (t) => (e, r, s) => {\n const { container: i } = t;\n let o = null, a = e, c = r;\n typeof e == \"string\" && (o = e, a = r, c = s);\n const h = (l) => {\n const { transformPluginSettings: u } = t.container.get(\"$environmentOptions\"), d = u ? u(\n c || {},\n o,\n t.container,\n a\n ) : r;\n try {\n const p = ii(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n si(t).warn(\"Error when initializing plugin\", p);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\ndr((n) => {\n n.createCommand(\"storage\", (t) => (e = {}) => {\n const { consent: r } = e;\n if (typeof r != \"undefined\") {\n if (typeof r != \"number\" && typeof r != \"string\" && !Array.isArray(r)) {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n if (Array.isArray(r) && !r.every(\n (i) => typeof i == \"number\" || typeof i == \"string\"\n )) {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n const s = [\n P.Necessary,\n P.Functional,\n P.Analytical,\n P.Marketing\n ].filter((i, o, a) => typeof r == \"number\" ? r > o : typeof r == \"string\" ? a.indexOf(r) + 1 > o : Array.isArray(r) ? r.findIndex((c) => c === o + 1 || c === i) > -1 : !0);\n return s.indexOf(P.Necessary) === -1 && (process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent does not include category: '${P.Necessary}'. Consent has to atleast include the '${P.Necessary}' category.\n Passed consent: ${JSON.stringify(r)}`\n ), s.unshift(P.Necessary)), et(\n t.container,\n \"storagePolicy\",\n P.Necessary,\n {\n medium: S.Cookie,\n scope: Ct.Tenant,\n duration: { days: 365 }\n }\n ).then((i) => i(s)).then(() => {\n Qe(t.container), t.events.dispatch(\"storage:policy-changed\", s);\n });\n }\n });\n});\nconst ai = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StorageCategory: P,\n StorageMedium: S,\n StorageProvider: ri,\n StorageScope: Ct,\n StorageService: Xt,\n createStorageWriter: et,\n readStorage: Y\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar ci = Object.defineProperty, hi = Object.defineProperties, li = Object.getOwnPropertyDescriptors, he = Object.getOwnPropertySymbols, pr = Object.prototype.hasOwnProperty, gr = Object.prototype.propertyIsEnumerable, Sn = (n, t, e) => t in n ? ci(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, Ot = (n, t) => {\n for (var e in t || (t = {}))\n pr.call(t, e) && Sn(n, e, t[e]);\n if (he)\n for (var e of he(t))\n gr.call(t, e) && Sn(n, e, t[e]);\n return n;\n}, fr = (n, t) => hi(n, li(t)), ui = (n, t) => {\n var e = {};\n for (var r in n)\n pr.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && he)\n for (var r of he(n))\n t.indexOf(r) < 0 && gr.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction mr(n) {\n if (n.__esModule)\n return n;\n var t = n.default;\n if (typeof t == \"function\") {\n var e = function r() {\n if (this instanceof r) {\n var s = [null];\n s.push.apply(s, arguments);\n var i = Function.bind.apply(t, s);\n return new i();\n }\n return t.apply(this, arguments);\n };\n e.prototype = t.prototype;\n } else\n e = {};\n return Object.defineProperty(e, \"__esModule\", { value: !0 }), Object.keys(n).forEach(function(r) {\n var s = Object.getOwnPropertyDescriptor(n, r);\n Object.defineProperty(e, r, s.get ? s : {\n enumerable: !0,\n get: function() {\n return n[r];\n }\n });\n }), e;\n}\nvar vr = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (vr = function(n, t, e) {\n var r = arguments.length;\n e = new Array(r > 2 ? r - 2 : 0);\n for (var s = 2; s < r; s++)\n e[s - 2] = arguments[s];\n if (t === void 0)\n throw new Error(\n \"`warning(condition, format, ...args)` requires a warning message argument\"\n );\n if (t.length < 10 || /^[s\\W]*$/.test(t))\n throw new Error(\n \"The warning format should be able to uniquely identify this warning. Please, use a more descriptive format than: \" + t\n );\n if (!n) {\n var i = 0, o = \"Warning: \" + t.replace(/%s/g, function() {\n return e[i++];\n });\n typeof console != \"undefined\" && console.error(o);\n try {\n throw new Error(o);\n } catch (a) {\n }\n }\n});\nvar di = vr, pi = di, Pn = gi(pi);\nfunction gi(n) {\n return n && n.__esModule ? n : { default: n };\n}\nvar fi = function() {\n var n = null, t = function(o) {\n return (0, Pn.default)(n == null, \"A history supports only one prompt at a time\"), n = o, function() {\n n === o && (n = null);\n };\n }, e = function(o, a, c, h) {\n if (n != null) {\n var l = typeof n == \"function\" ? n(o, a) : n;\n typeof l == \"string\" ? typeof c == \"function\" ? c(l, h) : ((0, Pn.default)(!1, \"A history needs a getUserConfirmation function in order to use a prompt message\"), h(!0)) : h(l !== !1);\n } else\n h(!0);\n }, r = [], s = function(o) {\n var a = !0, c = function() {\n a && o.apply(void 0, arguments);\n };\n return r.push(c), function() {\n a = !1, r = r.filter(function(h) {\n return h !== c;\n });\n };\n }, i = function() {\n for (var o = arguments.length, a = Array(o), c = 0; c < o; c++)\n a[c] = arguments[c];\n r.forEach(function(h) {\n return h.apply(void 0, a);\n });\n };\n return {\n setPrompt: t,\n confirmTransitionTo: e,\n appendListener: s,\n notifyListeners: i\n };\n}, yr = fi, br;\nbr = function(n, t) {\n return t(window.confirm(n));\n};\nfunction Jt(n) {\n return n.charAt(0) === \"/\";\n}\nfunction Ce(n, t) {\n for (var e = t, r = e + 1, s = n.length; r < s; e += 1, r += 1)\n n[e] = n[r];\n n.pop();\n}\nfunction mi(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Jt(n), i = t && Jt(t), o = s || i;\n if (n && Jt(n) ? r = e : e.length && (r.pop(), r = r.concat(e)), !r.length)\n return \"/\";\n var a = void 0;\n if (r.length) {\n var c = r[r.length - 1];\n a = c === \".\" || c === \"..\" || c === \"\";\n } else\n a = !1;\n for (var h = 0, l = r.length; l >= 0; l--) {\n var u = r[l];\n u === \".\" ? Ce(r, l) : u === \"..\" ? (Ce(r, l), h++) : h && (Ce(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Jt(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nconst vi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: mi\n}, Symbol.toStringTag, { value: \"Module\" })), yi = /* @__PURE__ */ mr(vi);\nvar Cn = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n} : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n};\nfunction te(n, t) {\n if (n === t)\n return !0;\n if (n == null || t == null)\n return !1;\n if (Array.isArray(n))\n return Array.isArray(t) && n.length === t.length && n.every(function(c, h) {\n return te(c, t[h]);\n });\n var e = typeof n == \"undefined\" ? \"undefined\" : Cn(n), r = typeof t == \"undefined\" ? \"undefined\" : Cn(t);\n if (e !== r)\n return !1;\n if (e === \"object\") {\n var s = n.valueOf(), i = t.valueOf();\n if (s !== n || i !== t)\n return te(s, i);\n var o = Object.keys(n), a = Object.keys(t);\n return o.length !== a.length ? !1 : o.every(function(c) {\n return te(n[c], t[c]);\n });\n }\n return !1;\n}\nconst bi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: te\n}, Symbol.toStringTag, { value: \"Module\" })), wi = /* @__PURE__ */ mr(bi);\nvar nt = {}, ot, wr, ze, Tt;\nnt.__esModule = !0;\nTt = nt.addLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n : \"/\" + n;\n};\nze = nt.stripLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n.substr(1) : n;\n};\nvar $i = nt.hasBasename = function(n, t) {\n return new RegExp(\"^\" + t + \"(\\\\/|\\\\?|#|$)\", \"i\").test(n);\n};\nnt.stripBasename = function(n, t) {\n return $i(n, t) ? n.substr(t.length) : n;\n};\nwr = nt.stripTrailingSlash = function(n) {\n return n.charAt(n.length - 1) === \"/\" ? n.slice(0, -1) : n;\n};\nnt.parsePath = function(n) {\n var t = n || \"/\", e = \"\", r = \"\", s = t.indexOf(\"#\");\n s !== -1 && (r = t.substr(s), t = t.substr(0, s));\n var i = t.indexOf(\"?\");\n return i !== -1 && (e = t.substr(i), t = t.substr(0, i)), {\n pathname: t,\n search: e === \"?\" ? \"\" : e,\n hash: r === \"#\" ? \"\" : r\n };\n};\not = nt.createPath = function(n) {\n var t = n.pathname, e = n.search, r = n.hash, s = t || \"/\";\n return e && e !== \"?\" && (s += e.charAt(0) === \"?\" ? e : \"?\" + e), r && r !== \"#\" && (s += r.charAt(0) === \"#\" ? r : \"#\" + r), s;\n};\nvar be, $r = be = void 0, Ei = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, Oi = yi, Ai = Er(Oi), xi = wi, _i = Er(xi), Si = nt;\nfunction Er(n) {\n return n && n.__esModule ? n : { default: n };\n}\nbe = function(n, t, e, r) {\n var s = void 0;\n typeof n == \"string\" ? (s = (0, Si.parsePath)(n), s.state = t) : (s = Ei({}, n), s.pathname === void 0 && (s.pathname = \"\"), s.search ? s.search.charAt(0) !== \"?\" && (s.search = \"?\" + s.search) : s.search = \"\", s.hash ? s.hash.charAt(0) !== \"#\" && (s.hash = \"#\" + s.hash) : s.hash = \"\", t !== void 0 && s.state === void 0 && (s.state = t));\n try {\n s.pathname = decodeURI(s.pathname);\n } catch (i) {\n throw i instanceof URIError ? new URIError('Pathname \"' + s.pathname + '\" could not be decoded. This is likely caused by an invalid percent-encoding.') : i;\n }\n return e && (s.key = e), r ? s.pathname ? s.pathname.charAt(0) !== \"/\" && (s.pathname = (0, Ai.default)(s.pathname, r.pathname)) : s.pathname = r.pathname : s.pathname || (s.pathname = \"/\"), s;\n};\n$r = function(n, t) {\n return n.pathname === t.pathname && n.search === t.search && n.hash === t.hash && n.key === t.key && (0, _i.default)(n.state, t.state);\n};\nconst Or = \"/\", Ar = \"./\", Pi = new RegExp(\n [\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n \"(\\\\\\\\.)\",\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\"]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined]\n \"(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?\"\n ].join(\"|\"),\n \"g\"\n), xr = (n, t) => {\n const e = [];\n let r = 0, s = 0, i = \"\";\n const o = t && t.delimiter || Or, a = t && t.delimiters || Ar;\n let c = !1, h;\n for (; (h = Pi.exec(n)) !== null; ) {\n const l = h[0], u = h[1], d = h.index;\n if (i += n.slice(s, d), s = d + l.length, u) {\n i += u[1], c = !0;\n continue;\n }\n let p = \"\";\n const b = n[s], v = h[2], g = h[3], O = h[4], j = h[5];\n if (!c && i.length) {\n const N = i.length - 1;\n a.indexOf(i[N]) > -1 && (p = i[N], i = i.slice(0, N));\n }\n i && (e.push(i), i = \"\", c = !1);\n const W = p !== \"\" && b !== void 0 && b !== p, H = j === \"+\" || j === \"*\", k = j === \"?\" || j === \"*\", U = p || o, A = g || O;\n e.push({\n delimiter: U,\n optional: k,\n repeat: H,\n partial: W,\n name: v || r++,\n // tslint:disable-line:no-increment-decrement\n prefix: p,\n pattern: A ? Ni(A) : \"[^\" + Mt(U) + \"]+?\"\n });\n }\n return (i || s < n.length) && e.push(i + n.substr(s)), e;\n}, Ci = (n, t) => ki(xr(n, t)), ki = (n) => {\n const t = new Array(n.length);\n for (let e = 0; e < n.length; e++)\n typeof n[e] == \"object\" && (t[e] = new RegExp(\"^(?:\" + n[e].pattern + \")$\"));\n return function(e, r) {\n let s = \"\";\n const i = r && r.encode || encodeURIComponent;\n for (let o = 0; o < n.length; o++) {\n const a = n[o];\n if (typeof a == \"string\") {\n s += a;\n continue;\n }\n const c = e ? e[a.name] : void 0;\n let h;\n if (Array.isArray(c)) {\n if (!a.repeat)\n throw new TypeError(\n 'Expected \"' + a.name + '\" to not repeat, but got array'\n );\n if (c.length === 0) {\n if (a.optional)\n continue;\n throw new TypeError('Expected \"' + a.name + '\" to not be empty');\n }\n for (let l = 0; l < c.length; l++) {\n if (h = i(c[l], a), !t[o].test(h))\n throw new TypeError(\n 'Expected all \"' + a.name + '\" to match \"' + a.pattern + '\"'\n );\n s += (l === 0 ? a.prefix : a.delimiter) + h;\n }\n continue;\n }\n if (typeof c == \"string\" || typeof c == \"number\" || typeof c == \"boolean\") {\n if (h = i(String(c), a), !t[o].test(h))\n throw new TypeError(\n 'Expected \"' + a.name + '\" to match \"' + a.pattern + '\", but got \"' + h + '\"'\n );\n s += a.prefix + h;\n continue;\n }\n if (a.optional) {\n a.partial && (s += a.prefix);\n continue;\n }\n throw new TypeError(\n 'Expected \"' + a.name + '\" to be ' + (a.repeat ? \"an array\" : \"a string\")\n );\n }\n return s;\n };\n}, Mt = (n) => n.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\"), Ni = (n) => n.replace(/([=!:$/()])/g, \"\\\\$1\"), _r = (n) => n && n.sensitive ? \"\" : \"i\", Mi = (n, t) => {\n if (!t)\n return n;\n const e = n.source.match(/\\((?!\\?)/g);\n if (e)\n for (let r = 0; r < e.length; r++)\n t.push({\n name: r,\n prefix: \"\",\n delimiter: \"\",\n optional: !1,\n repeat: !1,\n partial: !1,\n pattern: \"\"\n });\n return n;\n}, Li = (n, t, e) => {\n const r = [];\n for (let s = 0; s < n.length; s++)\n r.push(Sr(n[s], t, e).source);\n return new RegExp(\"(?:\" + r.join(\"|\") + \")\", _r(e));\n}, Di = (n, t, e) => Ti(xr(n, e), t, e), Ti = (n, t, e) => {\n e = e || {};\n const r = e.strict, s = e.end !== !1, i = Mt(e.delimiter || Or), o = e.delimiters || Ar, a = [].concat(e.endsWith || []).map(Mt).concat(\"$\").join(\"|\");\n let c = \"\", h = !1;\n for (let l = 0; l < n.length; l++) {\n const u = n[l];\n if (typeof u == \"string\")\n c += Mt(u), h = l === n.length - 1 && o.indexOf(u[u.length - 1]) > -1;\n else {\n const d = Mt(u.prefix), p = u.repeat ? \"(?:\" + u.pattern + \")(?:\" + d + \"(?:\" + u.pattern + \"))*\" : u.pattern;\n t && t.push(u), u.optional ? u.partial ? c += d + \"(\" + p + \")?\" : c += \"(?:\" + d + \"(\" + p + \"))?\" : c += d + \"(\" + p + \")\";\n }\n }\n return s ? (r || (c += \"(?:\" + i + \")?\"), c += a === \"$\" ? \"$\" : \"(?=\" + a + \")\") : (r || (c += \"(?:\" + i + \"(?=\" + a + \"))?\"), h || (c += \"(?=\" + i + \"|\" + a + \")\")), new RegExp(\"^\" + c, _r(e));\n}, Sr = (n, t, e) => n instanceof RegExp ? Mi(n, t || []) : Array.isArray(n) ? Li(n, t, e) : Di(n, t, e), le = Sr;\nvar G = /* @__PURE__ */ ((n) => (n.scopedHash = \"scopedHash\", n.hash = \"hash\", n.browser = \"browser\", n.memory = \"memory\", n))(G || {}), dt = /* @__PURE__ */ ((n) => (n.storage = \"storage\", n.path = \"path\", n.initialPath = \"initial\", n))(dt || {});\nconst Lt = (n, t) => {\n const e = [], r = le(t, e).exec(n);\n if (!r)\n return {};\n const [s, ...i] = r;\n return e.reduce((o, a, c) => (o[a.name] = i[c], o), {});\n}, ji = (n) => Object.keys(n).reduce((t, e) => {\n const r = typeof n[e] == \"string\" ? n[e].replace(\"&\", \"%20\") : n[e];\n let s = `${e}=${r}`;\n return t.length > 1 && (s = \"&\".concat(s)), t.concat(s);\n}, \"?\"), ke = (n, t) => {\n const e = t.find((r) => r.name === n);\n if (!e) {\n process.env.NODE_ENV !== \"production\" && I.warn(`Unable to find route with specified name: ${n}`);\n return;\n }\n return e;\n}, Pr = (n) => n.length ? n.slice(1).split(\"&\").map((t) => t.split(\"=\")).reduce((t, e) => {\n const [r, s] = e.map(encodeURI).map(decodeURIComponent);\n return fr(Ot({}, t), { [r]: decodeURIComponent(s).replace(\"%20\", \"&\") });\n}, {}) : {}, Ri = (n, t) => {\n const e = t.map((r) => ee(n, r)).reduce(\n (r, s) => {\n if (s === null)\n return r;\n const i = s.split(\"?\")[1];\n let o = 0;\n if (i) {\n const a = Pr(`?${i}`);\n o = Object.keys(a).length;\n }\n return !r.path || r.count && o < r.count ? {\n count: o,\n path: s\n } : r;\n },\n { count: void 0, path: void 0 }\n );\n return e ? e.path : t[0];\n}, ee = (n, t) => {\n const e = yt(n);\n if (Array.isArray(t)) {\n const c = Ri(e, t);\n if (!c)\n throw new Error(\"Unable to match path.\");\n return c;\n }\n const r = Ci(t);\n let s = t;\n try {\n s = r(e);\n } catch (c) {\n return null;\n }\n const i = [];\n le(t, i);\n const o = Object.keys(e).reduce((c, h) => (i.find((l) => l.name === h) || c.push(h), c), []), a = {};\n return o.forEach((c) => a[c] = e[c]), Object.keys(a).forEach((c) => a[c] === null && delete a[c]), Object.keys(a).length > 0 ? `${s}${ji(a)}` : s;\n}, Et = (n, t) => {\n let e = n;\n return e.indexOf(\"?\") > -1 && (e = e.substring(0, e.indexOf(\"?\"))), e.indexOf(\";\") > -1 && (e = e.substring(0, e.indexOf(\";\"))), e === \"\" && (e = \"/\"), t.reduce((r, s) => {\n if (Array.isArray(s.path))\n return s.path.reduce((o, a) => le(a, []).exec(e || \"\") && !o ? e : o, void 0) && !r ? s : r;\n if (!s.path)\n return r;\n const i = [];\n return le(s.path, i).exec(e || \"\") && !r ? s : r;\n }, void 0);\n}, Ii = (n) => {\n let t = n.get(\"historyTransitionManager\");\n return t || (t = yr(), n.parent && n.parent.register(\"historyTransitionManager\", t)), t;\n}, Dt = (n, t = null) => n ? be(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, Hi = (n, t) => {\n if (yt(n), yt(t), Object.keys(n).length !== Object.keys(t).length)\n return !1;\n if (Object.keys(n).length === 0 && Object.keys(t).length === 0)\n return !0;\n let e = !0;\n return Object.keys(t).forEach((r) => {\n t[r] !== n[r] && (e = !1);\n }), e;\n}, Ui = (n) => {\n if (typeof n.mode == \"string\") {\n if (n.mode === G.memory)\n return !0;\n } else if (n.mode[1]) {\n const [t, { sticky: e }] = n.mode;\n if (t === G.memory)\n return typeof e == \"undefined\" ? !0 : e;\n }\n return !1;\n}, Ne = (n) => {\n const { views: t } = n.get(\"$settings\"), e = Object.keys(t).reduce((r, s) => typeof t[s].path == \"undefined\" ? s : r, void 0);\n return e ? {\n name: e,\n params: {}\n } : null;\n}, kn = \"hashchange\", Bi = {\n hashbang: {\n encodePath: (n) => n.charAt(0) === \"!\" ? n : \"!/\" + ze(n),\n decodePath: (n) => n.charAt(0) === \"!\" ? n.substr(1) : n\n },\n noslash: {\n encodePath: ze,\n decodePath: Tt\n },\n slash: {\n encodePath: Tt,\n decodePath: Tt\n }\n}, at = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, Nn = (n) => window.location.hash = n, Mn = (n) => {\n const t = window.location.href.indexOf(\"#\");\n window.location.replace(\n window.location.href.slice(0, t >= 0 ? t : 0) + \"#\" + n\n );\n}, ne = (n = \"\") => {\n const t = n.replace(\";\", \"?\"), e = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return e.forEach(({ to: s, from: i }) => {\n r = r.replace(i, s);\n }), r;\n}, Vi = (n = {}) => {\n const t = window.history, { getUserConfirmation: e = br, hashType: r = \"slash\" } = n, s = n.basename ? wr(Tt(n.basename)) : \"\", { encodePath: i } = Bi[r], o = () => {\n const f = at(), w = l(f);\n return Dt(w, ne);\n }, a = n.transitionManager || yr(), c = (f) => {\n Object.assign(R, f), R.length = t.length, a.notifyListeners(R.location, R.action, n.widgetName);\n };\n let h = !1;\n const l = (f) => {\n const w = ($) => {\n function _(x, m) {\n const E = {};\n let M;\n for (; M = m.exec(x); )\n E[M[1]] = M[2];\n return E;\n }\n return _($, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, y = \"humany-\" + n.widgetName;\n return w(f)[y];\n }, u = () => {\n const f = o(), w = R.location;\n !h && $r(w, f) || d(f);\n }, d = (f) => {\n if (h)\n h = !1, c();\n else {\n const w = \"POP\";\n a.confirmTransitionTo(\n f,\n w,\n e,\n (y) => {\n y ? c({ action: w, location: f }) : p(f);\n }\n );\n }\n }, p = (f) => {\n const w = R.location;\n let y = g.lastIndexOf(ot(w));\n y === -1 && (y = 0);\n let $ = g.lastIndexOf(ot(f));\n $ === -1 && ($ = 0);\n const _ = y - $;\n _ && (h = !0, A(_));\n }, b = at(), v = i(b);\n b !== v && Mn(v);\n let g = [];\n const O = o();\n O.pathname !== null && g.push(ot(O));\n const j = (f = \"\") => {\n const w = [\n { from: /\\?+/gi, to: \";\" },\n { from: /\\&+/gi, to: \";\" },\n { from: /\\&+/gi, to: \";\" },\n { from: /=+/gi, to: \":\" }\n ];\n let y = f;\n return w.forEach(({ to: $, from: _ }) => {\n y = y.replace(_, $);\n }), y;\n }, W = (f, w, y) => {\n let $ = \"\", _ = !1;\n return f.split(\"&\").forEach((x) => {\n const m = x.split(\"=\"), E = m[0], M = m[1];\n if (E === w) {\n if (_ = !0, y === null)\n return;\n $.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += E + \"=\" + y : $ += E;\n } else\n E && ($.length > 0 && ($ += \"&\"), $ += E + \"=\" + M);\n }), !_ && y !== null && ($.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += w + \"=\" + y : $ += w), $;\n }, H = (f) => {\n const w = f.pathname, y = j(f.search), $ = w + (y ? `;${y}` : \"\"), _ = `humany-${n.widgetName}`, x = at();\n return `#${W(x, _, $).replace(\";;\", \";\")}`;\n }, k = (f, w) => {\n const y = \"PUSH\", $ = Dt(f, ne), _ = $.pathname, x = j($.search), m = _ + (x ? `${x}` : \"\"), E = `humany-${n.widgetName}`, M = at(), L = W(M, E, m);\n a.confirmTransitionTo($, y, e, (J) => {\n if (!J)\n return;\n const K = ot($), rt = i(L);\n if (at() !== rt) {\n Nn(rt);\n const Z = g.lastIndexOf(ot(R.location)), F = g.slice(0, Z === -1 ? 0 : Z + 1);\n F.push(K), g = F, c({ action: y, location: $ });\n } else\n c();\n });\n }, U = (f, w) => {\n const y = \"REPLACE\", $ = Dt(f, ne);\n a.confirmTransitionTo($, y, e, (_) => {\n if (!_)\n return;\n const x = ot($), m = i(s + x);\n at() !== m && Mn(m);\n const E = g.indexOf(ot(R.location));\n E !== -1 && (g[E] = x), c({ action: y, location: $ });\n });\n }, A = (f) => {\n t.go(f);\n }, N = () => A(-1), C = () => A(1);\n let D = 0;\n const V = (f) => {\n D += f, D === 1 ? window.addEventListener(kn, u) : D === 0 && window.removeEventListener(kn, u);\n };\n let B = !1;\n const R = {\n createHref: H,\n createLocation: Dt,\n push: k,\n replace: U,\n go: A,\n goBack: N,\n goForward: C,\n block: (f = !1) => {\n const w = a.setPrompt(f);\n return B || (V(1), B = !0), () => (B && (B = !1, V(-1)), w());\n },\n listen: (f) => {\n const w = a.appendListener(f);\n return V(1), () => {\n V(-1), w();\n };\n },\n stop: () => {\n const f = at(), w = W(f, `humany-${n.widgetName}`, null), y = i(w);\n Nn(y);\n },\n length: t.length,\n action: \"POP\",\n location: O\n };\n return R;\n}, Cr = Vi, zi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n decodeSearch: ne,\n default: Cr,\n getHashPath: at\n}, Symbol.toStringTag, { value: \"Module\" })), Wi = (n, t) => {\n const e = (s) => {\n function i(o, a) {\n const c = {};\n let h;\n for (; h = a.exec(o); )\n c[h[1]] = h[2];\n return c;\n }\n return i(s, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, r = `humany-${t}`;\n return e(n)[r];\n}, Fi = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, qi = (n = \"\") => {\n const t = n.replace(\";\", \"?\"), e = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return e.forEach(({ to: s, from: i }) => {\n r = r.replace(i, s);\n }), r;\n}, Ji = (n, t = null) => n ? be(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, kr = (n) => {\n const t = Fi(), e = Wi(t, n);\n return Ji(e, qi);\n}, Xe = (n) => {\n const { name: t } = n.get(\"$widget\");\n return !!kr(t).pathname;\n};\nJe((n) => {\n n.createCommand(\"routing\", (t) => (e) => {\n const r = {\n mode: e.mode\n };\n e.basePath && (r.basePath = e.basePath), t.container.register(\"routingSettings\", r);\n });\n});\nconst Ln = \"routeData\";\nclass Ki {\n constructor(t, e) {\n this.container = t, this.steps = [], this.historyListenSubscription = () => {\n }, this.sticky = !1, this.storageWriter = null, this.widget = t.get(\"$widget\");\n const r = e, { routes: s } = r, i = ui(r, [\"routes\"]);\n this.settings = Ot(Ot({}, i), t.get(\"routingSettings\")), this.sticky = Ui(this.settings), this.storageMedium = this.sticky ? S.Local : S.Session, et(t, Ln, P.Necessary, {\n medium: this.storageMedium\n }).then((o) => this.storageWriter = o), this.routes = s;\n }\n initialize() {\n return this.initialized = this.initialized || this.createHistory().then((t) => {\n this.history = t, this.location = t.location, this.historyListenSubscription = t.listen(\n (e, r, s) => this.handleLocationChange(e, s)\n );\n });\n }\n setMatch(t) {\n if (this.match = t, this.location) {\n const e = this.getRouteData(), r = {\n routeData: e,\n location: this.location\n }, s = this.steps[0], i = e.name === (s == null ? void 0 : s.routeData.name), o = dn(\n e.params,\n (s == null ? void 0 : s.routeData.params) || {}\n );\n (!i || !o) && (this.widget.events.dispatch(\"router:change\", { next: r, previous: s }), this.steps.unshift(r), this.storageWriter && this.storageWriter(r.routeData), this.widget.events.dispatch(\"router:changed\", { previous: s, current: r }));\n }\n }\n onRouteChange(t) {\n return this.widget.events.subscribe(\"router:change\", t);\n }\n isSticky() {\n return this.sticky;\n }\n /**\n * Generate a formatted path from string\n * @param routeName Name of route to generate path for\n * @param params Optional: route params\n */\n generate(t, e = {}) {\n const r = ke(t, this.routes);\n if (!r || !this.history)\n throw `No route found for ${t}`;\n const s = ee(e, r.path);\n if (!s)\n throw `Unable to generate path for \"${t}\".`;\n const i = Dt(s, this.settings.decodeSearch);\n let o = this.history.createHref(i);\n const { mode: a, basePath: c } = this.settings;\n return a === \"browser\" && c && (o = o.replace(c, \"\")), o.charAt(0) !== \"/\" && (o = `/${o}`), o;\n }\n /**\n * Navigate to path\n * @param routeName Route to navigate to\n * @param params Optional: route params\n */\n navigate(t, e = {}) {\n const r = ke(t, this.routes);\n if (!r || !this.history)\n return;\n const s = ee(e, r.path);\n if (!s)\n return;\n const i = this.getRouteData(), o = i && i.name === t && Hi(i.params, e);\n if (this.steps[0] && o)\n return;\n const { decodeSearch: a } = this.settings, c = a ? a(s) : s;\n this.widget.events.dispatch(\"router:navigate\", {\n decodedPath: c\n }), c.charAt(0) !== \"/\" ? this.history.push(`/${c}`) : this.history.push(c);\n }\n /**\n * Return true or false depending\n * on whether it is possible to navigate backwards\n */\n hasBack() {\n if (this.steps.length > 1)\n return !0;\n const t = this.getRouteData(this.settings.initialPath), e = this.getRouteData(), r = e.name === t.name, s = dn(e.params, t.params);\n return !r || !s;\n }\n /**\n * Navigate to previous route\n */\n goBack(t = 1) {\n if (this.steps.length < 2) {\n const e = this.getRouteData(this.settings.initialPath);\n e && e.name && (this.navigate(e.name, e.params), this.steps = []);\n } else {\n const e = t >= this.steps.length ? this.steps.length - 1 : t, { routeData: r } = this.steps[e];\n this.steps = [...this.steps.slice(e + 1)], this.navigate(r.name, es(r.params));\n }\n }\n /**\n * Navigate to next route\n */\n goForward() {\n this.history && this.history.goForward();\n }\n /**\n * Get the current location\n */\n current() {\n return this.location;\n }\n /**\n * Get the initial route. If the defined initial route does not exist,\n * return the first defined route\n */\n getInitialRoute() {\n const { name: t } = this.getRouteData(this.settings.initialPath);\n return this.routes.find((r) => r.name === t) || (this.routes.length > 0 ? this.routes[0] : (process.env.NODE_ENV !== \"production\" && I.warn(\"Unable to get initial route as no routes are defined.\"), null));\n }\n getRouteData(t) {\n const e = Ne(this.container);\n if (t) {\n const r = Et(t, this.routes);\n return r ? {\n params: yt(Lt(t, r.path)),\n name: r.name\n } : e || {\n name: \"\",\n params: {}\n };\n }\n if (this.location) {\n const { pathname: r, search: s } = this.location;\n if (this.currentRoute = this.currentRoute || Et(r, this.routes), this.currentRoute) {\n const { path: i, name: o } = this.currentRoute;\n this.match || (this.match = {\n params: Lt(r, i),\n isExact: !0,\n path: i,\n url: r\n });\n const a = yt(Ot(Ot({}, this.match.params), s.length > 0 && Pr(s)));\n return {\n name: o,\n params: a\n };\n }\n }\n return e || {\n name: \"\",\n params: {}\n };\n }\n dispose() {\n return this.historyListenSubscription(), this.stop();\n }\n /**\n * Setup and load the initial route based on router configuration\n */\n setupInitialRoute() {\n return Y(this.container, Ln, this.storageMedium).then(\n (t) => {\n if (!this.location || !this.history)\n return;\n const { initialPath: e, mode: r } = this.settings;\n switch ((() => {\n const s = Xe(this.container);\n return r === G.browser || s ? dt.path : r === G.memory && t ? dt.storage : dt.initialPath;\n })()) {\n case dt.initialPath: {\n const s = this.getRouteData(e);\n return s && s.name ? this.navigate(s.name, s.params) : void 0;\n }\n case dt.path: {\n const { pathname: s } = this.location;\n if (this.currentRoute = Et(s, this.routes), this.currentRoute) {\n const { path: o } = this.currentRoute;\n return this.setMatch({\n params: Lt(s, o),\n isExact: !0,\n path: o,\n url: s\n });\n }\n const i = Ne(this.container);\n return i ? this.setMatch({\n params: {},\n isExact: !0,\n path: i.name,\n url: s\n }) : void 0;\n }\n case dt.storage: {\n const { pathname: s } = this.location;\n this.currentRoute = Et(s, this.routes);\n const { name: i = \"\", params: o = {} } = t || {}, a = ke(i, this.routes);\n if (a) {\n const c = ee(o, a.path);\n if (c)\n return this.history.push(c), this.location = fr(Ot({}, this.location), { pathname: c }), this.currentRoute = Et(c, this.routes), this.setMatch({\n params: o,\n isExact: !0,\n path: a.path,\n url: c\n });\n }\n return;\n }\n }\n }\n );\n }\n start() {\n return this.setupInitialRoute();\n }\n stop() {\n return this.history && (this.settings.mode === G.scopedHash && this.history.stop(), this.steps = [], this.storageWriter) ? this.storageWriter() : Promise.resolve();\n }\n handleLocationChange(t, e) {\n const { pathname: r } = t, { mode: s } = this.settings;\n if (r.indexOf(\"?\") > -1 || r.indexOf(\";\") > -1 || s === G.scopedHash && e !== this.widget.name)\n return;\n this.location = t, this.currentRoute = Et(r, this.routes);\n const i = Ne(this.container);\n if (this.currentRoute) {\n const { path: o } = this.currentRoute;\n this.setMatch({\n params: Lt(r, o),\n isExact: !0,\n path: o,\n url: r\n });\n } else\n i && this.setMatch({\n params: {},\n isExact: !0,\n path: i.name,\n url: r\n });\n }\n createHistory() {\n return new Promise((t) => {\n const { mode: e, basePath: r } = this.settings;\n if (e === G.scopedHash) {\n const s = this.widget.name, i = Ii(this.container);\n return Promise.resolve().then(() => zi).then((o) => {\n const a = o.default({\n widgetName: s,\n transitionManager: i,\n hashType: \"noslash\"\n });\n return t(a);\n });\n }\n if (e === G.memory)\n return t(Fs());\n if (e === G.browser)\n return t(zs({ basename: r }));\n throw \"RoutingService: History could not be created.\";\n });\n }\n}\nconst Gi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n HistoryMode: G,\n RoutingService: Ki,\n createHashHistory: Cr,\n getScopedHashDOMLocation: kr,\n matchParams: Lt,\n onWidgetUrl: Xe\n}, Symbol.toStringTag, { value: \"Module\" })), Me = (n, t, e, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, Yi = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Me(t, \"info\", e, ...r),\n warn: (e, ...r) => Me(t, \"warning\", e, ...r),\n error: (e, ...r) => Me(t, \"error\", e, ...r)\n };\n};\nvar Rt = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Rt || {}), ht = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(ht || {});\nconst Zi = (n, t, e, r) => {\n try {\n const s = new t(e, r);\n return {\n name: n,\n invoke: (i, o) => {\n let a;\n return s[i] && (a = s[i].call(s, o)), Promise.resolve(a);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let o;\n return i === \"initialize\" && (o = t(e, r)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw s;\n }\n};\nfunction Dn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nclass Qi {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: Rt.Widget,\n stage: ht.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: Dn(e.scope, Rt.Widget),\n stage: Dn(e.stage, ht.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const o = t.split(\".\");\n return o.forEach((a, c) => {\n c === o.length - 1 ? i[a] || (i[a] = () => s) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst Nr = (n) => {\n const t = new Qi({});\n return n(t), t.get();\n};\nNr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: Rt.Implementation, stage: ht.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: ht.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: ht.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: ht.Pre },\n (t) => (e, r, s) => {\n const { container: i } = t;\n let o = null, a = e, c = r;\n typeof e == \"string\" && (o = e, a = r, c = s);\n const h = (l) => {\n const { transformPluginSettings: u } = t.container.get(\"$environmentOptions\"), d = u ? u(\n c || {},\n o,\n t.container,\n a\n ) : r;\n try {\n const p = Zi(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n Yi(t).warn(\"Error when initializing plugin\", p);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nfunction Xi(n) {\n const t = {};\n return [].filter.call(n.attributes, (e) => /^data-/.test(e.name)).map((e) => e.name).forEach((e) => t[e.substr(5)] = n.getAttribute(e)), t;\n}\nconst Tn = (n, t, e) => {\n const r = Xi(n);\n e({\n sourceDOMElement: n,\n eventType: t,\n data: r\n });\n};\nfunction jn(n, t, e) {\n n.forEach((r) => {\n r.dataset.attached !== \"true\" && (t === \"load\" ? Tn(r, t, e) : r.addEventListener(t, (s) => {\n s.preventDefault(), Tn(r, t, e);\n }), r.dataset.monitored = \"true\");\n });\n}\nfunction to(n, t, e) {\n const r = n.container.get(\"bootstrapping.monitor\");\n r && r.events.subscribe(\"bootstrap:trigger-elements-updated\", (i, o) => {\n jn(\n o.triggerElements,\n t,\n e\n );\n });\n const s = n.container.get(\"triggerElements\");\n s && jn(\n s,\n t,\n e\n );\n}\nNr((n) => {\n n.createCommand(\n \"ready\",\n { scope: Rt.Implementation, stage: ht.Pre },\n (t) => (e) => {\n const { container: r } = t, s = r.owner;\n r.get(\"bootstrapping\").ready ? e(s) : s.events.subscribeOnce(\"bootstrap:ready\", () => {\n e(s);\n });\n }\n );\n});\nconst eo = (n) => {\n const t = (s, i) => {\n s && (i ? s.classList.add(\"ace-tabbing\") : s.classList.remove(\"ace-tabbing\"));\n }, e = (s) => {\n s.key === \"Tab\" ? t(n, !0) : s.key === \"Enter\" && document.activeElement && document.activeElement.classList.contains(\"ace-widget-trigger\") || t(n, !1);\n }, r = (s) => {\n document.activeElement && document.activeElement.classList.contains(\"ace-widget-trigger\") && document.activeElement.classList.contains(\"ace-tabbing\") || t(n, !1);\n };\n return document.addEventListener(\"keydown\", e), document.addEventListener(\"click\", r), () => {\n document.removeEventListener(\"keydown\", e), document.removeEventListener(\"click\", r);\n };\n};\nfunction no(n, t) {\n const {\n // symbol,\n widgetName: e,\n label: r = \"\",\n ariaLabel: s = \"\",\n tooltip: i = \"\"\n } = t;\n return n.classList.add(\"ace-widget-trigger\"), n.classList.add(`ace-widget_${e}`), r.length && n.classList.add(\"trigger-has-text\"), s.length && !n.getAttribute(\"aria-label\") && n.setAttribute(\"aria-label\", s), s.length && !n.getAttribute(\"tabindex\") && n.setAttribute(\"tabindex\", \"0\"), i.length && !n.getAttribute(\"title\") && n.setAttribute(\"title\", i), eo(n);\n}\nfunction ro(n, t) {\n n instanceof HTMLElement ? (t && n.setAttribute(\"title\", t), n.classList.remove(\"ace-trigger-active\"), n.classList.remove(\"ace-trigger-loading\")) : n instanceof Array && n.forEach((e) => {\n t && e.setAttribute(\"title\", t), e.classList.remove(\"ace-trigger-active\"), e.classList.remove(\"ace-trigger-loading\");\n });\n}\nfunction so(n) {\n n instanceof HTMLElement ? (n.classList.remove(\"ace-trigger-active\"), n.classList.add(\"ace-trigger-loading\")) : n instanceof Array && n.forEach((t) => {\n t.classList.remove(\"ace-trigger-active\"), t.classList.add(\"ace-trigger-loading\");\n });\n}\nfunction Mr(n, t) {\n n instanceof HTMLElement ? (t && n.setAttribute(\"title\", t), n.classList.add(\"ace-trigger-active\"), n.classList.remove(\"ace-trigger-loading\")) : n instanceof Array && n.forEach((e) => {\n t && e.setAttribute(\"title\", t), e.classList.add(\"ace-trigger-active\"), e.classList.remove(\"ace-trigger-loading\");\n });\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst re = window, tn = re.ShadowRoot && (re.ShadyCSS === void 0 || re.ShadyCSS.nativeShadow) && \"adoptedStyleSheets\" in Document.prototype && \"replace\" in CSSStyleSheet.prototype, en = Symbol(), Rn = /* @__PURE__ */ new WeakMap();\nlet Lr = class {\n constructor(t, e, r) {\n if (this._$cssResult$ = !0, r !== en)\n throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");\n this.cssText = t, this.t = e;\n }\n get styleSheet() {\n let t = this.o;\n const e = this.t;\n if (tn && t === void 0) {\n const r = e !== void 0 && e.length === 1;\n r && (t = Rn.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), r && Rn.set(e, t));\n }\n return t;\n }\n toString() {\n return this.cssText;\n }\n};\nconst io = (n) => new Lr(typeof n == \"string\" ? n : n + \"\", void 0, en), oo = (n, ...t) => {\n const e = n.length === 1 ? n[0] : t.reduce((r, s, i) => r + ((o) => {\n if (o._$cssResult$ === !0)\n return o.cssText;\n if (typeof o == \"number\")\n return o;\n throw Error(\"Value passed to 'css' function must be a 'css' function result: \" + o + \". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\");\n })(s) + n[i + 1], n[0]);\n return new Lr(e, n, en);\n}, ao = (n, t) => {\n tn ? n.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet) : t.forEach((e) => {\n const r = document.createElement(\"style\"), s = re.litNonce;\n s !== void 0 && r.setAttribute(\"nonce\", s), r.textContent = e.cssText, n.appendChild(r);\n });\n}, In = tn ? (n) => n : (n) => n instanceof CSSStyleSheet ? ((t) => {\n let e = \"\";\n for (const r of t.cssRules)\n e += r.cssText;\n return io(e);\n})(n) : n;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Le;\nconst ue = window, Hn = ue.trustedTypes, co = Hn ? Hn.emptyScript : \"\", Un = ue.reactiveElementPolyfillSupport, We = { toAttribute(n, t) {\n switch (t) {\n case Boolean:\n n = n ? co : null;\n break;\n case Object:\n case Array:\n n = n == null ? n : JSON.stringify(n);\n }\n return n;\n}, fromAttribute(n, t) {\n let e = n;\n switch (t) {\n case Boolean:\n e = n !== null;\n break;\n case Number:\n e = n === null ? null : Number(n);\n break;\n case Object:\n case Array:\n try {\n e = JSON.parse(n);\n } catch (r) {\n e = null;\n }\n }\n return e;\n} }, Dr = (n, t) => t !== n && (t == t || n == n), De = { attribute: !0, type: String, converter: We, reflect: !1, hasChanged: Dr }, Fe = \"finalized\";\nlet At = class extends HTMLElement {\n constructor() {\n super(), this._$Ei = /* @__PURE__ */ new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this._$Eu();\n }\n static addInitializer(t) {\n var e;\n this.finalize(), ((e = this.h) !== null && e !== void 0 ? e : this.h = []).push(t);\n }\n static get observedAttributes() {\n this.finalize();\n const t = [];\n return this.elementProperties.forEach((e, r) => {\n const s = this._$Ep(r, e);\n s !== void 0 && (this._$Ev.set(s, r), t.push(s));\n }), t;\n }\n static createProperty(t, e = De) {\n if (e.state && (e.attribute = !1), this.finalize(), this.elementProperties.set(t, e), !e.noAccessor && !this.prototype.hasOwnProperty(t)) {\n const r = typeof t == \"symbol\" ? Symbol() : \"__\" + t, s = this.getPropertyDescriptor(t, r, e);\n s !== void 0 && Object.defineProperty(this.prototype, t, s);\n }\n }\n static getPropertyDescriptor(t, e, r) {\n return { get() {\n return this[e];\n }, set(s) {\n const i = this[t];\n this[e] = s, this.requestUpdate(t, i, r);\n }, configurable: !0, enumerable: !0 };\n }\n static getPropertyOptions(t) {\n return this.elementProperties.get(t) || De;\n }\n static finalize() {\n if (this.hasOwnProperty(Fe))\n return !1;\n this[Fe] = !0;\n const t = Object.getPrototypeOf(this);\n if (t.finalize(), t.h !== void 0 && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = /* @__PURE__ */ new Map(), this.hasOwnProperty(\"properties\")) {\n const e = this.properties, r = [...Object.getOwnPropertyNames(e), ...Object.getOwnPropertySymbols(e)];\n for (const s of r)\n this.createProperty(s, e[s]);\n }\n return this.elementStyles = this.finalizeStyles(this.styles), !0;\n }\n static finalizeStyles(t) {\n const e = [];\n if (Array.isArray(t)) {\n const r = new Set(t.flat(1 / 0).reverse());\n for (const s of r)\n e.unshift(In(s));\n } else\n t !== void 0 && e.push(In(t));\n return e;\n }\n static _$Ep(t, e) {\n const r = e.attribute;\n return r === !1 ? void 0 : typeof r == \"string\" ? r : typeof t == \"string\" ? t.toLowerCase() : void 0;\n }\n _$Eu() {\n var t;\n this._$E_ = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$Eg(), this.requestUpdate(), (t = this.constructor.h) === null || t === void 0 || t.forEach((e) => e(this));\n }\n addController(t) {\n var e, r;\n ((e = this._$ES) !== null && e !== void 0 ? e : this._$ES = []).push(t), this.renderRoot !== void 0 && this.isConnected && ((r = t.hostConnected) === null || r === void 0 || r.call(t));\n }\n removeController(t) {\n var e;\n (e = this._$ES) === null || e === void 0 || e.splice(this._$ES.indexOf(t) >>> 0, 1);\n }\n _$Eg() {\n this.constructor.elementProperties.forEach((t, e) => {\n this.hasOwnProperty(e) && (this._$Ei.set(e, this[e]), delete this[e]);\n });\n }\n createRenderRoot() {\n var t;\n const e = (t = this.shadowRoot) !== null && t !== void 0 ? t : this.attachShadow(this.constructor.shadowRootOptions);\n return ao(e, this.constructor.elementStyles), e;\n }\n connectedCallback() {\n var t;\n this.renderRoot === void 0 && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (t = this._$ES) === null || t === void 0 || t.forEach((e) => {\n var r;\n return (r = e.hostConnected) === null || r === void 0 ? void 0 : r.call(e);\n });\n }\n enableUpdating(t) {\n }\n disconnectedCallback() {\n var t;\n (t = this._$ES) === null || t === void 0 || t.forEach((e) => {\n var r;\n return (r = e.hostDisconnected) === null || r === void 0 ? void 0 : r.call(e);\n });\n }\n attributeChangedCallback(t, e, r) {\n this._$AK(t, r);\n }\n _$EO(t, e, r = De) {\n var s;\n const i = this.constructor._$Ep(t, r);\n if (i !== void 0 && r.reflect === !0) {\n const o = (((s = r.converter) === null || s === void 0 ? void 0 : s.toAttribute) !== void 0 ? r.converter : We).toAttribute(e, r.type);\n this._$El = t, o == null ? this.removeAttribute(i) : this.setAttribute(i, o), this._$El = null;\n }\n }\n _$AK(t, e) {\n var r;\n const s = this.constructor, i = s._$Ev.get(t);\n if (i !== void 0 && this._$El !== i) {\n const o = s.getPropertyOptions(i), a = typeof o.converter == \"function\" ? { fromAttribute: o.converter } : ((r = o.converter) === null || r === void 0 ? void 0 : r.fromAttribute) !== void 0 ? o.converter : We;\n this._$El = i, this[i] = a.fromAttribute(e, o.type), this._$El = null;\n }\n }\n requestUpdate(t, e, r) {\n let s = !0;\n t !== void 0 && (((r = r || this.constructor.getPropertyOptions(t)).hasChanged || Dr)(this[t], e) ? (this._$AL.has(t) || this._$AL.set(t, e), r.reflect === !0 && this._$El !== t && (this._$EC === void 0 && (this._$EC = /* @__PURE__ */ new Map()), this._$EC.set(t, r))) : s = !1), !this.isUpdatePending && s && (this._$E_ = this._$Ej());\n }\n _$Ej() {\n return z(this, null, function* () {\n this.isUpdatePending = !0;\n try {\n yield this._$E_;\n } catch (e) {\n Promise.reject(e);\n }\n const t = this.scheduleUpdate();\n return t != null && (yield t), !this.isUpdatePending;\n });\n }\n scheduleUpdate() {\n return this.performUpdate();\n }\n performUpdate() {\n var t;\n if (!this.isUpdatePending)\n return;\n this.hasUpdated, this._$Ei && (this._$Ei.forEach((s, i) => this[i] = s), this._$Ei = void 0);\n let e = !1;\n const r = this._$AL;\n try {\n e = this.shouldUpdate(r), e ? (this.willUpdate(r), (t = this._$ES) === null || t === void 0 || t.forEach((s) => {\n var i;\n return (i = s.hostUpdate) === null || i === void 0 ? void 0 : i.call(s);\n }), this.update(r)) : this._$Ek();\n } catch (s) {\n throw e = !1, this._$Ek(), s;\n }\n e && this._$AE(r);\n }\n willUpdate(t) {\n }\n _$AE(t) {\n var e;\n (e = this._$ES) === null || e === void 0 || e.forEach((r) => {\n var s;\n return (s = r.hostUpdated) === null || s === void 0 ? void 0 : s.call(r);\n }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);\n }\n _$Ek() {\n this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;\n }\n get updateComplete() {\n return this.getUpdateComplete();\n }\n getUpdateComplete() {\n return this._$E_;\n }\n shouldUpdate(t) {\n return !0;\n }\n update(t) {\n this._$EC !== void 0 && (this._$EC.forEach((e, r) => this._$EO(r, this[r], e)), this._$EC = void 0), this._$Ek();\n }\n updated(t) {\n }\n firstUpdated(t) {\n }\n};\nAt[Fe] = !0, At.elementProperties = /* @__PURE__ */ new Map(), At.elementStyles = [], At.shadowRootOptions = { mode: \"open\" }, Un == null || Un({ ReactiveElement: At }), ((Le = ue.reactiveElementVersions) !== null && Le !== void 0 ? Le : ue.reactiveElementVersions = []).push(\"1.6.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Te;\nconst de = window, _t = de.trustedTypes, Bn = _t ? _t.createPolicy(\"lit-html\", { createHTML: (n) => n }) : void 0, qe = \"$lit$\", ct = `lit$${(Math.random() + \"\").slice(9)}$`, Tr = \"?\" + ct, ho = `<${Tr}>`, bt = document, It = () => bt.createComment(\"\"), Ht = (n) => n === null || typeof n != \"object\" && typeof n != \"function\", jr = Array.isArray, lo = (n) => jr(n) || typeof (n == null ? void 0 : n[Symbol.iterator]) == \"function\", je = `[ \t\n\\f\\r]`, kt = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g, Vn = /-->/g, zn = />/g, ut = RegExp(`>|${je}(?:([^\\\\s\"'>=/]+)(${je}*=${je}*(?:[^ \t\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`, \"g\"), Wn = /'/g, Fn = /\"/g, Rr = /^(?:script|style|textarea|title)$/i, uo = (n) => (t, ...e) => ({ _$litType$: n, strings: t, values: e }), Kt = uo(1), wt = Symbol.for(\"lit-noChange\"), T = Symbol.for(\"lit-nothing\"), qn = /* @__PURE__ */ new WeakMap(), mt = bt.createTreeWalker(bt, 129, null, !1);\nfunction Ir(n, t) {\n if (!Array.isArray(n) || !n.hasOwnProperty(\"raw\"))\n throw Error(\"invalid template strings array\");\n return Bn !== void 0 ? Bn.createHTML(t) : t;\n}\nconst po = (n, t) => {\n const e = n.length - 1, r = [];\n let s, i = t === 2 ? \"<svg>\" : \"\", o = kt;\n for (let a = 0; a < e; a++) {\n const c = n[a];\n let h, l, u = -1, d = 0;\n for (; d < c.length && (o.lastIndex = d, l = o.exec(c), l !== null); )\n d = o.lastIndex, o === kt ? l[1] === \"!--\" ? o = Vn : l[1] !== void 0 ? o = zn : l[2] !== void 0 ? (Rr.test(l[2]) && (s = RegExp(\"</\" + l[2], \"g\")), o = ut) : l[3] !== void 0 && (o = ut) : o === ut ? l[0] === \">\" ? (o = s != null ? s : kt, u = -1) : l[1] === void 0 ? u = -2 : (u = o.lastIndex - l[2].length, h = l[1], o = l[3] === void 0 ? ut : l[3] === '\"' ? Fn : Wn) : o === Fn || o === Wn ? o = ut : o === Vn || o === zn ? o = kt : (o = ut, s = void 0);\n const p = o === ut && n[a + 1].startsWith(\"/>\") ? \" \" : \"\";\n i += o === kt ? c + ho : u >= 0 ? (r.push(h), c.slice(0, u) + qe + c.slice(u) + ct + p) : c + ct + (u === -2 ? (r.push(void 0), a) : p);\n }\n return [Ir(n, i + (n[e] || \"<?>\") + (t === 2 ? \"</svg>\" : \"\")), r];\n};\nclass Ut {\n constructor({ strings: t, _$litType$: e }, r) {\n let s;\n this.parts = [];\n let i = 0, o = 0;\n const a = t.length - 1, c = this.parts, [h, l] = po(t, e);\n if (this.el = Ut.createElement(h, r), mt.currentNode = this.el.content, e === 2) {\n const u = this.el.content, d = u.firstChild;\n d.remove(), u.append(...d.childNodes);\n }\n for (; (s = mt.nextNode()) !== null && c.length < a; ) {\n if (s.nodeType === 1) {\n if (s.hasAttributes()) {\n const u = [];\n for (const d of s.getAttributeNames())\n if (d.endsWith(qe) || d.startsWith(ct)) {\n const p = l[o++];\n if (u.push(d), p !== void 0) {\n const b = s.getAttribute(p.toLowerCase() + qe).split(ct), v = /([.?@])?(.*)/.exec(p);\n c.push({ type: 1, index: i, name: v[2], strings: b, ctor: v[1] === \".\" ? fo : v[1] === \"?\" ? vo : v[1] === \"@\" ? yo : we });\n } else\n c.push({ type: 6, index: i });\n }\n for (const d of u)\n s.removeAttribute(d);\n }\n if (Rr.test(s.tagName)) {\n const u = s.textContent.split(ct), d = u.length - 1;\n if (d > 0) {\n s.textContent = _t ? _t.emptyScript : \"\";\n for (let p = 0; p < d; p++)\n s.append(u[p], It()), mt.nextNode(), c.push({ type: 2, index: ++i });\n s.append(u[d], It());\n }\n }\n } else if (s.nodeType === 8)\n if (s.data === Tr)\n c.push({ type: 2, index: i });\n else {\n let u = -1;\n for (; (u = s.data.indexOf(ct, u + 1)) !== -1; )\n c.push({ type: 7, index: i }), u += ct.length - 1;\n }\n i++;\n }\n }\n static createElement(t, e) {\n const r = bt.createElement(\"template\");\n return r.innerHTML = t, r;\n }\n}\nfunction St(n, t, e = n, r) {\n var s, i, o, a;\n if (t === wt)\n return t;\n let c = r !== void 0 ? (s = e._$Co) === null || s === void 0 ? void 0 : s[r] : e._$Cl;\n const h = Ht(t) ? void 0 : t._$litDirective$;\n return (c == null ? void 0 : c.constructor) !== h && ((i = c == null ? void 0 : c._$AO) === null || i === void 0 || i.call(c, !1), h === void 0 ? c = void 0 : (c = new h(n), c._$AT(n, e, r)), r !== void 0 ? ((o = (a = e)._$Co) !== null && o !== void 0 ? o : a._$Co = [])[r] = c : e._$Cl = c), c !== void 0 && (t = St(n, c._$AS(n, t.values), c, r)), t;\n}\nclass go {\n constructor(t, e) {\n this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e;\n }\n get parentNode() {\n return this._$AM.parentNode;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n u(t) {\n var e;\n const { el: { content: r }, parts: s } = this._$AD, i = ((e = t == null ? void 0 : t.creationScope) !== null && e !== void 0 ? e : bt).importNode(r, !0);\n mt.currentNode = i;\n let o = mt.nextNode(), a = 0, c = 0, h = s[0];\n for (; h !== void 0; ) {\n if (a === h.index) {\n let l;\n h.type === 2 ? l = new Vt(o, o.nextSibling, this, t) : h.type === 1 ? l = new h.ctor(o, h.name, h.strings, this, t) : h.type === 6 && (l = new bo(o, this, t)), this._$AV.push(l), h = s[++c];\n }\n a !== (h == null ? void 0 : h.index) && (o = mt.nextNode(), a++);\n }\n return mt.currentNode = bt, i;\n }\n v(t) {\n let e = 0;\n for (const r of this._$AV)\n r !== void 0 && (r.strings !== void 0 ? (r._$AI(t, r, e), e += r.strings.length - 2) : r._$AI(t[e])), e++;\n }\n}\nclass Vt {\n constructor(t, e, r, s) {\n var i;\n this.type = 2, this._$AH = T, this._$AN = void 0, this._$AA = t, this._$AB = e, this._$AM = r, this.options = s, this._$Cp = (i = s == null ? void 0 : s.isConnected) === null || i === void 0 || i;\n }\n get _$AU() {\n var t, e;\n return (e = (t = this._$AM) === null || t === void 0 ? void 0 : t._$AU) !== null && e !== void 0 ? e : this._$Cp;\n }\n get parentNode() {\n let t = this._$AA.parentNode;\n const e = this._$AM;\n return e !== void 0 && (t == null ? void 0 : t.nodeType) === 11 && (t = e.parentNode), t;\n }\n get startNode() {\n return this._$AA;\n }\n get endNode() {\n return this._$AB;\n }\n _$AI(t, e = this) {\n t = St(this, t, e), Ht(t) ? t === T || t == null || t === \"\" ? (this._$AH !== T && this._$AR(), this._$AH = T) : t !== this._$AH && t !== wt && this._(t) : t._$litType$ !== void 0 ? this.g(t) : t.nodeType !== void 0 ? this.$(t) : lo(t) ? this.T(t) : this._(t);\n }\n k(t) {\n return this._$AA.parentNode.insertBefore(t, this._$AB);\n }\n $(t) {\n this._$AH !== t && (this._$AR(), this._$AH = this.k(t));\n }\n _(t) {\n this._$AH !== T && Ht(this._$AH) ? this._$AA.nextSibling.data = t : this.$(bt.createTextNode(t)), this._$AH = t;\n }\n g(t) {\n var e;\n const { values: r, _$litType$: s } = t, i = typeof s == \"number\" ? this._$AC(t) : (s.el === void 0 && (s.el = Ut.createElement(Ir(s.h, s.h[0]), this.options)), s);\n if (((e = this._$AH) === null || e === void 0 ? void 0 : e._$AD) === i)\n this._$AH.v(r);\n else {\n const o = new go(i, this), a = o.u(this.options);\n o.v(r), this.$(a), this._$AH = o;\n }\n }\n _$AC(t) {\n let e = qn.get(t.strings);\n return e === void 0 && qn.set(t.strings, e = new Ut(t)), e;\n }\n T(t) {\n jr(this._$AH) || (this._$AH = [], this._$AR());\n const e = this._$AH;\n let r, s = 0;\n for (const i of t)\n s === e.length ? e.push(r = new Vt(this.k(It()), this.k(It()), this, this.options)) : r = e[s], r._$AI(i), s++;\n s < e.length && (this._$AR(r && r._$AB.nextSibling, s), e.length = s);\n }\n _$AR(t = this._$AA.nextSibling, e) {\n var r;\n for ((r = this._$AP) === null || r === void 0 || r.call(this, !1, !0, e); t && t !== this._$AB; ) {\n const s = t.nextSibling;\n t.remove(), t = s;\n }\n }\n setConnected(t) {\n var e;\n this._$AM === void 0 && (this._$Cp = t, (e = this._$AP) === null || e === void 0 || e.call(this, t));\n }\n}\nclass we {\n constructor(t, e, r, s, i) {\n this.type = 1, this._$AH = T, this._$AN = void 0, this.element = t, this.name = e, this._$AM = s, this.options = i, r.length > 2 || r[0] !== \"\" || r[1] !== \"\" ? (this._$AH = Array(r.length - 1).fill(new String()), this.strings = r) : this._$AH = T;\n }\n get tagName() {\n return this.element.tagName;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AI(t, e = this, r, s) {\n const i = this.strings;\n let o = !1;\n if (i === void 0)\n t = St(this, t, e, 0), o = !Ht(t) || t !== this._$AH && t !== wt, o && (this._$AH = t);\n else {\n const a = t;\n let c, h;\n for (t = i[0], c = 0; c < i.length - 1; c++)\n h = St(this, a[r + c], e, c), h === wt && (h = this._$AH[c]), o || (o = !Ht(h) || h !== this._$AH[c]), h === T ? t = T : t !== T && (t += (h != null ? h : \"\") + i[c + 1]), this._$AH[c] = h;\n }\n o && !s && this.j(t);\n }\n j(t) {\n t === T ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t != null ? t : \"\");\n }\n}\nclass fo extends we {\n constructor() {\n super(...arguments), this.type = 3;\n }\n j(t) {\n this.element[this.name] = t === T ? void 0 : t;\n }\n}\nconst mo = _t ? _t.emptyScript : \"\";\nclass vo extends we {\n constructor() {\n super(...arguments), this.type = 4;\n }\n j(t) {\n t && t !== T ? this.element.setAttribute(this.name, mo) : this.element.removeAttribute(this.name);\n }\n}\nclass yo extends we {\n constructor(t, e, r, s, i) {\n super(t, e, r, s, i), this.type = 5;\n }\n _$AI(t, e = this) {\n var r;\n if ((t = (r = St(this, t, e, 0)) !== null && r !== void 0 ? r : T) === wt)\n return;\n const s = this._$AH, i = t === T && s !== T || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, o = t !== T && (s === T || i);\n i && this.element.removeEventListener(this.name, this, s), o && this.element.addEventListener(this.name, this, t), this._$AH = t;\n }\n handleEvent(t) {\n var e, r;\n typeof this._$AH == \"function\" ? this._$AH.call((r = (e = this.options) === null || e === void 0 ? void 0 : e.host) !== null && r !== void 0 ? r : this.element, t) : this._$AH.handleEvent(t);\n }\n}\nclass bo {\n constructor(t, e, r) {\n this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = r;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AI(t) {\n St(this, t);\n }\n}\nconst Jn = de.litHtmlPolyfillSupport;\nJn == null || Jn(Ut, Vt), ((Te = de.litHtmlVersions) !== null && Te !== void 0 ? Te : de.litHtmlVersions = []).push(\"2.8.0\");\nconst wo = (n, t, e) => {\n var r, s;\n const i = (r = e == null ? void 0 : e.renderBefore) !== null && r !== void 0 ? r : t;\n let o = i._$litPart$;\n if (o === void 0) {\n const a = (s = e == null ? void 0 : e.renderBefore) !== null && s !== void 0 ? s : null;\n i._$litPart$ = o = new Vt(t.insertBefore(It(), a), a, void 0, e != null ? e : {});\n }\n return o._$AI(n), o;\n};\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Re, Ie;\nlet jt = class extends At {\n constructor() {\n super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;\n }\n createRenderRoot() {\n var t, e;\n const r = super.createRenderRoot();\n return (t = (e = this.renderOptions).renderBefore) !== null && t !== void 0 || (e.renderBefore = r.firstChild), r;\n }\n update(t) {\n const e = this.render();\n this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = wo(e, this.renderRoot, this.renderOptions);\n }\n connectedCallback() {\n var t;\n super.connectedCallback(), (t = this._$Do) === null || t === void 0 || t.setConnected(!0);\n }\n disconnectedCallback() {\n var t;\n super.disconnectedCallback(), (t = this._$Do) === null || t === void 0 || t.setConnected(!1);\n }\n render() {\n return wt;\n }\n};\njt.finalized = !0, jt._$litElement$ = !0, (Re = globalThis.litElementHydrateSupport) === null || Re === void 0 || Re.call(globalThis, { LitElement: jt });\nconst Kn = globalThis.litElementPolyfillSupport;\nKn == null || Kn({ LitElement: jt });\n((Ie = globalThis.litElementVersions) !== null && Ie !== void 0 ? Ie : globalThis.litElementVersions = []).push(\"3.3.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst $o = (n, t) => t.kind === \"method\" && t.descriptor && !(\"value\" in t.descriptor) ? zt(st({}, t), { finisher(e) {\n e.createProperty(t.key, n);\n} }) : { kind: \"field\", key: Symbol(), placement: \"own\", descriptor: {}, originalKey: t.key, initializer() {\n typeof t.initializer == \"function\" && (this[t.key] = t.initializer.call(this));\n}, finisher(e) {\n e.createProperty(t.key, n);\n} }, Eo = (n, t, e) => {\n t.constructor.createProperty(e, n);\n};\nfunction Hr(n) {\n return (t, e) => e !== void 0 ? Eo(n, t, e) : $o(n, t);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction nn(n) {\n return Hr(zt(st({}, n), { state: !0 }));\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar He;\n((He = window.HTMLSlotElement) === null || He === void 0 ? void 0 : He.prototype.assignedElements) != null;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst Oo = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }, Ao = (n) => (...t) => ({ _$litDirective$: n, values: t });\nclass xo {\n constructor(t) {\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AT(t, e, r) {\n this._$Ct = t, this._$AM = e, this._$Ci = r;\n }\n _$AS(t, e) {\n return this.update(t, e);\n }\n update(t, e) {\n return this.render(...e);\n }\n}\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst _o = Ao(class extends xo {\n constructor(n) {\n var t;\n if (super(n), n.type !== Oo.ATTRIBUTE || n.name !== \"class\" || ((t = n.strings) === null || t === void 0 ? void 0 : t.length) > 2)\n throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\");\n }\n render(n) {\n return \" \" + Object.keys(n).filter((t) => n[t]).join(\" \") + \" \";\n }\n update(n, [t]) {\n var e, r;\n if (this.it === void 0) {\n this.it = /* @__PURE__ */ new Set(), n.strings !== void 0 && (this.nt = new Set(n.strings.join(\" \").split(/\\s/).filter((i) => i !== \"\")));\n for (const i in t)\n t[i] && !(!((e = this.nt) === null || e === void 0) && e.has(i)) && this.it.add(i);\n return this.render(t);\n }\n const s = n.element.classList;\n this.it.forEach((i) => {\n i in t || (s.remove(i), this.it.delete(i));\n });\n for (const i in t) {\n const o = !!t[i];\n o === this.it.has(i) || !((r = this.nt) === null || r === void 0) && r.has(i) || (o ? (s.add(i), this.it.add(i)) : (s.remove(i), this.it.delete(i)));\n }\n return wt;\n }\n});\nvar So = Object.defineProperty, Po = Object.getOwnPropertyDescriptor, $e = (n, t, e, r) => {\n for (var s = r > 1 ? void 0 : r ? Po(t, e) : t, i = n.length - 1, o; i >= 0; i--)\n (o = n[i]) && (s = (r ? o(t, e, s) : o(s)) || s);\n return r && s && So(t, e, s), s;\n};\nclass lt extends jt {\n constructor() {\n super(...arguments), this.active = !1, this.loaded = !1;\n }\n connectedCallback() {\n return z(this, null, function* () {\n cn(lt.prototype, this, \"connectedCallback\").call(this), this.icon = yield this._renderSymbol(this.symbol), this.loaded = !0;\n });\n }\n _toggleActive() {\n this.active = !this.active;\n }\n _renderSymbol(t) {\n return z(this, null, function* () {\n const e = (r) => z(this, null, function* () {\n return yield import(\"./index-9688347a.js\").then((i) => i[r]);\n });\n if (t) {\n const { type: r, content: s } = t;\n switch (r) {\n case \"Telia\": {\n const i = yield e(s);\n return i ? Kt`<telia-icon\n class=\"trigger-icon\"\n svg=${i.svg}\n size=\"lg\"\n ></telia-icon>` : T;\n }\n case \"FontAwesome\":\n return Kt`<i class=\"trigger-fa-icon fa fa-${s}\"></i>`;\n case \"Uri\":\n return Kt`<i\n class=\"trigger-custom-icon\"\n style=\"background: url(${s}) no-repeat center center;background-size: contain;\"\n ></i>`;\n default:\n return T;\n }\n }\n });\n }\n render() {\n return Kt`<button\n class=${_o({\n trigger: !0,\n active: this.active,\n rendered: this.loaded\n })}\n @click=${this._toggleActive}\n >\n ${this.icon}\n <span class=\"trigger-close\">\n <svg\n width=\"18\"\n height=\"9\"\n viewBox=\"0 0 18 9\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 9C8.81794 9.00045 8.63759 8.96634 8.46939 8.89965C8.3012 8.83295 8.14851 8.735 8.02015 8.61145L0.194523 1.12367C0.068294 0.99862 -0.00155266 0.831133 2.61958e-05 0.657285C0.00160506 0.483436 0.0744832 0.317136 0.202964 0.194202C0.331445 0.0712675 0.505249 0.00153576 0.686941 2.50649e-05C0.868634 -0.00148563 1.04368 0.0653456 1.17437 0.186125L9 7.6739L16.8256 0.186125C16.9563 0.0653456 17.1314 -0.00148563 17.3131 2.50649e-05C17.4948 0.00153576 17.6686 0.0712675 17.797 0.194202C17.9255 0.317136 17.9984 0.483436 18 0.657285C18.0016 0.831133 17.9317 0.99862 17.8055 1.12367L9.97985 8.61145C9.85149 8.735 9.6988 8.83295 9.53061 8.89965C9.36241 8.96634 9.18206 9.00045 9 9Z\"\n fill=\"white\"\n />\n </svg>\n </span>\n <span class=\"trigger-loader\">\n <svg viewBox=\"25 25 50 50\">\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n </svg>\n </span>\n </button>`;\n }\n}\nlt.styles = [\n oo`\n :host {\n --voca-rem-multiplier: 0.625;\n display: block;\n box-sizing: border-box;\n }\n\n .trigger {\n position: fixed;\n transform: scale(0);\n box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;\n bottom: 20px;\n right: 20px;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n line-height: 55px;\n height: 55px;\n width: 55px;\n border-radius: 55px;\n cursor: pointer;\n background-color: #990ae3;\n font-family: Lato;\n text-decoration: none;\n border: 3px dashed transparent;\n box-sizing: border-box;\n transition: transform 200ms ease-out;\n }\n .trigger:hover {\n transform: scale(1.1) !important;\n }\n .trigger.rendered {\n transform: scale(1);\n }\n .trigger.active .trigger-icon {\n opacity: 0;\n transform: rotate(-180deg) scale(0);\n }\n .trigger.active .trigger-close {\n opacity: 1;\n transform: rotate(0deg) scale(1);\n }\n\n .trigger-icon {\n display: inline-block;\n line-height: inherit;\n text-align: center;\n opacity: 1;\n transform: rotate(0deg) scale(1);\n transition:\n opacity 200ms ease-out,\n transform 200ms ease-out;\n color: #ffffff;\n }\n .trigger-close {\n opacity: 0;\n transition: transform 200ms ease-out;\n transform: rotate(180deg) scale(0);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n fill: #ffffff;\n }\n `\n];\n$e([\n Hr({ attribute: !1 })\n], lt.prototype, \"symbol\", 2);\n$e([\n nn()\n], lt.prototype, \"active\", 2);\n$e([\n nn()\n], lt.prototype, \"loaded\", 2);\n$e([\n nn()\n], lt.prototype, \"icon\", 2);\nvar vt = /* @__PURE__ */ ((n) => (n.Inline = \"inline\", n.Link = \"link\", n.Badge = \"badge\", n.Unsupported = \"unsupported\", n))(vt || {});\nconst Co = (n, t) => n && t ? \"both\" : n ? \"widgetDOM\" : t ? \"triggerDOM\" : \"none\", Ur = (n) => n ? typeof n == \"boolean\" && n ? \"link\" : typeof n == \"object\" && !Array.isArray(n) ? \"badge\" : \"unsupported\" : \"inline\", ko = (n, t, e, r, s = !1) => z(void 0, null, function* () {\n var h, l;\n const i = Co(\n t,\n e\n ), o = Ur(r), a = {\n widgetDOMElement: t ? t.cloneNode(!0) : void 0,\n triggerDOMElement: e ? e.cloneNode(!0) : void 0\n }, c = {\n triggerType: o,\n cachedOriginals: a,\n widgetDOMElement: document.createElement(\"div\")\n };\n switch (i) {\n case \"both\": {\n c.widgetDOMElement = t || document.createElement(\"div\"), o !== \"inline\" && (c.triggerDOMElement = e);\n break;\n }\n case \"widgetDOM\": {\n if (c.widgetDOMElement = t || document.createElement(\"div\"), o !== \"inline\") {\n const u = document.body.appendChild(\n document.createElement(\"a\")\n );\n o === \"link\" && (u.innerText = n), c.triggerDOMElement = u;\n }\n break;\n }\n case \"triggerDOM\": {\n const u = document.createElement(\"div\");\n c.widgetDOMElement = u, o === \"inline\" ? (u.id = (e == null ? void 0 : e.id) || \"\", s ? (u.style.display = \"none\", (h = e == null ? void 0 : e.parentNode) == null || h.appendChild(u), c.callback = () => {\n var d;\n (d = e == null ? void 0 : e.parentNode) == null || d.replaceChild(\n u,\n e\n ), u.style.display = (e == null ? void 0 : e.style.display) || \"block\";\n }) : (l = e == null ? void 0 : e.parentNode) == null || l.replaceChild(\n u,\n e\n ), c.cachedOriginals.widgetDOMElement = e, c.cachedOriginals.triggerDOMElement = void 0) : (c.widgetDOMElement = document.body.appendChild(u), c.triggerDOMElement = e);\n break;\n }\n case \"none\": {\n const u = document.body.appendChild(\n document.createElement(\"div\")\n );\n if (c.widgetDOMElement = u, o !== \"inline\") {\n customElements.get(\"ace-widget-trigger\") || customElements.define(\"ace-widget-trigger\", lt);\n const d = document.createElement(\"ace-widget-trigger\");\n d.symbol = r.symbol, document.body.appendChild(d), console.log(\"Created trigger\"), c.triggerDOMElement = d;\n }\n break;\n }\n }\n return c;\n}), No = \"modals\";\nclass Mo {\n constructor(t, e) {\n this.options = e, this.unsubscribe = [], this.container = t.createChild(this), this.container.register(\"widgetDOMElement\", this.options.widgetDOMElement), this.container.register(\n \"triggerDOMElement\",\n this.options.triggerDOMElement\n );\n const r = this.container.get(\"$widget\");\n this.options.widgetDOMElement.classList.add(\"ace-widget\"), this.options.widgetDOMElement.classList.add(`ace-widget_${r.name}`);\n const s = t.get(\"widgetDOMElements\") || [];\n t.register(\"widgetDOMElements\", [\n ...s,\n this.options.widgetDOMElement\n ]);\n }\n /**\n * Renders the view outlet to the DOM.\n */\n render() {\n const { widgetDOMElement: t, triggerDOMElement: e } = this.options, r = this.container.get(\"$widget\");\n return t.getAttribute(\"data-rendered\") === \"true\" ? Promise.resolve() : (e && this.options.triggerType === vt.Badge && so(e), import(\"./render-fd368868.js\").then((s) => s.default(this.container, t)).then(() => {\n if (t.setAttribute(\"data-rendered\", \"true\"), e && this.options.triggerType === vt.Badge) {\n const i = this.options.triggerOptions.openTooltip;\n Mr(e, i);\n }\n os(this.container, t);\n const s = this.container.get(\"$environment\").widgets.all();\n Y(\n this.container,\n No,\n S.Session\n ).then((i) => {\n i && i.forEach((o) => {\n s.find(\n (a) => a.name === o.name && a.state === \"activated\"\n ) && r.events.dispatch(\"widget:modal-opened\", o);\n });\n });\n }));\n }\n renderBadge(t) {\n const { triggerDOMElement: e } = this.options;\n if (!e)\n return;\n e.getAttribute(\"role\") || e.setAttribute(\"role\", \"button\");\n const { name: r } = this.container.get(\"$widget\"), { label: s, symbol: i, ariaLabel: o, closedTooltip: a, openTooltip: c } = t, h = { closedTooltip: a, openTooltip: c };\n this.options.triggerOptions = h;\n const l = no(e, {\n label: s,\n symbol: i,\n ariaLabel: o,\n widgetName: r,\n tooltip: a\n });\n this.unsubscribe.push(l);\n }\n dispose() {\n return z(this, null, function* () {\n var r, s, i, o;\n const { triggerDOMElement: t, widgetDOMElement: e } = this.options;\n this.options.cachedOriginals.widgetDOMElement && e && ((r = e.parentNode) == null || r.replaceChild(\n this.options.cachedOriginals.widgetDOMElement,\n e\n )), this.options.cachedOriginals.triggerDOMElement && t && ((s = t.parentNode) == null || s.replaceChild(\n this.options.cachedOriginals.triggerDOMElement,\n t\n )), this.unsubscribe.forEach((a) => {\n a();\n }), (i = e.parentNode) == null || i.removeChild(e), (o = t == null ? void 0 : t.parentNode) == null || o.removeChild(t);\n });\n }\n}\nconst Gt = \"changesets\", Lo = (n) => {\n const t = { tags: n.tags };\n return n.context && typeof n.context != \"function\" && (t.context = n.context), n.properties && typeof n.properties != \"function\" && (t.properties = n.properties), n.layout && typeof n.layout != \"function\" && (t.layout = n.layout), t;\n};\nclass rn {\n constructor(t, e) {\n this.container = t, this.storageWriter = e;\n }\n static create(t) {\n return et(\n t,\n Gt,\n P.Necessary,\n {\n medium: S.Local\n }\n ).then(\n (e) => new rn(t, e)\n );\n }\n write(t, e, r, s) {\n return Q(this)(() => Y(\n this.container,\n Gt,\n S.Local\n ).then((i = {}) => {\n const { keys: o = [], items: a = {} } = i, c = o.indexOf(t);\n return c > -1 && o.splice(c, 1), o.push(t), a[t] = {\n options: s,\n attributes: Lo(r),\n rules: e.rules\n }, this.storageWriter({ keys: o, items: a });\n }));\n }\n remove(t) {\n return Q(this)(() => Y(\n this.container,\n Gt,\n S.Local\n ).then((e = {}) => {\n const { keys: r = [], items: s = {} } = e, i = r.indexOf(t);\n if (i > -1)\n return r.splice(i, 1), delete s[t], this.storageWriter(e);\n }));\n }\n load(t) {\n return Q(this)(() => Y(\n this.container,\n Gt,\n S.Local\n ).then((e = {}) => {\n const { keys: r = [], items: s = {} } = e;\n r.forEach((i) => {\n const o = s[i];\n if (o) {\n const { rules: a, attributes: c, options: h } = o;\n t.write({\n attributes: c,\n options: h,\n target: new Pt(t, a)\n });\n }\n });\n }));\n }\n}\nconst Do = (n) => {\n const { container: t } = n;\n return rn.create(t).then(\n (e) => {\n const r = t.get(\"$settings\"), s = { localStorage: e }, i = new me(n, s), o = rr(i, r);\n return n.events.subscribe(\n \"widget:state-change\",\n (a, c) => {\n c.state === Qn.Deactivating && o();\n }\n ), i;\n }\n );\n}, To = (n) => Promise.resolve().then(() => Gi).then(\n ({ RoutingService: t, HistoryMode: e }) => n.get(\"settings\").then((r) => {\n const {\n routing: {\n initialPath: s = \"/\",\n mode: i = e.scopedHash,\n basePath: o\n },\n views: a\n } = r;\n return new t(n, {\n initialPath: s,\n mode: i,\n routes: Object.keys(a).map((h) => ({\n name: h,\n path: a[h].path\n })),\n basePath: o\n });\n })\n), jo = (n) => Promise.resolve().then(() => ai).then(({ StorageProvider: t }) => new t()), Ro = (n) => Promise.resolve().then(() => Ge).then(({ ActionResolver: t }) => new t(n)), Io = (n) => Promise.resolve().then(() => Ge).then(({ ComponentResolver: t }) => new t(n)), Ho = (n) => Promise.resolve().then(() => Ge).then(() => Do(n.get(\"$widget\"))), Ue = \"$settings\", Yt = \"open\", Gn = \"activeStickyWidget\";\nclass la extends Zr {\n constructor(t) {\n super(t), this.outlets = /* @__PURE__ */ new Map(), this.activated = void 0, this.subs = [], this.handleBootstrapping = (e) => {\n const r = {\n triggerDOMElement: e.sourceDOMElement,\n withRenderState: \"storage\"\n /* Storage */\n };\n this.container.get(\"settings\").then((s) => {\n const { activate: i } = s;\n (typeof i == \"undefined\" || i === null || i === !0) && (this.activated = (this.activated || this.widget.activate()).then(\n () => this.attach(r)\n ));\n });\n }, this.container.registerAsync(\n \"storage\",\n () => jo(this.container)\n ), this.container.registerFactory(\"settings\", () => Y(\n this.container,\n Ue,\n S.Local\n ).then((e = {}) => st(st({}, this.container.get(\"$settings\")), e))), to(this, \"load\", this.handleBootstrapping), this.container.registerAsync(\n \"componentResolver\",\n () => Io(this.container)\n ), this.container.registerAsync(\n \"router\",\n () => To(this.container)\n ), this.container.registerAsync(\n \"actionResolver\",\n () => Ro(this.container)\n ), this.container.register(\"matchMedia\", window.matchMedia), this.container.registerAsync(\n \"components\",\n () => Ho(this.container)\n );\n }\n initialize() {\n const t = this.container.getManyAsync(\n \"actionResolver\",\n \"router\",\n \"components\"\n ), e = this.container.get(\"csp\");\n return e && (window.webprovisionsEnvironmentVariables || (window.webprovisionsEnvironmentVariables = {}), window.webprovisionsEnvironmentVariables.cspNonce = e.nonce), Promise.all([t, this.container.get(\"settings\")]).then(\n ([{ actionResolver: r, router: s, components: i }, o]) => {\n var h;\n r.subscribe(\n this.widget.name,\n (l, u, d) => this.onAction(u, d)\n );\n const a = (l) => {\n i.nodes.query({ type: \"view\" }).forEach((u) => {\n i.setSwitch(u, l);\n });\n }, c = ((h = s.getInitialRoute()) == null ? void 0 : h.name) || \"index\";\n return a(c), this.events.subscribe(\"widget:data-loaded\", (l, { element: u }) => {\n this.widget.container.get(\"seoConfiguration\") && this.events.dispatch(\"widget:preloaded-replaced\", {\n element: u\n });\n }), this.events.subscribe(\n \"router:change\",\n (l, { previous: u = { routeData: {} }, next: d = { routeData: {} } }) => {\n const { routeData: p } = u, { routeData: b } = d, v = Object.keys(o.views).reduce(\n (g, O) => typeof o.views[O].path == \"undefined\" ? O : g,\n \"\"\n );\n !b.name && v ? a(v) : a(b.name), yt(p && p.params), yt(b && b.params), this.container.getAsync(\"actionResolver\").then((g) => {\n g.action(this.widget.name, \"routeChange\", {\n next: b,\n previous: p\n });\n });\n }\n ), s.initialize();\n }\n );\n }\n attach(t = {}) {\n return this.container.get(\"settings\").then((r) => z(this, [r], function* ({ trigger: e }) {\n var p, b;\n const {\n widgetDOMElement: s,\n key: i = Bt(),\n triggerDOMElement: o,\n withRenderState: a\n } = t, h = Ur(e) === vt.Inline && ((o == null ? void 0 : o.childElementCount) || 0) > 0, l = yield ko(\n this.widget.name,\n s,\n o,\n e,\n h\n );\n this.outlets.size < 1 && !a && this.setRenderState(\"unset\");\n const u = () => {\n const v = () => g.querySelectorAll(\"[data-loading=true]\").length === 0, [g] = this.widget.container.get(\"widgetDOMElements\"), O = (H, k) => {\n v() && (l.callback && l.callback(), k.disconnect());\n }, j = {\n attributes: !0,\n subtree: !0,\n childList: !0\n };\n v() && l.callback && l.callback(), new MutationObserver(O).observe(g, j);\n };\n h && this.widget.container.getAsync(\"dataClient\").then(({ events: v }) => {\n v.subscribe(\n \"data-client:fetched\",\n (g, O) => {\n O.unresolvedQueries === 0 && u();\n }\n );\n });\n const d = this.getOrCreateViewOutlet(i, l);\n if (this.outlets.set(i, d), this.widget.events.dispatch(\"widget:attached\", {}, { bubbles: !0 }), l.triggerType === vt.Badge && e && ((p = l.triggerDOMElement) == null || p.setAttribute(\n \"aria-expanded\",\n \"false\"\n ), d == null || d.renderBadge(e)), l.triggerType !== vt.Inline && ((b = l.triggerDOMElement) == null || b.addEventListener(\n \"click\",\n (v) => {\n v.preventDefault(), this.container.get(\"settings\").then(({ trigger: g }) => {\n d.render().then(() => this.renderState()).then((O) => g && g.action && g.action === \"hide\" ? O === q.open ? this.hide() : this.open() : O === q.open ? this.close() : this.open());\n });\n }\n )), this.outlets.size > 1)\n return this.renderState().then((v) => {\n this.triggerStateIfApplicable(v);\n });\n if (a)\n return a === \"storage\" ? this.renderState().then((v) => {\n if (l.triggerType === vt.Inline) {\n this.triggerStateIfApplicable(\"open\");\n return;\n }\n this.triggerStateIfApplicable(v);\n }) : this.triggerStateIfApplicable(a);\n }));\n }\n detach(t) {\n if (t) {\n if (this.outlets.has(t)) {\n const e = this.outlets.get(t);\n e == null || e.dispose(), this.outlets.delete(t);\n return;\n }\n process.env.NODE_ENV !== \"production\" && console.warn(`detach(): Could not find View Outlet with key ${t}`);\n return;\n }\n this.outlets.forEach((e) => {\n e.dispose();\n }), this.outlets.clear();\n }\n triggerStateIfApplicable(t) {\n return this.container.getAsync(\"router\").then((e) => {\n switch (t) {\n case \"closed\":\n this.close();\n break;\n case \"open\":\n this.open();\n break;\n case \"hidden\":\n this.hide(), e.start();\n break;\n default:\n return;\n }\n });\n }\n getOrCreateViewOutlet(t, e) {\n return this.outlets.has(t) ? this.outlets.get(t) : new Mo(this.container, e);\n }\n render(t = {}) {\n if (process.env.NODE_ENV !== \"production\" && console.warn(\n \"widget.render() is deprecated. Use widget.attach() instead.\"\n ), t.open) {\n const e = zt(st({}, t), {\n withRenderState: \"open\"\n /* Open */\n });\n return this.attach(e);\n }\n return this.attach(t);\n }\n activate(t) {\n t != null && t.override && this.setSettings(() => t.override), t != null && t.apiNotificationPriorityBy && this.container.register(\n \"apiNotificationPriorityBy\",\n t.apiNotificationPriorityBy\n );\n }\n setSettings(t) {\n return Promise.all([\n this.container.get(\"settings\"),\n et(\n this.container,\n Ue,\n P.Necessary,\n {\n medium: S.Local\n }\n )\n ]).then(([e, r]) => Promise.resolve(t(e)).then((s) => r(s).then(() => {\n const i = st(st({}, e), s);\n return this.widget.events.dispatch(\"widget:settings-updated\", i), i;\n })));\n }\n clearSettings() {\n return et(\n this.container,\n Ue,\n P.Necessary,\n { medium: S.Local }\n ).then((t) => t()).then(() => this.container.get(\"settings\")).then((t) => {\n this.widget.events.dispatch(\"widget:settings-updated\", t);\n });\n }\n action({ action: t, value: e }) {\n return this.container.getAsync(\"actionResolver\").then((r) => {\n r.action(this.widget.name, t, e);\n });\n }\n renderState() {\n if (Xe(this.container))\n return Promise.resolve(q.open);\n const t = () => Y(\n this.container,\n Yt,\n S.Session\n ).then((r = q.closed) => r), e = () => Y(\n this.container,\n Yt,\n S.Session\n ).then((r = q.closed) => r);\n return this.container.getAsync(\"router\").then((r) => r.isSticky() ? e().then((s) => s === q.open ? s : t()) : t());\n }\n hide() {\n return this.outlets.size < 1 ? (process.env.NODE_ENV !== \"production\" && console.warn(\n \"hide(): No-op as no view outlets are registered. Invoke the attach() command first.\"\n ), Promise.resolve()) : (this.outlets.forEach((t) => t.render()), this.action({ action: \"hide\" }).then(() => {\n this.setTriggerState(!1);\n }));\n }\n open() {\n return this.outlets.size < 1 ? (process.env.NODE_ENV !== \"production\" && console.warn(\n \"open(): No-op as no view outlets are registered. Invoke the attach() command first.\"\n ), Promise.resolve()) : (this.outlets.forEach((t) => t.render()), this.action({ action: \"open\" }).then(() => (this.widget.events.dispatch(\"tracking:widget-rendered\", {}), this.onOpen())));\n }\n close() {\n return this.outlets.size < 1 ? (process.env.NODE_ENV !== \"production\" && console.warn(\n \"close(): No-op as no view outlets are registered. Invoke the attach() command first.\"\n ), Promise.resolve()) : this.action({ action: \"close\" }).then(() => this.onClose());\n }\n show() {\n return process.env.NODE_ENV !== \"production\" && console.warn(\n \"show(): Command is deprecated and will be removed in the future. Use open() instead.\"\n ), this.open();\n }\n onAction(t, e) {\n switch (t) {\n case \"close\":\n case \"open\":\n case \"hide\":\n const r = t === \"open\" ? q.open : t === \"close\" ? q.closed : q.hidden;\n return this.setRenderState(r).then(() => {\n this.setTriggerState(r === q.open), r !== q.hidden ? r === q.open ? this.onOpen() : this.onClose() : this.outlets.forEach(\n (s) => {\n var i;\n return (i = s.options.triggerDOMElement) == null ? void 0 : i.setAttribute(\n \"aria-expanded\",\n \"false\"\n );\n }\n );\n });\n }\n }\n setRenderState(t) {\n const { invoke: e, events: r } = this.container.get(\"$widget\");\n return Promise.all([\n et(\n this.container,\n Yt,\n P.Necessary,\n {\n medium: S.Session\n }\n ),\n et(\n this.container,\n Yt,\n P.Necessary,\n {\n medium: S.Local,\n duration: { minutes: 5 }\n }\n ),\n this.container.getAsync(\"router\"),\n e(\"renderState\")\n ]).then(\n ([s, i, o, a]) => {\n t === \"unset\" || !t ? (i(), s()) : (o.isSticky() && i(t), s(t)), r.dispatch(\"widget:render-state-changed\", {\n previous: a,\n next: t\n });\n }\n );\n }\n onOpen() {\n return this.container.getAsync(\"router\").then((t) => (this.outlets.forEach(\n (e) => {\n var r;\n return (r = e.options.triggerDOMElement) == null ? void 0 : r.setAttribute(\n \"aria-expanded\",\n \"true\"\n );\n }\n ), t.start()));\n }\n onClose() {\n const t = this.container.getManyAsync(\n \"router\",\n \"components\"\n );\n return (() => this.container.get(\"settings\").then((r) => {\n const { activate: s } = this.container.get(\"$settings\");\n return r.activate !== s ? this.setSettings(() => Promise.resolve({ activate: s })) : Promise.resolve();\n }))().then(() => t).then(\n ({\n router: r,\n components: s\n }) => {\n const i = s.nodes.visible;\n return this.outlets.forEach(\n (o) => {\n var a;\n return (a = o.options.triggerDOMElement) == null ? void 0 : a.setAttribute(\n \"aria-expanded\",\n \"false\"\n );\n }\n ), i.filter(\n (o) => o.attributes.properties.animation && o.attributes.properties.animation !== \"none\"\n ).length ? new Promise((o) => {\n setTimeout(() => {\n o(r);\n }, 200);\n }) : Promise.resolve(r);\n }\n ).then((r) => r.stop());\n }\n setTriggerState(t) {\n this.outlets.forEach((e) => {\n const {\n options: { triggerDOMElement: r, triggerOptions: s }\n } = e, { openTooltip: i, closedTooltip: o } = s || {};\n r && (t ? Mr(r, i) : ro(r, o));\n });\n }\n deactivate() {\n this.subs.forEach((e) => e());\n const t = [];\n return this.outlets.forEach((e) => t.push(e.dispose())), Y(\n this.container,\n Gn,\n S.Local\n ).then((e) => e === this.widget.name ? et(\n this.container,\n Gn,\n P.Necessary,\n {\n medium: S.Local,\n scope: Ct.Implementation\n }\n ).then((r) => r()).then(() => Promise.all(t)) : Promise.all(t));\n }\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet Uo = class extends Event {\n constructor(t, e, r) {\n super(\"context-request\", { bubbles: !0, composed: !0 }), this.context = t, this.callback = e, this.subscribe = r != null && r;\n }\n};\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass Yn {\n constructor(t, e, r, s) {\n var i;\n if (this.subscribe = !1, this.provided = !1, this.value = void 0, this.t = (o, a) => {\n this.unsubscribe && (this.unsubscribe !== a && (this.provided = !1, this.unsubscribe()), this.subscribe || this.unsubscribe()), this.value = o, this.host.requestUpdate(), this.provided && !this.subscribe || (this.provided = !0, this.callback && this.callback(o, a)), this.unsubscribe = a;\n }, this.host = t, e.context !== void 0) {\n const o = e;\n this.context = o.context, this.callback = o.callback, this.subscribe = (i = o.subscribe) !== null && i !== void 0 && i;\n } else\n this.context = e, this.callback = r, this.subscribe = s != null && s;\n this.host.addController(this);\n }\n hostConnected() {\n this.dispatchRequest();\n }\n hostDisconnected() {\n this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0);\n }\n dispatchRequest() {\n this.host.dispatchEvent(new Uo(this.context, this.t, this.subscribe));\n }\n}\nconst da = \"children\", Bo = \"descriptor\", Vo = \"container\", pa = \"context\", ga = \"layout\", fa = \"properties\";\nclass ma {\n constructor(t) {\n (this.host = t).addController(this), new Yn(\n t,\n Vo,\n (e) => {\n this._container = e, this.host.requestUpdate();\n },\n !0\n ), new Yn(\n t,\n Bo,\n (e) => {\n this._descriptor = e, this.host.requestUpdate();\n },\n !0\n );\n }\n hostConnected() {\n }\n hostDisconnected() {\n }\n dispatch(t, e) {\n return z(this, null, function* () {\n if (!this._container || !this._descriptor)\n return;\n const r = yield me.getInstance(\n this._container\n ), s = new Pt(r).withId(\n this._descriptor.id\n );\n yield r.actions(\n s,\n this._descriptor.type || Bt()\n ).dispatch(t, e);\n });\n }\n}\nconst zo = (n, t) => z(void 0, null, function* () {\n const e = n.properties().provider;\n let r = {}, s = \"\";\n Array.isArray(e) ? (s = e[0], r = e[1]) : s = e || \"\";\n const i = yield t.getAsync(s);\n if (!i)\n throw new Error(\"No provider defined in ListComponent\");\n return i.applyComponentNodeSettings(n.node.id, r), { provider: i, settings: r };\n}), va = (n, t) => z(void 0, null, function* () {\n const { provider: e, settings: r = {} } = yield zo(n, t);\n return {\n addResource: (s, i) => e.addResource(s, i),\n getData: (s, i) => e.getData(s, i, r)\n };\n});\nclass Wo {\n constructor(t) {\n this.container = t, this.resources = /* @__PURE__ */ new Map(), this.nodeConfiguration = /* @__PURE__ */ new Map();\n }\n getData(t, e, r) {\n return z(this, null, function* () {\n const s = this.resources.get(t);\n if (!s)\n throw new Error(`Unable to get EntityProvider for \"${t}\"`);\n return yield s.query(e, r);\n });\n }\n addResource(t, e) {\n this.resources.set(t, e);\n }\n applyComponentNodeSettings(t, e) {\n this.nodeConfiguration.set(t, e);\n }\n}\nconst Zn = (n) => ({\n title: n.Title,\n id: n.Id.toString()\n});\nclass Fo extends Wo {\n constructor(t) {\n super(t), this.addResource(\"item\", {\n query: (e, r) => z(this, null, function* () {\n const s = e.itemId, i = \"78aacc09-ae6f-5485-5ca3-9dacebb95825\", o = t.get(\"$widget\").name, a = r.projection || \"\", h = yield (yield fetch(\n `${a}/guides/${s}?client=${i}&funnel=${o}&site=%2F%2Fdemo.humany.cc%2Fadmin%2Finterfaces&phrase=&connectionId=&p.LastGuideId=2857`\n )).json();\n return h ? Zn(h) : null;\n })\n }), this.addResource(\"items\", {\n query: (e, r) => z(this, null, function* () {\n const s = \"\", i = t.get(\"$widget\").name, o = r.projection || \"\", u = yield (yield fetch(\n `${o}/guides?client=${s}&funnel=${i}&site=&phrase=&skip=0&take=10&sorting.type=popularity&sorting.direction=descending`\n )).json();\n return {\n items: (u.Matches || []).map((d) => Zn(d)),\n totalItems: (u == null ? void 0 : u.TotalMatches) || 0\n };\n })\n });\n }\n}\nconst ya = (n) => z(void 0, null, function* () {\n n.registerAsync(\"guideProvider\", () => new Fo(n));\n}), ba = (n, t, e, r, s) => n.getAsync(\"componentResolver\").then((i) => (i.registerComponent(t, e), sr(n, t, r || (() => {\n}), t, s)));\nexport {\n T as A,\n Wo as D,\n xs as E,\n ya as G,\n la as W,\n Yn as a,\n jt as b,\n Vo as c,\n oo as d,\n Ao as e,\n nn as f,\n Bo as g,\n da as h,\n xo as i,\n fa as j,\n pa as k,\n ga as l,\n q as m,\n Hr as n,\n ma as o,\n me as p,\n va as q,\n ba as r,\n Uo as s,\n Oo as t,\n Kt as x\n};\n//# sourceMappingURL=index-e248f756.js.map\n","import { Container } from '@webprovisions/platform';\r\n\r\nimport {\r\n ConversationMessageContent,\r\n ConversationMessageSender,\r\n} from '../../types';\r\nimport {\r\n ConversationMessage,\r\n ConversationMessageType,\r\n} from '../../conversation-controller';\r\nimport { ConversationPlatform } from '../../conversation-platform';\r\nimport { createWebComponent } from '@telia-ace/widget-runtime-flamingo';\r\n\r\nexport type BundledConversationMessage = {\r\n timestamp: number;\r\n content: [BundledMessageContent];\r\n sender: ConversationMessageSender;\r\n type: ConversationMessageType;\r\n};\r\n\r\ntype BundledMessageContent = {\r\n key: string;\r\n} & ConversationMessageContent;\r\n\r\nexport type ConversationContent = {\r\n loading: boolean;\r\n typingActors: ConversationMessageSender[];\r\n messages: ConversationMessage[];\r\n};\r\n\r\n/**\r\n * Group items by sender, type and time. Current grouping threshold is 2000 ms.\r\n * Put this as a property on either the component or on the provider?\r\n * Could possibly be implemented directly in the createEntry method\r\n * of the conversation controller to avoid iterating over the entire array on\r\n * each update.\r\n */\r\nconst groupedMessages = (\r\n messages: ConversationMessage[],\r\n timeout?: number\r\n): BundledConversationMessage[] => {\r\n return messages.reduce((acc: any[], current: any, _index: number) => {\r\n const newItem = {\r\n ...current,\r\n content: [{ ...current.content, key: current.key }],\r\n };\r\n if (acc.length > 0 && current.type !== ConversationMessageType.System) {\r\n const previous = acc[acc.length - 1];\r\n if (\r\n (!timeout && timeout !== 0) ||\r\n Math.abs(previous.timestamp - current.timestamp) < timeout\r\n ) {\r\n if (\r\n previous.sender?.name === current.sender?.name &&\r\n previous.type === current.type\r\n ) {\r\n previous.timestamp = current.timestamp;\r\n previous.content.push({ ...current.content, key: current.key });\r\n return acc;\r\n }\r\n }\r\n }\r\n acc.push(newItem);\r\n return acc;\r\n }, []);\r\n};\r\n\r\nexport type ConversationComponentProperties = {\r\n providers: string[];\r\n messages: BundledConversationMessage[]; // internal\r\n overlay?: { conversation: boolean; secondary: boolean }; // internal\r\n overlayConversationHeader?: string;\r\n overlayConversationCloseLabel?: string;\r\n loading: boolean;\r\n inputPlaceholder: string;\r\n inputDisabled: boolean;\r\n inputHidden: boolean;\r\n inputMultiline: boolean;\r\n rehydrate?: boolean;\r\n userLabel: string;\r\n avatarSize: string;\r\n typingActors: any[]; // internal\r\n conversationControllerId?: string; // internal\r\n sendButtonLabel: string;\r\n secondaryAction?: { icon?: string; action: string; label: string };\r\n};\r\n\r\nexport const ConversationComponent = async (container: Container) => {\r\n const router = await container.getAsync('router');\r\n const platform = await ConversationPlatform.getInstance(container);\r\n\r\n return createWebComponent(\r\n container,\r\n 'conversation',\r\n import('./conversation'),\r\n async (component) => {\r\n const { rehydrate = false } =\r\n component.properties<ConversationComponentProperties>();\r\n const routeData = router.getRouteData();\r\n const name = routeData.params.id || component.node.name || 'component';\r\n const conversation = await platform.createController(name, { rehydrate });\r\n const isNewController = platform.registerController(\r\n conversation,\r\n component\r\n );\r\n\r\n const messageGroupingTimeout = 3 * 60 * 1000;\r\n\r\n const setProperties = (properties: ConversationComponentProperties) => {\r\n const { providers = [] } = properties;\r\n if (providers) {\r\n const providerKeys = Array.isArray(providers)\r\n ? providers\r\n : [providers];\r\n conversation.setProviders(providerKeys);\r\n return providerKeys;\r\n }\r\n };\r\n setProperties(\r\n component.properties<ConversationComponentProperties>(setProperties)\r\n );\r\n\r\n conversation.setComponentMountedState(true);\r\n\r\n const writeMessages = (messageStream: any) => {\r\n const { loading, typingActors, messages } = messageStream;\r\n component.writeProperties({\r\n loading,\r\n typingActors,\r\n messages: groupedMessages(messages, messageGroupingTimeout),\r\n });\r\n };\r\n\r\n writeMessages(conversation.getMessageStream());\r\n\r\n if (isNewController) {\r\n component.writeProperties({\r\n conversationControllerId: conversation.id,\r\n });\r\n // todo: dont create actions here, there will be duplicates due to reuseController = true\r\n component.actions.create('user-submit', (data, options) => {\r\n if (options) {\r\n const { preventDefault, validationPromise } = options;\r\n if (preventDefault) {\r\n if (validationPromise) {\r\n validationPromise().then((text: string) => {\r\n if (text) {\r\n conversation.user.print(text);\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n }\r\n conversation.user.print(data.text);\r\n });\r\n\r\n component.actions.create('user-typing', (_data, _options) => {});\r\n\r\n component.actions.create('form', (_data, _options) => {});\r\n\r\n component.actions.create('action', (_data, _options) => {});\r\n\r\n component.actions.create('overlay-mounted', (_data, _options) => {});\r\n\r\n component.actions.create('show-overlay', (_data, _options) => {\r\n component.writeProperties({\r\n overlay: { conversation: false, secondary: false },\r\n });\r\n });\r\n\r\n component.actions.create('hide-overlay', (_data, _options) => {\r\n component.writeProperties({\r\n overlay: null,\r\n });\r\n });\r\n\r\n component.actions.create(\r\n 'show-overlay-conversation',\r\n (_data, _options) => {\r\n component.writeProperties({\r\n overlay: { conversation: true, secondary: false },\r\n });\r\n }\r\n );\r\n\r\n component.actions.create(\r\n 'hide-overlay-conversation',\r\n (_data, _options) => {\r\n component.writeProperties({\r\n overlay: { conversation: false, secondary: false },\r\n });\r\n }\r\n );\r\n }\r\n\r\n const unsubscribe = conversation.events.subscribe(\r\n 'conversation:updated',\r\n (_e: any, conversationData: ConversationContent) => {\r\n writeMessages(conversationData);\r\n }\r\n );\r\n\r\n return () => {\r\n conversation.setComponentMountedState(false);\r\n unsubscribe();\r\n if (!conversation.active) {\r\n // unregisterController();\r\n // todo: add possibility to dispose this through extendComponent()\r\n // component.dispose();\r\n writeMessages({ messages: [], typingActors: [], loading: false });\r\n }\r\n };\r\n }\r\n );\r\n};\r\n\r\nexport default ConversationComponent;\r\n","// import { Form, FormBuilder } from '@telia-ace/widget-forms';\r\n\r\nexport type ConversationMessageSettings = {\r\n key?: string;\r\n timestamp?: number;\r\n title?: string;\r\n body?: string;\r\n actions?: { [actionKey: string]: any };\r\n form?: (builder: any /*FormBuilder*/) => void;\r\n type?: string;\r\n items?: ConversationMessageList[];\r\n [key: string]: any;\r\n};\r\n\r\nexport type NormalizedMessageSettings = {\r\n content: ConversationMessageContent;\r\n key: string;\r\n timestamp: number | null;\r\n};\r\n\r\nexport type ConversationMessageList = {\r\n header?: string;\r\n itemKey: string;\r\n type?: ConversationMessageListType;\r\n items: ConversationMessageListItem[];\r\n};\r\n\r\nexport type ConversationMessageListItem = {\r\n icon?: string;\r\n type?: ConversationMessageListItemType;\r\n actions?: { [actionKey: string]: any };\r\n form?: any /*Form*/;\r\n body?: string;\r\n key: string;\r\n [key: string]: any;\r\n};\r\n\r\nexport type ConversationMessageContent = {\r\n title?: string;\r\n body?: string;\r\n actions?: { [actionKey: string]: any };\r\n items?: ConverstationMessageItem<any>[];\r\n form?: any /*Form*/;\r\n [key: string]: any;\r\n};\r\n\r\nexport type ConverstationMessageItem<T, R = ItemPayload> = R extends [T, any]\r\n ? R\r\n : never;\r\n\r\nexport type ConversationMessageUpdateSettings = ConversationMessageContent & {\r\n timestamp?: number;\r\n};\r\n\r\nexport type ConversationMessageSender = {\r\n name?: string;\r\n avatar?: string | Symbol;\r\n id?: string;\r\n};\r\n\r\nexport enum ConversationMessageListType {\r\n Ordinary = 'ordinary',\r\n Seperator = 'seperator',\r\n}\r\n\r\nexport enum ConversationMessageListItemType {\r\n LinkList = 'link-list',\r\n Separator = 'separator',\r\n ButtonList = 'button-list',\r\n ItemList = 'item-list',\r\n Text = 'text',\r\n HTML = 'html',\r\n VideoRequest = 'video-request',\r\n}\r\n\r\nexport type LinkListProperties = {\r\n header?: string;\r\n actions:\r\n | { [key: string]: string }\r\n | { label: string; actionKey: string; data: any }[];\r\n};\r\n\r\ntype LinkListItem = [\r\n ConversationMessageListItemType.LinkList,\r\n LinkListProperties,\r\n];\r\n\r\ntype TextItem = [ConversationMessageListItemType.Text, string];\r\ntype SeparatorItem = [ConversationMessageListItemType.Separator, undefined];\r\n\r\nexport type ButtonListProperties = {\r\n header?: string;\r\n actions:\r\n | { [key: string]: string }\r\n | { label: string; actionKey: string; data: any }[];\r\n};\r\n\r\ntype ButtonListItem = [\r\n ConversationMessageListItemType.ButtonList,\r\n ButtonListProperties,\r\n];\r\n\r\nexport type ItemListProperties = {\r\n header?: string;\r\n actions:\r\n | { [key: string]: string }\r\n | { label: string; actionKey: string; data: any }[];\r\n};\r\n\r\ntype ItemListItem = [\r\n ConversationMessageListItemType.ItemList,\r\n ItemListProperties,\r\n];\r\n\r\nexport type VideoRequestProperties = {\r\n header?: string;\r\n acceptLabel: string;\r\n declineLabel: string;\r\n};\r\n\r\ntype VideoRequestItem = [\r\n ConversationMessageListItemType.VideoRequest,\r\n VideoRequestProperties,\r\n];\r\n\r\nexport type HtmlProperties = {\r\n body: string;\r\n};\r\n\r\ntype HtmlItem = [ConversationMessageListItemType.HTML, HtmlProperties];\r\n\r\ntype ItemPayload =\r\n | LinkListItem\r\n | TextItem\r\n | SeparatorItem\r\n | ButtonListItem\r\n | HtmlItem\r\n | VideoRequestItem\r\n | ItemListItem;\r\n\r\nexport type Symbol = {\r\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\r\n content: string;\r\n};\r\n","import { Container } from '@webprovisions/platform';\r\n\r\nexport const registerCustomMessageComponent = async (\r\n _container: Container,\r\n _type: string,\r\n componentImport: any\r\n) => {\r\n await componentImport;\r\n // return container\r\n // .getAsync('componentResolver')\r\n // .then(async (o: ComponentResolver) => {\r\n // const platform = await ConversationPlatform.getInstance(container);\r\n // platform.addSubscription(\r\n // o.registerComponent(\r\n // type,\r\n // lazy(() => component)\r\n // )\r\n // );\r\n // });\r\n};\r\n"],"names":["f","n","r","o","E","m","g","L","i","s","y","O$2","A","O","u","p","k","d","F","z","b","I","c","M","_","G$1","J$1","X$2","W$1","W","a","G","X","J","L$1","q","D$3","D","l","P","Z$2","w","K","nt","tt","st","Q","et","V","it","T","rt","x","v","R","ot","at","j","ct$3","ht","ct","lt","ut","dt","pt$2","vt","pt","U","$","gt","Z","mt$1","Y","yt","mt","wt","C$3","C","S","N","bt","H","t","e","B","Z$1","P$2","et$1","it$1","pt$1","h","re","se","ne","oe","ee","te","ie","ae","ce$1","ce","ConversationHistory","controller","events","unsubscribe","_e","data","acc","message","normalized","getNormalizedMessageSettings","content","type","sender","timestamp","parsed","handle","body","options","messagesAsList","messageData","_type","items","item","res","ConversationMessageType","contactMethodId","method","result","linebreak","header","title","label","description","text","html","actions","key","value","option","target","Agent","provider","settings","uuid","_a","name","avatar","ConversationProvider","_container","container","storedAgent","agent","__spreadValues","unsub","fn","createSessionStorageKey","id","Locker","unlockNext","willLock","resolve","willUnlock","Store","conversation","enabled","__async","storedAgents","agents","providerIndex","storedMessages","__spreadProps","messages","agentId","action","unlock","createStorageWriter","StorageCategory","write","prev","newData","readStorage","User","swapProvider","conversationId","providerName","components","currentInstance","toQueue","conversationQuery","ConversationEntry","writer","removeTypingState","typingActors","senderString","indexToRemove","ConversationController","widget","providers","removed","added","providerToRemove","index","mounted","nextProvider","entry","updated","updatedTimestamp","dismissed","handler","getParentWidget","widgetName","implementation","mainWidgetName","getSeparateWidget","originWidget","mainWidget","trigger","chatWidgetName","chatWidget","shouldPreventDefault","openChatWidget","contactMethod","triggerDOMTarget","contactMethodsQuery","conversationsQuery","StorageMedium","StorageScope","platform","ConversationEndedBehavior","navigateToConversation","routeName","router","STORAGE_KEY","ConversationPlatform","storedSession","_event","_data","_b","_c","initialRoute","sub","lock","ComponentPlatform","params","behavior","stored","storageKey","component","invokeHandlers","removedProvider","dispose","isActive","session","properties","_key","event","_callback","triggerEl","Br","Vr","zr","on","Wr","Fr","qr","Jr","an","zt","cn","Ee","Kr","Gr","hn","Yr","Je","pe","Nt","Xn","ns","un","rs","Wt","Bt","cs","hs","ls","pn","us","ds","gn","ps","gs","tr","Pt","ms","Ke","ge","vs","Be","er","fe","Zt","nr","ys","bs","ws","$s","Oe","Es","Os","me","sr","qs","On","Js","Ks","An","$t","Ct","xn","Qe","Ys","Ze","ti","ni","Xs","ei","xt","xe","lr","Gs","ye","ve","Se","Ye","ur","Ve","Zs","Qt","Qs","Pe","si","ft","ii","_n","oi","dr","mr","vr","di","pi","gi","Jt","Ce","mi","vi","yi","Cn","bi","wi","Oi","Er","xi","Me","Yi","Rt","Zi","Dn","Qi","Nr","tn","en","Rn","Lr","io","oo","ao","In","Le","ue","Hn","co","Un","We","Dr","De","Fe","At","Te","de","_t","Bn","qe","Tr","ho","It","Ht","jr","lo","je","kt","Vn","zn","Wn","Fn","Rr","uo","Kt","qn","Ir","po","Ut","fo","vo","yo","we","St","go","Vt","bo","mo","Jn","wo","Re","Ie","jt","Kn","$o","Eo","Hr","nn","He","Oo","Ao","xo","_o","So","Po","$e","Uo","Yn","Bo","Vo","fa","ma","ba","groupedMessages","timeout","current","_index","newItem","previous","ConversationComponent","createWebComponent","rehydrate","isNewController","messageGroupingTimeout","setProperties","providerKeys","writeMessages","messageStream","loading","preventDefault","validationPromise","_options","conversationData","ConversationMessageListItemType","registerCustomMessageComponent","componentImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
1
|
+
{"version":3,"file":"index-b38e12e1.js","sources":["../../../node_modules/.pnpm/@webprovisions+bootstrapping@1.0.13/node_modules/@webprovisions/bootstrapping/dist/index.js","../../../node_modules/.pnpm/@webprovisions+platform@1.1.4/node_modules/@webprovisions/platform/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-utilities@1.0.16/node_modules/@telia-ace/widget-utilities/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-core@1.0.27/node_modules/@telia-ace/widget-core/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-services@1.0.27/node_modules/@telia-ace/widget-services/dist/index.js","../src/conversation-history.ts","../src/agent.ts","../src/conversation-provider.ts","../src/store.ts","../src/user.ts","../src/utils/swap-provider.ts","../src/conversation-controller.ts","../src/utils/open-chat-widget.ts","../src/conversation-platform.ts","../../runtime/dist/index-53eef382.js","../src/components/conversation/plugin.ts","../src/types.ts","../src/utils/custom-message.ts"],"sourcesContent":["const f = (n, t, e, ...r) => {\n const o = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(o, ...r);\n break;\n case \"warning\":\n console.warn(o, ...r);\n break;\n case \"error\":\n console.error(o, ...r);\n break;\n }\n}, E = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => f(t, \"info\", e, ...r),\n warn: (e, ...r) => f(t, \"warning\", e, ...r),\n error: (e, ...r) => f(t, \"error\", e, ...r)\n };\n}, b = (n, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let r = 0, o = e.length; r < o; r++) {\n const i = e[r].trim();\n if (i === n || i === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(n) > -1 : !1;\n}, x = (n, t) => {\n if (typeof t == \"function\")\n return t(n);\n const e = typeof t == \"string\" ? q(t) : t;\n return !(!b(n.tenant || \"\", e.tenant || \"\") || !b(n.name, e.implementation || \"\"));\n}, I = (n) => (t) => x(t, n), h = (n) => n instanceof Array && n.length === 1 ? n[0] : n, q = (n) => {\n const t = {}, e = n.split(\":\");\n return e.length === 1 ? t.implementation = h(e[0].split(\",\")) : (t.tenant = h(e[0].split(\",\")), t.implementation = h(e[1].split(\",\"))), t;\n};\nvar m = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(m || {}), g = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(g || {});\nconst L = (n, t, e, r) => {\n try {\n const o = new t(e, r);\n return {\n name: n,\n invoke: (i, s) => {\n let a;\n return o[i] && (a = o[i].call(o, s)), Promise.resolve(a);\n },\n getInstance: () => o\n };\n } catch (o) {\n if (o.message && o.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let s;\n return i === \"initialize\" && (s = t(e, r)), Promise.resolve(s);\n },\n getInstance: () => t\n };\n throw o;\n }\n};\nfunction y(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nclass O {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let o;\n typeof e == \"function\" ? o = {\n scope: m.Widget,\n stage: g.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : o = {\n scope: y(e.scope, m.Widget),\n stage: y(e.stage, g.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const s = t.split(\".\");\n return s.forEach((a, c) => {\n c === s.length - 1 ? i[a] || (i[a] = () => o) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst A = (n) => {\n const t = new O({});\n return n(t), t.get();\n};\nA((n) => {\n n.createCommand(\n \"types.register\",\n { scope: m.Implementation, stage: g.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: g.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: g.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: g.Pre },\n (t) => (e, r, o) => {\n const { container: i } = t;\n let s = null, a = e, c = r;\n typeof e == \"string\" && (s = e, a = r, c = o);\n const u = (l) => {\n const { transformPluginSettings: p } = t.container.get(\"$environmentOptions\"), k = p ? p(\n c || {},\n s,\n t.container,\n a\n ) : r;\n try {\n const d = L(\n s,\n a,\n i,\n k\n );\n i.get(\"$plugins\").push(d), l && d.invoke(\"initialize\", null);\n } catch (d) {\n E(t).warn(\"Error when initializing plugin\", d);\n }\n };\n t.container.get(\"$instance\") ? u(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => u(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nfunction S(n, t, e) {\n return Array.from(n.querySelectorAll(\n `div[id^=\"${t}_\"], div[id^=\"${t}:\"]`\n )).map((o) => {\n if (o.id.substr(0, 7) === `${t}_`)\n return { widgetName: o.id.substr(7), element: o };\n const { 3: i } = o.id.split(\":\");\n return { widgetName: i, element: o };\n });\n}\nconst W = (n) => {\n const t = n.map((e) => e.replace(/\\./g, \"\\\\.\")).join(\"|\");\n return new RegExp(\"^((http[s]?:)?//)?(\" + t + \")/([^\\\\s]+)\");\n}, R = (n) => n.href;\nfunction M(n, t) {\n const e = W(t), r = (i) => {\n const s = e.exec(R(i));\n return s ? {\n element: i,\n widget: s[4]\n } : null;\n };\n return Array.from(n.querySelectorAll(\"a\")).map((i) => r(i)).filter((i) => !!i).map((i) => ({\n element: i.element,\n widgetName: i.widget\n }));\n}\nfunction P(n) {\n return n.filter((t, e, r) => r.indexOf(t) === e);\n}\nclass N {\n constructor(t) {\n this.container = t.container, this.events = t.events;\n }\n watch(t) {\n const e = this.container.get(\"triggerElements\") || [], r = P(e.concat(t));\n this.container.register(\"triggerElements\", r), this.events.dispatch(\n \"bootstrap:trigger-elements-updated\",\n { triggerElements: r },\n { bubbles: !0 }\n );\n }\n}\nfunction C(n, ...t) {\n return n.implementation.events.subscribe(\"widget:create-instance\", (e, r) => {\n if (e.target === n) {\n let o = n.container.get(\"bootstrapping.monitor\");\n o || (o = new N(n), n.container.register(\"bootstrapping.monitor\", o)), o.watch(t);\n }\n }), n.load();\n}\nfunction $(n, t = document) {\n var s;\n const e = n.bindings, r = [].concat(\n M(t, e),\n S(t, ((s = n.environment) == null ? void 0 : s.name) || \"\")\n ), i = P(r.map(({ widgetName: a }) => a)).reduce((a, c) => {\n const u = n.widgets.get(c);\n if (!u)\n return process.env.NODE_ENV !== \"production\" && E(n).warn(`A trigger element for \"${c}\" was found but no widget with that name is available on the implementation (\"${n.name}\"). Make sure this is not a mistake.`), a;\n const l = r.filter((p) => p.widgetName === c).map((p) => p.element);\n return a.push(C(u, ...l)), a;\n }, []);\n return Promise.all(i);\n}\nfunction z() {\n return new Promise((n) => {\n document.readyState === \"loading\" ? document.addEventListener(\"DOMContentLoaded\", () => n()) : n();\n });\n}\nconst D = (n, t) => {\n const e = n;\n e.scan = (o) => $(e, o), e.bindings = t, e.attach = (o, ...i) => C(o, ...i);\n const { environment: r } = e;\n return typeof r.configure == \"undefined\" && (r.configure = (o, i) => {\n let s, a;\n i ? (s = o, a = i) : (s = \"*\", a = o), r.implementations.query(s).forEach((c) => c.configure(a)), r.events.subscribe(\"implementation:created\", (c, u) => {\n const { implementation: l } = u;\n I(s)(l) && l.configure(a);\n });\n }), e;\n};\nfunction B(n, t, e = () => [], r) {\n const o = { ready: !1 };\n n.container.register(\"bootstrapping\", o);\n const i = D(n, t);\n return z().then(() => {\n n.configure((...s) => {\n e().forEach((a) => a(...s));\n });\n }).then(() => $(i, r())).then(() => (o.ready = !0, n.events.dispatch(\"bootstrap:ready\", {}), i));\n}\nfunction _(n) {\n const t = {};\n return [].filter.call(n.attributes, (e) => /^data-/.test(e.name)).map((e) => e.name).forEach((e) => t[e.substr(5)] = n.getAttribute(e)), t;\n}\nconst v = (n, t, e) => {\n const r = _(n);\n e({\n sourceDOMElement: n,\n eventType: t,\n data: r\n });\n};\nfunction w(n, t, e) {\n n.forEach((r) => {\n r.dataset.attached !== \"true\" && (t === \"load\" ? v(r, t, e) : r.addEventListener(t, (o) => {\n o.preventDefault(), v(r, t, e);\n }), r.dataset.monitored = \"true\");\n });\n}\nfunction U(n, t, e) {\n const r = n.container.get(\"bootstrapping.monitor\");\n r && r.events.subscribe(\"bootstrap:trigger-elements-updated\", (i, s) => {\n w(\n s.triggerElements,\n t,\n e\n );\n });\n const o = n.container.get(\"triggerElements\");\n o && w(\n o,\n t,\n e\n );\n}\nconst j = (n, t, e) => {\n const r = n.split(\":\"), o = r[0], i = r.length > 1 ? r[1] : \"*\";\n return (t === \"*\" || o === t) && (e === \"*\" || i === e);\n};\nfunction V(n, t = \"*\", e = \"*\") {\n return n.filter((r) => {\n const o = r[0], i = r[1];\n return typeof o == \"string\" && typeof i == \"function\" ? j(o, t, e) : !1;\n }).map((r) => r[1]);\n}\nconst F = A((n) => {\n n.createCommand(\n \"ready\",\n { scope: m.Implementation, stage: g.Pre },\n (t) => (e) => {\n const { container: r } = t, o = r.owner;\n r.get(\"bootstrapping\").ready ? e(o) : o.events.subscribeOnce(\"bootstrap:ready\", () => {\n e(o);\n });\n }\n );\n});\nexport {\n F as ConfigurationApi,\n B as bootstrapImplementation,\n V as parseConfigurationHandlers,\n U as supportBootstrapping\n};\n//# sourceMappingURL=index.js.map\n","const z = /* @__PURE__ */ new WeakMap();\nfunction b() {\n return (s) => (z.has(s) || z.set(s, {}), z.get(s));\n}\nconst I = (s, t, e, ...n) => {\n const o = `[${s.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(o, ...n);\n break;\n case \"warning\":\n console.warn(o, ...n);\n break;\n case \"error\":\n console.error(o, ...n);\n break;\n }\n}, u = (s) => {\n const t = s.container || s;\n return {\n info: (e, ...n) => I(t, \"info\", e, ...n),\n warn: (e, ...n) => I(t, \"warning\", e, ...n),\n error: (e, ...n) => I(t, \"error\", e, ...n)\n };\n}, c = b(), M = (() => {\n let s = 0;\n return () => ++s;\n})(), _ = (s, t, e) => {\n const n = c(s).touchQueue.get(t);\n n && n.forEach((i) => {\n i(e, s);\n });\n};\nclass G {\n constructor(t, e, n, i) {\n this.key = t, this.factory = e, this.parent = n, this.container = i, this.id = M(), this.resolved = !1, this.constructed = !1, this.async = !0;\n }\n resolve() {\n if (!this.constructed) {\n const t = this.factory(this.parent, this.container);\n return this.constructed = !0, this.value = Promise.resolve(t).then((e) => (this.resolved = !0, _(this.container, this.key, e), e));\n }\n return this.value;\n }\n}\nclass J {\n constructor(t, e, n, i) {\n this.key = t, this.value = e, this.parent = n, this.container = i, this.id = M(), this.async = !1, this.resolved = !1, this.constructed = !0, this.resolve = () => (this.resolved = !0, _(this.container, this.key, this.value), this.value);\n }\n}\nclass X {\n constructor(t, e, n, i) {\n this.key = t, this.value = e, this.parent = n, this.container = i, this.id = M(), this.async = !1, this.resolved = !1, this.constructed = !1, this.resolve = () => {\n this.resolved = !0, this.constructed = !0;\n const r = this.value(this.parent, this.container);\n return _(this.container, this.key, this.value), r;\n };\n }\n}\nclass W {\n /**\n * Creates a new instance of `Container`.\n * @param owner The object owning this inctance.\n * @param name Optional name for the container.\n * @param parent Parent container this should be a child of.\n */\n constructor(t, e, n) {\n this.owner = t, this.name = e, this.parent = n, c(this).resolvers = /* @__PURE__ */ new Map(), c(this).touchQueue = /* @__PURE__ */ new Map(), c(this).children = [];\n }\n /**\n * Deletes an existing resolver by its unique id.\n * @param id Resolver id.\n */\n delete(t) {\n const e = c(this).resolvers, i = Array.from(e.values()).find((r) => r.id === t);\n return i ? (c(this).touchQueue.delete(i.key), Promise.resolve(e.delete(i.key))) : this.parent ? this.parent.delete(t) : Promise.resolve(!1);\n }\n /**\n * Clears the `Container` and any child containers by deleteing all registered resolvers.\n */\n clear() {\n const t = c(this).resolvers, e = Array.from(t.values());\n return Promise.all(e.map((n) => {\n if (n.constructed)\n return Promise.resolve(n.resolve()).then((i) => {\n if (i !== null && typeof i == \"object\" && typeof i.dispose == \"function\")\n return i.dispose.call(i, this, n);\n });\n })).then(() => {\n e.forEach((n) => this.delete(n.id)), c(this).children.forEach((n) => n.clear());\n });\n }\n /**\n * Detaches this `Container` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = c(this.parent).children, e = t.indexOf(this);\n e > -1 && (t.splice(e, 1), delete this.parent);\n }\n }\n /**\n * Provides a way of touching a value in the `Container` without forcing it to be resolved.\n * @param key Key of the resolved value to touch.\n * @param handler Handler function for touching the resolved value.\n */\n touch(t, e) {\n const i = c(this).resolvers.get(t);\n if (i && i.constructed)\n Promise.resolve(i.resolve()).then((o) => {\n e(o, this);\n });\n else {\n const o = c(this).touchQueue;\n let a = o.get(t);\n a || (a = [], o.set(t, a)), a.push(e);\n }\n return this.parent && !i ? this.parent.touch(t, e) : Promise.resolve();\n }\n /**\n * Registers an asynchronous resolver.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerAsync(t, e) {\n const n = c(this).resolvers.get(t);\n n && !n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering an async resolver with a key ('${t}') previously used by a non-async resolver.`);\n const i = new G(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers a factory resolver for constructing the value to be resolved.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerFactory(t, e) {\n const n = c(this).resolvers.get(t);\n n && n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new X(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers an synchronous resolver.\n * @param key Key of the resolver.\n * @param value Value.\n */\n register(t, e) {\n const n = c(this).resolvers.get(t);\n n && n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new J(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Gets the value for a synchronous resolver.\n * @param key Key of resolver to get.\n */\n get(t) {\n const e = c(this).resolvers.get(t);\n if (e)\n return e.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`You are retrieving an async value (with key '${t}') by the non-async function 'container.get(key)'. This will not be supported in future versions. Use 'container.getAsync(key) instead.'`), e.resolve();\n if (this.parent)\n return this.parent.get(t);\n }\n /**\n * Gets the value for a asynchronous resolver.\n * @param key Key of resolver to get.\n */\n getAsync(t) {\n const e = c(this).resolvers.get(t);\n if (e) {\n if (!e.async)\n throw process.env.NODE_ENV !== \"production\" && u(this).warn(`You are retrieving a non-async value (with key '${t}') by the async function 'container.getAsync(key)'.Use 'container.get(key) instead.'`), \"Mismatching resolver type\";\n return e.resolve();\n }\n return this.parent ? this.parent.getAsync(t) : Promise.resolve(void 0);\n }\n getMany(...t) {\n const e = {};\n return t.forEach((n) => e[n] = this.get(n)), e;\n }\n getManyAsync(...t) {\n const e = {};\n return Promise.all(t.map((n) => this.getAsync(n).then((i) => e[n] = i))).then(() => e);\n }\n createChild(t, e) {\n const n = new W(t, e, this);\n return c(this).children.push(n), n;\n }\n}\nclass L {\n /**\n * \n * @param type Type of event.\n * @param target The target of the event, which will handle the default behavour.\n * @param cancelable Whether the event is cancelable by calling preventDefault().\n * @param bubbles Whether the event will bubble up the parent hierarchy.\n */\n constructor(t, e, n = !1, i = !1) {\n this.type = t, this.target = e, this.cancelable = !!n, this.bubbles = !!i, this.defaultPrevented = !1;\n }\n /**\n * Cancels the default behaviour (if the event is cancelable).\n */\n preventDefault() {\n this.cancelable && (this.defaultPrevented = !0);\n }\n}\nconst p = b(), q = (s, t) => [].concat(\n p(s).listenerLookup.get(t.toLowerCase()) || [],\n p(s).listenerLookup.get(\"*\") || []\n), F = (s, t, e, n) => {\n let i, r;\n return t instanceof L ? (i = t, r = t.type) : (i = new L(t, s.target, !!e.cancelable, !!e.bubbles), r = t), { event: i, type: r, async: n };\n};\nclass D {\n /**\n * Creates a new Event Manager instance.\n * @param target The target of events dispatched from this Event Manager instance.\n * @param parent Parent Event Manager instance.\n */\n constructor(t, e) {\n this.target = t, this.parent = e, p(this).listenerLookup = /* @__PURE__ */ new Map(), p(this).children = [];\n }\n /**\n * Clears registered event listeners in this `EventManager` as well as in any children.\n */\n clear() {\n p(this).listenerLookup.clear(), p(this).children.forEach((t) => t.clear());\n }\n /**\n * Detaches this `EventManager` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = p(this.parent).children, e = t.indexOf(this);\n e > -1 && t.splice(e, 1);\n }\n }\n /**\n * Creates an event subscription by registering an listener for an event type.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribe(t, e, n) {\n const i = p(this).listenerLookup, r = t.toLowerCase();\n return i.has(r) || i.set(r, []), i.get(r).push(e), () => this.unsubscribe(t, e);\n }\n /**\n * Similar to `subscribe()` but immediately removes the subscription after the first call.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribeOnce(t, e) {\n const n = this.subscribe(t, (i, r) => (n(), e(i, r)));\n }\n /**\n * Removes a listener for the specified event type.\n * @param type Event type to remove subscription for.\n * @param listener Event listener to remove.\n */\n unsubscribe(t, e) {\n const n = p(this).listenerLookup.get(t.toLowerCase());\n if (n) {\n const i = n.indexOf(e);\n i > -1 && n.splice(i, 1);\n }\n }\n /**\n * Dispatches an asynchonous event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatchAsync(t, e, n = {}) {\n const { event: i, type: r } = F(this, t, n, !0), o = q(this, r);\n let a = 0;\n const l = o.length;\n let h = Promise.resolve();\n for (a = 0; a < l; a++)\n ((m) => {\n h = h.then((y) => y ? Promise.resolve(!0) : Promise.resolve(m(i, e)).then(() => i.defaultPrevented));\n })(o[a]);\n return h.then((m) => !m && i.bubbles && this.parent ? this.parent.dispatchAsync(i, e) : m);\n }\n /**\n * Dispatches an event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatch(t, e, n = {}) {\n const { event: i, type: r } = F(this, t, n, !1), o = q(this, r);\n let a = 0;\n const l = o.length;\n let h = !1;\n for (a = 0; a < l; a++)\n if (o[a](i, e), i.defaultPrevented) {\n h = !0;\n break;\n }\n return !h && i.bubbles && this.parent && (h = this.parent.dispatch(i, e)), h;\n }\n /**\n * Creates a child instance to the current Event manager.\n */\n createChild(t) {\n const e = new D(t, this);\n return p(this).children.push(e), e;\n }\n}\nconst P = (s, t, e) => {\n const i = s.get(\"$plugins\").map((r) => {\n try {\n return r.invoke(t, e);\n } catch (o) {\n u(s).error(\"An error occured when invoking a plugin.\", r, o);\n }\n });\n return Promise.all(i);\n};\nclass Z {\n constructor(t) {\n this.widget = t.get(\"$widget\"), this.events = this.widget.events, this.container = this.widget.container, this.initialized = null, this.activated = null, this.initialize = this.initialize.bind(this), this.activate = this.activate.bind(this), this.deactivate = this.deactivate.bind(this), this.invoke = this.invoke.bind(this), this.createInstance();\n }\n createInstance() {\n if (!this.widget.container.get(\"$instance\")) {\n const t = this.widget.container.get(\"$types\"), e = this.widget.container.get(\"$type\");\n !e && u(this).error(\"Unable to create widget. No type is specified.\");\n const n = t[e];\n !n && u(this).error(`Unable to create widget. Type '${e}' is not registered.`), this.widget.events.dispatch(\"widget:create-instance\", {}, { bubbles: !0 });\n try {\n this.widget.container.register(\n \"$instance\",\n new n(this.container)\n );\n } catch (i) {\n u(this).error(\"Unable to create widget type.\", i);\n }\n this.widget.events.dispatch(\"widget:instance-created\", {}, { bubbles: !0 });\n }\n }\n /**\n * The initialization is performed before the widget is activated but after it's configured\n * and thus all required services are available. This hook is a good place to bind events that\n * should trigger activation (e.g. click on \"trigger links\" or routing events)\n * @param {object} data Custom initialization data passed to the widget.\n */\n initialize(t) {\n return this.initialized = this.initialized || (() => {\n const e = this.container.get(\"$instance\"), n = e.initialize || (() => {\n });\n return this.initialized = Promise.resolve(n.call(e, t)).then(() => P(this.container, \"initialize\", t)).then(() => {\n });\n })();\n }\n /**\n * The activation is where the widget is actually created and rendered.\n * Activation can be initialized from the outside or from an event originated\n * in the \"initialize\" hook.\n * @param {object} data Custom activation data passed to the widget.\n */\n activate(t) {\n return (this.initialized || this.initialize()).then(() => {\n this.activated = this.activated || (() => P(this.container, \"activate\").then(() => {\n const n = this.container.get(\"$instance\");\n return this.activated = n.activate(t);\n }))();\n });\n }\n deactivate() {\n const t = this.container.get(\"$instance\"), e = t.deactivate || (() => {\n });\n return P(this.container, \"deactivate\").then(() => Promise.resolve(e.call(t))).then(() => {\n this.initialized = null, this.activated = null;\n }).then(() => {\n });\n }\n /**\n * Invokes a command on the widget component.\n * @param command Name of command\n * @param args Command arguments\n */\n invoke(t, ...e) {\n return P(this.container, \"invoke\", { command: t, args: e }).then(() => {\n const n = this.container.get(\"$instance\");\n if (n[t])\n return n[t].apply(n, e);\n const i = n.invoke;\n if (i)\n return i.call(n, t, ...e);\n });\n }\n}\nconst w = (s, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let n = 0, i = e.length; n < i; n++) {\n const r = e[n].trim();\n if (r === s || r === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(s) > -1 : !1;\n}, K = (s, t) => {\n if (typeof t == \"function\")\n return t(s);\n const e = typeof t == \"string\" ? nt(t) : t;\n return !(!w(s.implementation.tenant || \"\", e.tenant || \"\") || !w(s.implementation.name, e.implementation || \"\") || !w(s.name, e.widget || \"\") || !w(s.container.get(\"$type\"), e.type || \"\"));\n}, tt = (s, t) => {\n if (typeof t == \"function\")\n return t(s);\n const e = typeof t == \"string\" ? st(t) : t;\n return !(!w(s.tenant || \"\", e.tenant || \"\") || !w(s.name, e.implementation || \"\"));\n}, Q = (s) => (t) => K(t, s), et = (s) => (t) => tt(t, s), f = (s) => s instanceof Array && s.length === 1 ? s[0] : s, nt = (s) => {\n const t = {}, e = s.split(\":\");\n return e.length === 1 ? t.widget = f(e[0].split(\",\")) : e.length === 2 ? (t.implementation = f(e[0].split(\",\")), t.widget = f(e[1].split(\",\"))) : (t.tenant = f(e[0].split(\",\")), t.implementation = f(e[1].split(\",\")), t.widget = f(e[2].split(\",\"))), t;\n}, st = (s) => {\n const t = {}, e = s.split(\":\");\n return e.length === 1 ? t.implementation = f(e[0].split(\",\")) : (t.tenant = f(e[0].split(\",\")), t.implementation = f(e[1].split(\",\"))), t;\n}, E = b(), V = (s, t, e) => s.filter((n) => n.stage === t && Q(n.selector)(e));\nfunction it(s) {\n const t = s.container.get(\"$environment\");\n let e = E(t).configurationCache;\n e && (e = e.filter((n) => n[0] !== s), E(t).configurationCache = e);\n}\nvar k = /* @__PURE__ */ ((s) => (s.Implementation = \"implementation\", s.Widget = \"widget\", s))(k || {}), g = /* @__PURE__ */ ((s) => (s.Pre = \"pre\", s.Post = \"post\", s))(g || {});\nconst T = (s, t, e) => (Object.keys(t).forEach((n) => {\n const i = t[n];\n if (typeof i == \"function\") {\n const r = i();\n typeof r.defaultArgs != \"undefined\" && e(r, ...r.defaultArgs), s[n] = (...o) => {\n const a = Object.assign(\n {},\n r,\n { handlerResolver: r.handlerResolver.bind({}) }\n );\n return e(a, ...o), s;\n };\n } else\n s[n] = T(\n {},\n i,\n e\n );\n}), s), rt = (s, t) => {\n switch (t) {\n case \"implementation\":\n return s.implementation;\n case \"widget\":\n return s;\n }\n}, O = (s, t, e, n) => (n.forEach((i) => {\n T(\n s,\n i,\n (r, ...o) => {\n const a = {\n selector: t,\n stage: r.stage,\n handler: (l) => {\n const h = rt(l, r.scope), m = { container: h.container, events: h.events }, y = r.handlerResolver, x = y(m);\n let v = E(e.environment).configurationCache;\n return v || (v = E(e.environment).configurationCache = []), v.find((R) => R.indexOf(h) > -1 && R.indexOf(y) > -1) ? Promise.resolve() : (v.push([h, y]), Promise.resolve(x(...o)));\n }\n };\n e.instructions.push(a);\n }\n );\n}), s);\nfunction ot(s, t) {\n function e(n) {\n return O(\n {},\n n,\n s,\n t\n );\n }\n return O(\n e,\n \"*\",\n s,\n t\n );\n}\nclass $t {\n constructor(t, e) {\n this.container = t, this.settings = e, this.widget = t.get(\"$widget\"), this.events = this.widget.events;\n }\n}\nconst at = (s, t, e, n) => {\n try {\n const i = new t(e, n);\n return {\n name: s,\n invoke: (r, o) => {\n let a;\n return i[r] && (a = i[r].call(i, o)), Promise.resolve(a);\n },\n getInstance: () => i\n };\n } catch (i) {\n if (i.message && i.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: s,\n invoke: (r) => {\n let o;\n return r === \"initialize\" && (o = t(e, n)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw i;\n }\n};\nfunction j(s, t) {\n return typeof s == \"undefined\" ? t : s;\n}\nclass ct {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, n) {\n let i;\n typeof e == \"function\" ? i = {\n scope: k.Widget,\n stage: g.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : i = {\n scope: j(e.scope, k.Widget),\n stage: j(e.stage, g.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: n\n };\n let r = this.part;\n const o = t.split(\".\");\n return o.forEach((a, l) => {\n l === o.length - 1 ? r[a] || (r[a] = () => i) : r = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst ht = (s) => {\n const t = new ct({});\n return s(t), t.get();\n}, lt = ht((s) => {\n s.createCommand(\n \"types.register\",\n { scope: k.Implementation, stage: g.Pre },\n (t) => (e, n) => {\n t.container.get(\"$types\")[e] = n;\n }\n ).createCommand(\n \"type\",\n { stage: g.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: g.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: g.Pre },\n (t) => (e, n, i) => {\n const { container: r } = t;\n let o = null, a = e, l = n;\n typeof e == \"string\" && (o = e, a = n, l = i);\n const h = (m) => {\n const { transformPluginSettings: y } = t.container.get(\"$environmentOptions\"), x = y ? y(\n l || {},\n o,\n t.container,\n a\n ) : n;\n try {\n const v = at(\n o,\n a,\n r,\n x\n );\n r.get(\"$plugins\").push(v), m && v.invoke(\"initialize\", null);\n } catch (v) {\n u(t).warn(\"Error when initializing plugin\", v);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, n) => {\n t.container.register(e, n);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, n) => {\n t.container.registerAsync(e, n);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, n) => {\n t.container.registerFactory(e, n);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, n) => {\n t.container.touch(e, n);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n}), ut = lt;\nfunction dt(s, t, e = []) {\n const n = [ut].concat(e), i = ot(\n t,\n n\n );\n s(i, t);\n}\nclass pt {\n constructor() {\n this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, e, n, i) {\n this.tasks.push({ task: t, resolve: e, reject: n, done: i }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n const e = Promise.resolve(t.task());\n return Promise.resolve(e).then(this.next).then(() => e.then((n) => {\n t.done(), t.resolve(n);\n })).catch((n) => (t.done(), t.reject(n), this.next()));\n }\n return Promise.resolve();\n });\n }\n}\nconst A = /* @__PURE__ */ new WeakMap();\nfunction vt(s) {\n return A.has(s) || A.set(s, new pt()), (t) => new Promise((e, n) => {\n const i = A.get(s);\n i.add(t, e, n, () => {\n i.tasks.length || A.delete(s);\n });\n });\n}\nconst U = (s) => typeof s != \"undefined\";\nvar ft = /* @__PURE__ */ ((s) => (s.Activating = \"activating\", s.Loading = \"loading\", s.Activated = \"activated\", s.Deactivating = \"deactivating\", s.Deactivated = \"deactivated\", s))(ft || {});\nconst $ = (s, t) => {\n s.events.dispatch(\"widget:state-change\", { state: t }, { bubbles: !0 }), s.state = t, s.events.dispatch(\"widget:state-changed\", {}, { bubbles: !0 });\n}, d = b(), gt = (s) => {\n const { container: t, events: e } = s;\n t.get(\"$controller\") || (t.register(\"$controller\", new Z(t)), e.dispatch(\"widget:controller-created\", {}, { bubbles: !0 }));\n};\nclass mt {\n /**\n * Creates a new `Widget` instance.\n * @param name Name of widget.\n * @param implementation The implementation this instance belongs to.\n * @param configuration Configuration for the widget.\n */\n constructor(t, e, n) {\n this.state = \"deactivated\", this.name = t, this.implementation = e, this.container = e.container.createChild(this, t), this.events = e.events.createChild(this), d(this).subscriptions = [], n && e.configure((i) => {\n const r = i(t);\n U(n.type) && r.type(n.type), U(n.settings) && r.settings(n.settings), n.plugins && Object.keys(n.plugins).forEach((o) => {\n var l;\n const a = (l = n.plugins) == null ? void 0 : l[o];\n r.plugin(o, a);\n });\n }), this.load = this.load.bind(this), this.activate = this.activate.bind(this), this.invoke = this.invoke.bind(this), this.deactivate = this.deactivate.bind(this);\n }\n /**\n * Initializes the widget, if not already initialized, and applies any\n * pending configuration.\n */\n load() {\n return vt(this)(() => {\n d(this).deactivatedPromise = null;\n const t = this.state === \"deactivated\";\n t && ($(\n this,\n \"activating\"\n /* Activating */\n ), this.container.register(\"$widget\", this), this.container.register(\"$controller\", null), this.container.register(\"$plugins\", []), this.container.register(\"$type\", null), this.container.register(\"$instance\", null)), $(\n this,\n \"loading\"\n /* Loading */\n );\n const e = this.implementation.instructions, n = V(e, g.Pre, this);\n return Promise.all(n.map((i) => i.handler(this))).then(() => {\n gt(this);\n const i = V(e, g.Post, this);\n return Promise.all(i.map((r) => r.handler(this))).then(() => {\n t && this.container.get(\"$controller\").initialize();\n });\n }).then(() => ($(\n this,\n \"activated\"\n /* Activated */\n ), this));\n });\n }\n /**\n * Activates the widget and makes it ready for receiving commands.\n * @param data Activation data\n */\n activate(t) {\n d(this).subscriptions.push(\n this.implementation.events.subscribe(\"implementation:configured\", () => {\n [\n \"activated\",\n \"activating\",\n \"loading\"\n /* Loading */\n ].indexOf(this.state) > -1 && this.load();\n })\n );\n const e = d(this).activatedPromise;\n return e ? (process.env.NODE_ENV !== \"production\" && u(this).warn(`Widget '${this.name}' has already been activated. The passed arguments for this activation will be discarded.`, t), e) : d(this).activatedPromise = this.load().then(() => this.container.get(\"$controller\").activate(t));\n }\n /**\n * Invokes a command on a widget. If the widget isn't activate the invocation \n * will be suspended until activation.\n * @param command Command to invoke.\n * @param args Command arguments.\n */\n invoke(t, ...e) {\n const n = d(this).activatedPromise, i = (r, ...o) => n.then(this.load).then(() => this.container.get(\"$controller\").invoke(r, ...o));\n return n ? i(t, ...e) : (process.env.NODE_ENV !== \"production\" && u(this).warn(\"You are invoking a command on a deactivated widget. The invocation will be queued until the widget is activated.\", this), new Promise((r) => {\n const o = this.events.subscribe(\"widget:state-changed\", () => {\n this.state === \"activated\" && (o(), r(i(t, ...e)));\n });\n }));\n }\n /**\n * Deactivates the widget by clearing the `Container` and removing any event subscriptions in the\n * `EventManager`.\n */\n deactivate() {\n const t = d(this).deactivatedPromise;\n return t || (this.state === \"deactivated\" ? Promise.resolve() : ($(\n this,\n \"deactivating\"\n /* Deactivating */\n ), d(this).deactivatedPromise = this.container.get(\"$controller\").deactivate().then(() => (d(this).activatedPromise = null, d(this).subscriptions.forEach((e) => e()), d(this).subscriptions = [], this.container.clear().then(() => {\n this.events.clear(), it(this), $(\n this,\n \"deactivated\"\n /* Deactivated */\n );\n })))));\n }\n}\nconst Pt = (s) => s.deactivate().then(() => {\n s.events.detach(), s.container.detach(), s.implementation.widgets.delete(s.name);\n});\nclass At {\n /**\n * Creates a new `Widget` instance.\n * @param container The `Container` instance to base the widget upon.\n */\n constructor(t) {\n this.container = t, this.widget = t.get(\"$widget\"), this.settings = t.get(\"$settings\"), this.events = this.widget.events, this.widget.events.subscribe(\"settings:change\", (e, n) => {\n this.settings = n;\n });\n }\n}\nconst Y = b();\nclass yt {\n /**\n * Creates a new Implementation instance.\n * @param configuration Configuration for the implementation.\n * @param environment The parent environment.\n * @param configurationApiExtensions Optional configuration API extensions.\n */\n constructor(t, e, n = []) {\n this.instructions = [], this.widgets = /* @__PURE__ */ new Map(), this.name = t.name, this.tenant = t.tenant, this.environment = e, this.container = e.container.createChild(this, this.name), this.events = e.events.createChild(this), this.container.register(\"$types\", {}), Y(this).configurationApiExtensions = n;\n }\n /**\n * Loads all widgets in the implementation.\n */\n load() {\n const t = Array.from(this.widgets.values());\n return Promise.all(t.map((e) => e.load())).then(() => t);\n }\n /**\n * Configures the implementation by adding a configuration callback.\n * @param configFn Callback function for configuration.\n */\n configure(t) {\n return dt(t, this, Y(this).configurationApiExtensions), this.events.dispatch(\n \"implementation:configured\",\n { implementation: this },\n { bubbles: !0 }\n ), this;\n }\n /**\n * Creates a widget on the implementation and returns its `WidgetData`.\n * @param name Widget name.\n * @param configuration Widget configuration.\n */\n createWidget(t, e) {\n const n = new mt(t, this, e);\n return this.widgets.set(n.name, n), n;\n }\n}\nfunction wt(s, t, e) {\n const n = new yt(s, t, e);\n return s.widgets && Object.keys(s.widgets).forEach((i) => {\n var o;\n const r = (o = s.widgets) == null ? void 0 : o[i];\n n.createWidget(i, r);\n }), n;\n}\nclass C {\n constructor(t, e) {\n this.selectorFactory = e, typeof t == \"function\" ? this.resolver = t : this.resolver = () => t;\n }\n append(t) {\n const e = typeof t == \"function\" ? t : () => t;\n return new C(\n () => this.all().concat(e()),\n this.selectorFactory\n );\n }\n all() {\n return this.resolver().concat([]);\n }\n query(t) {\n return this.all().filter(this.selectorFactory(t));\n }\n find(t) {\n const e = this.query(t);\n if (e.length)\n return e[0];\n }\n}\nconst S = \"#____version____#\";\nfunction Et(s, t) {\n const e = B.create(s);\n return Promise.all(\n (t || []).map((n) => Promise.resolve(n(e)))\n ).then(() => e);\n}\nconst N = b(), bt = (s) => s.tenant ? `${s.name}:${s.tenant}` : s.name, H = class {\n constructor(s, t = [], e = {}) {\n this.widgets = new C(\n () => {\n let n = [];\n return this.implementations.all().forEach((i) => {\n n = n.concat(Array.from(i.widgets.values()));\n }), n;\n },\n Q\n ), this.implementations = new C([], et), this.name = s, this.container = new W(this, s), this.events = new D(this), this.container.register(\"$version\", S), this.container.register(\"$environment\", this), this.container.register(\"$environmentOptions\", e), N(this).configurationApiExtensions = t;\n }\n /**\n * Creates an implementation based on the provided configuration.\n * @param config Implementation configuration.\n */\n createImplementation(s) {\n const t = bt(s);\n let e = this.implementations.find(t);\n if (e)\n return process.env.NODE_ENV !== \"production\" && u(e).warn(`Implementation \"${t}\" already exist on current environment.`), e;\n const n = N(this).configurationApiExtensions;\n return e = wt(\n s,\n this,\n n\n ), this.implementations = this.implementations.append([e]), this.events.dispatch(\"implementation:created\", { implementation: e }), e;\n }\n /**\n * Patches the Environment instance configuration.\n * @param configuration Environment configuration.\n */\n patch(s = {}) {\n const { name: t, configurationApiExtensions: e } = s;\n typeof t != \"undefined\" && t !== null && (this.name = t), e && e.forEach(\n (n) => {\n N(this).configurationApiExtensions.push(n);\n }\n );\n }\n /**\n * Creates a new Environment instance based on the provided configuration.\n * @param configuration Environment configuration.\n */\n static create(s = {}) {\n return new H(\n s.name || \"\",\n s.configurationApiExtensions,\n s.options\n );\n }\n};\nlet B = H;\nB.version = S;\nexport {\n k as ConfigurationScope,\n g as ConfigurationStage,\n W as Container,\n B as Environment,\n D as EventManager,\n L as EventObject,\n yt as Implementation,\n $t as Plugin,\n mt as Widget,\n Z as WidgetController,\n ft as WidgetState,\n At as WidgetType,\n ht as createConfigurationApi,\n Et as createEnvironment,\n Pt as destroy,\n Pt as destroyWidget,\n u as logger,\n et as selectImplementations,\n Q as selectWidgets,\n S as version\n};\n//# sourceMappingURL=index.js.map\n","var O = Object.getOwnPropertySymbols;\nvar L = Object.prototype.hasOwnProperty, B = Object.prototype.propertyIsEnumerable;\nvar x = (e, t) => {\n var o = {};\n for (var r in e)\n L.call(e, r) && t.indexOf(r) < 0 && (o[r] = e[r]);\n if (e != null && O)\n for (var r of O(e))\n t.indexOf(r) < 0 && B.call(e, r) && (o[r] = e[r]);\n return o;\n};\nfunction I(e) {\n const t = [];\n return e.forEach((o) => {\n t.indexOf(o) === -1 && t.push(o);\n }), t;\n}\nfunction k(e = \"\", t = \"\") {\n const o = e.split(\" \").concat(t.split(\" \"));\n return I(o).join(\" \").trim();\n}\nfunction U(e, t) {\n if (e) {\n if (typeof t == \"string\")\n return t;\n if (Array.isArray(t)) {\n let o = \"\";\n return t.forEach((r) => o = k(o, r)), o;\n }\n }\n}\nfunction X(...e) {\n let t = \"\";\n return e.length && e.forEach((o) => {\n typeof o == \"string\" ? t = k(t, o) : Array.isArray(o) ? t = k(t, U(...o)) : typeof o != \"undefined\" && o !== null && process.env.NODE_ENV !== \"production\" && p.warn(\n \"appendClassNames: arguments either haveto be a string or [boolean, ...string[]]. Passed args:\",\n ...e\n );\n }), t;\n}\nconst z = (e, t) => {\n let o, r = [];\n return (i) => (clearTimeout(o), new Promise((n, a) => {\n r.push([i, n, a]), o = setTimeout(() => {\n let f = t();\n r.forEach(([c, g, m]) => {\n f = c(f);\n }), r = [], n(f);\n }, e);\n }));\n}, tt = z;\nfunction T(e) {\n const t = {};\n if (typeof e == \"number\" || typeof e == \"string\")\n return e;\n for (const o in e)\n if (e.hasOwnProperty(o)) {\n const r = e[o], i = o.substring(0, 1).toLowerCase() + o.substring(1);\n if (Object.prototype.toString.call(r) === \"[object Array]\") {\n t[i] = [];\n for (let n = 0, a = r.length; n < a; n++)\n t[i].push(T(r[n]));\n } else\n r !== null && typeof r == \"object\" ? t[i] = T(r) : t[i] = r;\n }\n return t;\n}\nfunction N(e = {}) {\n const $ = e, {\n phrase: t = \"\",\n category: o,\n guideCategory: r,\n contactCategory: i,\n take: n,\n connectionKey: a,\n accordion: f,\n id: c,\n uriName: g,\n sorting: m,\n tag: u,\n tagId: l,\n tagTitle: h\n } = $, P = x($, [\n \"phrase\",\n \"category\",\n \"guideCategory\",\n \"contactCategory\",\n \"take\",\n \"connectionKey\",\n \"accordion\",\n \"id\",\n \"uriName\",\n \"sorting\",\n \"tag\",\n \"tagId\",\n \"tagTitle\"\n ]), s = {};\n return Object.keys(P).forEach((A) => {\n typeof e[A] == \"string\" && (s[A] = e[A]);\n }), typeof t == \"string\" && t.length && (s.phrase = t), t === null && (s.phrase = t), typeof r == \"string\" && r !== \"0\" && (s.guideCategory = r), typeof r == \"number\" && r !== 0 && (s.guideCategory = r), typeof r == \"object\" && r !== null && (typeof r.id == \"string\" && r.id !== \"0\" && (s.guideCategory = r.id), typeof r.id == \"number\" && r.id !== 0 && (s.guideCategory = r.id)), typeof i == \"string\" && i !== \"0\" && (s.contactCategory = i), typeof i == \"number\" && i !== 0 && (s.contactCategory = i), typeof i == \"object\" && i !== null && (typeof i.id == \"string\" && i.id !== \"0\" && (s.contactCategory = i.id), typeof i.id == \"number\" && i.id !== 0 && (s.contactCategory = i.id)), typeof o == \"string\" && o !== \"0\" && (s.category = o), typeof o == \"number\" && o !== 0 && (s.category = o), typeof o == \"object\" && o !== null && (typeof o.id == \"string\" && o.id !== \"0\" && (s.category = o.id), typeof o.id == \"number\" && o.id !== 0 && (s.category = o.id)), c && (s.id = c), g && (+s.category || +s.guideCategory || +s.guide || +s.contactCategory || +s.contactMethod) && (s.uriName = g), a && (s.connectionKey = a), n && (s.take = n), m && (s.sorting = m), typeof f == \"string\" && f.length > 0 && (s.accordion = f), typeof u == \"string\" && u !== \"0\" && (s.tag = u), typeof u == \"number\" && u !== 0 && (s.tag = u), Array.isArray(u) && u.length && (s.tag = u), (typeof l == \"string\" || typeof l == \"number\") && (s.tagId = l), typeof h == \"string\" && (s.tagTitle = h), typeof s.tag == \"string\" && (s.tag = s.tag.split(\",\")), s;\n}\nfunction* q(e) {\n if (e)\n for (let t = 0; t < e.length; t++) {\n const o = e[t];\n yield o, o.items && (yield* q(o.items));\n }\n}\nconst V = (e, t) => {\n const o = q(t);\n let r = o.next(), i = null;\n for (; !r.done; )\n r.value.id === e && (i = r.value), r = o.next();\n return i;\n}, W = V, M = (e) => {\n if (!e)\n return \"\";\n const t = [\n { from: /[äæǽ]+/gi, to: \"ae\" },\n { from: /[öœ]+/gi, to: \"oe\" },\n { from: /[ü]+/gi, to: \"ue\" },\n { from: /[Ä]+/gi, to: \"Ae\" },\n { from: /[Ü]+/gi, to: \"Ue\" },\n { from: /[Ö]+/gi, to: \"Oe\" },\n { from: /[ÀÁÂÃÄÅǺĀĂĄǍΑΆẢẠẦẪẨẬẰẮẴẲẶА]+/gi, to: \"A\" },\n { from: /[àáâãåǻāăąǎªαάảạầấẫẩậằắẵẳặа]+/gi, to: \"a\" },\n { from: /[Б]+/gi, to: \"B\" },\n { from: /[б]+/gi, to: \"b\" },\n { from: /[ÇĆĈĊČ]+/gi, to: \"C\" },\n { from: /[çćĉċč]+/gi, to: \"c\" },\n { from: /[Д]+/gi, to: \"D\" },\n { from: /[д]+/gi, to: \"d\" },\n { from: /[ÐĎĐΔ]+/gi, to: \"Dj\" },\n { from: /[ðďđδ]+/gi, to: \"dj\" },\n { from: /[ÈÉÊËĒĔĖĘĚΕΈẼẺẸỀẾỄỂỆЕЭ]+/gi, to: \"E\" },\n { from: /[èéêëēĕėęěέεẽẻẹềếễểệеэ]+/gi, to: \"e\" },\n { from: /[Ф]+/gi, to: \"F\" },\n { from: /[ф]+/gi, to: \"f\" },\n { from: /[ĜĞĠĢΓГҐ]+/gi, to: \"G\" },\n { from: /[ĝğġģγгґ]+/gi, to: \"g\" },\n { from: /[ĤĦ]+/gi, to: \"H\" },\n { from: /[ĥħ]+/gi, to: \"h\" },\n { from: /[ÌÍÎÏĨĪĬǏĮİΗΉΊΙΪỈỊИЫ]+/gi, to: \"I\" },\n { from: /[ìíîïĩīĭǐįıηήίιϊỉịиыї]+/gi, to: \"i\" },\n { from: /[Ĵ]+/gi, to: \"J\" },\n { from: /[ĵ]+/gi, to: \"j\" },\n { from: /[ĶΚК]+/gi, to: \"K\" },\n { from: /[ķκк]+/gi, to: \"k\" },\n { from: /[ĹĻĽĿŁΛЛ]+/gi, to: \"L\" },\n { from: /[ĺļľŀłλл]+/gi, to: \"l\" },\n { from: /[М]+/gi, to: \"M\" },\n { from: /[м]+/gi, to: \"m\" },\n { from: /[ÑŃŅŇΝН]+/gi, to: \"N\" },\n { from: /[ñńņňʼnνн]+/gi, to: \"n\" },\n { from: /[ÒÓÔÕŌŎǑŐƠØǾΟΌΩΏỎỌỒỐỖỔỘỜỚỠỞỢО]+/gi, to: \"O\" },\n { from: /[òóôõōŏǒőơøǿºοόωώỏọồốỗổộờớỡởợо]+/gi, to: \"o\" },\n { from: /[П]+/gi, to: \"P\" },\n { from: /[п]+/gi, to: \"p\" },\n { from: /[ŔŖŘΡР]+/gi, to: \"R\" },\n { from: /[ŕŗřρр]+/gi, to: \"r\" },\n { from: /[ŚŜŞȘŠΣС]+/gi, to: \"S\" },\n { from: /[śŝşșšſσςс]+/gi, to: \"s\" },\n { from: /[ȚŢŤŦτТ]+/gi, to: \"T\" },\n { from: /[țţťŧт]+/gi, to: \"t\" },\n { from: /[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛŨỦỤỪỨỮỬỰУ]+/gi, to: \"U\" },\n { from: /[ùúûũūŭůűųưǔǖǘǚǜυύϋủụừứữửựу]+/gi, to: \"u\" },\n { from: /[ÝŸŶΥΎΫỲỸỶỴЙ]+/gi, to: \"Y\" },\n { from: /[ýÿŷỳỹỷỵй]+/gi, to: \"y\" },\n { from: /[В]+/gi, to: \"V\" },\n { from: /[в]+/gi, to: \"v\" },\n { from: /[Ŵ]+/gi, to: \"W\" },\n { from: /[ŵ]+/gi, to: \"w\" },\n { from: /[ŹŻŽΖЗ]+/gi, to: \"Z\" },\n { from: /[źżžζз]+/gi, to: \"z\" },\n { from: /[ÆǼ]+/gi, to: \"AE\" },\n { from: /[ß]+/gi, to: \"ss\" },\n { from: /[IJ]+/gi, to: \"IJ\" },\n { from: /[ij]+/gi, to: \"ij\" },\n { from: /[Œ]+/gi, to: \"OE\" },\n { from: /[ƒ]+/gi, to: \"f\" },\n { from: /[ξ]+/gi, to: \"ks\" },\n { from: /[π]+/gi, to: \"p\" },\n { from: /[β]+/gi, to: \"v\" },\n { from: /[μ]+/gi, to: \"m\" },\n { from: /[ψ]+/gi, to: \"ps\" },\n { from: /[Ё]+/gi, to: \"Yo\" },\n { from: /[ё]+/gi, to: \"yo\" },\n { from: /[Є]+/gi, to: \"Ye\" },\n { from: /[є]+/gi, to: \"ye\" },\n { from: /[Ї]+/gi, to: \"Yi\" },\n { from: /[Ж]+/gi, to: \"Zh\" },\n { from: /[ж]+/gi, to: \"zh\" },\n { from: /[Х]+/gi, to: \"Kh\" },\n { from: /[х]+/gi, to: \"kh\" },\n { from: /[Ц]+/gi, to: \"Ts\" },\n { from: /[ц]+/gi, to: \"ts\" },\n { from: /[Ч]+/gi, to: \"Ch\" },\n { from: /[ч]+/gi, to: \"ch\" },\n { from: /[Ш]+/gi, to: \"Sh\" },\n { from: /[ш]+/gi, to: \"sh\" },\n { from: /[Щ]+/gi, to: \"Shch\" },\n { from: /[щ]+/gi, to: \"shch\" },\n { from: /[ЪъЬь]+/gi, to: \"\" },\n { from: /[Ю]+/gi, to: \"Yu\" },\n { from: /[ю]+/gi, to: \"yu\" },\n { from: /[Я]+/gi, to: \"Ya\" },\n { from: /[я]+/gi, to: \"ya\" }\n ], o = /[^a-zA-Z0-9]+/g, r = /[-]$/;\n let i = e;\n for (const n in t)\n t.hasOwnProperty(n) && t[n].from.test(e) && (i = i.replace(t[n].from, t[n].to));\n return i = i.replace(o, \"-\"), i = i.replace(r, \"\"), i = i.toLowerCase(), i || \"humany\";\n}, E = M;\nfunction S(e, t = {}, o) {\n return e.forEach((r) => {\n o && (t[+r.id] = o), r.items && S(r.items, t, r.id);\n }), t;\n}\nfunction Y(e, t, o = [e], r = S(t)) {\n const i = (a) => {\n const f = r[+a];\n f && (o.unshift(f), i(f));\n }, n = r[+e];\n return n && (o.unshift(n), i(n)), o;\n}\nconst F = (e, t) => typeof e == \"undefined\" || typeof t == \"undefined\" ? /* @__PURE__ */ new Map() : new Map(\n e.map((o) => {\n const r = W(o, t);\n return [o, r];\n })\n), et = (e, t, o, r = \"guide-categories\") => o.getAsync(\"dataClient\").then((i) => i.fetch(r, { expandCategories: \"descendants\" }).then(({ categories: n }) => {\n const a = (f) => {\n const c = Y(f, n), g = F(c, n), m = [];\n return c.forEach((u) => {\n const l = g.get(u);\n l && m.push({\n routeName: e,\n title: l.title,\n symbol: l.symbol,\n id: l.id,\n routeParams: N(r === \"contact-method-categories\" ? {\n contactCategory: l.id,\n uriName: E(l.title)\n } : {\n guideCategory: l.id,\n uriName: E(l.title)\n })\n });\n }), m;\n };\n return Array.isArray(t) ? t.reduce((f, c) => {\n const g = a(c);\n return g.length > 0 && f.push(g), f;\n }, []) : a(t);\n})), K = (e) => {\n let t, o;\n e.split(\",\")[0].indexOf(\"base64\") !== -1 ? t = atob(e.split(\",\")[1]) : t = decodeURI(e.split(\",\")[1]), o = e.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n const r = [];\n for (let i = 0; i < t.length; i++)\n r[i] = t.charCodeAt(i);\n return new Blob([new Uint8Array(r)], { type: o });\n}, ot = K;\nfunction rt(...e) {\n return process.env.NODE_ENV !== \"production\" && console && console.warn(...e);\n}\nconst C = (e, t, ...o) => typeof t == \"string\" ? e(`[humany] ${t}`, ...o) : e(t, ...o), y = class {\n constructor() {\n this.keys = [], this.log = (e, ...t) => this.lookup(e, () => y.log(...t)), this.warn = (e, ...t) => this.lookup(e, () => y.warn(...t)), this.error = (e, ...t) => this.lookup(e, () => y.error(...t)), this.info = (e, ...t) => this.lookup(e, () => y.info(...t));\n }\n lookup(e, t) {\n this.keys.indexOf(e) === -1 && (this.keys.push(e), t());\n }\n};\nlet p = y;\np.log = (...e) => C(console.log, ...e);\np.warn = (...e) => C(console.warn, ...e);\np.error = (...e) => C(console.error, ...e);\np.info = (...e) => C(console.info, ...e);\nconst D = (e) => {\n let t = {}, o, r;\n if (typeof e != \"object\" || e === null)\n return e;\n t = Array.isArray(e) ? [] : {};\n for (r in e)\n o = e[r], t[r] = typeof o == \"object\" && o !== null ? D(o) : o;\n return t;\n}, j = D, it = (e) => {\n if (!e)\n return null;\n const t = localStorage.getItem(\n `humany_${_(e.tenant + e.name)}`\n );\n if (t) {\n const { activeStickyWidget: o } = JSON.parse(t);\n if (o && o.value && e.widgets.get(o.value)) {\n const i = document.createElement(\"a\");\n i.setAttribute(\n \"href\",\n `//${e.bindings[0]}/${o.value}`\n ), document.body.appendChild(i);\n }\n }\n}, nt = (e, t = !1) => {\n const o = new Date(e);\n let r = `${o.getMonth() + 1}`, i = `${o.getDate()}`;\n const n = o.getFullYear();\n if (r.length < 2 && (r = `0${r}`), i.length < 2 && (i = `0${i}`), t) {\n let a = `${o.getHours()}`, f = `${o.getMinutes()}`;\n return a.length < 2 && (a = `0${a}`), f.length < 2 && (f = `0${f}`), `${[n, r, i].join(\"-\")} ${[a, f].join(\":\")}`;\n }\n return [n, r, i].join(\"-\");\n};\nfunction st(e) {\n const t = document.cookie;\n if (t.length > 0) {\n let o = t.indexOf(`${e}=`);\n if (o !== -1) {\n o = o + e.length + 1;\n let r = t.indexOf(\";\", o);\n return r === -1 && (r = t.length), unescape(t.substring(o, r));\n }\n }\n return null;\n}\nfunction _(e) {\n let t = 0;\n if (e.length === 0)\n return t.toString();\n for (let o = 0; o < e.length; o++) {\n const r = e.charCodeAt(o);\n t = (t << 5) - t + r, t = t & t;\n }\n return t.toString();\n}\nconst ft = (e, t) => {\n if (!e || !t)\n return !0;\n let o = t.parentNode, r = !1;\n for (; o !== null; )\n o === e && (r = !0), o = o.parentNode;\n return r;\n};\nfunction at(e) {\n return e.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/\\s+/g, \"-\").toLowerCase();\n}\nclass Z {\n constructor(t, o) {\n this.lockWarningTime = t, this.lockErrorTime = o, this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, o, r, i) {\n this.tasks.push({ task: t, resolve: o, reject: r, done: i }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n let o;\n const r = setTimeout(() => {\n process.env.NODE_ENV !== \"production\" && p.warn(\n `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\n t\n ), o = setTimeout(() => {\n t.reject(\"lock timeout exceeded\");\n }, this.lockErrorTime);\n }, this.lockWarningTime), i = Promise.resolve(t.task()).then((n) => (clearTimeout(r), clearTimeout(o), n));\n return Promise.resolve(i).then(this.next).then(\n () => i.then((n) => {\n t.done(), t.resolve(n);\n })\n ).catch((n) => (t.done(), t.reject(n), this.next()));\n }\n return Promise.resolve();\n });\n }\n}\nconst b = /* @__PURE__ */ new WeakMap();\nfunction ct(e, t = 5e3, o = 1e3) {\n return b.has(e) || b.set(e, new Z(t, o)), (r) => new Promise((i, n) => {\n const a = b.get(e);\n a.add(r, i, n, () => {\n a.tasks.length || b.delete(e);\n });\n });\n}\nconst v = (e) => !!e && typeof e == \"object\" && !Array.isArray(e), J = (e, ...t) => {\n const o = j(e), r = j(t);\n return w(o, ...r);\n}, w = (e, ...t) => {\n if (!t.length)\n return e;\n const o = t.shift();\n if (v(e) && v(o))\n for (const r in o)\n v(o[r]) ? (e[r] || Object.assign(e, { [r]: {} }), w(e[r], o[r])) : Object.assign(e, { [r]: o[r] });\n return w(e, ...t);\n}, ut = J, Q = (e, t) => {\n const o = () => t.querySelectorAll(\"[data-loading=true]\").length > 0, i = (() => {\n let a = !1;\n return () => {\n if (a)\n return;\n e.get(\"$widget\").events.dispatch(\"widget:data-loaded\", {\n element: t\n }), a = !0;\n };\n })();\n if (!o())\n return i();\n new MutationObserver((a, f) => {\n a.find(\n (g) => g.type === \"attributes\" && g.attributeName === \"data-loading\"\n ) && !o() && (f.disconnect(), i());\n }).observe(t, {\n attributes: !0,\n childList: !0,\n subtree: !0\n });\n}, R = (e, t) => {\n e.get(\"$widget\").container.getAsync(\"components\").then((r) => {\n r.events.subscribeOnce(\"components:component-model-initialized\", () => {\n let i = r.nodes.visible.reduce(\n (f, c) => (!c.name || !c.type || c.type === \"view\" || c.type === \"root\" || c.attributes.layout.size === \"none\" || t.querySelector(`[data-name=\"${c.name}\"]`) || f.push(c.name), f),\n []\n ), n = !1;\n new MutationObserver((f, c) => {\n f.forEach((g) => {\n if (g.addedNodes) {\n const m = Array.from(\n g.addedNodes\n ).reduce((u, l) => {\n const h = l.getAttribute && l.getAttribute(\"data-name\");\n return h && i.indexOf(h) > -1 && u.push(h), u;\n }, []);\n i = i.filter((u) => m.indexOf(u) === -1), !n && i.length === 0 && (n = !0, Q(e, t), c.disconnect());\n }\n });\n }).observe(t, {\n attributes: !1,\n characterData: !1,\n childList: !0,\n subtree: !0,\n attributeOldValue: !1,\n characterDataOldValue: !1\n });\n });\n });\n}, lt = R, H = (e = {}) => (Object.keys(e).forEach((t) => {\n (e[t] === null || typeof e[t] == \"undefined\") && delete e[t];\n}), e), gt = H;\nfunction mt(e, t, o) {\n let r = \"\";\n if (o) {\n const i = /* @__PURE__ */ new Date();\n i.setTime(i.getTime() + o * 24 * 60 * 60 * 1e3), r = `; expires=${i.toUTCString()}`;\n }\n document.cookie = `${e}=${t}${r}; path=/`;\n}\nconst dt = (e, t) => {\n let o = !0;\n return Object.keys(e).length !== Object.keys(t).length || Object.keys(e).some((i) => !Object.keys(t).some((a) => i === a)) ? !1 : (Object.keys(e).forEach((i) => {\n if (o) {\n const n = typeof e[i] == \"undefined\" ? \"\" : e[i], a = typeof t[i] == \"undefined\" ? \"\" : t[i];\n o = n.toString() === a.toString();\n }\n }), o);\n}, d = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction ht() {\n return d() + d() + \"-\" + d() + \"-\" + d() + \"-\" + d() + \"-\" + d() + d() + d();\n}\nclass pt {\n constructor(t) {\n this.queue = [], this.queueAttemptCalls = 0, this.callCount = 5, this.add = (o) => {\n this.queue.push(o), this.queueAttempt = setInterval(this.processQueue, 1e3);\n }, this.processQueue = () => {\n if (this.queue.length > 0) {\n const o = [];\n this.queue.forEach((r, i) => {\n const n = r();\n typeof n == \"function\" && (n(), o.push(i));\n }), this.queue = this.queue.filter((r, i) => !(o.indexOf(i) > -1)), this.queueAttempt && clearInterval(this.queueAttempt);\n }\n this.queueAttemptCalls > this.callCount && (clearInterval(this.queueAttempt), this.queueAttemptCalls = 0), this.queueAttemptCalls = this.queueAttemptCalls + 1;\n }, t && t.callCount && (this.callCount = t.callCount);\n }\n}\nexport {\n p as Logger,\n pt as WaitFor,\n X as appendClassNames,\n et as buildCategoryTrail,\n T as camilize,\n Y as categoryTrail,\n tt as createBatch,\n N as createParams,\n ot as dataURItoBlob,\n rt as debugLog,\n j as deepClone,\n it as findAndActivateStoredWidgets,\n W as findCategoryById,\n nt as formatDate,\n E as formatUrl,\n F as getCategoryTrailAsObjects,\n st as getCookie,\n _ as hash,\n ft as htmlParentContains,\n at as kebabCase,\n ct as lock,\n ut as mergeDeep,\n lt as notifyDataLoaded,\n gt as removeNullAndUndefinedValues,\n mt as setCookie,\n dt as shallowCompare,\n ht as uuid\n};\n//# sourceMappingURL=index.js.map\n","var V = Object.defineProperty, j = Object.defineProperties;\nvar q = Object.getOwnPropertyDescriptors;\nvar D = Object.getOwnPropertySymbols;\nvar z = Object.prototype.hasOwnProperty, Q = Object.prototype.propertyIsEnumerable;\nvar S = (s, t, e) => t in s ? V(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e, y = (s, t) => {\n for (var e in t || (t = {}))\n z.call(t, e) && S(s, e, t[e]);\n if (D)\n for (var e of D(t))\n Q.call(t, e) && S(s, e, t[e]);\n return s;\n}, _ = (s, t) => j(s, q(t));\nimport { bootstrapImplementation as F, ConfigurationApi as G } from \"@webprovisions/bootstrapping\";\nimport { selectImplementations as K, createConfigurationApi as U, version as W, Environment as Y, Implementation as J, Plugin as X, WidgetType as Z } from \"@webprovisions/platform\";\nimport { uuid as O, Logger as N } from \"@telia-ace/widget-utilities\";\nclass yt {\n constructor(t) {\n const { events: e } = t.get(\"$widget\");\n this.events = e.createChild(this);\n }\n action(t, e, n) {\n this.events.dispatch(\"data:action\", { action: e, value: n, target: t }, { bubbles: !0 });\n }\n subscribe(t, e) {\n return this.events.subscribe(\n \"data:action\",\n (n, { action: i, value: r, target: c }) => t === c && e(t, i, r)\n );\n }\n}\nconst xt = (s, t, e = {}) => F(\n s,\n s.bindings,\n () => {\n const n = s.container.get(\"$runtimecfg\").map((i) => {\n const r = i[0];\n if (typeof r == \"function\")\n return r;\n if (K(r)(s))\n return i[1];\n }).filter((i) => !!i);\n return (t ? [t] : []).concat(n);\n },\n e.rootElementResolver || (() => document.body)\n), tt = (s) => {\n const t = [];\n return [\n (n, i) => {\n t.push(s.subscribe(n, i));\n },\n () => {\n t.forEach((n) => {\n n();\n });\n }\n ];\n};\nclass P {\n constructor(t, e = []) {\n this.platform = t, this.rules = e;\n }\n match(t) {\n return this.rules.every((e) => !(e.id && e.id !== t.id || e.type && e.type !== t.type));\n }\n ofType(t) {\n return this.rules.push({ type: t }), this;\n }\n withId(t) {\n return this.rules.push({ id: t }), this;\n }\n select() {\n return new et(this.platform, this);\n }\n}\nclass H {\n constructor(t, e, n) {\n this.platform = t, this.node = e, this.actions = new k(\n t,\n new P(t).withId(e.id),\n n\n );\n const [i, r] = tt(this.platform.events);\n this.subscribe = i, this.unsubscribe = r;\n }\n properties(t) {\n return t && this.node.touchProperties((e) => t(e)), this.node.attributes.properties;\n }\n context(t) {\n return t && this.subscribe(\"components:context-changed\", (e, { node: n }) => {\n n === this.node && t(this.node.attributes.context);\n }), this.node.attributes.context;\n }\n layout(t) {\n return t && this.subscribe(\"components:layout-changed\", (e, { node: n }) => {\n n === this.node && t(this.node.attributes.layout);\n }), this.node.attributes.layout;\n }\n writeProperties(t, e) {\n this.node.writeProperties(t, e);\n }\n writeContext(t, e) {\n this.node.writeProperties(t, e);\n }\n writeLayout(t, e) {\n this.node.writeLayout(t, e);\n }\n dispose() {\n this.unsubscribe(), this.actions.dispose();\n }\n}\nclass et {\n constructor(t, e, n = !0) {\n this.platform = t, this.target = e, this.clearOnDispose = n, this.removes = [], this.actions = new k(this.platform, this.target);\n }\n writeProperties(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { properties: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeContext(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { context: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeLayout(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { layout: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n dispose() {\n this.removes.forEach((t) => {\n t();\n }), this.actions.dispose();\n }\n}\nconst st = (s, t, e) => {\n const n = s.concat(), i = (r, c, a) => {\n let u = !0;\n if (n.length) {\n const h = n.shift(), o = (p, l) => (u = !1, i(p, Object.assign({}, c, l), a));\n return Promise.resolve(h(r, o, a)).then((p) => _(y({}, p), {\n cancelled: u\n }));\n }\n return Promise.resolve({ data: r, cancelled: !1, options: c });\n };\n return i(t, {}, e);\n};\nclass k {\n constructor(t, e, n) {\n this.platform = t, this.target = e, this.ns = n, this.subscriptions = [], this.create = this.create.bind(this);\n }\n create(t, e = () => {\n }) {\n const n = {\n key: t,\n fn: e,\n target: this.target,\n ns: this.ns\n };\n this.platform.actionsState.handlers.push(n);\n const i = () => {\n const r = this.platform.actionsState.handlers.indexOf(n);\n r > -1 && this.platform.actionsState.handlers.splice(r, 1);\n };\n return this.subscriptions.push(i), i;\n }\n dispatch(t, e) {\n const n = this.platform.nodes.all.concat(\n this.platform.nodes.detached\n ), i = {}, r = this.platform.actionsState.handlers.filter(\n (c) => c.key === t && (!c.ns || !this.ns || c.ns === this.ns)\n );\n return Promise.all(\n r.map((c) => {\n const a = n.filter(\n (h) => c.target.match(h) && this.target.match(h)\n ), u = this.platform.actionsState.watchers.filter((h) => h.key === t && (!h.ns || !this.ns || h.ns === this.ns) && a.some((o) => h.target.match(o))).map((h) => h.fn);\n return Promise.all(\n a.map((h) => {\n const o = new H(\n this.platform,\n h,\n this.ns\n );\n return st(u, e, o).then((p) => {\n const { data: l = {}, options: d, cancelled: b } = p;\n return Promise.resolve(\n b ? {} : c.fn(l, d, o)\n ).then((g) => {\n i[h.id] = g;\n });\n });\n })\n );\n })\n ).then(() => i);\n }\n watch(t, e) {\n let n = t, i = this.ns;\n const r = t.split(\".\");\n r.length > 1 && (i = r[0], n = r.splice(1).join(\".\"));\n const c = {\n fn: e,\n target: this.target,\n key: n,\n ns: i\n };\n this.platform.actionsState.watchers.push(c);\n const a = () => {\n const u = this.platform.actionsState.watchers.indexOf(c);\n u > -1 && this.platform.actionsState.watchers.splice(u, 1);\n };\n return this.subscriptions.push(a), a;\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n}\nconst wt = U((s) => {\n s.createCommand(\"components\", (t) => (e) => {\n t.events.subscribeOnce(\"components:platform-created\", (n, { platform: i }) => {\n e.handlers && e.handlers.forEach(([r, c]) => {\n i.addComponentHandler(r, c);\n });\n });\n });\n});\nclass L {\n constructor(t, e) {\n this.events = t, this.tags = [], this.children = {}, this.changesets = [], this.mountCount = 0, this.id = O(), this.type = e, this.attributes = {\n context: {},\n properties: {},\n layout: {},\n tags: []\n }, this.writeLayout({ size: \"full\", indent: 0 });\n }\n mount(t, e) {\n let n = t.get(\"mounted-nodes\");\n return n || (n = /* @__PURE__ */ new Map(), t.register(\"mounted-nodes\", n)), n.has(this) ? (process.env.NODE_ENV !== \"production\" && N.error(\"Trying to mount an already mounted component node.\", this), () => {\n }) : (this.events.dispatch(\"components:node-mounted\", { node: this }), this.mountCount === 0 && (this.mountCount = this.mountCount + 1, this.events.dispatch(\"components:node-enter\", { node: this })), () => {\n n.delete(this), this.events.dispatch(\"components:node-unmounted\", { node: this }), this.mountCount = this.mountCount - 1, this.mountCount === 0 && this.events.dispatch(\"components:node-exit\", { node: this });\n });\n }\n appendChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].push(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n prependChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].unshift(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n touchProperties(t, e = {}, n) {\n const r = [{ properties: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (n) {\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeProperties(t, e = {}, n) {\n const r = [{ properties: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (n) {\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeLayout(t, e = {}, n) {\n const r = [{ layout: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-layout\", { node: this }), () => {\n if (!n)\n return;\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-layout\", { node: this }));\n };\n }\n writeContext(t, e = {}, n) {\n const r = [{ context: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-context\", { node: this }), () => {\n if (!n)\n return;\n const c = this.changesets.indexOf(r);\n c > -1 && (this.changesets.splice(c, 1), this.events.dispatch(\"components:set-context\", { node: this }));\n };\n }\n getChildren(t = \"default\") {\n const e = this.children[t] || [];\n return e.reduce((n, i, r) => {\n const { order: c = r } = i.attributes.layout;\n return n[c] ? n.splice(c, 0, i) : n[c] = i, n;\n }, Array(e.length));\n }\n remove() {\n this.parent && this.parent.removeChild(this);\n }\n removeChild(t) {\n Object.keys(this.children).forEach((e) => {\n const n = this.children[e], i = n.indexOf(t);\n i > -1 && (n.splice(i, 1), this.events.dispatch(\"components:node-removed\", { node: t, parentNode: this }));\n }), delete t.parent;\n }\n}\nconst B = (s, t, e) => {\n for (let n = 0, i = s.length; n < i && e(s[n]) !== !0; n++) {\n const r = t[s[n].id] || \"default\", c = s[n].getChildren(r);\n B(c, t, e);\n }\n}, $ = (s, t, e) => {\n if (e(s) !== !0) {\n const n = t[s.id] || \"default\", i = s.children[n];\n B(i, t, e);\n }\n}, w = (s, t) => {\n const e = [];\n return $(s, t, (n) => {\n e.push(n);\n }), e;\n}, nt = (s, t, e) => {\n let n;\n return $(s, t, (i) => {\n if (e(i))\n return n = i, !0;\n }), n;\n};\nclass it {\n constructor(t, e, n) {\n this.root = t, this.switches = e, this.all = [], this.visible = [], this.detached = [], n.subscribe(\"components:node-appended\", (i, r) => {\n this.all.push(r.node), this.visible = w(t, e);\n }), n.subscribe(\"components:node-removed\", (i, r) => {\n let c = this.all.indexOf(r.node);\n c > -1 && this.all.splice(c, 1), c = this.visible.indexOf(r.node), c > -1 && this.visible.splice(c, 1), this.visible = w(t, e);\n }), n.subscribe(\"components:node-switched\", (i, r) => {\n this.visible = w(t, e);\n });\n }\n query(t = {}) {\n const e = [];\n return $(this.root, this.switches, (n) => {\n Object.keys(t).every((r) => t[r] === n[r]) && e.push(n);\n }), e;\n }\n get(t) {\n return nt(this.root, this.switches, (e) => e.id === t) || this.detached.find((e) => e.id === t);\n }\n}\nclass ot {\n constructor() {\n this.handlers = /* @__PURE__ */ new Map();\n }\n add(t, e) {\n this.handlers.set(t, e);\n }\n get(t) {\n return this.handlers.get(t);\n }\n}\nconst rt = (s) => {\n let t = s, e = 0;\n for (; t.parent; )\n e = e + 1, t = t.parent;\n return e;\n}, ct = (s) => s.map(([e, n]) => [rt(e), e, n]).sort(([e], [n]) => e - n).map(([, e, n]) => [e, n]), C = (s) => s instanceof Date ? !1 : s && typeof s == \"object\" && !Array.isArray(s), v = (s, ...t) => {\n if (!t.length)\n return s;\n const e = t.shift();\n if (C(s) && C(e))\n for (const n in e)\n C(e[n]) ? (s[n] || Object.assign(s, { [n]: {} }), v(s[n], e[n])) : Object.assign(s, { [n]: e[n] });\n return v(s, ...t);\n}, ht = (s, t) => !s || s === \"all\" ? !0 : s.some((e) => t.indexOf(e) > -1), at = (s, t) => {\n let e = [], n = [], i;\n const r = () => {\n process.env.NODE_ENV !== \"production\" && console.time(\"state-processor.flush\");\n const a = /* @__PURE__ */ new Map(), u = ct(e.map((o, p) => [o, n[p]])), h = (o, p) => {\n var I;\n const l = a.get(o) || {}, d = p.context && !l.context, b = p.properties && !l.properties, g = p.layout && !l.layout;\n a.set(o, {\n context: l.context || d,\n properties: l.properties || b,\n layout: l.layout || g\n }), b && (o.attributes.properties = {}), g && (o.attributes.layout = {}), d && (o.attributes.context = v({}, (I = o.parent) == null ? void 0 : I.attributes.context));\n const R = [], A = [], T = [];\n if (o.changesets.forEach((f) => {\n const [m, x] = f;\n ht(x.breakpoints, s.breakpoints) && (b && (typeof m.properties == \"function\" ? R.push(\n m.properties\n ) : v(o.attributes.properties, m.properties)), g && (typeof m.layout == \"function\" ? A.push(m.layout) : v(o.attributes.layout, m.layout)), d && (typeof m.context == \"function\" ? T.push(m.context) : v(o.attributes.context, m.context)));\n }), R.forEach((f) => {\n v(o.attributes.properties, f(o.attributes.properties));\n }), A.forEach((f) => {\n v(o.attributes.layout, f(o.attributes.layout));\n }), T.forEach((f) => {\n v(o.attributes.context, f(o.attributes.context));\n }), d || p.recursive) {\n const f = s.getBranch(o), m = p.recursive ? p : {\n context: !!d\n };\n o.getChildren(f).forEach((x) => {\n h(x, m);\n });\n }\n };\n process.env.NODE_ENV !== \"production\" && console.timeEnd(\"state-processor.flush\"), u.forEach(([o, p]) => {\n h(o, p);\n }), e = [], n = [], t(a);\n }, c = () => {\n clearTimeout(i), i = setTimeout(r, 0);\n };\n return (a, u) => {\n const h = e.indexOf(a);\n if (h > -1) {\n const o = n[h];\n return u.context && (o.context = !0), u.properties && (o.properties = !0), u.layout && (o.layout = !0), u.recursive && (o.recursive = !0), c();\n }\n return e.push(a), n.push(u), c();\n };\n};\nclass pt {\n constructor(t, e = {}) {\n this.providers = e, this.breakpoints = [], this.actionsState = { handlers: [], watchers: [] }, this.switches = {}, this.changesets = [], this.subscriptions = [], this.customComponentHandler = new ot(), this.events = t.events.createChild(this);\n const n = new L(this.events, \"root\");\n n.name = `root-${t.name}`, this.nodes = new it(n, this.switches, this.events);\n const i = this.processNode = at(this, (r) => {\n const c = Array.from(r.keys());\n process.env.NODE_ENV !== \"production\" && console.info(`STATE PROCESSOR: ${c.length} node(s) processed:\n${c.map(\n (a) => `${a.name || \"<no name>\"} (${a.id})\n`\n )}`), c.forEach((a) => {\n const u = r.get(a);\n a.parent && a.parent.type === \"root\" && this.events.dispatch(\"components:root-children-changed\", { node: a }), u != null && u.context && this.events.dispatch(\"components:context-changed\", { node: a }), u != null && u.properties && this.events.dispatch(\"components:properties-changed\", { node: a }), u != null && u.layout && this.events.dispatch(\"components:layout-changed\", { node: a });\n }), this.events.dispatch(\"components:component-model-initialized\", {}, { bubbles: !0 });\n });\n Promise.all(\n Object.keys(e).map((r) => e[r].load(this))\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (r, c) => {\n const { node: a } = c;\n this.changesets.forEach((u) => {\n const { changeset: h, target: o, removes: p } = u, [l, d] = h;\n o.match(c.node) && (l.properties && p.push(a.writeProperties(l.properties, d)), l.context && p.push(a.writeContext(l.context, d)), l.layout && p.push(a.writeLayout(l.layout, d)));\n });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (r, c) => {\n i(c.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-properties\",\n (r, c) => {\n i(c.node, { properties: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-context\",\n (r, c) => {\n i(c.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-indent\",\n (r, c) => {\n i(c.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-layout\",\n (r, c) => {\n i(c.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-switched\", (r, { node: c, branch: a }) => {\n i(c, {\n layout: !0,\n recursive: !0,\n properties: !0,\n context: !0\n });\n })\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-removed\", (r, { parentNode: c }) => {\n i(c, { properties: !0 });\n })\n ), this.events.parent && this.events.parent.dispatch(\"components:platform-created\", { platform: this });\n }\n static getInstance(t) {\n return t.getAsync(\"components\");\n }\n addBreakpoint(t) {\n this.breakpoints.indexOf(t) === -1 && (this.breakpoints.push(t), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n removeBreakpoint(t) {\n const e = this.breakpoints.indexOf(t);\n e > -1 && (this.breakpoints.splice(e, 1), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n setSwitch(t, e) {\n this.switches[t.id] = e, this.events.dispatch(\"components:node-switched\", { node: t, branch: e });\n }\n getBranch(t) {\n return this.switches[t.id];\n }\n /**\n * Creates a `ComponentNode` of the specified type.\n * @param type Type of node.\n */\n createNode(t, e = {}) {\n const n = new L(this.events, t);\n return e.detached && this.nodes.detached.push(n), n;\n }\n components() {\n return new P(this);\n }\n actions(t, e) {\n return new k(this, t, e);\n }\n write(t) {\n const { provider: e, target: n, attributes: i, options: r = {}, removable: c } = t, a = t.key || O(), h = { changeset: [i, r], target: n, removes: [] };\n if (e) {\n const o = this.providers[e];\n o.write(a, n, i, r), h.removes.push(() => {\n o.remove(a);\n });\n }\n return this.changesets.push(h), this.nodes.all.forEach((o) => {\n if (n.match(o)) {\n let p = () => {\n };\n i.properties && (p = o.writeProperties(i.properties, r, c)), i.context && (p = o.writeContext(i.context, r, c)), i.layout && (p = o.writeContext(i.layout, r, c)), h.removes.push(p);\n }\n }), () => {\n if (c) {\n h.removes.forEach((p) => p());\n const o = this.changesets.indexOf(h);\n o > -1 && this.changesets.splice(o, 1);\n }\n };\n }\n addComponentHandler(t, e) {\n this.customComponentHandler.add(t, e);\n }\n getComponentHandler(t) {\n return this.customComponentHandler.get(t);\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n}\nconst ut = (s) => {\n if (Array.isArray(s)) {\n const [t, ...e] = s;\n return {\n definitionId: t,\n overrides: e\n };\n }\n return {\n definitionId: s,\n overrides: []\n };\n}, E = (s, t, e, n, i, r) => {\n e.forEach((c) => {\n const a = ut(c), u = n[a.definitionId];\n if (a.definitionId === \"view\") {\n const h = s.createNode(\"view\");\n h.name = \"view\", Object.keys(i).forEach((o) => {\n const p = i[o];\n E(s, h, [p.entry], n, i, o);\n }), t.appendChild(h), a.overrides.forEach((o) => {\n o.properties && h.writeProperties(o.properties, {\n breakpoints: o.breakpoints\n }), o.context && h.writeContext(o.context, { breakpoints: o.breakpoints }), o.layout && h.writeLayout(o.layout, { breakpoints: o.breakpoints });\n });\n } else if (s.getComponentHandler(u.type)) {\n const h = s.getComponentHandler(u.type);\n h && h(a, {\n platform: s,\n node: t,\n references: e,\n definitions: n,\n views: i,\n branch: r\n });\n } else {\n const h = n[a.definitionId];\n if (process.env.NODE_ENV !== \"production\" && !h) {\n N.error(\n `No definition found for component type '${a.definitionId}'.`\n );\n return;\n }\n const o = s.createNode(h.type);\n o.name = a.definitionId, o.tags = h.tags || [], h.properties && o.writeProperties(h.properties), h.context && o.writeContext(h.context), h.layout && o.writeLayout(h.layout), t.appendChild(o, r), a.overrides.forEach((p) => {\n const l = { breakpoints: p.breakpoints };\n p.properties && o.writeProperties(p.properties, l), p.context && o.writeContext(p.context, l), p.layout && o.writeLayout(p.layout, l);\n }), h.children && E(s, o, h.children, n, i);\n }\n });\n}, Ct = (s, t) => {\n const { entry: e, components: n, breakpoints: i, views: r } = t, c = [];\n return Object.keys(i).forEach((a) => {\n const u = i[a], h = window.matchMedia(u);\n h.matches && s.breakpoints.push(a);\n const o = (p) => {\n p.matches ? s.addBreakpoint(a) : s.removeBreakpoint(a);\n };\n h.addListener(o), c.push(() => h.removeListener(o));\n }), E(s, s.nodes.root, [e], n, r), () => c.forEach((a) => {\n a();\n });\n}, Et = (s, t) => ({\n id: s.id,\n type: s.type,\n name: s.name,\n branch: t || \"default\"\n}), Ot = (s, t, e, n = O(), i = {}) => s.getAsync(\"components\").then((r) => {\n let c;\n if (typeof t == \"string\") {\n const h = new P(r);\n h.ofType(t), c = h;\n } else\n c = t;\n const a = {}, u = (h) => {\n const o = a[h.id];\n return o ? Promise.resolve(o.controller) : pt.getInstance(s).then((p) => new H(p, h, n));\n };\n r.events.subscribe(\n \"components:node-enter\",\n (h, { node: o }) => {\n c.match(o) && u(o).then((p) => {\n Promise.resolve(e(p)).then((l) => {\n a[o.id] = {\n dispose: l,\n controller: p\n };\n });\n });\n }\n ), r.events.subscribe(\n \"components:node-exit\",\n (h, { node: o }) => {\n const p = a[o.id];\n p && (p.dispose && p.dispose(), i.reuseController || (p.controller.dispose(), delete a[o.id]));\n }\n );\n});\nclass Nt {\n constructor(t) {\n this.aliases = /* @__PURE__ */ new Map(), this.components = /* @__PURE__ */ new Map(), this.logger = new N();\n const { events: e } = t.get(\"$widget\");\n this.events = e;\n }\n getComponent(t) {\n const e = this.aliases.get(t), n = this.components.get(e || t) || null;\n return process.env.NODE_ENV !== \"production\" && (n || this.logger.warn(\n e || t,\n `Unable to resolve component: \"${e || t}\". You most likely forgot to register the required plugin for: ${e || t}.`\n )), n;\n }\n registerComponent(t, e) {\n return this.components.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.components.delete(t);\n };\n }\n registerResolver(t, e) {\n return this.events.subscribe(\"component-resolver:resolve\", (n, i) => {\n if (i === t) {\n const r = this.getComponent(t);\n e(r);\n }\n });\n }\n registerAlias(t, e) {\n return this.aliases.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.aliases.delete(t);\n };\n }\n}\nconst lt = \"#____version____#\", M = class extends Y {\n constructor(s, t = []) {\n super(s, t, {\n transformPluginSettings: (e, n, i) => {\n const r = i.get(\"$settings\"), c = r.plugins && n ? r.plugins[n] || {} : {};\n return y(y({}, c), e);\n }\n });\n }\n createImplementation(s) {\n const t = super.createImplementation(s);\n return t.bindings = s.bindings, t;\n }\n /**\n * Performs navigation for widgets matching the specified selector by invoking a\n * 'navigate' command.\n * @param selector Widget selector matching the widget(s) to perform navigation on.\n * @param route Route name.\n * @param params Route params.\n */\n navigate(s, t, e) {\n this.widgets.query(s).forEach((n) => n.invoke(\"navigate\", { route: t, params: e }));\n }\n /**\n * Creates a runtime based on provided configuration.\n * @param configuration Runtime configuration.\n */\n static create(s = {}) {\n const t = [G].concat(\n s.configurationApiExtensions || []\n );\n return new M(\"humany\", t);\n }\n /**\n * Creates a widget runtime based on provided configuration and retains configuration handlers\n * registered on global context. Use this factory to fully support the default embed script.\n * Will return any existing widget runtime if available.\n * @param configuration Runtime configuration.\n * @param global Object to read configuration handlers from (default: window).\n */\n static createFromGlobal(s, t = {}) {\n if (this.isRuntime(s))\n return s.patch(t), s;\n const e = [], n = s && s._c;\n n && n.forEach((r) => e.push(r));\n const i = this.create(t);\n return i.container.register(\"$runtimecfg\", e), i;\n }\n /**\n * Determines whether the specified object is a valid widget runtime.\n * @param obj Object to compare.\n */\n static isRuntime(s) {\n return !!(s && typeof s == \"object\" && s.container && typeof s.container.get == \"function\" && s.container.get(\"$environment\") === s && s.container.owner === s);\n }\n};\nlet dt = M;\ndt.version = `${lt} (${W})`;\nclass Pt extends J {\n constructor() {\n super(...arguments), this.bindings = [];\n }\n}\nclass kt extends X {\n constructor(t, e) {\n super(t, e);\n }\n}\nvar mt = /* @__PURE__ */ ((s) => (s.open = \"open\", s.closed = \"closed\", s.hidden = \"hidden\", s))(mt || {});\nclass $t extends Z {\n constructor(t) {\n super(t);\n }\n}\nexport {\n yt as ActionResolver,\n k as ActionsController,\n L as ComponentNode,\n H as ComponentNodeController,\n pt as ComponentPlatform,\n P as ComponentQuery,\n Nt as ComponentResolver,\n dt as Environment,\n Pt as Implementation,\n kt as Plugin,\n mt as WidgetRenderState,\n $t as WidgetType,\n Et as asDescriptor,\n xt as bootstrap,\n wt as componentConfigurationApi,\n E as createChildren,\n Ct as createComponentModel,\n tt as createEventSubscriber,\n Ot as extendComponent,\n nt as findComponent,\n w as findVisibleComponents,\n $ as traverseComponents,\n lt as version\n};\n//# sourceMappingURL=index.js.map\n","var q = Object.defineProperty;\nvar V = Object.getOwnPropertySymbols;\nvar B = Object.prototype.hasOwnProperty, G = Object.prototype.propertyIsEnumerable;\nvar W = (n, e, t) => e in n ? q(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, p = (n, e) => {\n for (var t in e || (e = {}))\n B.call(e, t) && W(n, t, e[t]);\n if (V)\n for (var t of V(e))\n G.call(e, t) && W(n, t, e[t]);\n return n;\n};\nvar S = (n, e, t) => new Promise((r, s) => {\n var o = (a) => {\n try {\n c(t.next(a));\n } catch (g) {\n s(g);\n }\n }, i = (a) => {\n try {\n c(t.throw(a));\n } catch (g) {\n s(g);\n }\n }, c = (a) => a.done ? r(a.value) : Promise.resolve(a.value).then(o, i);\n c((t = t.apply(n, e)).next());\n});\nimport { Logger as l, lock as f, deepClone as H, hash as L } from \"@telia-ace/widget-utilities\";\nvar u = /* @__PURE__ */ ((n) => (n.Cookie = \"cookie\", n.Local = \"local\", n.Session = \"session\", n))(u || {}), C = /* @__PURE__ */ ((n) => (n.Tenant = \"tenant\", n.Implementation = \"implementation\", n.Widget = \"widget\", n))(C || {}), m = /* @__PURE__ */ ((n) => (n.Necessary = \"necessary\", n.Functional = \"functional\", n.Analytical = \"analytical\", n.Marketing = \"marketing\", n))(m || {});\nconst Q = (n, e, t, r = {}) => j(n, t).then((s) => (process.env.NODE_ENV !== \"production\" && s && l.warn(\n `createStorageWriter: Attempted to create storage writer using unallowed category.\n Key: ${e}\n Category: ${JSON.stringify(t)}\n Options: ${JSON.stringify(r)}`\n), (o) => (T(n), j(n, t).then((i) => {\n if (i) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storageWriter: Attempted to write to storage using unallowed category.\n Key: ${e}\n Category: ${JSON.stringify(t)}\n Value: ${JSON.stringify(o)}\n Options: ${JSON.stringify(r)}`\n );\n return;\n }\n const {\n scope: c = C.Widget,\n medium: a = u.Session,\n duration: g\n } = r, d = Z();\n return d[c][e] = x(o, t, g), a === u.Cookie ? re(n, d) : se(n, a, d);\n})))), X = (n, e, t = u.Session) => (T(n), typeof e == \"undefined\" ? (process.env.NODE_ENV !== \"production\" && l.warn(\"readStorage: Undefined key passed when reading storage. \", e, t), Promise.resolve(void 0)) : t === u.Cookie ? ne(n).then((r) => $(r, e)) : oe(n, t).then((r) => $(r, e))), h = (n) => !!Object.entries(n).filter(([e, t]) => typeof t != \"undefined\").length, b = (n) => Object.entries(n).filter(([e, t]) => typeof t != \"undefined\").forEach(([e, { value: t }]) => {\n typeof t == \"undefined\" && delete n[e];\n}), z = (n, e) => {\n const t = {\n tenant: p(p({}, n.tenant), e.tenant),\n implementation: p(p({}, n.implementation), e.implementation),\n widget: p(p({}, n.widget), e.widget)\n };\n return b(t.tenant), b(t.implementation), b(t.widget), t;\n}, Y = (n) => Object.entries(n).reduce((t, r) => {\n const [s, o] = r;\n return Object.entries(o).forEach((i) => {\n const [c, { expiration: a }] = i;\n a && t.push(a);\n }), t;\n}, []).slice().sort((t, r) => new Date(r).valueOf() - new Date(t).valueOf()).shift() || P(), E = (n) => {\n const {\n name: e,\n implementation: { name: t, tenant: r }\n } = n.get(\"$widget\");\n return [\n `humany_${r}`,\n `humany_${L(r + t)}`,\n `humany_${L(r + t + e)}`\n ];\n}, I = (n) => {\n const e = new RegExp(`(?:^|;)\\\\s?${n}=(.*?)(?:;|$)`, \"i\"), t = document.cookie.match(e);\n return t && t[1] && JSON.parse(t[1]) || void 0;\n}, J = (n, e, t) => {\n const r = `${n}=${JSON.stringify(e).trim()}`, s = `expires=${new Date(t).toUTCString()}`, o = \"path=/\", i = \"SameSite=None;Secure\";\n return document.cookie = `${r}; ${s}; ${o}; ${i}`;\n}, _ = (n) => {\n const [e, t, r] = E(n), s = I(e) || {}, o = I(t) || {}, i = I(r) || {};\n return {\n tenant: s,\n implementation: o,\n widget: i\n };\n}, M = (n, e) => {\n const t = _(n), r = z(t, e), [s, o, i] = E(n), { tenant: c, implementation: a, widget: g } = r, d = Y(e), w = P({ days: -1 });\n J(s, c, h(c) ? d : w), J(\n o,\n a,\n h(a) ? d : w\n ), J(i, g, h(g) ? d : w);\n}, O = (n, e) => {\n const [t, r, s] = E(n), o = e.getItem(t) || \"{}\", i = e.getItem(r) || \"{}\", c = e.getItem(s) || \"{}\";\n return {\n tenant: JSON.parse(o),\n implementation: JSON.parse(i),\n widget: JSON.parse(c)\n };\n}, K = (n, e, t) => {\n const r = O(n, e), s = z(r, t), [o, i, c] = E(n), { tenant: a, implementation: g, widget: d } = s;\n h(a) ? e.setItem(o, JSON.stringify(a)) : e.removeItem(o), h(g) ? e.setItem(i, JSON.stringify(g)) : e.removeItem(i), h(d) ? e.setItem(c, JSON.stringify(d)) : e.removeItem(c);\n}, Z = () => ({ tenant: {}, implementation: {}, widget: {} }), ee = (n) => n ? !!n && /* @__PURE__ */ new Date() > new Date(n) : !1, $ = (n, e) => {\n const t = n.widget[e] || n.implementation[e] || n.tenant[e];\n return t == null ? void 0 : t.value;\n}, x = (n, e, t) => t ? {\n value: n,\n category: e,\n expiration: typeof t == \"object\" ? P(t) : t\n} : {\n value: n,\n category: e\n}, v = (n, e) => {\n const t = H(n);\n return Object.entries(t).forEach(([r, s]) => {\n Object.entries(s).forEach(([o, i]) => {\n const { expiration: c, category: a } = i;\n (ee(c) || te(e, a)) && (s[o] = x(void 0, a, c));\n });\n }), t;\n}, j = (n, e) => X(n, \"storagePolicy\", u.Cookie).then(\n (t = [m.Necessary]) => !!e && t.indexOf(e) === -1\n), te = (n = [m.Necessary], e) => !!e && n.indexOf(e) === -1, T = (n) => {\n const e = _(n), t = O(n, window.localStorage), r = O(n, sessionStorage), s = $(e, \"storagePolicy\"), [o, i, c] = [\n e,\n t,\n r\n ].map((a) => v(a, s));\n M(n, o), K(n, window.localStorage, i), K(n, window.sessionStorage, c);\n}, P = (n = { days: 30 }) => {\n const { days: e = 0, hours: t = 0, minutes: r = 0, seconds: s = 0 } = n, o = /* @__PURE__ */ new Date();\n return o.setTime(o.getTime() + t * 60 * 60 * 1e3), o.setTime(o.getTime() + e * 24 * 60 * 60 * 1e3), o.setTime(o.getTime() + r * 60 * 1e3), o.setTime(o.getTime() + s * 1e3), o.toISOString();\n}, ne = (n) => f(document)(() => _(n)), re = (n, e) => f(document)(() => M(n, e)), oe = (n, e) => {\n const t = e === u.Local ? window.localStorage : window.sessionStorage;\n return f(t)(() => O(n, t));\n}, se = (n, e, t) => {\n const r = e === u.Local ? window.localStorage : window.sessionStorage;\n return f(r)(() => K(n, r, t));\n};\nclass k {\n constructor() {\n this.memory = {\n tenant: {},\n implementation: {},\n widget: {}\n };\n }\n setItem(s, o) {\n return S(this, arguments, function* (e, t, r = {}) {\n return f(this)(() => {\n const i = v(this.memory, [m.Necessary]), { scope: c = C.Tenant, expiration: a } = r;\n i[c][e] = x(\n t,\n m.Necessary,\n (a == null ? void 0 : a.toISOString()) || P()\n ), this.memory = i, process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value stored temporarily in memory.\n Key: ${e}\n Value: ${JSON.stringify(t)}\n Options: ${JSON.stringify(r)}\n Memory: ${JSON.stringify(i)}`\n );\n });\n });\n }\n getItem(e) {\n return S(this, null, function* () {\n return f(this)(() => {\n const t = v(this.memory, [m.Necessary]);\n process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value fetched from legacy memory storage.\n Key: ${e}\n Memory: ${JSON.stringify(t)}`\n );\n const r = $(t, e);\n return this.memory = t, r;\n });\n });\n }\n removeItem(e) {\n return S(this, null, function* () {\n return f(this)(() => {\n const t = v(this.memory, [m.Necessary]);\n delete t.tenant[e], delete t.implementation[e], delete t.widget[e], this.memory = t, process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value removed from memory.\n Key: ${e}\n Memory: ${JSON.stringify(t)}`\n );\n });\n });\n }\n clear() {\n return S(this, null, function* () {\n return Promise.resolve();\n });\n }\n}\nclass de {\n constructor() {\n this.cookies = new k(), this.session = new k(), this.local = new k();\n }\n}\nconst D = (n, e, t, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${t}`;\n switch (e) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, ie = (n) => {\n const e = n.container || n;\n return {\n info: (t, ...r) => D(e, \"info\", t, ...r),\n warn: (t, ...r) => D(e, \"warning\", t, ...r),\n error: (t, ...r) => D(e, \"error\", t, ...r)\n };\n};\nvar A = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(A || {}), y = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(y || {});\nconst ae = (n, e, t, r) => {\n try {\n const s = new e(t, r);\n return {\n name: n,\n invoke: (o, i) => {\n let c;\n return s[o] && (c = s[o].call(s, i)), Promise.resolve(c);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (o) => {\n let i;\n return o === \"initialize\" && (i = e(t, r)), Promise.resolve(i);\n },\n getInstance: () => e\n };\n throw s;\n }\n};\nfunction F(n, e) {\n return typeof n == \"undefined\" ? e : n;\n}\nclass ce {\n constructor(e = {}) {\n this.part = e;\n }\n createCommand(e, t, r) {\n let s;\n typeof t == \"function\" ? s = {\n scope: A.Widget,\n stage: y.Post,\n defaultArgs: void 0,\n handlerResolver: t\n } : s = {\n scope: F(t.scope, A.Widget),\n stage: F(t.stage, y.Post),\n defaultArgs: t.defaultArgs,\n handlerResolver: r\n };\n let o = this.part;\n const i = e.split(\".\");\n return i.forEach((c, a) => {\n a === i.length - 1 ? o[c] || (o[c] = () => s) : o = this.part[c] = this.part[c] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst R = (n) => {\n const e = new ce({});\n return n(e), e.get();\n};\nR((n) => {\n n.createCommand(\n \"types.register\",\n { scope: A.Implementation, stage: y.Pre },\n (e) => (t, r) => {\n e.container.get(\"$types\")[t] = r;\n }\n ).createCommand(\n \"type\",\n { stage: y.Pre },\n (e) => (t) => {\n e.container.register(\"$type\", t);\n }\n ).createCommand(\n \"settings\",\n { stage: y.Pre, defaultArgs: [null] },\n (e) => (t) => {\n e.events.dispatch(\n \"settings:change\",\n t,\n { bubbles: !0 }\n ), e.container.register(\"$settings\", t);\n }\n ).createCommand(\n \"plugin\",\n { stage: y.Pre },\n (e) => (t, r, s) => {\n const { container: o } = e;\n let i = null, c = t, a = r;\n typeof t == \"string\" && (i = t, c = r, a = s);\n const g = (d) => {\n const { transformPluginSettings: w } = e.container.get(\"$environmentOptions\"), U = w ? w(\n a || {},\n i,\n e.container,\n c\n ) : r;\n try {\n const N = ae(\n i,\n c,\n o,\n U\n );\n o.get(\"$plugins\").push(N), d && N.invoke(\"initialize\", null);\n } catch (N) {\n ie(e).warn(\"Error when initializing plugin\", N);\n }\n };\n e.container.get(\"$instance\") ? g(!0) : e.events.subscribeOnce(\"widget:instance-created\", () => g(!1));\n }\n ).createCommand(\n \"container.register\",\n (e) => (t, r) => {\n e.container.register(t, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (e) => (t, r) => {\n e.container.registerAsync(t, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (e) => (t, r) => {\n e.container.registerFactory(t, r);\n }\n ).createCommand(\n \"container.touch\",\n (e) => (t, r) => {\n e.container.touch(t, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (e) => (t) => {\n e.container.register(\"csp\", t);\n }\n );\n});\nconst le = R((n) => {\n n.createCommand(\"storage\", (e) => (t = {}) => {\n const { consent: r } = t;\n if (typeof r != \"undefined\") {\n if (typeof r != \"number\" && typeof r != \"string\" && !Array.isArray(r)) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n if (Array.isArray(r) && !r.every(\n (o) => typeof o == \"number\" || typeof o == \"string\"\n )) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n const s = [\n m.Necessary,\n m.Functional,\n m.Analytical,\n m.Marketing\n ].filter((o, i, c) => typeof r == \"number\" ? r > i : typeof r == \"string\" ? c.indexOf(r) + 1 > i : Array.isArray(r) ? r.findIndex((a) => a === i + 1 || a === o) > -1 : !0);\n return s.indexOf(m.Necessary) === -1 && (process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent does not include category: '${m.Necessary}'. Consent has to atleast include the '${m.Necessary}' category.\n Passed consent: ${JSON.stringify(r)}`\n ), s.unshift(m.Necessary)), Q(\n e.container,\n \"storagePolicy\",\n m.Necessary,\n {\n medium: u.Cookie,\n scope: C.Tenant,\n duration: { days: 365 }\n }\n ).then((o) => o(s)).then(() => {\n T(e.container), e.events.dispatch(\"storage:policy-changed\", s);\n });\n }\n });\n});\nexport {\n m as StorageCategory,\n u as StorageMedium,\n de as StorageProvider,\n C as StorageScope,\n k as StorageService,\n Q as createStorageWriter,\n X as readStorage,\n le as storagePolicyConfigurationApi\n};\n//# sourceMappingURL=index.js.map\n","import { EventSubscriptionCancellation, Widget } from '@webprovisions/platform';\r\nimport {\r\n ConversationController,\r\n ConversationMessageType,\r\n getNormalizedMessageSettings,\r\n} from './conversation-controller';\r\nimport { ConversationMessageContent, ConversationMessageSender } from './types';\r\n\r\ntype ConversationLogMessage = {\r\n message?: string;\r\n options?: string[];\r\n alias: string;\r\n source: string;\r\n timestamp: number | null;\r\n};\r\n\r\nexport class ConversationHistory {\r\n private cache: Map<string, any> = new Map();\r\n\r\n private subscriptions: EventSubscriptionCancellation[] = [];\r\n\r\n constructor(private controller: ConversationController) {\r\n const { events } = controller.container.get('$widget') as Widget;\r\n\r\n const unsubscribe = events.subscribe('data-client:fetched', (_e, data) => {\r\n if (data.type === 'contact-method') {\r\n this.cache.set(data.response.id, data.response);\r\n }\r\n });\r\n this.subscriptions.push(unsubscribe);\r\n }\r\n\r\n getConversationLogs(): ConversationLogMessage[] {\r\n const logs = this.controller.messages.reduce<ConversationLogMessage[]>(\r\n (acc, message) => {\r\n const normalized = getNormalizedMessageSettings(message as any);\r\n const { content, type, sender, timestamp } = normalized.content;\r\n\r\n const parsed = this.parseEntry(content, type, sender, timestamp);\r\n\r\n if (parsed) {\r\n acc.push(parsed);\r\n }\r\n\r\n return acc;\r\n },\r\n []\r\n );\r\n\r\n return logs;\r\n }\r\n\r\n parseEntry(\r\n content: ConversationMessageContent,\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender,\r\n timestamp?: any | null\r\n ) {\r\n const handle = (body: any | any[]) => {\r\n let options: string[] = [];\r\n let messagesAsList: string[] = [];\r\n\r\n let messageData: any;\r\n\r\n // the actual content could also be an array,\r\n if (Array.isArray(body)) {\r\n const [_type, data] = body;\r\n messageData = data;\r\n } else {\r\n messageData = body;\r\n }\r\n\r\n const message = this.createMessageContent(messageData);\r\n if (message.length) {\r\n messagesAsList = [\r\n ...messagesAsList,\r\n this.createMessageContent(messageData),\r\n ];\r\n }\r\n options = [...options, ...this.createMessageOptions(messageData)];\r\n\r\n return {\r\n messagesAsList,\r\n options,\r\n };\r\n };\r\n\r\n let options: string[] = [];\r\n let messagesAsList: string[] = [];\r\n\r\n // a message could be either an array or just the content itself\r\n if (Array.isArray(content.items)) {\r\n const { items } = content;\r\n items.forEach((item) => {\r\n const res = handle(item);\r\n options = [...options, ...res.options];\r\n messagesAsList = [...messagesAsList, ...res.messagesAsList];\r\n });\r\n } else {\r\n const res = handle(content);\r\n options = [...options, ...res.options];\r\n messagesAsList = [...messagesAsList, ...res.messagesAsList];\r\n }\r\n\r\n const result: ConversationLogMessage = {\r\n options: options,\r\n message: messagesAsList.length ? messagesAsList.join('\\n') : undefined,\r\n source: this.createMessageSource(type),\r\n alias: this.createAlias(type, sender),\r\n timestamp,\r\n };\r\n\r\n return result;\r\n }\r\n\r\n private createMessageSource(type: ConversationMessageType) {\r\n return type;\r\n }\r\n\r\n private createAlias(\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender\r\n ) {\r\n if (type === ConversationMessageType.System) {\r\n return 'system';\r\n }\r\n return sender?.name || 'Me';\r\n }\r\n\r\n private handleContactMethod(contactMethodId: string) {\r\n if (!this.cache.has(contactMethodId)) {\r\n return;\r\n }\r\n\r\n const method = this.cache.get(contactMethodId);\r\n\r\n let result = '';\r\n\r\n result = this.appendText(result, `${method.clientName}:`);\r\n result = this.appendText(result, method.title);\r\n if (method.description) {\r\n result = this.appendText(result, method.title);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getDetails(item: any, linebreak = true) {\r\n if (!item) {\r\n return '';\r\n }\r\n\r\n const {\r\n header,\r\n title,\r\n label,\r\n description,\r\n text,\r\n html,\r\n body,\r\n contactMethodId,\r\n } = item;\r\n let result = '';\r\n\r\n if (contactMethodId) {\r\n const text = this.handleContactMethod(contactMethodId.toString());\r\n if (text) {\r\n result = this.appendText(result, text, linebreak);\r\n }\r\n }\r\n\r\n if (header) {\r\n result = this.appendText(result, header, linebreak);\r\n }\r\n if (title) {\r\n result = this.appendText(result, title, linebreak);\r\n }\r\n if (description) {\r\n result = this.appendText(result, description, linebreak);\r\n }\r\n if (text) {\r\n result = this.appendText(result, text, linebreak);\r\n }\r\n if (label) {\r\n result = this.appendText(result, label, linebreak);\r\n }\r\n if (html) {\r\n result = this.appendText(result, html, linebreak);\r\n }\r\n if (body) {\r\n if (typeof body === 'string') {\r\n result = this.appendText(result, body, linebreak);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n private createMessageContent(data: any) {\r\n let message = '';\r\n\r\n message = this.getDetails(data);\r\n\r\n return message;\r\n }\r\n\r\n private createMessageOptions(data: any): any[] {\r\n let options = [];\r\n let actions = [];\r\n\r\n if (Array.isArray(data?.actions)) {\r\n actions = data.actions;\r\n } else if (typeof data?.actions === 'object') {\r\n actions = Object.entries(data.actions).map(([key, value]) => {\r\n return {\r\n actionKey: key,\r\n label: value,\r\n };\r\n });\r\n }\r\n\r\n if (actions.length) {\r\n options = actions.map((option: any) => {\r\n return this.getDetails(option, false);\r\n });\r\n }\r\n return options;\r\n }\r\n\r\n private appendText(target: string, value: string, linebreak = true) {\r\n if (linebreak) {\r\n if (target.length) {\r\n return `${target}\\n${value}`;\r\n }\r\n }\r\n return target.length ? `${target} ${value}` : value;\r\n }\r\n\r\n dispose() {\r\n this.subscriptions.forEach((unsubscribe) => {\r\n unsubscribe();\r\n });\r\n }\r\n}\r\n","import { uuid } from '@telia-ace/widget-utilities';\r\nimport {\r\n ConversationEntry,\r\n ConversationMessageType,\r\n getNormalizedMessageSettings,\r\n} from './conversation-controller';\r\nimport { ConversationProvider } from './conversation-provider';\r\nimport {\r\n ConversationMessageSender,\r\n ConversationMessageSettings,\r\n ConverstationMessageItem,\r\n Symbol,\r\n} from './types';\r\n\r\nexport type AgentSettings = {\r\n id?: string;\r\n name?: string;\r\n avatar?: string | Symbol;\r\n};\r\n\r\nexport class Agent {\r\n id: string;\r\n name?: string;\r\n avatar?: string | Symbol;\r\n\r\n constructor(\r\n private provider: ConversationProvider,\r\n settings: AgentSettings\r\n ) {\r\n this.id = settings.id || uuid();\r\n this.name = settings.name;\r\n this.avatar = settings.avatar;\r\n }\r\n\r\n print = (\r\n settings:\r\n | string\r\n | ConversationMessageSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[],\r\n options?: {\r\n key?: string;\r\n }\r\n ): ConversationEntry | undefined => {\r\n const sender: ConversationMessageSender = {\r\n name: this.name,\r\n avatar: this.avatar,\r\n id: this.id,\r\n };\r\n const normalized = getNormalizedMessageSettings(settings, options);\r\n\r\n return this.provider.createEntry(\r\n normalized.key,\r\n normalized.content,\r\n ConversationMessageType.Agent,\r\n sender,\r\n normalized.timestamp\r\n );\r\n };\r\n typing = () => {\r\n return this.provider.setTypingState({\r\n name: this.name,\r\n avatar: this.avatar,\r\n });\r\n };\r\n\r\n update(settings: AgentSettings): void {\r\n const { name, avatar } = settings;\r\n if (avatar === null) {\r\n this.avatar = undefined;\r\n } else if (avatar) {\r\n this.avatar = avatar;\r\n }\r\n\r\n if (name === null) {\r\n this.name = undefined;\r\n } else if (name) {\r\n this.name = name;\r\n }\r\n\r\n this.provider.controller?.events.dispatch('conversation:agent-updated', {\r\n agent: this,\r\n });\r\n }\r\n}\r\n","import {\r\n Container,\r\n EventListener,\r\n EventObject,\r\n EventSubscriptionCancellation,\r\n} from '@webprovisions/platform';\r\nimport { Agent, AgentSettings } from './agent';\r\nimport {\r\n CancelLoaderDelegate,\r\n ConversationController,\r\n ConversationEntry,\r\n ConversationMessageType,\r\n ConversationOptions,\r\n} from './conversation-controller';\r\nimport {\r\n ConversationMessageContent,\r\n ConversationMessageSender,\r\n ConversationMessageSettings,\r\n} from './types';\r\n\r\nexport class ConversationProvider {\r\n private subscriptions: EventSubscriptionCancellation[] = [];\r\n public options: ConversationOptions;\r\n public user: any;\r\n\r\n private constructor(\r\n public name: string,\r\n _container: Container,\r\n public controller: ConversationController | null\r\n ) {\r\n this.user = controller?.user;\r\n this.options = {\r\n silent: false,\r\n };\r\n }\r\n\r\n static create(\r\n name: string,\r\n container: Container,\r\n controller: ConversationController\r\n ) {\r\n return new ConversationProvider(name, container, controller);\r\n }\r\n\r\n createAgent(settings: AgentSettings = {}): Agent | undefined {\r\n if (this.controller) {\r\n const storedAgent = this.controller.getAgentById(settings.id);\r\n\r\n const agent = storedAgent\r\n ? new Agent(this, { ...storedAgent, ...settings })\r\n : new Agent(this, settings);\r\n if (!storedAgent) {\r\n this.controller?.events.dispatch('conversation:agent-created', {\r\n agent,\r\n });\r\n }\r\n return agent;\r\n }\r\n }\r\n\r\n print(\r\n settings: string | ConversationMessageSettings\r\n ): ConversationEntry | undefined {\r\n return this.controller?.print(settings);\r\n }\r\n\r\n setTypingState(\r\n sender: ConversationMessageSender,\r\n type?: ConversationMessageType\r\n ) {\r\n return this.controller?.setTypingState(sender, type);\r\n }\r\n\r\n loading(): CancelLoaderDelegate {\r\n if (!this.controller) {\r\n return () => () => {};\r\n }\r\n return this.controller.loader();\r\n }\r\n\r\n createEntry(\r\n key: string,\r\n content: ConversationMessageContent,\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender,\r\n timestamp?: number | null\r\n ) {\r\n return this.controller?.createEntry(key, content, type, sender, timestamp);\r\n }\r\n\r\n dispose() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.log(`conversation-provider: dispose (${this.name})`);\r\n }\r\n this.controller?.disposeProvider(this);\r\n this.controller = null;\r\n this.subscriptions.forEach((unsub) => unsub());\r\n }\r\n\r\n isRehydrated() {\r\n return this.controller?.isRehydrated() || Promise.resolve(false);\r\n }\r\n\r\n getHistory() {\r\n return this.controller?.getHistory() || [];\r\n }\r\n\r\n complete() {\r\n this.controller?.onCompleteProvider();\r\n }\r\n\r\n setOptions(options: ConversationOptions = { silent: false }) {\r\n this.options = options;\r\n }\r\n\r\n onUnreadMessage(fn: EventListener): EventSubscriptionCancellation | void {\r\n if (this.controller) {\r\n const unsubscribe = this.controller?.onUnreadMessage(fn);\r\n this.subscriptions.push(unsubscribe);\r\n return () => {\r\n unsubscribe();\r\n };\r\n }\r\n }\r\n\r\n onMounted(fn: EventListener): EventSubscriptionCancellation | void {\r\n if (this.controller) {\r\n const unsubscribe = this.controller?.events.subscribe(\r\n 'conversation:component-mount-changed',\r\n fn\r\n );\r\n this.subscriptions.push(unsubscribe);\r\n fn({} as EventObject, this.controller.getComponentMountedState());\r\n return () => {\r\n unsubscribe();\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport default ConversationProvider;\r\n","import {\r\n createStorageWriter,\r\n readStorage,\r\n StorageCategory,\r\n} from '@telia-ace/widget-services';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { Agent, AgentSettings } from './agent';\r\nimport { ConversationController } from './conversation-controller';\r\n\r\ntype StoredConversationAgent = {\r\n id: string;\r\n name: string;\r\n avatar?: string;\r\n providerName: string;\r\n};\r\ntype StoredConversationMessage = any;\r\n\r\ntype StoredConversation = {\r\n agents: StoredConversationAgent[];\r\n messages: StoredConversationMessage[];\r\n};\r\n\r\nexport const createSessionStorageKey = (id: string) => {\r\n return `conversation-${id}`;\r\n};\r\n\r\nclass Locker {\r\n private _locking: Promise<void> = Promise.resolve();\r\n private _locks: number = 0;\r\n\r\n isLocked() {\r\n return this._locks > 0;\r\n }\r\n\r\n lock() {\r\n this._locks += 1;\r\n\r\n let unlockNext: () => void;\r\n\r\n let willLock = new Promise<void>(\r\n (resolve) =>\r\n (unlockNext = () => {\r\n this._locks -= 1;\r\n\r\n resolve();\r\n })\r\n );\r\n\r\n let willUnlock = this._locking.then(() => unlockNext);\r\n\r\n this._locking = this._locking.then(() => willLock);\r\n\r\n return willUnlock;\r\n }\r\n}\r\n\r\nclass Store {\r\n private sessionStorageKey: string;\r\n private locker = new Locker();\r\n private initialStoredAgents: StoredConversationAgent[] = [];\r\n\r\n constructor(\r\n private container: Container,\r\n conversation: ConversationController,\r\n private enabled: boolean // whether or not to store data\r\n ) {\r\n this.sessionStorageKey = createSessionStorageKey(conversation.id);\r\n\r\n conversation.onStarted(async () => {\r\n if (conversation.messages.length > 0) {\r\n // if the conversation already contains messages\r\n // for example when re-opening a minimized widget,\r\n // we do not want to do anything\r\n return;\r\n }\r\n const { agents: storedAgents } = await this.read();\r\n\r\n const agents: Agent[] = [];\r\n\r\n if (storedAgents) {\r\n storedAgents.forEach((a) => {\r\n const providerIndex = conversation.providerIndex(a.providerName);\r\n const provider =\r\n providerIndex > -1\r\n ? conversation.registeredProviders[providerIndex]\r\n : conversation.createProvider(a.providerName);\r\n\r\n const agent = new Agent(provider, {\r\n name: a.name,\r\n avatar: a.avatar,\r\n id: a.id,\r\n });\r\n agents.push(agent);\r\n });\r\n }\r\n\r\n const { messages: storedMessages } = await this.read();\r\n storedMessages.forEach((message) => {\r\n switch (message.type) {\r\n case 'agent': {\r\n const agent = agents.find((a) => a.id === message.sender?.id);\r\n if (agent) {\r\n agent.print(message.content.items || message.content, {\r\n key: message.key,\r\n });\r\n }\r\n return;\r\n }\r\n case 'user': {\r\n conversation.user.print(message.content.items || message.content, {\r\n key: message.key,\r\n });\r\n return;\r\n }\r\n case 'system':\r\n default: {\r\n conversation.print(message.content.items || message.content);\r\n }\r\n }\r\n });\r\n });\r\n conversation.onMessageCreated(async (_, data) => {\r\n this.write(data.message, 'messages');\r\n });\r\n\r\n conversation.events.subscribe(\r\n 'conversation:agent-created',\r\n async (_, data) => {\r\n const agent = {\r\n id: data.agent.id,\r\n name: data.agent.name,\r\n avatar: data.agent.avatar,\r\n providerName: data.agent.provider.name,\r\n };\r\n await this.write(agent, 'agents');\r\n }\r\n );\r\n\r\n conversation.events.subscribe(\r\n 'conversation:agent-updated',\r\n async (_, data) => {\r\n const { agents } = await this.read();\r\n\r\n await this.write(\r\n [\r\n ...agents.map((a) => {\r\n if (a.id === data.agent.id) {\r\n return {\r\n ...a,\r\n name: data.agent.name,\r\n avatar: data.agent.avatar,\r\n };\r\n }\r\n return a;\r\n }),\r\n ],\r\n 'agents',\r\n 'update'\r\n );\r\n }\r\n );\r\n }\r\n\r\n setInitialData(data: { agents: AgentSettings[] }) {\r\n this.initialStoredAgents = data.agents as StoredConversationAgent[];\r\n }\r\n\r\n async isRehydrated() {\r\n const { messages } = await this.read();\r\n return messages.length > 0;\r\n }\r\n\r\n getStoredAgent(agentId: string) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n return this.initialStoredAgents.find((a) => a.id === agentId);\r\n }\r\n\r\n async write(\r\n data: any,\r\n type: 'messages' | 'agents',\r\n action: 'add' | 'update' = 'add'\r\n ) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n\r\n const unlock = await this.locker.lock();\r\n return createStorageWriter(\r\n this.container,\r\n this.sessionStorageKey,\r\n StorageCategory.Necessary\r\n ).then(async (write) => {\r\n if (action === 'add') {\r\n const prev = await this.read();\r\n\r\n // ensure that we don't duplicate messages by looking at their unqiue keys\r\n if (\r\n type === 'messages' &&\r\n prev.messages.findIndex((m) => m.key === data.key) > -1\r\n ) {\r\n unlock();\r\n return;\r\n }\r\n\r\n let newData = {\r\n ...prev,\r\n };\r\n\r\n if (type === 'messages') {\r\n newData.messages = [...newData.messages, data];\r\n } else if (type === 'agents') {\r\n newData.agents = [...newData.agents, data];\r\n }\r\n\r\n return write({\r\n ...prev,\r\n ...newData,\r\n }).then(() => {\r\n unlock();\r\n });\r\n }\r\n\r\n if (action === 'update') {\r\n if (type === 'agents') {\r\n const prev = await this.read();\r\n\r\n return write({\r\n ...prev,\r\n agents: data,\r\n }).then(() => {\r\n unlock();\r\n });\r\n }\r\n }\r\n\r\n return write(data).then(() => {\r\n unlock();\r\n });\r\n });\r\n }\r\n\r\n async read() {\r\n return readStorage(this.container, this.sessionStorageKey).then((data) => {\r\n if (!data) {\r\n return {\r\n messages: [],\r\n agents: [],\r\n };\r\n }\r\n return data as StoredConversation;\r\n });\r\n }\r\n}\r\n\r\nexport default Store;\r\n","import {\r\n ConversationController,\r\n ConversationEntry,\r\n ConversationMessageType,\r\n getNormalizedMessageSettings,\r\n} from './conversation-controller';\r\nimport { ConversationMessageSettings } from './types';\r\n\r\nexport class User {\r\n constructor(private controller: ConversationController) {}\r\n\r\n print = (\r\n settings: string | ConversationMessageSettings,\r\n options?: {\r\n key?: string;\r\n }\r\n ): ConversationEntry => {\r\n const normalized = getNormalizedMessageSettings(settings, options);\r\n return this.controller.createEntry(\r\n normalized.key,\r\n normalized.content,\r\n ConversationMessageType.User,\r\n undefined,\r\n normalized.timestamp\r\n );\r\n };\r\n}\r\n","import { ComponentPlatform } from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { ConversationPlatform } from '../conversation-platform';\r\n\r\n/**\r\n * This will put the current provider(s) in a queue and\r\n * swap current provider to another one based on the providerName.\r\n * When ConversationProvider.complete() is called, the provider(s) in the\r\n * queue will become active again\r\n */\r\nexport const swapProvider = async (\r\n container: Container,\r\n conversationId: string,\r\n providerName: string\r\n) => {\r\n const conversation: ConversationPlatform = await container.getAsync('conversation');\r\n const components: ComponentPlatform = await container.getAsync('components');\r\n const currentInstance = conversation.controllers.find((c) => {\r\n return c.conversation.id === conversationId;\r\n });\r\n\r\n if (currentInstance) {\r\n const toQueue = [...currentInstance.conversation.providers];\r\n toQueue.forEach((name) => {\r\n currentInstance.conversation.setProviderOptions(name, { silent: true });\r\n });\r\n currentInstance.conversation.queueProviders(toQueue);\r\n currentInstance.conversation.setProviders([providerName]);\r\n const conversationQuery = components.components().ofType('conversation');\r\n components.write({\r\n key: 'setConversationProvider',\r\n attributes: {\r\n properties: { providers: [providerName] },\r\n },\r\n target: conversationQuery,\r\n provider: 'localStorage',\r\n });\r\n }\r\n};\r\n","// import { FormBuilder } from '@telia-ace/widget-forms';\r\nimport { uuid } from '@telia-ace/widget-utilities';\r\nimport {\r\n Container,\r\n EventListener,\r\n EventManager,\r\n Widget,\r\n} from '@webprovisions/platform';\r\nimport { AgentSettings } from './agent';\r\nimport { ConversationHistory } from './conversation-history';\r\nimport { ConversationProvider } from './conversation-provider';\r\nimport Store from './store';\r\nimport {\r\n ConversationMessageContent,\r\n ConversationMessageSender,\r\n ConversationMessageSettings,\r\n ConversationMessageUpdateSettings,\r\n ConverstationMessageItem,\r\n NormalizedMessageSettings,\r\n} from './types';\r\nimport { User } from './user';\r\nimport { swapProvider } from './utils/swap-provider';\r\nexport type ValidateHandler = (formValues: {\r\n [key: string]: any;\r\n}) => Promise<any>;\r\n\r\nexport type SubmitHandler = (formValues: {\r\n [key: string]: any;\r\n}) => Promise<any>;\r\n\r\nexport type ConversationOptions = { silent: boolean };\r\n\r\nexport type Print = (\r\n content: string | ConversationMessageContent\r\n) => ConversationEntry;\r\n\r\nexport type FormHandlers = { [key: string]: FormHandler };\r\nexport type FormHandler = { validate?: ValidateHandler; submit: SubmitHandler };\r\n\r\nexport type CancelLoaderDelegate = () => void;\r\n\r\nexport class ConversationEntry {\r\n constructor(private writer: EntryWriter) {}\r\n\r\n update(\r\n content:\r\n | string\r\n | ConversationMessageUpdateSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[]\r\n ) {\r\n const normalized = this.getNormalizedSettings(content);\r\n // const normalized = typeof content === 'string' ? { body: content } : content;\r\n this.writer(<ConversationMessageUpdateSettings>normalized);\r\n }\r\n\r\n remove() {\r\n this.writer(null);\r\n }\r\n\r\n private getNormalizedSettings(\r\n content:\r\n | string\r\n | ConversationMessageUpdateSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[]\r\n ) {\r\n if (typeof content === 'string') return { body: content };\r\n else if (content.length > -1 && typeof content === 'object')\r\n return { items: content };\r\n else return content;\r\n }\r\n}\r\n\r\nexport enum ConversationMessageType {\r\n User = 'user',\r\n Agent = 'agent',\r\n System = 'system',\r\n}\r\n\r\nexport type ConversationMessage = {\r\n key: string;\r\n timestamp: number | null;\r\n content: ConversationMessageContent | null;\r\n sender: ConversationMessageSender | null;\r\n type: ConversationMessageType;\r\n};\r\n\r\nexport type EntryWriter = (\r\n content: ConversationMessageUpdateSettings | null\r\n) => void;\r\n\r\nexport const getNormalizedMessageSettings = (\r\n settings:\r\n | string\r\n | ConversationMessageSettings\r\n | ConverstationMessageItem<any>\r\n | ConverstationMessageItem<any>[],\r\n options?: {\r\n key?: string;\r\n }\r\n): NormalizedMessageSettings => {\r\n let content: ConversationMessageContent;\r\n let key = options?.key || uuid();\r\n let timestamp: number | null = Date.now();\r\n\r\n if (Array.isArray(settings) && settings.length > -1) {\r\n if (typeof settings[0] === 'string') {\r\n content = { items: [<ConverstationMessageItem<any>>settings] };\r\n } else {\r\n content = { items: <ConverstationMessageItem<any>[]>settings };\r\n }\r\n } else if (typeof settings === 'string') {\r\n content = { body: settings };\r\n } else {\r\n settings = <ConversationMessageSettings>settings || {};\r\n\r\n if (settings.type) {\r\n content = {\r\n ...(<any>settings),\r\n };\r\n } else {\r\n content = {\r\n body: settings.body,\r\n actions: settings.actions,\r\n title: settings.title,\r\n };\r\n if (settings.key) {\r\n key = settings.key;\r\n }\r\n if (settings.timestamp) {\r\n timestamp = settings.timestamp;\r\n }\r\n if (typeof settings.form === 'function') {\r\n // const builder = FormBuilder.create(key); // TODO:\r\n // settings.form(builder);\r\n // const builtForm = builder.get();\r\n // content.form = builtForm;\r\n }\r\n if (settings.timestamp === null) {\r\n timestamp = null;\r\n }\r\n }\r\n }\r\n return { content, key, timestamp };\r\n};\r\n\r\nconst removeTypingState = (\r\n typingActors: ConversationMessageSender[],\r\n sender?: ConversationMessageSender\r\n) => {\r\n if (!sender) {\r\n return;\r\n }\r\n const senderString = JSON.stringify(sender);\r\n const indexToRemove = typingActors.findIndex((item) => {\r\n return senderString === JSON.stringify(item);\r\n });\r\n if (indexToRemove > -1) {\r\n return typingActors.splice(indexToRemove, 1);\r\n }\r\n};\r\n\r\n/**\r\n * Manages the stream of messages inside a `ConversationComponent` and provides external read-write\r\n * access to it as well as exposing emitted actions.\r\n */\r\nexport class ConversationController {\r\n formHandlers: FormHandlers = {};\r\n\r\n /**\r\n * Represents the current end user.\r\n */\r\n user: User = new User(this);\r\n\r\n events: EventManager;\r\n\r\n providers: string[] = [];\r\n\r\n active: boolean = false;\r\n\r\n queuedProviders: string[] = [];\r\n\r\n registeredProviders: ConversationProvider[] = [];\r\n\r\n private loaders: number = 0;\r\n private componentMounted: boolean = false;\r\n\r\n private store: Store;\r\n\r\n messages: ConversationMessage[] = [];\r\n private typingActors: ConversationMessageSender[] = [];\r\n\r\n private conversationHistory: ConversationHistory;\r\n\r\n constructor(\r\n public container: Container,\r\n public id: string,\r\n options: { rehydrate: boolean }\r\n ) {\r\n const widget: Widget = container.get('$widget');\r\n this.events = widget.events.createChild(this);\r\n this.store = new Store(container, this, options.rehydrate);\r\n this.conversationHistory = new ConversationHistory(this);\r\n }\r\n\r\n setInitialStorage(data: { agents: AgentSettings[] }) {\r\n this.store.setInitialData(data);\r\n }\r\n\r\n setProviders(providers: string[]) {\r\n const removed: string[] = [];\r\n const added: string[] = [];\r\n\r\n // remove\r\n this.providers\r\n .reduce<string[]>((acc, provider) => {\r\n if (providers.indexOf(provider) === -1) {\r\n acc.push(provider);\r\n }\r\n return acc;\r\n }, [])\r\n .forEach((providerToRemove) => {\r\n const indexToRemove = this.providers.indexOf(providerToRemove);\r\n if (indexToRemove > -1) {\r\n removed.push(providerToRemove);\r\n this.providers.splice(indexToRemove, 1);\r\n }\r\n });\r\n\r\n // add\r\n providers.forEach((provider) => {\r\n if (this.providers.indexOf(provider) === -1) {\r\n added.push(provider);\r\n this.providers.push(provider);\r\n }\r\n });\r\n\r\n if (added.length || removed.length) {\r\n this.events.dispatch('conversation:providers-changed', {\r\n added,\r\n removed,\r\n });\r\n }\r\n }\r\n\r\n createProvider(name: string): ConversationProvider {\r\n const index = this.providerIndex(name);\r\n if (index > -1) {\r\n return this.registeredProviders[index];\r\n }\r\n const provider = ConversationProvider.create(name, this.container, this);\r\n this.registeredProviders.push(provider);\r\n return provider;\r\n }\r\n\r\n providerIndex(name: string) {\r\n return this.registeredProviders.findIndex((p) => p.name === name);\r\n }\r\n\r\n getAgentById(id?: string) {\r\n if (!id) {\r\n return;\r\n }\r\n return this.store.getStoredAgent(id);\r\n }\r\n\r\n dispose() {\r\n this.conversationHistory.dispose();\r\n this.registeredProviders.forEach((provider) => provider.dispose());\r\n this.messages = [];\r\n this.events.dispatch('conversation:controller-disposed', this);\r\n this.active = false;\r\n }\r\n\r\n onDispose(fn: EventListener) {\r\n return this.events.subscribe('conversation:controller-disposed', fn);\r\n }\r\n\r\n onStarted(fn: EventListener) {\r\n return this.events.subscribe('conversation:started', fn);\r\n }\r\n\r\n onMessageCreated(fn: EventListener) {\r\n return this.events.subscribe('conversation:message-created', fn);\r\n }\r\n\r\n isRehydrated() {\r\n return this.store.isRehydrated();\r\n }\r\n\r\n disposeProvider(target: ConversationProvider) {\r\n const index = this.providerIndex(target.name);\r\n index > -1 && this.registeredProviders.splice(index, 1);\r\n this.events.dispatch('conversation:providers-changed', {\r\n removed: [target.name],\r\n });\r\n if (!this.registeredProviders.length) {\r\n this.dispose();\r\n }\r\n }\r\n\r\n onProvidersChange(fn: EventListener) {\r\n return this.events.subscribe('conversation:providers-changed', fn);\r\n }\r\n\r\n setComponentMountedState(mounted: boolean) {\r\n if (this.componentMounted === mounted) {\r\n return;\r\n }\r\n this.componentMounted = mounted;\r\n if (mounted) {\r\n this.events.dispatch('conversation:unread-message', false);\r\n this.events.dispatch('conversation:started', true);\r\n this.active = true;\r\n }\r\n this.events.dispatch('conversation:component-mount-changed', mounted);\r\n }\r\n\r\n setProviderOptions(providerName: string, options: ConversationOptions) {\r\n const index = this.providerIndex(providerName);\r\n\r\n if (index > -1) {\r\n this.registeredProviders[index].setOptions(options);\r\n }\r\n }\r\n\r\n changeProvider(providerName: string) {\r\n const provider = this.registeredProviders.find(\r\n (p) => p.name === providerName\r\n );\r\n\r\n if (provider) {\r\n swapProvider(this.container, this.id, providerName);\r\n }\r\n }\r\n\r\n queueProviders(providers: string[]) {\r\n this.queuedProviders = providers;\r\n }\r\n\r\n onCompleteProvider() {\r\n const nextProvider = this.queuedProviders.pop();\r\n\r\n if (nextProvider) {\r\n swapProvider(this.container, this.id, nextProvider);\r\n }\r\n }\r\n\r\n getComponentMountedState() {\r\n return this.componentMounted;\r\n }\r\n\r\n onUnreadMessage(fn: EventListener) {\r\n return this.events.subscribe('conversation:unread-message', fn);\r\n }\r\n\r\n createEntry(\r\n key: string,\r\n content: ConversationMessageContent,\r\n type: ConversationMessageType,\r\n sender?: ConversationMessageSender,\r\n timestamp?: number | null\r\n ): ConversationEntry {\r\n const message: ConversationMessage = {\r\n key,\r\n content,\r\n type,\r\n sender: sender || null,\r\n timestamp: timestamp || timestamp === null ? timestamp : Date.now(),\r\n };\r\n this.messages.push(message);\r\n message.type === ConversationMessageType.Agent &&\r\n removeTypingState(this.typingActors, sender);\r\n const entry = new ConversationEntry((updated) => {\r\n if (updated !== null) {\r\n const { timestamp: updatedTimestamp = undefined, ...content } = updated;\r\n message.content = content;\r\n if (updatedTimestamp) {\r\n message.timestamp = updatedTimestamp;\r\n }\r\n } else {\r\n const indexToRemove = this.messages.indexOf(message);\r\n message.content = null;\r\n if (indexToRemove > -1) {\r\n this.messages.splice(indexToRemove, 1);\r\n }\r\n }\r\n this.events.dispatch('conversation:message-updated', { message });\r\n this.update();\r\n });\r\n this.events.dispatch('conversation:message-created', { message });\r\n this.update();\r\n if (!this.componentMounted) {\r\n this.events.dispatch('conversation:unread-message', true);\r\n }\r\n return entry;\r\n }\r\n\r\n print = (\r\n settings: string | ConversationMessageSettings\r\n ): ConversationEntry => {\r\n const normalized = getNormalizedMessageSettings(settings);\r\n\r\n return this.createEntry(\r\n normalized.key,\r\n normalized.content,\r\n ConversationMessageType.System,\r\n undefined,\r\n normalized.timestamp\r\n );\r\n };\r\n\r\n update() {\r\n this.events.dispatch('conversation:updated', {\r\n messages: this.messages,\r\n loading: this.loaders > 0,\r\n typingActors: this.typingActors,\r\n });\r\n }\r\n\r\n getMessageStream() {\r\n return {\r\n messages: this.messages,\r\n loading: this.loaders > 0,\r\n typingActors: this.typingActors,\r\n };\r\n }\r\n\r\n setTypingState(\r\n sender: ConversationMessageSender,\r\n _type?: ConversationMessageType\r\n ) {\r\n if (this.typingActors.indexOf(sender) === -1) {\r\n this.typingActors.push(sender);\r\n this.update();\r\n }\r\n\r\n return () => {\r\n removeTypingState(this.typingActors, sender);\r\n this.update();\r\n };\r\n }\r\n\r\n /**\r\n * Displays a loader in the conversation.\r\n */\r\n loader(): CancelLoaderDelegate {\r\n this.loaders = this.loaders + 1;\r\n let dismissed = false;\r\n if (this.loaders === 1) {\r\n this.update();\r\n }\r\n return () => {\r\n if (!dismissed) {\r\n dismissed = true;\r\n this.loaders = this.loaders - 1;\r\n if (this.loaders === 0) {\r\n this.update();\r\n }\r\n }\r\n };\r\n }\r\n\r\n submitForm(key: string, handler: SubmitHandler) {\r\n this.formHandlers[key] = { ...this.formHandlers[key], submit: handler };\r\n }\r\n\r\n validateForm(key: string, handler: ValidateHandler) {\r\n this.formHandlers[key] = { ...this.formHandlers[key], validate: handler };\r\n }\r\n\r\n getHistory() {\r\n return this.conversationHistory.getConversationLogs();\r\n }\r\n}\r\n","import { ComponentPlatform, WidgetSettings } from '@telia-ace/widget-core';\r\n// import { closeAllModals } from '@telia-ace/widget-plugins';\r\nimport {\r\n createStorageWriter,\r\n StorageCategory,\r\n StorageMedium,\r\n StorageScope,\r\n} from '@telia-ace/widget-services';\r\nimport { Container, Implementation, Widget } from '@webprovisions/platform';\r\nimport {\r\n ConversationEndedBehavior,\r\n ConversationPlatform,\r\n} from '../conversation-platform';\r\n\r\nconst getParentWidget = (\r\n widgetName: string,\r\n implementation: Implementation\r\n) => {\r\n const mainWidgetName = widgetName.split('_contact');\r\n return implementation.widgets.get(mainWidgetName[0]);\r\n};\r\n\r\nconst getSeparateWidget = (container: Container) => {\r\n const originWidget = container.get('$widget');\r\n const { name, implementation }: Widget = container.get('$widget');\r\n\r\n const mainWidget =\r\n name.indexOf('_contact') > -1\r\n ? getParentWidget(name, implementation)\r\n : originWidget;\r\n const { data }: WidgetSettings = container.get('$settings');\r\n const { trigger }: WidgetSettings = mainWidget.container.get('$settings');\r\n const chatWidgetName = `${name\r\n .replace('_contact-method', '')\r\n .replace('_contact', '')}_contact-method`;\r\n\r\n const chatWidget = implementation.widgets.get(chatWidgetName);\r\n if (chatWidget && !trigger) {\r\n return { chatWidget, mainWidget, data };\r\n }\r\n return { mainWidget, data };\r\n};\r\n\r\nexport const shouldPreventDefault = (container: Container) => {\r\n const { chatWidget } = getSeparateWidget(container);\r\n return !!chatWidget;\r\n};\r\n\r\nexport const openChatWidget = (\r\n container: Container,\r\n contactMethod: any /*ContactMethodType*/,\r\n triggerDOMTarget?: HTMLElement\r\n) => {\r\n const { mainWidget, data, chatWidget } = getSeparateWidget(container);\r\n\r\n if (chatWidget) {\r\n if (chatWidget.state === 'activated') {\r\n return chatWidget.invoke('open').then(() => {\r\n chatWidget.container.getAsync('conversation').then((conversation) => {\r\n conversation.navigateToConversationIfActive(contactMethod.id);\r\n // .then(() => closeAllModals(container)); // TODO:\r\n });\r\n });\r\n }\r\n return chatWidget\r\n .activate()\r\n .then(() => {\r\n const { trigger } = chatWidget.container.get('$settings');\r\n trigger.action = 'hide'; // could be default in configuration\r\n return chatWidget\r\n .invoke('setSettings', () => ({\r\n data,\r\n trigger,\r\n activate: true,\r\n }))\r\n .then(() => {\r\n return chatWidget.container\r\n .getAsync('components')\r\n .then((components: ComponentPlatform) => {\r\n /**\r\n * Could cause issues if target widget is no longer as specific for this use case\r\n */\r\n const contactMethodsQuery = components\r\n .components()\r\n .ofType('contact-method');\r\n components.write({\r\n key: 'setContactMethodId',\r\n attributes: {\r\n properties: {\r\n id: contactMethod.id,\r\n guideId: contactMethod.guideId,\r\n },\r\n },\r\n target: contactMethodsQuery,\r\n provider: 'localStorage',\r\n });\r\n const conversationsQuery = components\r\n .components()\r\n .ofType('conversation');\r\n components.write({\r\n key: 'setConversationProvider',\r\n attributes: {\r\n properties: { providers: [contactMethod.clientName] },\r\n },\r\n target: conversationsQuery,\r\n provider: 'localStorage',\r\n });\r\n });\r\n });\r\n })\r\n .then(() => {\r\n return chatWidget.invoke('attach', {\r\n key: 'contact-method',\r\n triggerDOMElement: triggerDOMTarget,\r\n withRenderState: 'open',\r\n });\r\n })\r\n .then(() => {\r\n createStorageWriter(\r\n chatWidget.container,\r\n 'activeStickyWidget',\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n scope: StorageScope.Implementation,\r\n }\r\n ).then((write) => write(chatWidget.name));\r\n\r\n return (\r\n chatWidget.container\r\n .getAsync('conversation')\r\n .then((platform) => {\r\n platform.setConversationEndedBehavior(\r\n ConversationEndedBehavior.Deactivate\r\n );\r\n })\r\n // .then(() => closeAllModals(container)) // TODO:\r\n .then(() => false)\r\n );\r\n });\r\n }\r\n mainWidget.container\r\n .getAsync('conversation')\r\n .then((platform: ConversationPlatform) => {\r\n return platform\r\n .navigateToConversationIfActive(contactMethod.id)\r\n .then(() =>\r\n platform.setConversationEndedBehavior(\r\n ConversationEndedBehavior.Navigate\r\n )\r\n );\r\n });\r\n return chatWidget ? false : true;\r\n};\r\n\r\nexport const navigateToConversation = (\r\n container: Container,\r\n contactMethod: any /*ContactMethodType*/,\r\n routeName = 'conversation'\r\n) => {\r\n const { mainWidget, chatWidget } = getSeparateWidget(container);\r\n if (chatWidget) {\r\n return chatWidget.container.getAsync('router').then((router: any) => {\r\n router.navigate(routeName, { id: contactMethod.id });\r\n });\r\n }\r\n\r\n return mainWidget.container\r\n .getAsync('conversation')\r\n .then((platform: ConversationPlatform) => {\r\n platform\r\n .setConversationEndedBehavior(ConversationEndedBehavior.Navigate)\r\n ?.then(() => {\r\n mainWidget.container.getAsync('router').then((router: any) => {\r\n mainWidget.container\r\n .getAsync('components')\r\n .then((components: ComponentPlatform) => {\r\n const conversationQuery = components\r\n .components()\r\n .ofType('conversation');\r\n components.write({\r\n key: 'setConversationProvider',\r\n attributes: {\r\n properties: { providers: [contactMethod.clientName] },\r\n },\r\n target: conversationQuery,\r\n provider: 'localStorage',\r\n });\r\n })\r\n .then(() => {\r\n router.navigate(routeName, { id: contactMethod.id });\r\n });\r\n });\r\n });\r\n });\r\n};\r\n","import {\r\n ComponentNodeController,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n} from '@telia-ace/widget-core';\r\nimport { RouteData, RoutingService } from '@telia-ace/widget-routing';\r\nimport {\r\n createStorageWriter,\r\n readStorage,\r\n StorageCategory,\r\n StorageMedium,\r\n StorageWriter,\r\n} from '@telia-ace/widget-services';\r\nimport { lock } from '@telia-ace/widget-utilities';\r\nimport {\r\n Container,\r\n EventManager,\r\n EventSubscriptionCancellation,\r\n Widget,\r\n} from '@webprovisions/platform';\r\nimport { AgentSettings } from './agent';\r\nimport { ConversationController } from './conversation-controller';\r\nimport { ConversationProvider } from './conversation-provider';\r\nimport { createSessionStorageKey } from './store';\r\nimport {\r\n navigateToConversation,\r\n openChatWidget,\r\n shouldPreventDefault,\r\n} from './utils';\r\nimport { swapProvider } from './utils/swap-provider';\r\n\r\nconst STORAGE_KEY = 'conversations';\r\n\r\nexport type ConversationHandler = (\r\n conversation: ConversationProvider,\r\n component: ComponentNodeController\r\n) => void | (() => void);\r\n\r\nexport type UnregisterControllerDelegate = () => void;\r\n\r\nexport type ConversationProviderRegistration = {\r\n name: string;\r\n handler: ConversationHandler;\r\n};\r\n\r\nexport enum ConversationEndedBehavior {\r\n Deactivate = 'deactivate',\r\n Navigate = 'navigate',\r\n None = 'none',\r\n}\r\n\r\nexport type SessionInfo = {\r\n id?: string;\r\n route?: RouteData;\r\n conversationEndedBehavior?: ConversationEndedBehavior;\r\n};\r\n\r\nexport class ConversationPlatform {\r\n events: EventManager;\r\n public controllers: {\r\n conversation: ConversationController;\r\n component: ComponentNodeController;\r\n }[] = [];\r\n private providers: ConversationProviderRegistration[] = [];\r\n private disposeProviders: { [providerKey: string]: (() => void)[] } = {};\r\n private subscriptions: EventSubscriptionCancellation[] = [];\r\n private storageWriter: StorageWriter | null = null;\r\n private router: RoutingService | null = null;\r\n private buttonQuery: ComponentQuery | null = null;\r\n private sessionInfo: SessionInfo | null = null;\r\n\r\n constructor(\r\n private container: Container,\r\n private components: ComponentPlatform\r\n ) {\r\n const widget: Widget = container.get('$widget');\r\n this.events = widget.events.createChild(this);\r\n }\r\n\r\n initialize() {\r\n createStorageWriter(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ).then((writer) => (this.storageWriter = writer));\r\n\r\n readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((storedSession) => {\r\n this.buttonQuery = this.components\r\n .components()\r\n .ofType('conversation-return-button');\r\n if (storedSession) {\r\n this.sessionInfo = storedSession;\r\n if (storedSession.id && storedSession.route) {\r\n this.writeToComponents({ active: true, alert: { show: false } });\r\n }\r\n }\r\n });\r\n this.container.getAsync('router').then((router) => (this.router = router));\r\n this.events.subscribe('conversation:ended', (_event, _data) => {\r\n switch (this.sessionInfo?.conversationEndedBehavior) {\r\n case ConversationEndedBehavior.Deactivate:\r\n const widget: Widget = this.container.get('$widget');\r\n widget.deactivate();\r\n break;\r\n case ConversationEndedBehavior.Navigate:\r\n const initialRoute = this.router?.getInitialRoute();\r\n if (initialRoute) {\r\n this.router?.navigate(initialRoute.name);\r\n }\r\n break;\r\n case ConversationEndedBehavior.None:\r\n default:\r\n break;\r\n }\r\n this.writeToComponents({ active: false });\r\n this.sessionInfo = null;\r\n this.storageWriter && this.storageWriter();\r\n });\r\n }\r\n\r\n addSubscription(sub: EventSubscriptionCancellation) {\r\n this.subscriptions.push(sub);\r\n }\r\n\r\n static getInstance(\r\n container: Container,\r\n key: string = 'conversation'\r\n ): Promise<ConversationPlatform> {\r\n return lock(container)(() => {\r\n return container.getAsync(key).then((value: ConversationPlatform) => {\r\n let conversation = value;\r\n\r\n if (!conversation) {\r\n return ComponentPlatform.getInstance(container).then((components) => {\r\n conversation = new ConversationPlatform(container, components);\r\n conversation.initialize();\r\n container.registerAsync(key, () => conversation);\r\n return conversation;\r\n });\r\n }\r\n return conversation;\r\n });\r\n });\r\n }\r\n\r\n navigateToConversationIfActive(id: string): Promise<void> {\r\n return readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((storedSession) => {\r\n if (storedSession && storedSession.id === id) {\r\n if (storedSession.route) {\r\n const { name, params } = storedSession.route;\r\n this.router?.navigate(name, params);\r\n }\r\n }\r\n });\r\n }\r\n\r\n setConversationEndedBehavior(behavior: ConversationEndedBehavior) {\r\n return readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((stored) => {\r\n let storedSession = stored;\r\n if (storedSession) {\r\n storedSession.conversationEndedBehavior = behavior;\r\n } else {\r\n storedSession = { conversationEndedBehavior: behavior };\r\n }\r\n this.sessionInfo = storedSession;\r\n return (\r\n (this.storageWriter && this.storageWriter(this.sessionInfo)) ||\r\n Promise.resolve()\r\n );\r\n });\r\n }\r\n\r\n async createController(id: string, options: { rehydrate: boolean }) {\r\n const storageKey = createSessionStorageKey(id);\r\n const { agents: storedAgents } = (await readStorage<{\r\n agents: AgentSettings[];\r\n }>(this.container, storageKey)) || { agents: [] };\r\n\r\n const index = this.controllers.findIndex((c) => c.conversation.id === id);\r\n let controller;\r\n if (index > -1) {\r\n controller = this.controllers[index].conversation;\r\n } else {\r\n controller = new ConversationController(this.container, id, options);\r\n }\r\n\r\n controller.setInitialStorage({ agents: storedAgents || [] });\r\n return controller;\r\n }\r\n\r\n registerProvider(name: string, handler: ConversationHandler): void {\r\n const provider = {\r\n name,\r\n handler,\r\n };\r\n this.providers.push(provider);\r\n // execute provider for all matching controllers\r\n this.controllers\r\n .filter(\r\n (controller) => controller.conversation.providers.indexOf(name) > -1\r\n )\r\n .forEach((controller) => {\r\n this.invokeHandler(provider, controller);\r\n });\r\n }\r\n\r\n registerController(\r\n conversation: ConversationController,\r\n component: ComponentNodeController\r\n ): boolean {\r\n const index = this.controllers.findIndex(\r\n (c) => c.conversation.id === conversation.id\r\n );\r\n let controller: any;\r\n if (index < 0) {\r\n controller = { conversation, component };\r\n this.controllers.push(controller);\r\n const invokeHandlers = (providers: string[]) => {\r\n if (providers) {\r\n this.providers\r\n .filter((provider) => providers.indexOf(provider.name) > -1)\r\n .forEach((provider) => {\r\n this.invokeHandler(provider, controller);\r\n });\r\n }\r\n };\r\n\r\n this.subscriptions.push(\r\n conversation.onDispose((_event, data) => {\r\n const index = this.controllers.findIndex(\r\n (c) => c.conversation === data\r\n );\r\n index > -1 && this.controllers.splice(index, 1);\r\n this.components\r\n .components()\r\n .ofType('conversation-return-button')\r\n .select()\r\n .writeProperties({ active: false });\r\n\r\n this.events.dispatch('conversation:ended', {}, { bubbles: true });\r\n })\r\n );\r\n this.subscriptions.push(\r\n conversation.onProvidersChange((_event, data) => {\r\n const {\r\n added,\r\n removed = [],\r\n }: { added: string[]; removed: string[] } = data;\r\n removed.forEach((removedProvider) => {\r\n (this.disposeProviders[removedProvider] || []).forEach(\r\n (dispose) => {\r\n dispose();\r\n }\r\n );\r\n });\r\n invokeHandlers(added);\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n conversation.onStarted((_event, isActive) => {\r\n const session: SessionInfo = {\r\n id: conversation.id,\r\n route: this.router?.getRouteData(),\r\n conversationEndedBehavior:\r\n this.sessionInfo?.conversationEndedBehavior,\r\n };\r\n this.sessionInfo = session;\r\n this.storageWriter && this.storageWriter(session);\r\n\r\n this.writeToComponents({ active: isActive });\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n conversation.onUnreadMessage((_event, data) => {\r\n this.events.dispatch('conversation:unread-message', data);\r\n this.writeToComponents({ alert: { show: data } });\r\n })\r\n );\r\n\r\n invokeHandlers(conversation.providers);\r\n return true;\r\n }\r\n controller = this.controllers[index];\r\n return false;\r\n }\r\n\r\n private writeToComponents(\r\n properties: any,\r\n _key: string = 'conversationReturnButtonState'\r\n ) {\r\n if (this.buttonQuery) {\r\n this.components.write({\r\n key: 'conversationReturnButtonState',\r\n attributes: { properties },\r\n target: this.buttonQuery,\r\n provider: 'localStorage',\r\n });\r\n }\r\n }\r\n\r\n private invokeHandler(\r\n provider: ConversationProviderRegistration,\r\n controller: any\r\n ) {\r\n const dispose = provider.handler(\r\n controller.conversation.createProvider(provider.name),\r\n controller.component\r\n );\r\n if (dispose) {\r\n if (!this.disposeProviders[provider.name]) {\r\n this.disposeProviders[provider.name] = [];\r\n }\r\n this.disposeProviders[provider.name].push(dispose);\r\n }\r\n }\r\n\r\n getComponentRoute() {\r\n return readStorage<SessionInfo>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((stored) => stored?.route);\r\n }\r\n\r\n dispose() {\r\n Object.keys(this.disposeProviders).forEach((key) => {\r\n this.disposeProviders[key].forEach((dispose) => {\r\n dispose();\r\n });\r\n });\r\n this.subscriptions.forEach((unsubscribe) => {\r\n unsubscribe();\r\n });\r\n this.controllers = [];\r\n this.providers = [];\r\n }\r\n\r\n public static async handleContactMethodClick(\r\n event: any,\r\n container: Container,\r\n contactMethod: any,\r\n _callback?: Function\r\n ) {\r\n if (shouldPreventDefault(container)) {\r\n event.preventDefault();\r\n let triggerEl = document.getElementById('humany-dynamic-anchor');\r\n if (!triggerEl) {\r\n triggerEl = document.createElement('a');\r\n triggerEl.setAttribute('href', '#');\r\n triggerEl.id = 'humany-dynamic-anchor';\r\n document.body.appendChild(triggerEl);\r\n }\r\n openChatWidget(container, contactMethod, triggerEl);\r\n }\r\n openChatWidget(container, contactMethod);\r\n }\r\n\r\n public static async handleContactMethodSubmit(\r\n container: Container,\r\n contactMethod: any\r\n ) {\r\n if (contactMethod?.body.form.meta?.conversation?.id) {\r\n // if we already are in a conversational context, we always want to swap\r\n // the current provider instead of a route navigation\r\n return swapProvider(\r\n container,\r\n contactMethod.body.form.meta.conversation.id,\r\n contactMethod.clientName\r\n );\r\n }\r\n\r\n return navigateToConversation(container, contactMethod);\r\n }\r\n}\r\n","var Br = Object.defineProperty, Vr = Object.defineProperties;\nvar zr = Object.getOwnPropertyDescriptors;\nvar on = Object.getOwnPropertySymbols, Wr = Object.getPrototypeOf, Fr = Object.prototype.hasOwnProperty, qr = Object.prototype.propertyIsEnumerable, Jr = Reflect.get;\nvar an = (n, t, e) => t in n ? Br(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, st = (n, t) => {\n for (var e in t || (t = {}))\n Fr.call(t, e) && an(n, e, t[e]);\n if (on)\n for (var e of on(t))\n qr.call(t, e) && an(n, e, t[e]);\n return n;\n}, zt = (n, t) => Vr(n, zr(t));\nvar cn = (n, t, e) => Jr(Wr(n), e, t);\nvar z = (n, t, e) => new Promise((r, s) => {\n var i = (c) => {\n try {\n a(e.next(c));\n } catch (h) {\n s(h);\n }\n }, o = (c) => {\n try {\n a(e.throw(c));\n } catch (h) {\n s(h);\n }\n }, a = (c) => c.done ? r(c.value) : Promise.resolve(c.value).then(i, o);\n a((e = e.apply(n, t)).next());\n});\nconst Ee = (n, t, e, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, Kr = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Ee(t, \"info\", e, ...r),\n warn: (e, ...r) => Ee(t, \"warning\", e, ...r),\n error: (e, ...r) => Ee(t, \"error\", e, ...r)\n };\n};\nvar se = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(se || {}), pt = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(pt || {});\nconst Gr = (n, t, e, r) => {\n try {\n const s = new t(e, r);\n return {\n name: n,\n invoke: (i, o) => {\n let a;\n return s[i] && (a = s[i].call(s, o)), Promise.resolve(a);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let o;\n return i === \"initialize\" && (o = t(e, r)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw s;\n }\n};\nfunction hn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet Yr = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: se.Widget,\n stage: pt.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: hn(e.scope, se.Widget),\n stage: hn(e.stage, pt.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const o = t.split(\".\");\n return o.forEach((a, c) => {\n c === o.length - 1 ? i[a] || (i[a] = () => s) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n};\nconst Je = (n) => {\n const t = new Yr({});\n return n(t), t.get();\n};\nJe((n) => {\n n.createCommand(\n \"types.register\",\n { scope: se.Implementation, stage: pt.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: pt.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: pt.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: pt.Pre },\n (t) => (e, r, s) => {\n const { container: i } = t;\n let o = null, a = e, c = r;\n typeof e == \"string\" && (o = e, a = r, c = s);\n const h = (l) => {\n const { transformPluginSettings: u } = t.container.get(\"$environmentOptions\"), d = u ? u(\n c || {},\n o,\n t.container,\n a\n ) : r;\n try {\n const p = Gr(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n Kr(t).warn(\"Error when initializing plugin\", p);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nvar Qn = /* @__PURE__ */ ((n) => (n.Activating = \"activating\", n.Loading = \"loading\", n.Activated = \"activated\", n.Deactivating = \"deactivating\", n.Deactivated = \"deactivated\", n))(Qn || {});\nlet Zr = class {\n /**\n * Creates a new `Widget` instance.\n * @param container The `Container` instance to base the widget upon.\n */\n constructor(t) {\n this.container = t, this.widget = t.get(\"$widget\"), this.settings = t.get(\"$settings\"), this.events = this.widget.events, this.widget.events.subscribe(\"settings:change\", (e, r) => {\n this.settings = r;\n });\n }\n};\nvar ln = Object.getOwnPropertySymbols, Qr = Object.prototype.hasOwnProperty, Xr = Object.prototype.propertyIsEnumerable, ts = (n, t) => {\n var e = {};\n for (var r in n)\n Qr.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && ln)\n for (var r of ln(n))\n t.indexOf(r) < 0 && Xr.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction es(n = {}) {\n const t = n, {\n phrase: e = \"\",\n category: r,\n guideCategory: s,\n contactCategory: i,\n take: o,\n connectionKey: a,\n accordion: c,\n id: h,\n uriName: l,\n sorting: u,\n tag: d,\n tagId: p,\n tagTitle: b\n } = t, v = ts(t, [\n \"phrase\",\n \"category\",\n \"guideCategory\",\n \"contactCategory\",\n \"take\",\n \"connectionKey\",\n \"accordion\",\n \"id\",\n \"uriName\",\n \"sorting\",\n \"tag\",\n \"tagId\",\n \"tagTitle\"\n ]), g = {};\n return Object.keys(v).forEach((O) => {\n typeof n[O] == \"string\" && (g[O] = n[O]);\n }), typeof e == \"string\" && e.length && (g.phrase = e), e === null && (g.phrase = e), typeof s == \"string\" && s !== \"0\" && (g.guideCategory = s), typeof s == \"number\" && s !== 0 && (g.guideCategory = s), typeof s == \"object\" && s !== null && (typeof s.id == \"string\" && s.id !== \"0\" && (g.guideCategory = s.id), typeof s.id == \"number\" && s.id !== 0 && (g.guideCategory = s.id)), typeof i == \"string\" && i !== \"0\" && (g.contactCategory = i), typeof i == \"number\" && i !== 0 && (g.contactCategory = i), typeof i == \"object\" && i !== null && (typeof i.id == \"string\" && i.id !== \"0\" && (g.contactCategory = i.id), typeof i.id == \"number\" && i.id !== 0 && (g.contactCategory = i.id)), typeof r == \"string\" && r !== \"0\" && (g.category = r), typeof r == \"number\" && r !== 0 && (g.category = r), typeof r == \"object\" && r !== null && (typeof r.id == \"string\" && r.id !== \"0\" && (g.category = r.id), typeof r.id == \"number\" && r.id !== 0 && (g.category = r.id)), h && (g.id = h), l && (+g.category || +g.guideCategory || +g.guide || +g.contactCategory || +g.contactMethod) && (g.uriName = l), a && (g.connectionKey = a), o && (g.take = o), u && (g.sorting = u), typeof c == \"string\" && c.length > 0 && (g.accordion = c), typeof d == \"string\" && d !== \"0\" && (g.tag = d), typeof d == \"number\" && d !== 0 && (g.tag = d), Array.isArray(d) && d.length && (g.tag = d), (typeof p == \"string\" || typeof p == \"number\") && (g.tagId = p), typeof b == \"string\" && (g.tagTitle = b), typeof g.tag == \"string\" && (g.tag = g.tag.split(\",\")), g;\n}\nconst pe = (n, t, ...e) => typeof t == \"string\" ? n(`[humany] ${t}`, ...e) : n(t, ...e), Nt = class {\n constructor() {\n this.keys = [], this.log = (t, ...e) => this.lookup(t, () => Nt.log(...e)), this.warn = (t, ...e) => this.lookup(t, () => Nt.warn(...e)), this.error = (t, ...e) => this.lookup(t, () => Nt.error(...e)), this.info = (t, ...e) => this.lookup(t, () => Nt.info(...e));\n }\n lookup(t, e) {\n this.keys.indexOf(t) === -1 && (this.keys.push(t), e());\n }\n};\nlet I = Nt;\nI.log = (...n) => pe(console.log, ...n);\nI.warn = (...n) => pe(console.warn, ...n);\nI.error = (...n) => pe(console.error, ...n);\nI.info = (...n) => pe(console.info, ...n);\nconst Xn = (n) => {\n let t = {}, e, r;\n if (typeof n != \"object\" || n === null)\n return n;\n t = Array.isArray(n) ? [] : {};\n for (r in n)\n e = n[r], t[r] = typeof e == \"object\" && e !== null ? Xn(e) : e;\n return t;\n}, ns = Xn;\nfunction un(n) {\n let t = 0;\n if (n.length === 0)\n return t.toString();\n for (let e = 0; e < n.length; e++) {\n const r = n.charCodeAt(e);\n t = (t << 5) - t + r, t = t & t;\n }\n return t.toString();\n}\nlet rs = class {\n constructor(t, e) {\n this.lockWarningTime = t, this.lockErrorTime = e, this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, e, r, s) {\n this.tasks.push({ task: t, resolve: e, reject: r, done: s }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n let e;\n const r = setTimeout(() => {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\n t\n ), e = setTimeout(() => {\n t.reject(\"lock timeout exceeded\");\n }, this.lockErrorTime);\n }, this.lockWarningTime), s = Promise.resolve(t.task()).then((i) => (clearTimeout(r), clearTimeout(e), i));\n return Promise.resolve(s).then(this.next).then(\n () => s.then((i) => {\n t.done(), t.resolve(i);\n })\n ).catch((i) => (t.done(), t.reject(i), this.next()));\n }\n return Promise.resolve();\n });\n }\n};\nconst Wt = /* @__PURE__ */ new WeakMap();\nfunction Q(n, t = 5e3, e = 1e3) {\n return Wt.has(n) || Wt.set(n, new rs(t, e)), (r) => new Promise((s, i) => {\n const o = Wt.get(n);\n o.add(r, s, i, () => {\n o.tasks.length || Wt.delete(n);\n });\n });\n}\nconst ss = (n, t) => {\n const e = () => t.querySelectorAll(\"[data-loading=true]\").length > 0, r = (() => {\n let s = !1;\n return () => {\n s || (n.get(\"$widget\").events.dispatch(\"widget:data-loaded\", {\n element: t\n }), s = !0);\n };\n })();\n if (!e())\n return r();\n new MutationObserver((s, i) => {\n s.find(\n (o) => o.type === \"attributes\" && o.attributeName === \"data-loading\"\n ) && !e() && (i.disconnect(), r());\n }).observe(t, {\n attributes: !0,\n childList: !0,\n subtree: !0\n });\n}, is = (n, t) => {\n n.get(\"$widget\").container.getAsync(\"components\").then((e) => {\n e.events.subscribeOnce(\"components:component-model-initialized\", () => {\n let r = e.nodes.visible.reduce(\n (i, o) => (!o.name || !o.type || o.type === \"view\" || o.type === \"root\" || o.attributes.layout.size === \"none\" || t.querySelector(`[data-name=\"${o.name}\"]`) || i.push(o.name), i),\n []\n ), s = !1;\n new MutationObserver((i, o) => {\n i.forEach((a) => {\n if (a.addedNodes) {\n const c = Array.from(\n a.addedNodes\n ).reduce((h, l) => {\n const u = l.getAttribute && l.getAttribute(\"data-name\");\n return u && r.indexOf(u) > -1 && h.push(u), h;\n }, []);\n r = r.filter((h) => c.indexOf(h) === -1), !s && r.length === 0 && (s = !0, ss(n, t), o.disconnect());\n }\n });\n }).observe(t, {\n attributes: !1,\n characterData: !1,\n childList: !0,\n subtree: !0,\n attributeOldValue: !1,\n characterDataOldValue: !1\n });\n });\n });\n}, os = is, as = (n = {}) => (Object.keys(n).forEach((t) => {\n (n[t] === null || typeof n[t] == \"undefined\") && delete n[t];\n}), n), yt = as, dn = (n, t) => {\n let e = !0;\n return Object.keys(n).length !== Object.keys(t).length || Object.keys(n).some((r) => !Object.keys(t).some((s) => r === s)) ? !1 : (Object.keys(n).forEach((r) => {\n if (e) {\n const s = typeof n[r] == \"undefined\" ? \"\" : n[r], i = typeof t[r] == \"undefined\" ? \"\" : t[r];\n e = s.toString() === i.toString();\n }\n }), e);\n}, it = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction Bt() {\n return it() + it() + \"-\" + it() + \"-\" + it() + \"-\" + it() + \"-\" + it() + it() + it();\n}\nvar cs = Object.defineProperty, hs = Object.defineProperties, ls = Object.getOwnPropertyDescriptors, pn = Object.getOwnPropertySymbols, us = Object.prototype.hasOwnProperty, ds = Object.prototype.propertyIsEnumerable, gn = (n, t, e) => t in n ? cs(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, ps = (n, t) => {\n for (var e in t || (t = {}))\n us.call(t, e) && gn(n, e, t[e]);\n if (pn)\n for (var e of pn(t))\n ds.call(t, e) && gn(n, e, t[e]);\n return n;\n}, gs = (n, t) => hs(n, ls(t));\nclass fs {\n constructor(t) {\n const { events: e } = t.get(\"$widget\");\n this.events = e.createChild(this);\n }\n action(t, e, r) {\n this.events.dispatch(\"data:action\", { action: e, value: r, target: t }, { bubbles: !0 });\n }\n subscribe(t, e) {\n return this.events.subscribe(\n \"data:action\",\n (r, { action: s, value: i, target: o }) => t === o && e(t, s, i)\n );\n }\n}\nconst tr = (n) => {\n const t = [];\n return [\n (e, r) => {\n t.push(n.subscribe(e, r));\n },\n () => {\n t.forEach((e) => {\n e();\n });\n }\n ];\n};\nlet Pt = class {\n constructor(t, e = []) {\n this.platform = t, this.rules = e;\n }\n match(t) {\n return this.rules.every((e) => !(e.id && e.id !== t.id || e.type && e.type !== t.type));\n }\n ofType(t) {\n return this.rules.push({ type: t }), this;\n }\n withId(t) {\n return this.rules.push({ id: t }), this;\n }\n select() {\n return new ms(this.platform, this);\n }\n}, Ke = class {\n constructor(t, e, r) {\n this.platform = t, this.node = e, this.actions = new ge(\n t,\n new Pt(t).withId(e.id),\n r\n );\n const [s, i] = tr(this.platform.events);\n this.subscribe = s, this.unsubscribe = i;\n }\n properties(t) {\n return t && this.node.touchProperties((e) => t(e)), this.node.attributes.properties;\n }\n context(t) {\n return t && this.subscribe(\"components:context-changed\", (e, { node: r }) => {\n r === this.node && t(this.node.attributes.context);\n }), this.node.attributes.context;\n }\n layout(t) {\n return t && this.subscribe(\"components:layout-changed\", (e, { node: r }) => {\n r === this.node && t(this.node.attributes.layout);\n }), this.node.attributes.layout;\n }\n writeProperties(t, e) {\n this.node.writeProperties(t, e);\n }\n writeContext(t, e) {\n this.node.writeProperties(t, e);\n }\n writeLayout(t, e) {\n this.node.writeLayout(t, e);\n }\n dispose() {\n this.unsubscribe(), this.actions.dispose();\n }\n};\nclass ms {\n constructor(t, e, r = !0) {\n this.platform = t, this.target = e, this.clearOnDispose = r, this.removes = [], this.actions = new ge(this.platform, this.target);\n }\n writeProperties(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { properties: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeContext(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { context: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeLayout(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { layout: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n dispose() {\n this.removes.forEach((t) => {\n t();\n }), this.actions.dispose();\n }\n}\nconst vs = (n, t, e) => {\n const r = n.concat(), s = (i, o, a) => {\n let c = !0;\n if (r.length) {\n const h = r.shift(), l = (u, d) => (c = !1, s(u, Object.assign({}, o, d), a));\n return Promise.resolve(h(i, l, a)).then((u) => gs(ps({}, u), {\n cancelled: c\n }));\n }\n return Promise.resolve({ data: i, cancelled: !1, options: o });\n };\n return s(t, {}, e);\n};\nlet ge = class {\n constructor(t, e, r) {\n this.platform = t, this.target = e, this.ns = r, this.subscriptions = [], this.create = this.create.bind(this);\n }\n create(t, e = () => {\n }) {\n const r = {\n key: t,\n fn: e,\n target: this.target,\n ns: this.ns\n };\n this.platform.actionsState.handlers.push(r);\n const s = () => {\n const i = this.platform.actionsState.handlers.indexOf(r);\n i > -1 && this.platform.actionsState.handlers.splice(i, 1);\n };\n return this.subscriptions.push(s), s;\n }\n dispatch(t, e) {\n const r = this.platform.nodes.all.concat(\n this.platform.nodes.detached\n ), s = {}, i = this.platform.actionsState.handlers.filter(\n (o) => o.key === t && (!o.ns || !this.ns || o.ns === this.ns)\n );\n return Promise.all(\n i.map((o) => {\n const a = r.filter(\n (h) => o.target.match(h) && this.target.match(h)\n ), c = this.platform.actionsState.watchers.filter((h) => h.key === t && (!h.ns || !this.ns || h.ns === this.ns) && a.some((l) => h.target.match(l))).map((h) => h.fn);\n return Promise.all(\n a.map((h) => {\n const l = new Ke(\n this.platform,\n h,\n this.ns\n );\n return vs(c, e, l).then((u) => {\n const { data: d = {}, options: p, cancelled: b } = u;\n return Promise.resolve(\n b ? {} : o.fn(d, p, l)\n ).then((v) => {\n s[h.id] = v;\n });\n });\n })\n );\n })\n ).then(() => s);\n }\n watch(t, e) {\n let r = t, s = this.ns;\n const i = t.split(\".\");\n i.length > 1 && (s = i[0], r = i.splice(1).join(\".\"));\n const o = {\n fn: e,\n target: this.target,\n key: r,\n ns: s\n };\n this.platform.actionsState.watchers.push(o);\n const a = () => {\n const c = this.platform.actionsState.watchers.indexOf(o);\n c > -1 && this.platform.actionsState.watchers.splice(c, 1);\n };\n return this.subscriptions.push(a), a;\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n};\nJe((n) => {\n n.createCommand(\"components\", (t) => (e) => {\n t.events.subscribeOnce(\"components:platform-created\", (r, { platform: s }) => {\n e.handlers && e.handlers.forEach(([i, o]) => {\n s.addComponentHandler(i, o);\n });\n });\n });\n});\nlet Be = class {\n constructor(t, e) {\n this.events = t, this.tags = [], this.children = {}, this.changesets = [], this.mountCount = 0, this.id = Bt(), this.type = e, this.attributes = {\n context: {},\n properties: {},\n layout: {},\n tags: []\n }, this.writeLayout({ size: \"full\", indent: 0 });\n }\n mount(t, e) {\n let r = t.get(\"mounted-nodes\");\n return r || (r = /* @__PURE__ */ new Map(), t.register(\"mounted-nodes\", r)), r.has(this) ? (process.env.NODE_ENV !== \"production\" && I.error(\"Trying to mount an already mounted component node.\", this), () => {\n }) : (this.events.dispatch(\"components:node-mounted\", { node: this }), this.mountCount === 0 && (this.mountCount = this.mountCount + 1, this.events.dispatch(\"components:node-enter\", { node: this })), () => {\n r.delete(this), this.events.dispatch(\"components:node-unmounted\", { node: this }), this.mountCount = this.mountCount - 1, this.mountCount === 0 && this.events.dispatch(\"components:node-exit\", { node: this });\n });\n }\n appendChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].push(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n prependChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].unshift(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n touchProperties(t, e = {}, r) {\n const s = [{ properties: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (r) {\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeProperties(t, e = {}, r) {\n const s = [{ properties: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (r) {\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeLayout(t, e = {}, r) {\n const s = [{ layout: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-layout\", { node: this }), () => {\n if (!r)\n return;\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-layout\", { node: this }));\n };\n }\n writeContext(t, e = {}, r) {\n const s = [{ context: t }, e];\n return this.changesets.push(s), this.events.dispatch(\"components:set-context\", { node: this }), () => {\n if (!r)\n return;\n const i = this.changesets.indexOf(s);\n i > -1 && (this.changesets.splice(i, 1), this.events.dispatch(\"components:set-context\", { node: this }));\n };\n }\n getChildren(t = \"default\") {\n const e = this.children[t] || [];\n return e.reduce((r, s, i) => {\n const { order: o = i } = s.attributes.layout;\n return r[o] ? r.splice(o, 0, s) : r[o] = s, r;\n }, Array(e.length));\n }\n remove() {\n this.parent && this.parent.removeChild(this);\n }\n removeChild(t) {\n Object.keys(this.children).forEach((e) => {\n const r = this.children[e], s = r.indexOf(t);\n s > -1 && (r.splice(s, 1), this.events.dispatch(\"components:node-removed\", { node: t, parentNode: this }));\n }), delete t.parent;\n }\n};\nconst er = (n, t, e) => {\n for (let r = 0, s = n.length; r < s && e(n[r]) !== !0; r++) {\n const i = t[n[r].id] || \"default\", o = n[r].getChildren(i);\n er(o, t, e);\n }\n}, fe = (n, t, e) => {\n if (e(n) !== !0) {\n const r = t[n.id] || \"default\", s = n.children[r];\n er(s, t, e);\n }\n}, Zt = (n, t) => {\n const e = [];\n return fe(n, t, (r) => {\n e.push(r);\n }), e;\n}, nr = (n, t, e) => {\n let r;\n return fe(n, t, (s) => {\n if (e(s))\n return r = s, !0;\n }), r;\n};\nlet ys = class {\n constructor(t, e, r) {\n this.root = t, this.switches = e, this.all = [], this.visible = [], this.detached = [], r.subscribe(\"components:node-appended\", (s, i) => {\n this.all.push(i.node), this.visible = Zt(t, e);\n }), r.subscribe(\"components:node-removed\", (s, i) => {\n let o = this.all.indexOf(i.node);\n o > -1 && this.all.splice(o, 1), o = this.visible.indexOf(i.node), o > -1 && this.visible.splice(o, 1), this.visible = Zt(t, e);\n }), r.subscribe(\"components:node-switched\", (s, i) => {\n this.visible = Zt(t, e);\n });\n }\n query(t = {}) {\n const e = [];\n return fe(this.root, this.switches, (r) => {\n Object.keys(t).every((s) => t[s] === r[s]) && e.push(r);\n }), e;\n }\n get(t) {\n return nr(this.root, this.switches, (e) => e.id === t) || this.detached.find((e) => e.id === t);\n }\n}, bs = class {\n constructor() {\n this.handlers = /* @__PURE__ */ new Map();\n }\n add(t, e) {\n this.handlers.set(t, e);\n }\n get(t) {\n return this.handlers.get(t);\n }\n};\nconst ws = (n) => {\n let t = n, e = 0;\n for (; t.parent; )\n e = e + 1, t = t.parent;\n return e;\n}, $s = (n) => n.map(([t, e]) => [ws(t), t, e]).sort(([t], [e]) => t - e).map(([, t, e]) => [t, e]), Oe = (n) => n instanceof Date ? !1 : n && typeof n == \"object\" && !Array.isArray(n), X = (n, ...t) => {\n if (!t.length)\n return n;\n const e = t.shift();\n if (Oe(n) && Oe(e))\n for (const r in e)\n Oe(e[r]) ? (n[r] || Object.assign(n, { [r]: {} }), X(n[r], e[r])) : Object.assign(n, { [r]: e[r] });\n return X(n, ...t);\n}, Es = (n, t) => !n || n === \"all\" ? !0 : n.some((e) => t.indexOf(e) > -1), Os = (n, t) => {\n let e = [], r = [], s;\n const i = () => {\n process.env.NODE_ENV !== \"production\" && console.time(\"state-processor.flush\");\n const a = /* @__PURE__ */ new Map(), c = $s(e.map((l, u) => [l, r[u]])), h = (l, u) => {\n var d;\n const p = a.get(l) || {}, b = u.context && !p.context, v = u.properties && !p.properties, g = u.layout && !p.layout;\n a.set(l, {\n context: p.context || b,\n properties: p.properties || v,\n layout: p.layout || g\n }), v && (l.attributes.properties = {}), g && (l.attributes.layout = {}), b && (l.attributes.context = X({}, (d = l.parent) == null ? void 0 : d.attributes.context));\n const O = [], j = [], W = [];\n if (l.changesets.forEach((H) => {\n const [k, U] = H;\n Es(U.breakpoints, n.breakpoints) && (v && (typeof k.properties == \"function\" ? O.push(\n k.properties\n ) : X(l.attributes.properties, k.properties)), g && (typeof k.layout == \"function\" ? j.push(k.layout) : X(l.attributes.layout, k.layout)), b && (typeof k.context == \"function\" ? W.push(k.context) : X(l.attributes.context, k.context)));\n }), O.forEach((H) => {\n X(l.attributes.properties, H(l.attributes.properties));\n }), j.forEach((H) => {\n X(l.attributes.layout, H(l.attributes.layout));\n }), W.forEach((H) => {\n X(l.attributes.context, H(l.attributes.context));\n }), b || u.recursive) {\n const H = n.getBranch(l), k = u.recursive ? u : {\n context: !!b\n };\n l.getChildren(H).forEach((U) => {\n h(U, k);\n });\n }\n };\n process.env.NODE_ENV !== \"production\" && console.timeEnd(\"state-processor.flush\"), c.forEach(([l, u]) => {\n h(l, u);\n }), e = [], r = [], t(a);\n }, o = () => {\n clearTimeout(s), s = setTimeout(i, 0);\n };\n return (a, c) => {\n const h = e.indexOf(a);\n if (h > -1) {\n const l = r[h];\n return c.context && (l.context = !0), c.properties && (l.properties = !0), c.layout && (l.layout = !0), c.recursive && (l.recursive = !0), o();\n }\n return e.push(a), r.push(c), o();\n };\n};\nlet me = class {\n constructor(t, e = {}) {\n this.providers = e, this.breakpoints = [], this.actionsState = { handlers: [], watchers: [] }, this.switches = {}, this.changesets = [], this.subscriptions = [], this.customComponentHandler = new bs(), this.events = t.events.createChild(this);\n const r = new Be(this.events, \"root\");\n r.name = `root-${t.name}`, this.nodes = new ys(r, this.switches, this.events);\n const s = this.processNode = Os(this, (i) => {\n const o = Array.from(i.keys());\n process.env.NODE_ENV !== \"production\" && console.info(`STATE PROCESSOR: ${o.length} node(s) processed:\n${o.map(\n (a) => `${a.name || \"<no name>\"} (${a.id})\n`\n )}`), o.forEach((a) => {\n const c = i.get(a);\n a.parent && a.parent.type === \"root\" && this.events.dispatch(\"components:root-children-changed\", { node: a }), c != null && c.context && this.events.dispatch(\"components:context-changed\", { node: a }), c != null && c.properties && this.events.dispatch(\"components:properties-changed\", { node: a }), c != null && c.layout && this.events.dispatch(\"components:layout-changed\", { node: a });\n }), this.events.dispatch(\"components:component-model-initialized\", {}, { bubbles: !0 });\n });\n Promise.all(\n Object.keys(e).map((i) => e[i].load(this))\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (i, o) => {\n const { node: a } = o;\n this.changesets.forEach((c) => {\n const { changeset: h, target: l, removes: u } = c, [d, p] = h;\n l.match(o.node) && (d.properties && u.push(a.writeProperties(d.properties, p)), d.context && u.push(a.writeContext(d.context, p)), d.layout && u.push(a.writeLayout(d.layout, p)));\n });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (i, o) => {\n s(o.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-properties\",\n (i, o) => {\n s(o.node, { properties: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-context\",\n (i, o) => {\n s(o.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-indent\",\n (i, o) => {\n s(o.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-layout\",\n (i, o) => {\n s(o.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-switched\", (i, { node: o, branch: a }) => {\n s(o, {\n layout: !0,\n recursive: !0,\n properties: !0,\n context: !0\n });\n })\n ), this.subscriptions.push(\n this.events.subscribe(\"components:node-removed\", (i, { parentNode: o }) => {\n s(o, { properties: !0 });\n })\n ), this.events.parent && this.events.parent.dispatch(\"components:platform-created\", { platform: this });\n }\n static getInstance(t) {\n return t.getAsync(\"components\");\n }\n addBreakpoint(t) {\n this.breakpoints.indexOf(t) === -1 && (this.breakpoints.push(t), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n removeBreakpoint(t) {\n const e = this.breakpoints.indexOf(t);\n e > -1 && (this.breakpoints.splice(e, 1), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n setSwitch(t, e) {\n this.switches[t.id] = e, this.events.dispatch(\"components:node-switched\", { node: t, branch: e });\n }\n getBranch(t) {\n return this.switches[t.id];\n }\n /**\n * Creates a `ComponentNode` of the specified type.\n * @param type Type of node.\n */\n createNode(t, e = {}) {\n const r = new Be(this.events, t);\n return e.detached && this.nodes.detached.push(r), r;\n }\n components() {\n return new Pt(this);\n }\n actions(t, e) {\n return new ge(this, t, e);\n }\n write(t) {\n const { provider: e, target: r, attributes: s, options: i = {}, removable: o } = t, a = t.key || Bt(), c = { changeset: [s, i], target: r, removes: [] };\n if (e) {\n const h = this.providers[e];\n h.write(a, r, s, i), c.removes.push(() => {\n h.remove(a);\n });\n }\n return this.changesets.push(c), this.nodes.all.forEach((h) => {\n if (r.match(h)) {\n let l = () => {\n };\n s.properties && (l = h.writeProperties(s.properties, i, o)), s.context && (l = h.writeContext(s.context, i, o)), s.layout && (l = h.writeContext(s.layout, i, o)), c.removes.push(l);\n }\n }), () => {\n if (o) {\n c.removes.forEach((l) => l());\n const h = this.changesets.indexOf(c);\n h > -1 && this.changesets.splice(h, 1);\n }\n };\n }\n addComponentHandler(t, e) {\n this.customComponentHandler.add(t, e);\n }\n getComponentHandler(t) {\n return this.customComponentHandler.get(t);\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n};\nconst As = (n) => {\n if (Array.isArray(n)) {\n const [t, ...e] = n;\n return {\n definitionId: t,\n overrides: e\n };\n }\n return {\n definitionId: n,\n overrides: []\n };\n}, ie = (n, t, e, r, s, i) => {\n e.forEach((o) => {\n const a = As(o), c = r[a.definitionId];\n if (a.definitionId === \"view\") {\n const h = n.createNode(\"view\");\n h.name = \"view\", Object.keys(s).forEach((l) => {\n const u = s[l];\n ie(n, h, [u.entry], r, s, l);\n }), t.appendChild(h), a.overrides.forEach((l) => {\n l.properties && h.writeProperties(l.properties, {\n breakpoints: l.breakpoints\n }), l.context && h.writeContext(l.context, { breakpoints: l.breakpoints }), l.layout && h.writeLayout(l.layout, { breakpoints: l.breakpoints });\n });\n } else if (n.getComponentHandler(c.type)) {\n const h = n.getComponentHandler(c.type);\n h && h(a, {\n platform: n,\n node: t,\n references: e,\n definitions: r,\n views: s,\n branch: i\n });\n } else {\n const h = r[a.definitionId];\n if (process.env.NODE_ENV !== \"production\" && !h) {\n I.error(\n `No definition found for component type '${a.definitionId}'.`\n );\n return;\n }\n const l = n.createNode(h.type);\n l.name = a.definitionId, l.tags = h.tags || [], h.properties && l.writeProperties(h.properties), h.context && l.writeContext(h.context), h.layout && l.writeLayout(h.layout), t.appendChild(l, i), a.overrides.forEach((u) => {\n const d = { breakpoints: u.breakpoints };\n u.properties && l.writeProperties(u.properties, d), u.context && l.writeContext(u.context, d), u.layout && l.writeLayout(u.layout, d);\n }), h.children && ie(n, l, h.children, r, s);\n }\n });\n}, rr = (n, t) => {\n const { entry: e, components: r, breakpoints: s, views: i } = t, o = [];\n return Object.keys(s).forEach((a) => {\n const c = s[a], h = window.matchMedia(c);\n h.matches && n.breakpoints.push(a);\n const l = (u) => {\n u.matches ? n.addBreakpoint(a) : n.removeBreakpoint(a);\n };\n h.addListener(l), o.push(() => h.removeListener(l));\n }), ie(n, n.nodes.root, [e], r, i), () => o.forEach((a) => {\n a();\n });\n}, xs = (n, t) => ({\n id: n.id,\n type: n.type,\n name: n.name,\n branch: t || \"default\"\n}), sr = (n, t, e, r = Bt(), s = {}) => n.getAsync(\"components\").then((i) => {\n let o;\n if (typeof t == \"string\") {\n const h = new Pt(i);\n h.ofType(t), o = h;\n } else\n o = t;\n const a = {}, c = (h) => {\n const l = a[h.id];\n return l ? Promise.resolve(l.controller) : me.getInstance(n).then((u) => new Ke(u, h, r));\n };\n i.events.subscribe(\n \"components:node-enter\",\n (h, { node: l }) => {\n o.match(l) && c(l).then((u) => {\n Promise.resolve(e(u)).then((d) => {\n a[l.id] = {\n dispose: d,\n controller: u\n };\n });\n });\n }\n ), i.events.subscribe(\n \"components:node-exit\",\n (h, { node: l }) => {\n const u = a[l.id];\n u && (u.dispose && u.dispose(), s.reuseController || (u.controller.dispose(), delete a[l.id]));\n }\n );\n});\nclass _s {\n constructor(t) {\n this.aliases = /* @__PURE__ */ new Map(), this.components = /* @__PURE__ */ new Map(), this.logger = new I();\n const { events: e } = t.get(\"$widget\");\n this.events = e;\n }\n getComponent(t) {\n const e = this.aliases.get(t), r = this.components.get(e || t) || null;\n return process.env.NODE_ENV !== \"production\" && (r || this.logger.warn(\n e || t,\n `Unable to resolve component: \"${e || t}\". You most likely forgot to register the required plugin for: ${e || t}.`\n )), r;\n }\n registerComponent(t, e) {\n return this.components.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.components.delete(t);\n };\n }\n registerResolver(t, e) {\n return this.events.subscribe(\"component-resolver:resolve\", (r, s) => {\n if (s === t) {\n const i = this.getComponent(t);\n e(i);\n }\n });\n }\n registerAlias(t, e) {\n return this.aliases.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.aliases.delete(t);\n };\n }\n}\nvar q = /* @__PURE__ */ ((n) => (n.open = \"open\", n.closed = \"closed\", n.hidden = \"hidden\", n))(q || {});\nconst Ge = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n ActionResolver: fs,\n ActionsController: ge,\n ComponentNode: Be,\n ComponentNodeController: Ke,\n ComponentPlatform: me,\n ComponentQuery: Pt,\n ComponentResolver: _s,\n WidgetRenderState: q,\n asDescriptor: xs,\n createChildren: ie,\n createComponentModel: rr,\n createEventSubscriber: tr,\n extendComponent: sr,\n findComponent: nr,\n findVisibleComponents: Zt,\n traverseComponents: fe\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ir(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar or = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (or = function(n, t, e) {\n var r = arguments.length;\n e = new Array(r > 2 ? r - 2 : 0);\n for (var s = 2; s < r; s++)\n e[s - 2] = arguments[s];\n if (t === void 0)\n throw new Error(\n \"`warning(condition, format, ...args)` requires a warning message argument\"\n );\n if (t.length < 10 || /^[s\\W]*$/.test(t))\n throw new Error(\n \"The warning format should be able to uniquely identify this warning. Please, use a more descriptive format than: \" + t\n );\n if (!n) {\n var i = 0, o = \"Warning: \" + t.replace(/%s/g, function() {\n return e[i++];\n });\n typeof console != \"undefined\" && console.error(o);\n try {\n throw new Error(o);\n } catch (a) {\n }\n }\n});\nvar Ss = or;\nconst tt = /* @__PURE__ */ ir(Ss);\nvar Ps = function(n, t, e, r, s, i, o, a) {\n if (process.env.NODE_ENV !== \"production\" && t === void 0)\n throw new Error(\"invariant requires an error message argument\");\n if (!n) {\n var c;\n if (t === void 0)\n c = new Error(\n \"Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.\"\n );\n else {\n var h = [e, r, s, i, o, a], l = 0;\n c = new Error(\n t.replace(/%s/g, function() {\n return h[l++];\n })\n ), c.name = \"Invariant Violation\";\n }\n throw c.framesToPop = 1, c;\n }\n}, Cs = Ps;\nconst ks = /* @__PURE__ */ ir(Cs);\nfunction Ft(n) {\n return n.charAt(0) === \"/\";\n}\nfunction Ae(n, t) {\n for (var e = t, r = e + 1, s = n.length; r < s; e += 1, r += 1)\n n[e] = n[r];\n n.pop();\n}\nfunction Ns(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Ft(n), i = t && Ft(t), o = s || i;\n if (n && Ft(n) ? r = e : e.length && (r.pop(), r = r.concat(e)), !r.length)\n return \"/\";\n var a = void 0;\n if (r.length) {\n var c = r[r.length - 1];\n a = c === \".\" || c === \"..\" || c === \"\";\n } else\n a = !1;\n for (var h = 0, l = r.length; l >= 0; l--) {\n var u = r[l];\n u === \".\" ? Ae(r, l) : u === \"..\" ? (Ae(r, l), h++) : h && (Ae(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Ft(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nvar Ms = function(t) {\n return t.charAt(0) === \"/\" ? t : \"/\" + t;\n}, ar = function(t, e) {\n return new RegExp(\"^\" + e + \"(\\\\/|\\\\?|#|$)\", \"i\").test(t);\n}, Ls = function(t, e) {\n return ar(t, e) ? t.substr(e.length) : t;\n}, Ds = function(t) {\n return t.charAt(t.length - 1) === \"/\" ? t.slice(0, -1) : t;\n}, Ts = function(t) {\n var e = t || \"/\", r = \"\", s = \"\", i = e.indexOf(\"#\");\n i !== -1 && (s = e.substr(i), e = e.substr(0, i));\n var o = e.indexOf(\"?\");\n return o !== -1 && (r = e.substr(o), e = e.substr(0, o)), {\n pathname: e,\n search: r === \"?\" ? \"\" : r,\n hash: s === \"#\" ? \"\" : s\n };\n}, cr = function(t) {\n var e = t.pathname, r = t.search, s = t.hash, i = e || \"/\";\n return r && r !== \"?\" && (i += r.charAt(0) === \"?\" ? r : \"?\" + r), s && s !== \"#\" && (i += s.charAt(0) === \"#\" ? s : \"#\" + s), i;\n}, js = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, gt = function(t, e, r, s) {\n var i = void 0;\n typeof t == \"string\" ? (i = Ts(t), i.state = e) : (i = js({}, t), i.pathname === void 0 && (i.pathname = \"\"), i.search ? i.search.charAt(0) !== \"?\" && (i.search = \"?\" + i.search) : i.search = \"\", i.hash ? i.hash.charAt(0) !== \"#\" && (i.hash = \"#\" + i.hash) : i.hash = \"\", e !== void 0 && i.state === void 0 && (i.state = e));\n try {\n i.pathname = decodeURI(i.pathname);\n } catch (o) {\n throw o instanceof URIError ? new URIError('Pathname \"' + i.pathname + '\" could not be decoded. This is likely caused by an invalid percent-encoding.') : o;\n }\n return r && (i.key = r), s ? i.pathname ? i.pathname.charAt(0) !== \"/\" && (i.pathname = Ns(i.pathname, s.pathname)) : i.pathname = s.pathname : i.pathname || (i.pathname = \"/\"), i;\n}, hr = function() {\n var t = null, e = function(c) {\n return tt(t == null, \"A history supports only one prompt at a time\"), t = c, function() {\n t === c && (t = null);\n };\n }, r = function(c, h, l, u) {\n if (t != null) {\n var d = typeof t == \"function\" ? t(c, h) : t;\n typeof d == \"string\" ? typeof l == \"function\" ? l(d, u) : (tt(!1, \"A history needs a getUserConfirmation function in order to use a prompt message\"), u(!0)) : u(d !== !1);\n } else\n u(!0);\n }, s = [], i = function(c) {\n var h = !0, l = function() {\n h && c.apply(void 0, arguments);\n };\n return s.push(l), function() {\n h = !1, s = s.filter(function(u) {\n return u !== l;\n });\n };\n }, o = function() {\n for (var c = arguments.length, h = Array(c), l = 0; l < c; l++)\n h[l] = arguments[l];\n s.forEach(function(u) {\n return u.apply(void 0, h);\n });\n };\n return {\n setPrompt: e,\n confirmTransitionTo: r,\n appendListener: i,\n notifyListeners: o\n };\n}, Rs = !!(typeof window != \"undefined\" && window.document && window.document.createElement), fn = function(t, e, r) {\n return t.addEventListener ? t.addEventListener(e, r, !1) : t.attachEvent(\"on\" + e, r);\n}, mn = function(t, e, r) {\n return t.removeEventListener ? t.removeEventListener(e, r, !1) : t.detachEvent(\"on\" + e, r);\n}, Is = function(t, e) {\n return e(window.confirm(t));\n}, Hs = function() {\n var t = window.navigator.userAgent;\n return (t.indexOf(\"Android 2.\") !== -1 || t.indexOf(\"Android 4.0\") !== -1) && t.indexOf(\"Mobile Safari\") !== -1 && t.indexOf(\"Chrome\") === -1 && t.indexOf(\"Windows Phone\") === -1 ? !1 : window.history && \"pushState\" in window.history;\n}, Us = function() {\n return window.navigator.userAgent.indexOf(\"Trident\") === -1;\n}, Bs = function(t) {\n return t.state === void 0 && navigator.userAgent.indexOf(\"CriOS\") === -1;\n}, vn = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n} : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n}, Vs = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, yn = \"popstate\", bn = \"hashchange\", wn = function() {\n try {\n return window.history.state || {};\n } catch (t) {\n return {};\n }\n}, zs = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n ks(Rs, \"Browser history needs a DOM\");\n var e = window.history, r = Hs(), s = !Us(), i = t.forceRefresh, o = i === void 0 ? !1 : i, a = t.getUserConfirmation, c = a === void 0 ? Is : a, h = t.keyLength, l = h === void 0 ? 6 : h, u = t.basename ? Ds(Ms(t.basename)) : \"\", d = function(m) {\n var E = m || {}, M = E.key, L = E.state, J = window.location, K = J.pathname, rt = J.search, Z = J.hash, F = K + rt + Z;\n return tt(!u || ar(F, u), 'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path \"' + F + '\" to begin with \"' + u + '\".'), u && (F = Ls(F, u)), gt(F, L, M);\n }, p = function() {\n return Math.random().toString(36).substr(2, l);\n }, b = hr(), v = function(m) {\n Vs(_, m), _.length = e.length, b.notifyListeners(_.location, _.action);\n }, g = function(m) {\n Bs(m) || W(d(m.state));\n }, O = function() {\n W(d(wn()));\n }, j = !1, W = function(m) {\n if (j)\n j = !1, v();\n else {\n var E = \"POP\";\n b.confirmTransitionTo(m, E, c, function(M) {\n M ? v({ action: E, location: m }) : H(m);\n });\n }\n }, H = function(m) {\n var E = _.location, M = U.indexOf(E.key);\n M === -1 && (M = 0);\n var L = U.indexOf(m.key);\n L === -1 && (L = 0);\n var J = M - L;\n J && (j = !0, D(J));\n }, k = d(wn()), U = [k.key], A = function(m) {\n return u + cr(m);\n }, N = function(m, E) {\n tt(!((typeof m == \"undefined\" ? \"undefined\" : vn(m)) === \"object\" && m.state !== void 0 && E !== void 0), \"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored\");\n var M = \"PUSH\", L = gt(m, E, p(), _.location);\n b.confirmTransitionTo(L, M, c, function(J) {\n if (J) {\n var K = A(L), rt = L.key, Z = L.state;\n if (r)\n if (e.pushState({ key: rt, state: Z }, null, K), o)\n window.location.href = K;\n else {\n var F = U.indexOf(_.location.key), sn = U.slice(0, F === -1 ? 0 : F + 1);\n sn.push(L.key), U = sn, v({ action: M, location: L });\n }\n else\n tt(Z === void 0, \"Browser history cannot push state in browsers that do not support HTML5 history\"), window.location.href = K;\n }\n });\n }, C = function(m, E) {\n tt(!((typeof m == \"undefined\" ? \"undefined\" : vn(m)) === \"object\" && m.state !== void 0 && E !== void 0), \"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored\");\n var M = \"REPLACE\", L = gt(m, E, p(), _.location);\n b.confirmTransitionTo(L, M, c, function(J) {\n if (J) {\n var K = A(L), rt = L.key, Z = L.state;\n if (r)\n if (e.replaceState({ key: rt, state: Z }, null, K), o)\n window.location.replace(K);\n else {\n var F = U.indexOf(_.location.key);\n F !== -1 && (U[F] = L.key), v({ action: M, location: L });\n }\n else\n tt(Z === void 0, \"Browser history cannot replace state in browsers that do not support HTML5 history\"), window.location.replace(K);\n }\n });\n }, D = function(m) {\n e.go(m);\n }, V = function() {\n return D(-1);\n }, B = function() {\n return D(1);\n }, R = 0, f = function(m) {\n R += m, R === 1 ? (fn(window, yn, g), s && fn(window, bn, O)) : R === 0 && (mn(window, yn, g), s && mn(window, bn, O));\n }, w = !1, y = function() {\n var m = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, E = b.setPrompt(m);\n return w || (f(1), w = !0), function() {\n return w && (w = !1, f(-1)), E();\n };\n }, $ = function(m) {\n var E = b.appendListener(m);\n return f(1), function() {\n f(-1), E();\n };\n }, _ = {\n length: e.length,\n action: \"POP\",\n location: k,\n createHref: A,\n push: N,\n replace: C,\n go: D,\n goBack: V,\n goForward: B,\n block: y,\n listen: $\n };\n return _;\n}, $n = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n} : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n}, Ws = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, En = function(t, e, r) {\n return Math.min(Math.max(t, e), r);\n}, Fs = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, e = t.getUserConfirmation, r = t.initialEntries, s = r === void 0 ? [\"/\"] : r, i = t.initialIndex, o = i === void 0 ? 0 : i, a = t.keyLength, c = a === void 0 ? 6 : a, h = hr(), l = function(C) {\n Ws(A, C), A.length = A.entries.length, h.notifyListeners(A.location, A.action);\n }, u = function() {\n return Math.random().toString(36).substr(2, c);\n }, d = En(o, 0, s.length - 1), p = s.map(function(N) {\n return typeof N == \"string\" ? gt(N, void 0, u()) : gt(N, void 0, N.key || u());\n }), b = cr, v = function(C, D) {\n tt(!((typeof C == \"undefined\" ? \"undefined\" : $n(C)) === \"object\" && C.state !== void 0 && D !== void 0), \"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored\");\n var V = \"PUSH\", B = gt(C, D, u(), A.location);\n h.confirmTransitionTo(B, V, e, function(R) {\n if (R) {\n var f = A.index, w = f + 1, y = A.entries.slice(0);\n y.length > w ? y.splice(w, y.length - w, B) : y.push(B), l({\n action: V,\n location: B,\n index: w,\n entries: y\n });\n }\n });\n }, g = function(C, D) {\n tt(!((typeof C == \"undefined\" ? \"undefined\" : $n(C)) === \"object\" && C.state !== void 0 && D !== void 0), \"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored\");\n var V = \"REPLACE\", B = gt(C, D, u(), A.location);\n h.confirmTransitionTo(B, V, e, function(R) {\n R && (A.entries[A.index] = B, l({ action: V, location: B }));\n });\n }, O = function(C) {\n var D = En(A.index + C, 0, A.entries.length - 1), V = \"POP\", B = A.entries[D];\n h.confirmTransitionTo(B, V, e, function(R) {\n R ? l({\n action: V,\n location: B,\n index: D\n }) : l();\n });\n }, j = function() {\n return O(-1);\n }, W = function() {\n return O(1);\n }, H = function(C) {\n var D = A.index + C;\n return D >= 0 && D < A.entries.length;\n }, k = function() {\n var C = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1;\n return h.setPrompt(C);\n }, U = function(C) {\n return h.appendListener(C);\n }, A = {\n length: p.length,\n action: \"POP\",\n location: p[d],\n index: d,\n entries: p,\n createHref: b,\n push: v,\n replace: g,\n go: O,\n goBack: j,\n goForward: W,\n canGo: H,\n block: k,\n listen: U\n };\n return A;\n}, qs = Object.defineProperty, On = Object.getOwnPropertySymbols, Js = Object.prototype.hasOwnProperty, Ks = Object.prototype.propertyIsEnumerable, An = (n, t, e) => t in n ? qs(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, $t = (n, t) => {\n for (var e in t || (t = {}))\n Js.call(t, e) && An(n, e, t[e]);\n if (On)\n for (var e of On(t))\n Ks.call(t, e) && An(n, e, t[e]);\n return n;\n}, qt = (n, t, e) => new Promise((r, s) => {\n var i = (c) => {\n try {\n a(e.next(c));\n } catch (h) {\n s(h);\n }\n }, o = (c) => {\n try {\n a(e.throw(c));\n } catch (h) {\n s(h);\n }\n }, a = (c) => c.done ? r(c.value) : Promise.resolve(c.value).then(i, o);\n a((e = e.apply(n, t)).next());\n}), S = /* @__PURE__ */ ((n) => (n.Cookie = \"cookie\", n.Local = \"local\", n.Session = \"session\", n))(S || {}), Ct = /* @__PURE__ */ ((n) => (n.Tenant = \"tenant\", n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Ct || {}), P = /* @__PURE__ */ ((n) => (n.Necessary = \"necessary\", n.Functional = \"functional\", n.Analytical = \"analytical\", n.Marketing = \"marketing\", n))(P || {});\nconst et = (n, t, e, r = {}) => xn(n, e).then((s) => (process.env.NODE_ENV !== \"production\" && s && I.warn(\n `createStorageWriter: Attempted to create storage writer using unallowed category.\n Key: ${t}\n Category: ${JSON.stringify(e)}\n Options: ${JSON.stringify(r)}`\n), (i) => (Qe(n), xn(n, e).then((o) => {\n if (o) {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `storageWriter: Attempted to write to storage using unallowed category.\n Key: ${t}\n Category: ${JSON.stringify(e)}\n Value: ${JSON.stringify(i)}\n Options: ${JSON.stringify(r)}`\n );\n return;\n }\n const {\n scope: a = Ct.Widget,\n medium: c = S.Session,\n duration: h\n } = r, l = Ys();\n return l[a][t] = Ze(i, e, h), c === S.Cookie ? ti(n, l) : ni(n, c, l);\n})))), Y = (n, t, e = S.Session) => (Qe(n), typeof t == \"undefined\" ? (process.env.NODE_ENV !== \"production\" && I.warn(\"readStorage: Undefined key passed when reading storage. \", t, e), Promise.resolve(void 0)) : e === S.Cookie ? Xs(n).then((r) => ae(r, t)) : ei(n, e).then((r) => ae(r, t))), xt = (n) => !!Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").length, xe = (n) => Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").forEach(([t, { value: e }]) => {\n typeof e == \"undefined\" && delete n[t];\n}), lr = (n, t) => {\n const e = {\n tenant: $t($t({}, n.tenant), t.tenant),\n implementation: $t($t({}, n.implementation), t.implementation),\n widget: $t($t({}, n.widget), t.widget)\n };\n return xe(e.tenant), xe(e.implementation), xe(e.widget), e;\n}, Gs = (n) => Object.entries(n).reduce((t, e) => {\n const [r, s] = e;\n return Object.entries(s).forEach((i) => {\n const [o, { expiration: a }] = i;\n a && t.push(a);\n }), t;\n}, []).slice().sort((t, e) => new Date(e).valueOf() - new Date(t).valueOf()).shift() || ye(), ve = (n) => {\n const {\n name: t,\n implementation: { name: e, tenant: r }\n } = n.get(\"$widget\");\n return [\n `humany_${r}`,\n `humany_${un(r + e)}`,\n `humany_${un(r + e + t)}`\n ];\n}, _e = (n) => {\n const t = new RegExp(`(?:^|;)\\\\s?${n}=(.*?)(?:;|$)`, \"i\"), e = document.cookie.match(t);\n return e && e[1] && JSON.parse(e[1]) || void 0;\n}, Se = (n, t, e) => {\n const r = `${n}=${JSON.stringify(t).trim()}`, s = `expires=${new Date(e).toUTCString()}`, i = \"path=/\", o = \"SameSite=None;Secure\";\n return document.cookie = `${r}; ${s}; ${i}; ${o}`;\n}, Ye = (n) => {\n const [t, e, r] = ve(n), s = _e(t) || {}, i = _e(e) || {}, o = _e(r) || {};\n return {\n tenant: s,\n implementation: i,\n widget: o\n };\n}, ur = (n, t) => {\n const e = Ye(n), r = lr(e, t), [s, i, o] = ve(n), { tenant: a, implementation: c, widget: h } = r, l = Gs(t), u = ye({ days: -1 });\n Se(s, a, xt(a) ? l : u), Se(\n i,\n c,\n xt(c) ? l : u\n ), Se(o, h, xt(h) ? l : u);\n}, oe = (n, t) => {\n const [e, r, s] = ve(n), i = t.getItem(e) || \"{}\", o = t.getItem(r) || \"{}\", a = t.getItem(s) || \"{}\";\n return {\n tenant: JSON.parse(i),\n implementation: JSON.parse(o),\n widget: JSON.parse(a)\n };\n}, Ve = (n, t, e) => {\n const r = oe(n, t), s = lr(r, e), [i, o, a] = ve(n), { tenant: c, implementation: h, widget: l } = s;\n xt(c) ? t.setItem(i, JSON.stringify(c)) : t.removeItem(i), xt(h) ? t.setItem(o, JSON.stringify(h)) : t.removeItem(o), xt(l) ? t.setItem(a, JSON.stringify(l)) : t.removeItem(a);\n}, Ys = () => ({ tenant: {}, implementation: {}, widget: {} }), Zs = (n) => n ? !!n && /* @__PURE__ */ new Date() > new Date(n) : !1, ae = (n, t) => {\n const e = n.widget[t] || n.implementation[t] || n.tenant[t];\n return e == null ? void 0 : e.value;\n}, Ze = (n, t, e) => e ? {\n value: n,\n category: t,\n expiration: typeof e == \"object\" ? ye(e) : e\n} : {\n value: n,\n category: t\n}, Qt = (n, t) => {\n const e = ns(n);\n return Object.entries(e).forEach(([r, s]) => {\n Object.entries(s).forEach(([i, o]) => {\n const { expiration: a, category: c } = o;\n (Zs(a) || Qs(t, c)) && (s[i] = Ze(void 0, c, a));\n });\n }), e;\n}, xn = (n, t) => Y(n, \"storagePolicy\", S.Cookie).then(\n (e = [P.Necessary]) => !!t && e.indexOf(t) === -1\n), Qs = (n = [P.Necessary], t) => !!t && n.indexOf(t) === -1, Qe = (n) => {\n const t = Ye(n), e = oe(n, window.localStorage), r = oe(n, sessionStorage), s = ae(t, \"storagePolicy\"), [i, o, a] = [\n t,\n e,\n r\n ].map((c) => Qt(c, s));\n ur(n, i), Ve(n, window.localStorage, o), Ve(n, window.sessionStorage, a);\n}, ye = (n = { days: 30 }) => {\n const { days: t = 0, hours: e = 0, minutes: r = 0, seconds: s = 0 } = n, i = /* @__PURE__ */ new Date();\n return i.setTime(i.getTime() + e * 60 * 60 * 1e3), i.setTime(i.getTime() + t * 24 * 60 * 60 * 1e3), i.setTime(i.getTime() + r * 60 * 1e3), i.setTime(i.getTime() + s * 1e3), i.toISOString();\n}, Xs = (n) => Q(document)(() => Ye(n)), ti = (n, t) => Q(document)(() => ur(n, t)), ei = (n, t) => {\n const e = t === S.Local ? window.localStorage : window.sessionStorage;\n return Q(e)(() => oe(n, e));\n}, ni = (n, t, e) => {\n const r = t === S.Local ? window.localStorage : window.sessionStorage;\n return Q(r)(() => Ve(n, r, e));\n};\nlet Xt = class {\n constructor() {\n this.memory = {\n tenant: {},\n implementation: {},\n widget: {}\n };\n }\n setItem(t, e) {\n return qt(this, arguments, function* (r, s, i = {}) {\n return Q(this)(() => {\n const o = Qt(this.memory, [P.Necessary]), { scope: a = Ct.Tenant, expiration: c } = i;\n o[a][r] = Ze(\n s,\n P.Necessary,\n (c == null ? void 0 : c.toISOString()) || ye()\n ), this.memory = o, process.env.NODE_ENV !== \"production\" && I.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value stored temporarily in memory.\n Key: ${r}\n Value: ${JSON.stringify(s)}\n Options: ${JSON.stringify(i)}\n Memory: ${JSON.stringify(o)}`\n );\n });\n });\n }\n getItem(t) {\n return qt(this, null, function* () {\n return Q(this)(() => {\n const e = Qt(this.memory, [P.Necessary]);\n process.env.NODE_ENV !== \"production\" && I.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value fetched from legacy memory storage.\n Key: ${t}\n Memory: ${JSON.stringify(e)}`\n );\n const r = ae(e, t);\n return this.memory = e, r;\n });\n });\n }\n removeItem(t) {\n return qt(this, null, function* () {\n return Q(this)(() => {\n const e = Qt(this.memory, [P.Necessary]);\n delete e.tenant[t], delete e.implementation[t], delete e.widget[t], this.memory = e, process.env.NODE_ENV !== \"production\" && I.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value removed from memory.\n Key: ${t}\n Memory: ${JSON.stringify(e)}`\n );\n });\n });\n }\n clear() {\n return qt(this, null, function* () {\n return Promise.resolve();\n });\n }\n}, ri = class {\n constructor() {\n this.cookies = new Xt(), this.session = new Xt(), this.local = new Xt();\n }\n};\nconst Pe = (n, t, e, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, si = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Pe(t, \"info\", e, ...r),\n warn: (e, ...r) => Pe(t, \"warning\", e, ...r),\n error: (e, ...r) => Pe(t, \"error\", e, ...r)\n };\n};\nvar ce = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(ce || {}), ft = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(ft || {});\nconst ii = (n, t, e, r) => {\n try {\n const s = new t(e, r);\n return {\n name: n,\n invoke: (i, o) => {\n let a;\n return s[i] && (a = s[i].call(s, o)), Promise.resolve(a);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let o;\n return i === \"initialize\" && (o = t(e, r)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw s;\n }\n};\nfunction _n(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet oi = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: ce.Widget,\n stage: ft.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: _n(e.scope, ce.Widget),\n stage: _n(e.stage, ft.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const o = t.split(\".\");\n return o.forEach((a, c) => {\n c === o.length - 1 ? i[a] || (i[a] = () => s) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n};\nconst dr = (n) => {\n const t = new oi({});\n return n(t), t.get();\n};\ndr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: ce.Implementation, stage: ft.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: ft.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: ft.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: ft.Pre },\n (t) => (e, r, s) => {\n const { container: i } = t;\n let o = null, a = e, c = r;\n typeof e == \"string\" && (o = e, a = r, c = s);\n const h = (l) => {\n const { transformPluginSettings: u } = t.container.get(\"$environmentOptions\"), d = u ? u(\n c || {},\n o,\n t.container,\n a\n ) : r;\n try {\n const p = ii(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n si(t).warn(\"Error when initializing plugin\", p);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\ndr((n) => {\n n.createCommand(\"storage\", (t) => (e = {}) => {\n const { consent: r } = e;\n if (typeof r != \"undefined\") {\n if (typeof r != \"number\" && typeof r != \"string\" && !Array.isArray(r)) {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n if (Array.isArray(r) && !r.every(\n (i) => typeof i == \"number\" || typeof i == \"string\"\n )) {\n process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n const s = [\n P.Necessary,\n P.Functional,\n P.Analytical,\n P.Marketing\n ].filter((i, o, a) => typeof r == \"number\" ? r > o : typeof r == \"string\" ? a.indexOf(r) + 1 > o : Array.isArray(r) ? r.findIndex((c) => c === o + 1 || c === i) > -1 : !0);\n return s.indexOf(P.Necessary) === -1 && (process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent does not include category: '${P.Necessary}'. Consent has to atleast include the '${P.Necessary}' category.\n Passed consent: ${JSON.stringify(r)}`\n ), s.unshift(P.Necessary)), et(\n t.container,\n \"storagePolicy\",\n P.Necessary,\n {\n medium: S.Cookie,\n scope: Ct.Tenant,\n duration: { days: 365 }\n }\n ).then((i) => i(s)).then(() => {\n Qe(t.container), t.events.dispatch(\"storage:policy-changed\", s);\n });\n }\n });\n});\nconst ai = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StorageCategory: P,\n StorageMedium: S,\n StorageProvider: ri,\n StorageScope: Ct,\n StorageService: Xt,\n createStorageWriter: et,\n readStorage: Y\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar ci = Object.defineProperty, hi = Object.defineProperties, li = Object.getOwnPropertyDescriptors, he = Object.getOwnPropertySymbols, pr = Object.prototype.hasOwnProperty, gr = Object.prototype.propertyIsEnumerable, Sn = (n, t, e) => t in n ? ci(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, Ot = (n, t) => {\n for (var e in t || (t = {}))\n pr.call(t, e) && Sn(n, e, t[e]);\n if (he)\n for (var e of he(t))\n gr.call(t, e) && Sn(n, e, t[e]);\n return n;\n}, fr = (n, t) => hi(n, li(t)), ui = (n, t) => {\n var e = {};\n for (var r in n)\n pr.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && he)\n for (var r of he(n))\n t.indexOf(r) < 0 && gr.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction mr(n) {\n if (n.__esModule)\n return n;\n var t = n.default;\n if (typeof t == \"function\") {\n var e = function r() {\n if (this instanceof r) {\n var s = [null];\n s.push.apply(s, arguments);\n var i = Function.bind.apply(t, s);\n return new i();\n }\n return t.apply(this, arguments);\n };\n e.prototype = t.prototype;\n } else\n e = {};\n return Object.defineProperty(e, \"__esModule\", { value: !0 }), Object.keys(n).forEach(function(r) {\n var s = Object.getOwnPropertyDescriptor(n, r);\n Object.defineProperty(e, r, s.get ? s : {\n enumerable: !0,\n get: function() {\n return n[r];\n }\n });\n }), e;\n}\nvar vr = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (vr = function(n, t, e) {\n var r = arguments.length;\n e = new Array(r > 2 ? r - 2 : 0);\n for (var s = 2; s < r; s++)\n e[s - 2] = arguments[s];\n if (t === void 0)\n throw new Error(\n \"`warning(condition, format, ...args)` requires a warning message argument\"\n );\n if (t.length < 10 || /^[s\\W]*$/.test(t))\n throw new Error(\n \"The warning format should be able to uniquely identify this warning. Please, use a more descriptive format than: \" + t\n );\n if (!n) {\n var i = 0, o = \"Warning: \" + t.replace(/%s/g, function() {\n return e[i++];\n });\n typeof console != \"undefined\" && console.error(o);\n try {\n throw new Error(o);\n } catch (a) {\n }\n }\n});\nvar di = vr, pi = di, Pn = gi(pi);\nfunction gi(n) {\n return n && n.__esModule ? n : { default: n };\n}\nvar fi = function() {\n var n = null, t = function(o) {\n return (0, Pn.default)(n == null, \"A history supports only one prompt at a time\"), n = o, function() {\n n === o && (n = null);\n };\n }, e = function(o, a, c, h) {\n if (n != null) {\n var l = typeof n == \"function\" ? n(o, a) : n;\n typeof l == \"string\" ? typeof c == \"function\" ? c(l, h) : ((0, Pn.default)(!1, \"A history needs a getUserConfirmation function in order to use a prompt message\"), h(!0)) : h(l !== !1);\n } else\n h(!0);\n }, r = [], s = function(o) {\n var a = !0, c = function() {\n a && o.apply(void 0, arguments);\n };\n return r.push(c), function() {\n a = !1, r = r.filter(function(h) {\n return h !== c;\n });\n };\n }, i = function() {\n for (var o = arguments.length, a = Array(o), c = 0; c < o; c++)\n a[c] = arguments[c];\n r.forEach(function(h) {\n return h.apply(void 0, a);\n });\n };\n return {\n setPrompt: t,\n confirmTransitionTo: e,\n appendListener: s,\n notifyListeners: i\n };\n}, yr = fi, br;\nbr = function(n, t) {\n return t(window.confirm(n));\n};\nfunction Jt(n) {\n return n.charAt(0) === \"/\";\n}\nfunction Ce(n, t) {\n for (var e = t, r = e + 1, s = n.length; r < s; e += 1, r += 1)\n n[e] = n[r];\n n.pop();\n}\nfunction mi(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Jt(n), i = t && Jt(t), o = s || i;\n if (n && Jt(n) ? r = e : e.length && (r.pop(), r = r.concat(e)), !r.length)\n return \"/\";\n var a = void 0;\n if (r.length) {\n var c = r[r.length - 1];\n a = c === \".\" || c === \"..\" || c === \"\";\n } else\n a = !1;\n for (var h = 0, l = r.length; l >= 0; l--) {\n var u = r[l];\n u === \".\" ? Ce(r, l) : u === \"..\" ? (Ce(r, l), h++) : h && (Ce(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Jt(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nconst vi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: mi\n}, Symbol.toStringTag, { value: \"Module\" })), yi = /* @__PURE__ */ mr(vi);\nvar Cn = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(n) {\n return typeof n;\n} : function(n) {\n return n && typeof Symbol == \"function\" && n.constructor === Symbol && n !== Symbol.prototype ? \"symbol\" : typeof n;\n};\nfunction te(n, t) {\n if (n === t)\n return !0;\n if (n == null || t == null)\n return !1;\n if (Array.isArray(n))\n return Array.isArray(t) && n.length === t.length && n.every(function(c, h) {\n return te(c, t[h]);\n });\n var e = typeof n == \"undefined\" ? \"undefined\" : Cn(n), r = typeof t == \"undefined\" ? \"undefined\" : Cn(t);\n if (e !== r)\n return !1;\n if (e === \"object\") {\n var s = n.valueOf(), i = t.valueOf();\n if (s !== n || i !== t)\n return te(s, i);\n var o = Object.keys(n), a = Object.keys(t);\n return o.length !== a.length ? !1 : o.every(function(c) {\n return te(n[c], t[c]);\n });\n }\n return !1;\n}\nconst bi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: te\n}, Symbol.toStringTag, { value: \"Module\" })), wi = /* @__PURE__ */ mr(bi);\nvar nt = {}, ot, wr, ze, Tt;\nnt.__esModule = !0;\nTt = nt.addLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n : \"/\" + n;\n};\nze = nt.stripLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n.substr(1) : n;\n};\nvar $i = nt.hasBasename = function(n, t) {\n return new RegExp(\"^\" + t + \"(\\\\/|\\\\?|#|$)\", \"i\").test(n);\n};\nnt.stripBasename = function(n, t) {\n return $i(n, t) ? n.substr(t.length) : n;\n};\nwr = nt.stripTrailingSlash = function(n) {\n return n.charAt(n.length - 1) === \"/\" ? n.slice(0, -1) : n;\n};\nnt.parsePath = function(n) {\n var t = n || \"/\", e = \"\", r = \"\", s = t.indexOf(\"#\");\n s !== -1 && (r = t.substr(s), t = t.substr(0, s));\n var i = t.indexOf(\"?\");\n return i !== -1 && (e = t.substr(i), t = t.substr(0, i)), {\n pathname: t,\n search: e === \"?\" ? \"\" : e,\n hash: r === \"#\" ? \"\" : r\n };\n};\not = nt.createPath = function(n) {\n var t = n.pathname, e = n.search, r = n.hash, s = t || \"/\";\n return e && e !== \"?\" && (s += e.charAt(0) === \"?\" ? e : \"?\" + e), r && r !== \"#\" && (s += r.charAt(0) === \"#\" ? r : \"#\" + r), s;\n};\nvar be, $r = be = void 0, Ei = Object.assign || function(n) {\n for (var t = 1; t < arguments.length; t++) {\n var e = arguments[t];\n for (var r in e)\n Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r]);\n }\n return n;\n}, Oi = yi, Ai = Er(Oi), xi = wi, _i = Er(xi), Si = nt;\nfunction Er(n) {\n return n && n.__esModule ? n : { default: n };\n}\nbe = function(n, t, e, r) {\n var s = void 0;\n typeof n == \"string\" ? (s = (0, Si.parsePath)(n), s.state = t) : (s = Ei({}, n), s.pathname === void 0 && (s.pathname = \"\"), s.search ? s.search.charAt(0) !== \"?\" && (s.search = \"?\" + s.search) : s.search = \"\", s.hash ? s.hash.charAt(0) !== \"#\" && (s.hash = \"#\" + s.hash) : s.hash = \"\", t !== void 0 && s.state === void 0 && (s.state = t));\n try {\n s.pathname = decodeURI(s.pathname);\n } catch (i) {\n throw i instanceof URIError ? new URIError('Pathname \"' + s.pathname + '\" could not be decoded. This is likely caused by an invalid percent-encoding.') : i;\n }\n return e && (s.key = e), r ? s.pathname ? s.pathname.charAt(0) !== \"/\" && (s.pathname = (0, Ai.default)(s.pathname, r.pathname)) : s.pathname = r.pathname : s.pathname || (s.pathname = \"/\"), s;\n};\n$r = function(n, t) {\n return n.pathname === t.pathname && n.search === t.search && n.hash === t.hash && n.key === t.key && (0, _i.default)(n.state, t.state);\n};\nconst Or = \"/\", Ar = \"./\", Pi = new RegExp(\n [\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n \"(\\\\\\\\.)\",\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\"]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined]\n \"(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?\"\n ].join(\"|\"),\n \"g\"\n), xr = (n, t) => {\n const e = [];\n let r = 0, s = 0, i = \"\";\n const o = t && t.delimiter || Or, a = t && t.delimiters || Ar;\n let c = !1, h;\n for (; (h = Pi.exec(n)) !== null; ) {\n const l = h[0], u = h[1], d = h.index;\n if (i += n.slice(s, d), s = d + l.length, u) {\n i += u[1], c = !0;\n continue;\n }\n let p = \"\";\n const b = n[s], v = h[2], g = h[3], O = h[4], j = h[5];\n if (!c && i.length) {\n const N = i.length - 1;\n a.indexOf(i[N]) > -1 && (p = i[N], i = i.slice(0, N));\n }\n i && (e.push(i), i = \"\", c = !1);\n const W = p !== \"\" && b !== void 0 && b !== p, H = j === \"+\" || j === \"*\", k = j === \"?\" || j === \"*\", U = p || o, A = g || O;\n e.push({\n delimiter: U,\n optional: k,\n repeat: H,\n partial: W,\n name: v || r++,\n // tslint:disable-line:no-increment-decrement\n prefix: p,\n pattern: A ? Ni(A) : \"[^\" + Mt(U) + \"]+?\"\n });\n }\n return (i || s < n.length) && e.push(i + n.substr(s)), e;\n}, Ci = (n, t) => ki(xr(n, t)), ki = (n) => {\n const t = new Array(n.length);\n for (let e = 0; e < n.length; e++)\n typeof n[e] == \"object\" && (t[e] = new RegExp(\"^(?:\" + n[e].pattern + \")$\"));\n return function(e, r) {\n let s = \"\";\n const i = r && r.encode || encodeURIComponent;\n for (let o = 0; o < n.length; o++) {\n const a = n[o];\n if (typeof a == \"string\") {\n s += a;\n continue;\n }\n const c = e ? e[a.name] : void 0;\n let h;\n if (Array.isArray(c)) {\n if (!a.repeat)\n throw new TypeError(\n 'Expected \"' + a.name + '\" to not repeat, but got array'\n );\n if (c.length === 0) {\n if (a.optional)\n continue;\n throw new TypeError('Expected \"' + a.name + '\" to not be empty');\n }\n for (let l = 0; l < c.length; l++) {\n if (h = i(c[l], a), !t[o].test(h))\n throw new TypeError(\n 'Expected all \"' + a.name + '\" to match \"' + a.pattern + '\"'\n );\n s += (l === 0 ? a.prefix : a.delimiter) + h;\n }\n continue;\n }\n if (typeof c == \"string\" || typeof c == \"number\" || typeof c == \"boolean\") {\n if (h = i(String(c), a), !t[o].test(h))\n throw new TypeError(\n 'Expected \"' + a.name + '\" to match \"' + a.pattern + '\", but got \"' + h + '\"'\n );\n s += a.prefix + h;\n continue;\n }\n if (a.optional) {\n a.partial && (s += a.prefix);\n continue;\n }\n throw new TypeError(\n 'Expected \"' + a.name + '\" to be ' + (a.repeat ? \"an array\" : \"a string\")\n );\n }\n return s;\n };\n}, Mt = (n) => n.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\"), Ni = (n) => n.replace(/([=!:$/()])/g, \"\\\\$1\"), _r = (n) => n && n.sensitive ? \"\" : \"i\", Mi = (n, t) => {\n if (!t)\n return n;\n const e = n.source.match(/\\((?!\\?)/g);\n if (e)\n for (let r = 0; r < e.length; r++)\n t.push({\n name: r,\n prefix: \"\",\n delimiter: \"\",\n optional: !1,\n repeat: !1,\n partial: !1,\n pattern: \"\"\n });\n return n;\n}, Li = (n, t, e) => {\n const r = [];\n for (let s = 0; s < n.length; s++)\n r.push(Sr(n[s], t, e).source);\n return new RegExp(\"(?:\" + r.join(\"|\") + \")\", _r(e));\n}, Di = (n, t, e) => Ti(xr(n, e), t, e), Ti = (n, t, e) => {\n e = e || {};\n const r = e.strict, s = e.end !== !1, i = Mt(e.delimiter || Or), o = e.delimiters || Ar, a = [].concat(e.endsWith || []).map(Mt).concat(\"$\").join(\"|\");\n let c = \"\", h = !1;\n for (let l = 0; l < n.length; l++) {\n const u = n[l];\n if (typeof u == \"string\")\n c += Mt(u), h = l === n.length - 1 && o.indexOf(u[u.length - 1]) > -1;\n else {\n const d = Mt(u.prefix), p = u.repeat ? \"(?:\" + u.pattern + \")(?:\" + d + \"(?:\" + u.pattern + \"))*\" : u.pattern;\n t && t.push(u), u.optional ? u.partial ? c += d + \"(\" + p + \")?\" : c += \"(?:\" + d + \"(\" + p + \"))?\" : c += d + \"(\" + p + \")\";\n }\n }\n return s ? (r || (c += \"(?:\" + i + \")?\"), c += a === \"$\" ? \"$\" : \"(?=\" + a + \")\") : (r || (c += \"(?:\" + i + \"(?=\" + a + \"))?\"), h || (c += \"(?=\" + i + \"|\" + a + \")\")), new RegExp(\"^\" + c, _r(e));\n}, Sr = (n, t, e) => n instanceof RegExp ? Mi(n, t || []) : Array.isArray(n) ? Li(n, t, e) : Di(n, t, e), le = Sr;\nvar G = /* @__PURE__ */ ((n) => (n.scopedHash = \"scopedHash\", n.hash = \"hash\", n.browser = \"browser\", n.memory = \"memory\", n))(G || {}), dt = /* @__PURE__ */ ((n) => (n.storage = \"storage\", n.path = \"path\", n.initialPath = \"initial\", n))(dt || {});\nconst Lt = (n, t) => {\n const e = [], r = le(t, e).exec(n);\n if (!r)\n return {};\n const [s, ...i] = r;\n return e.reduce((o, a, c) => (o[a.name] = i[c], o), {});\n}, ji = (n) => Object.keys(n).reduce((t, e) => {\n const r = typeof n[e] == \"string\" ? n[e].replace(\"&\", \"%20\") : n[e];\n let s = `${e}=${r}`;\n return t.length > 1 && (s = \"&\".concat(s)), t.concat(s);\n}, \"?\"), ke = (n, t) => {\n const e = t.find((r) => r.name === n);\n if (!e) {\n process.env.NODE_ENV !== \"production\" && I.warn(`Unable to find route with specified name: ${n}`);\n return;\n }\n return e;\n}, Pr = (n) => n.length ? n.slice(1).split(\"&\").map((t) => t.split(\"=\")).reduce((t, e) => {\n const [r, s] = e.map(encodeURI).map(decodeURIComponent);\n return fr(Ot({}, t), { [r]: decodeURIComponent(s).replace(\"%20\", \"&\") });\n}, {}) : {}, Ri = (n, t) => {\n const e = t.map((r) => ee(n, r)).reduce(\n (r, s) => {\n if (s === null)\n return r;\n const i = s.split(\"?\")[1];\n let o = 0;\n if (i) {\n const a = Pr(`?${i}`);\n o = Object.keys(a).length;\n }\n return !r.path || r.count && o < r.count ? {\n count: o,\n path: s\n } : r;\n },\n { count: void 0, path: void 0 }\n );\n return e ? e.path : t[0];\n}, ee = (n, t) => {\n const e = yt(n);\n if (Array.isArray(t)) {\n const c = Ri(e, t);\n if (!c)\n throw new Error(\"Unable to match path.\");\n return c;\n }\n const r = Ci(t);\n let s = t;\n try {\n s = r(e);\n } catch (c) {\n return null;\n }\n const i = [];\n le(t, i);\n const o = Object.keys(e).reduce((c, h) => (i.find((l) => l.name === h) || c.push(h), c), []), a = {};\n return o.forEach((c) => a[c] = e[c]), Object.keys(a).forEach((c) => a[c] === null && delete a[c]), Object.keys(a).length > 0 ? `${s}${ji(a)}` : s;\n}, Et = (n, t) => {\n let e = n;\n return e.indexOf(\"?\") > -1 && (e = e.substring(0, e.indexOf(\"?\"))), e.indexOf(\";\") > -1 && (e = e.substring(0, e.indexOf(\";\"))), e === \"\" && (e = \"/\"), t.reduce((r, s) => {\n if (Array.isArray(s.path))\n return s.path.reduce((o, a) => le(a, []).exec(e || \"\") && !o ? e : o, void 0) && !r ? s : r;\n if (!s.path)\n return r;\n const i = [];\n return le(s.path, i).exec(e || \"\") && !r ? s : r;\n }, void 0);\n}, Ii = (n) => {\n let t = n.get(\"historyTransitionManager\");\n return t || (t = yr(), n.parent && n.parent.register(\"historyTransitionManager\", t)), t;\n}, Dt = (n, t = null) => n ? be(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, Hi = (n, t) => {\n if (yt(n), yt(t), Object.keys(n).length !== Object.keys(t).length)\n return !1;\n if (Object.keys(n).length === 0 && Object.keys(t).length === 0)\n return !0;\n let e = !0;\n return Object.keys(t).forEach((r) => {\n t[r] !== n[r] && (e = !1);\n }), e;\n}, Ui = (n) => {\n if (typeof n.mode == \"string\") {\n if (n.mode === G.memory)\n return !0;\n } else if (n.mode[1]) {\n const [t, { sticky: e }] = n.mode;\n if (t === G.memory)\n return typeof e == \"undefined\" ? !0 : e;\n }\n return !1;\n}, Ne = (n) => {\n const { views: t } = n.get(\"$settings\"), e = Object.keys(t).reduce((r, s) => typeof t[s].path == \"undefined\" ? s : r, void 0);\n return e ? {\n name: e,\n params: {}\n } : null;\n}, kn = \"hashchange\", Bi = {\n hashbang: {\n encodePath: (n) => n.charAt(0) === \"!\" ? n : \"!/\" + ze(n),\n decodePath: (n) => n.charAt(0) === \"!\" ? n.substr(1) : n\n },\n noslash: {\n encodePath: ze,\n decodePath: Tt\n },\n slash: {\n encodePath: Tt,\n decodePath: Tt\n }\n}, at = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, Nn = (n) => window.location.hash = n, Mn = (n) => {\n const t = window.location.href.indexOf(\"#\");\n window.location.replace(\n window.location.href.slice(0, t >= 0 ? t : 0) + \"#\" + n\n );\n}, ne = (n = \"\") => {\n const t = n.replace(\";\", \"?\"), e = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return e.forEach(({ to: s, from: i }) => {\n r = r.replace(i, s);\n }), r;\n}, Vi = (n = {}) => {\n const t = window.history, { getUserConfirmation: e = br, hashType: r = \"slash\" } = n, s = n.basename ? wr(Tt(n.basename)) : \"\", { encodePath: i } = Bi[r], o = () => {\n const f = at(), w = l(f);\n return Dt(w, ne);\n }, a = n.transitionManager || yr(), c = (f) => {\n Object.assign(R, f), R.length = t.length, a.notifyListeners(R.location, R.action, n.widgetName);\n };\n let h = !1;\n const l = (f) => {\n const w = ($) => {\n function _(x, m) {\n const E = {};\n let M;\n for (; M = m.exec(x); )\n E[M[1]] = M[2];\n return E;\n }\n return _($, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, y = \"humany-\" + n.widgetName;\n return w(f)[y];\n }, u = () => {\n const f = o(), w = R.location;\n !h && $r(w, f) || d(f);\n }, d = (f) => {\n if (h)\n h = !1, c();\n else {\n const w = \"POP\";\n a.confirmTransitionTo(\n f,\n w,\n e,\n (y) => {\n y ? c({ action: w, location: f }) : p(f);\n }\n );\n }\n }, p = (f) => {\n const w = R.location;\n let y = g.lastIndexOf(ot(w));\n y === -1 && (y = 0);\n let $ = g.lastIndexOf(ot(f));\n $ === -1 && ($ = 0);\n const _ = y - $;\n _ && (h = !0, A(_));\n }, b = at(), v = i(b);\n b !== v && Mn(v);\n let g = [];\n const O = o();\n O.pathname !== null && g.push(ot(O));\n const j = (f = \"\") => {\n const w = [\n { from: /\\?+/gi, to: \";\" },\n { from: /\\&+/gi, to: \";\" },\n { from: /\\&+/gi, to: \";\" },\n { from: /=+/gi, to: \":\" }\n ];\n let y = f;\n return w.forEach(({ to: $, from: _ }) => {\n y = y.replace(_, $);\n }), y;\n }, W = (f, w, y) => {\n let $ = \"\", _ = !1;\n return f.split(\"&\").forEach((x) => {\n const m = x.split(\"=\"), E = m[0], M = m[1];\n if (E === w) {\n if (_ = !0, y === null)\n return;\n $.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += E + \"=\" + y : $ += E;\n } else\n E && ($.length > 0 && ($ += \"&\"), $ += E + \"=\" + M);\n }), !_ && y !== null && ($.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += w + \"=\" + y : $ += w), $;\n }, H = (f) => {\n const w = f.pathname, y = j(f.search), $ = w + (y ? `;${y}` : \"\"), _ = `humany-${n.widgetName}`, x = at();\n return `#${W(x, _, $).replace(\";;\", \";\")}`;\n }, k = (f, w) => {\n const y = \"PUSH\", $ = Dt(f, ne), _ = $.pathname, x = j($.search), m = _ + (x ? `${x}` : \"\"), E = `humany-${n.widgetName}`, M = at(), L = W(M, E, m);\n a.confirmTransitionTo($, y, e, (J) => {\n if (!J)\n return;\n const K = ot($), rt = i(L);\n if (at() !== rt) {\n Nn(rt);\n const Z = g.lastIndexOf(ot(R.location)), F = g.slice(0, Z === -1 ? 0 : Z + 1);\n F.push(K), g = F, c({ action: y, location: $ });\n } else\n c();\n });\n }, U = (f, w) => {\n const y = \"REPLACE\", $ = Dt(f, ne);\n a.confirmTransitionTo($, y, e, (_) => {\n if (!_)\n return;\n const x = ot($), m = i(s + x);\n at() !== m && Mn(m);\n const E = g.indexOf(ot(R.location));\n E !== -1 && (g[E] = x), c({ action: y, location: $ });\n });\n }, A = (f) => {\n t.go(f);\n }, N = () => A(-1), C = () => A(1);\n let D = 0;\n const V = (f) => {\n D += f, D === 1 ? window.addEventListener(kn, u) : D === 0 && window.removeEventListener(kn, u);\n };\n let B = !1;\n const R = {\n createHref: H,\n createLocation: Dt,\n push: k,\n replace: U,\n go: A,\n goBack: N,\n goForward: C,\n block: (f = !1) => {\n const w = a.setPrompt(f);\n return B || (V(1), B = !0), () => (B && (B = !1, V(-1)), w());\n },\n listen: (f) => {\n const w = a.appendListener(f);\n return V(1), () => {\n V(-1), w();\n };\n },\n stop: () => {\n const f = at(), w = W(f, `humany-${n.widgetName}`, null), y = i(w);\n Nn(y);\n },\n length: t.length,\n action: \"POP\",\n location: O\n };\n return R;\n}, Cr = Vi, zi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n decodeSearch: ne,\n default: Cr,\n getHashPath: at\n}, Symbol.toStringTag, { value: \"Module\" })), Wi = (n, t) => {\n const e = (s) => {\n function i(o, a) {\n const c = {};\n let h;\n for (; h = a.exec(o); )\n c[h[1]] = h[2];\n return c;\n }\n return i(s, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, r = `humany-${t}`;\n return e(n)[r];\n}, Fi = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, qi = (n = \"\") => {\n const t = n.replace(\";\", \"?\"), e = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return e.forEach(({ to: s, from: i }) => {\n r = r.replace(i, s);\n }), r;\n}, Ji = (n, t = null) => n ? be(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, kr = (n) => {\n const t = Fi(), e = Wi(t, n);\n return Ji(e, qi);\n}, Xe = (n) => {\n const { name: t } = n.get(\"$widget\");\n return !!kr(t).pathname;\n};\nJe((n) => {\n n.createCommand(\"routing\", (t) => (e) => {\n const r = {\n mode: e.mode\n };\n e.basePath && (r.basePath = e.basePath), t.container.register(\"routingSettings\", r);\n });\n});\nconst Ln = \"routeData\";\nclass Ki {\n constructor(t, e) {\n this.container = t, this.steps = [], this.historyListenSubscription = () => {\n }, this.sticky = !1, this.storageWriter = null, this.widget = t.get(\"$widget\");\n const r = e, { routes: s } = r, i = ui(r, [\"routes\"]);\n this.settings = Ot(Ot({}, i), t.get(\"routingSettings\")), this.sticky = Ui(this.settings), this.storageMedium = this.sticky ? S.Local : S.Session, et(t, Ln, P.Necessary, {\n medium: this.storageMedium\n }).then((o) => this.storageWriter = o), this.routes = s;\n }\n initialize() {\n return this.initialized = this.initialized || this.createHistory().then((t) => {\n this.history = t, this.location = t.location, this.historyListenSubscription = t.listen(\n (e, r, s) => this.handleLocationChange(e, s)\n );\n });\n }\n setMatch(t) {\n if (this.match = t, this.location) {\n const e = this.getRouteData(), r = {\n routeData: e,\n location: this.location\n }, s = this.steps[0], i = e.name === (s == null ? void 0 : s.routeData.name), o = dn(\n e.params,\n (s == null ? void 0 : s.routeData.params) || {}\n );\n (!i || !o) && (this.widget.events.dispatch(\"router:change\", { next: r, previous: s }), this.steps.unshift(r), this.storageWriter && this.storageWriter(r.routeData), this.widget.events.dispatch(\"router:changed\", { previous: s, current: r }));\n }\n }\n onRouteChange(t) {\n return this.widget.events.subscribe(\"router:change\", t);\n }\n isSticky() {\n return this.sticky;\n }\n /**\n * Generate a formatted path from string\n * @param routeName Name of route to generate path for\n * @param params Optional: route params\n */\n generate(t, e = {}) {\n const r = ke(t, this.routes);\n if (!r || !this.history)\n throw `No route found for ${t}`;\n const s = ee(e, r.path);\n if (!s)\n throw `Unable to generate path for \"${t}\".`;\n const i = Dt(s, this.settings.decodeSearch);\n let o = this.history.createHref(i);\n const { mode: a, basePath: c } = this.settings;\n return a === \"browser\" && c && (o = o.replace(c, \"\")), o.charAt(0) !== \"/\" && (o = `/${o}`), o;\n }\n /**\n * Navigate to path\n * @param routeName Route to navigate to\n * @param params Optional: route params\n */\n navigate(t, e = {}) {\n const r = ke(t, this.routes);\n if (!r || !this.history)\n return;\n const s = ee(e, r.path);\n if (!s)\n return;\n const i = this.getRouteData(), o = i && i.name === t && Hi(i.params, e);\n if (this.steps[0] && o)\n return;\n const { decodeSearch: a } = this.settings, c = a ? a(s) : s;\n this.widget.events.dispatch(\"router:navigate\", {\n decodedPath: c\n }), c.charAt(0) !== \"/\" ? this.history.push(`/${c}`) : this.history.push(c);\n }\n /**\n * Return true or false depending\n * on whether it is possible to navigate backwards\n */\n hasBack() {\n if (this.steps.length > 1)\n return !0;\n const t = this.getRouteData(this.settings.initialPath), e = this.getRouteData(), r = e.name === t.name, s = dn(e.params, t.params);\n return !r || !s;\n }\n /**\n * Navigate to previous route\n */\n goBack(t = 1) {\n if (this.steps.length < 2) {\n const e = this.getRouteData(this.settings.initialPath);\n e && e.name && (this.navigate(e.name, e.params), this.steps = []);\n } else {\n const e = t >= this.steps.length ? this.steps.length - 1 : t, { routeData: r } = this.steps[e];\n this.steps = [...this.steps.slice(e + 1)], this.navigate(r.name, es(r.params));\n }\n }\n /**\n * Navigate to next route\n */\n goForward() {\n this.history && this.history.goForward();\n }\n /**\n * Get the current location\n */\n current() {\n return this.location;\n }\n /**\n * Get the initial route. If the defined initial route does not exist,\n * return the first defined route\n */\n getInitialRoute() {\n const { name: t } = this.getRouteData(this.settings.initialPath);\n return this.routes.find((r) => r.name === t) || (this.routes.length > 0 ? this.routes[0] : (process.env.NODE_ENV !== \"production\" && I.warn(\"Unable to get initial route as no routes are defined.\"), null));\n }\n getRouteData(t) {\n const e = Ne(this.container);\n if (t) {\n const r = Et(t, this.routes);\n return r ? {\n params: yt(Lt(t, r.path)),\n name: r.name\n } : e || {\n name: \"\",\n params: {}\n };\n }\n if (this.location) {\n const { pathname: r, search: s } = this.location;\n if (this.currentRoute = this.currentRoute || Et(r, this.routes), this.currentRoute) {\n const { path: i, name: o } = this.currentRoute;\n this.match || (this.match = {\n params: Lt(r, i),\n isExact: !0,\n path: i,\n url: r\n });\n const a = yt(Ot(Ot({}, this.match.params), s.length > 0 && Pr(s)));\n return {\n name: o,\n params: a\n };\n }\n }\n return e || {\n name: \"\",\n params: {}\n };\n }\n dispose() {\n return this.historyListenSubscription(), this.stop();\n }\n /**\n * Setup and load the initial route based on router configuration\n */\n setupInitialRoute() {\n return Y(this.container, Ln, this.storageMedium).then(\n (t) => {\n if (!this.location || !this.history)\n return;\n const { initialPath: e, mode: r } = this.settings;\n switch ((() => {\n const s = Xe(this.container);\n return r === G.browser || s ? dt.path : r === G.memory && t ? dt.storage : dt.initialPath;\n })()) {\n case dt.initialPath: {\n const s = this.getRouteData(e);\n return s && s.name ? this.navigate(s.name, s.params) : void 0;\n }\n case dt.path: {\n const { pathname: s } = this.location;\n if (this.currentRoute = Et(s, this.routes), this.currentRoute) {\n const { path: o } = this.currentRoute;\n return this.setMatch({\n params: Lt(s, o),\n isExact: !0,\n path: o,\n url: s\n });\n }\n const i = Ne(this.container);\n return i ? this.setMatch({\n params: {},\n isExact: !0,\n path: i.name,\n url: s\n }) : void 0;\n }\n case dt.storage: {\n const { pathname: s } = this.location;\n this.currentRoute = Et(s, this.routes);\n const { name: i = \"\", params: o = {} } = t || {}, a = ke(i, this.routes);\n if (a) {\n const c = ee(o, a.path);\n if (c)\n return this.history.push(c), this.location = fr(Ot({}, this.location), { pathname: c }), this.currentRoute = Et(c, this.routes), this.setMatch({\n params: o,\n isExact: !0,\n path: a.path,\n url: c\n });\n }\n return;\n }\n }\n }\n );\n }\n start() {\n return this.setupInitialRoute();\n }\n stop() {\n return this.history && (this.settings.mode === G.scopedHash && this.history.stop(), this.steps = [], this.storageWriter) ? this.storageWriter() : Promise.resolve();\n }\n handleLocationChange(t, e) {\n const { pathname: r } = t, { mode: s } = this.settings;\n if (r.indexOf(\"?\") > -1 || r.indexOf(\";\") > -1 || s === G.scopedHash && e !== this.widget.name)\n return;\n this.location = t, this.currentRoute = Et(r, this.routes);\n const i = Ne(this.container);\n if (this.currentRoute) {\n const { path: o } = this.currentRoute;\n this.setMatch({\n params: Lt(r, o),\n isExact: !0,\n path: o,\n url: r\n });\n } else\n i && this.setMatch({\n params: {},\n isExact: !0,\n path: i.name,\n url: r\n });\n }\n createHistory() {\n return new Promise((t) => {\n const { mode: e, basePath: r } = this.settings;\n if (e === G.scopedHash) {\n const s = this.widget.name, i = Ii(this.container);\n return Promise.resolve().then(() => zi).then((o) => {\n const a = o.default({\n widgetName: s,\n transitionManager: i,\n hashType: \"noslash\"\n });\n return t(a);\n });\n }\n if (e === G.memory)\n return t(Fs());\n if (e === G.browser)\n return t(zs({ basename: r }));\n throw \"RoutingService: History could not be created.\";\n });\n }\n}\nconst Gi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n HistoryMode: G,\n RoutingService: Ki,\n createHashHistory: Cr,\n getScopedHashDOMLocation: kr,\n matchParams: Lt,\n onWidgetUrl: Xe\n}, Symbol.toStringTag, { value: \"Module\" })), Me = (n, t, e, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, Yi = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Me(t, \"info\", e, ...r),\n warn: (e, ...r) => Me(t, \"warning\", e, ...r),\n error: (e, ...r) => Me(t, \"error\", e, ...r)\n };\n};\nvar Rt = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Rt || {}), ht = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(ht || {});\nconst Zi = (n, t, e, r) => {\n try {\n const s = new t(e, r);\n return {\n name: n,\n invoke: (i, o) => {\n let a;\n return s[i] && (a = s[i].call(s, o)), Promise.resolve(a);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let o;\n return i === \"initialize\" && (o = t(e, r)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw s;\n }\n};\nfunction Dn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nclass Qi {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: Rt.Widget,\n stage: ht.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: Dn(e.scope, Rt.Widget),\n stage: Dn(e.stage, ht.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const o = t.split(\".\");\n return o.forEach((a, c) => {\n c === o.length - 1 ? i[a] || (i[a] = () => s) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst Nr = (n) => {\n const t = new Qi({});\n return n(t), t.get();\n};\nNr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: Rt.Implementation, stage: ht.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: ht.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: ht.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: ht.Pre },\n (t) => (e, r, s) => {\n const { container: i } = t;\n let o = null, a = e, c = r;\n typeof e == \"string\" && (o = e, a = r, c = s);\n const h = (l) => {\n const { transformPluginSettings: u } = t.container.get(\"$environmentOptions\"), d = u ? u(\n c || {},\n o,\n t.container,\n a\n ) : r;\n try {\n const p = Zi(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n Yi(t).warn(\"Error when initializing plugin\", p);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nfunction Xi(n) {\n const t = {};\n return [].filter.call(n.attributes, (e) => /^data-/.test(e.name)).map((e) => e.name).forEach((e) => t[e.substr(5)] = n.getAttribute(e)), t;\n}\nconst Tn = (n, t, e) => {\n const r = Xi(n);\n e({\n sourceDOMElement: n,\n eventType: t,\n data: r\n });\n};\nfunction jn(n, t, e) {\n n.forEach((r) => {\n r.dataset.attached !== \"true\" && (t === \"load\" ? Tn(r, t, e) : r.addEventListener(t, (s) => {\n s.preventDefault(), Tn(r, t, e);\n }), r.dataset.monitored = \"true\");\n });\n}\nfunction to(n, t, e) {\n const r = n.container.get(\"bootstrapping.monitor\");\n r && r.events.subscribe(\"bootstrap:trigger-elements-updated\", (i, o) => {\n jn(\n o.triggerElements,\n t,\n e\n );\n });\n const s = n.container.get(\"triggerElements\");\n s && jn(\n s,\n t,\n e\n );\n}\nNr((n) => {\n n.createCommand(\n \"ready\",\n { scope: Rt.Implementation, stage: ht.Pre },\n (t) => (e) => {\n const { container: r } = t, s = r.owner;\n r.get(\"bootstrapping\").ready ? e(s) : s.events.subscribeOnce(\"bootstrap:ready\", () => {\n e(s);\n });\n }\n );\n});\nconst eo = (n) => {\n const t = (s, i) => {\n s && (i ? s.classList.add(\"ace-tabbing\") : s.classList.remove(\"ace-tabbing\"));\n }, e = (s) => {\n s.key === \"Tab\" ? t(n, !0) : s.key === \"Enter\" && document.activeElement && document.activeElement.classList.contains(\"ace-widget-trigger\") || t(n, !1);\n }, r = (s) => {\n document.activeElement && document.activeElement.classList.contains(\"ace-widget-trigger\") && document.activeElement.classList.contains(\"ace-tabbing\") || t(n, !1);\n };\n return document.addEventListener(\"keydown\", e), document.addEventListener(\"click\", r), () => {\n document.removeEventListener(\"keydown\", e), document.removeEventListener(\"click\", r);\n };\n};\nfunction no(n, t) {\n const {\n // symbol,\n widgetName: e,\n label: r = \"\",\n ariaLabel: s = \"\",\n tooltip: i = \"\"\n } = t;\n return n.classList.add(\"ace-widget-trigger\"), n.classList.add(`ace-widget_${e}`), r.length && n.classList.add(\"trigger-has-text\"), s.length && !n.getAttribute(\"aria-label\") && n.setAttribute(\"aria-label\", s), s.length && !n.getAttribute(\"tabindex\") && n.setAttribute(\"tabindex\", \"0\"), i.length && !n.getAttribute(\"title\") && n.setAttribute(\"title\", i), eo(n);\n}\nfunction ro(n, t) {\n n instanceof HTMLElement ? (t && n.setAttribute(\"title\", t), n.classList.remove(\"ace-trigger-active\"), n.classList.remove(\"ace-trigger-loading\")) : n instanceof Array && n.forEach((e) => {\n t && e.setAttribute(\"title\", t), e.classList.remove(\"ace-trigger-active\"), e.classList.remove(\"ace-trigger-loading\");\n });\n}\nfunction so(n) {\n n instanceof HTMLElement ? (n.classList.remove(\"ace-trigger-active\"), n.classList.add(\"ace-trigger-loading\")) : n instanceof Array && n.forEach((t) => {\n t.classList.remove(\"ace-trigger-active\"), t.classList.add(\"ace-trigger-loading\");\n });\n}\nfunction Mr(n, t) {\n n instanceof HTMLElement ? (t && n.setAttribute(\"title\", t), n.classList.add(\"ace-trigger-active\"), n.classList.remove(\"ace-trigger-loading\")) : n instanceof Array && n.forEach((e) => {\n t && e.setAttribute(\"title\", t), e.classList.add(\"ace-trigger-active\"), e.classList.remove(\"ace-trigger-loading\");\n });\n}\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst re = window, tn = re.ShadowRoot && (re.ShadyCSS === void 0 || re.ShadyCSS.nativeShadow) && \"adoptedStyleSheets\" in Document.prototype && \"replace\" in CSSStyleSheet.prototype, en = Symbol(), Rn = /* @__PURE__ */ new WeakMap();\nlet Lr = class {\n constructor(t, e, r) {\n if (this._$cssResult$ = !0, r !== en)\n throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");\n this.cssText = t, this.t = e;\n }\n get styleSheet() {\n let t = this.o;\n const e = this.t;\n if (tn && t === void 0) {\n const r = e !== void 0 && e.length === 1;\n r && (t = Rn.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), r && Rn.set(e, t));\n }\n return t;\n }\n toString() {\n return this.cssText;\n }\n};\nconst io = (n) => new Lr(typeof n == \"string\" ? n : n + \"\", void 0, en), oo = (n, ...t) => {\n const e = n.length === 1 ? n[0] : t.reduce((r, s, i) => r + ((o) => {\n if (o._$cssResult$ === !0)\n return o.cssText;\n if (typeof o == \"number\")\n return o;\n throw Error(\"Value passed to 'css' function must be a 'css' function result: \" + o + \". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\");\n })(s) + n[i + 1], n[0]);\n return new Lr(e, n, en);\n}, ao = (n, t) => {\n tn ? n.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet) : t.forEach((e) => {\n const r = document.createElement(\"style\"), s = re.litNonce;\n s !== void 0 && r.setAttribute(\"nonce\", s), r.textContent = e.cssText, n.appendChild(r);\n });\n}, In = tn ? (n) => n : (n) => n instanceof CSSStyleSheet ? ((t) => {\n let e = \"\";\n for (const r of t.cssRules)\n e += r.cssText;\n return io(e);\n})(n) : n;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Le;\nconst ue = window, Hn = ue.trustedTypes, co = Hn ? Hn.emptyScript : \"\", Un = ue.reactiveElementPolyfillSupport, We = { toAttribute(n, t) {\n switch (t) {\n case Boolean:\n n = n ? co : null;\n break;\n case Object:\n case Array:\n n = n == null ? n : JSON.stringify(n);\n }\n return n;\n}, fromAttribute(n, t) {\n let e = n;\n switch (t) {\n case Boolean:\n e = n !== null;\n break;\n case Number:\n e = n === null ? null : Number(n);\n break;\n case Object:\n case Array:\n try {\n e = JSON.parse(n);\n } catch (r) {\n e = null;\n }\n }\n return e;\n} }, Dr = (n, t) => t !== n && (t == t || n == n), De = { attribute: !0, type: String, converter: We, reflect: !1, hasChanged: Dr }, Fe = \"finalized\";\nlet At = class extends HTMLElement {\n constructor() {\n super(), this._$Ei = /* @__PURE__ */ new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this._$Eu();\n }\n static addInitializer(t) {\n var e;\n this.finalize(), ((e = this.h) !== null && e !== void 0 ? e : this.h = []).push(t);\n }\n static get observedAttributes() {\n this.finalize();\n const t = [];\n return this.elementProperties.forEach((e, r) => {\n const s = this._$Ep(r, e);\n s !== void 0 && (this._$Ev.set(s, r), t.push(s));\n }), t;\n }\n static createProperty(t, e = De) {\n if (e.state && (e.attribute = !1), this.finalize(), this.elementProperties.set(t, e), !e.noAccessor && !this.prototype.hasOwnProperty(t)) {\n const r = typeof t == \"symbol\" ? Symbol() : \"__\" + t, s = this.getPropertyDescriptor(t, r, e);\n s !== void 0 && Object.defineProperty(this.prototype, t, s);\n }\n }\n static getPropertyDescriptor(t, e, r) {\n return { get() {\n return this[e];\n }, set(s) {\n const i = this[t];\n this[e] = s, this.requestUpdate(t, i, r);\n }, configurable: !0, enumerable: !0 };\n }\n static getPropertyOptions(t) {\n return this.elementProperties.get(t) || De;\n }\n static finalize() {\n if (this.hasOwnProperty(Fe))\n return !1;\n this[Fe] = !0;\n const t = Object.getPrototypeOf(this);\n if (t.finalize(), t.h !== void 0 && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = /* @__PURE__ */ new Map(), this.hasOwnProperty(\"properties\")) {\n const e = this.properties, r = [...Object.getOwnPropertyNames(e), ...Object.getOwnPropertySymbols(e)];\n for (const s of r)\n this.createProperty(s, e[s]);\n }\n return this.elementStyles = this.finalizeStyles(this.styles), !0;\n }\n static finalizeStyles(t) {\n const e = [];\n if (Array.isArray(t)) {\n const r = new Set(t.flat(1 / 0).reverse());\n for (const s of r)\n e.unshift(In(s));\n } else\n t !== void 0 && e.push(In(t));\n return e;\n }\n static _$Ep(t, e) {\n const r = e.attribute;\n return r === !1 ? void 0 : typeof r == \"string\" ? r : typeof t == \"string\" ? t.toLowerCase() : void 0;\n }\n _$Eu() {\n var t;\n this._$E_ = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$Eg(), this.requestUpdate(), (t = this.constructor.h) === null || t === void 0 || t.forEach((e) => e(this));\n }\n addController(t) {\n var e, r;\n ((e = this._$ES) !== null && e !== void 0 ? e : this._$ES = []).push(t), this.renderRoot !== void 0 && this.isConnected && ((r = t.hostConnected) === null || r === void 0 || r.call(t));\n }\n removeController(t) {\n var e;\n (e = this._$ES) === null || e === void 0 || e.splice(this._$ES.indexOf(t) >>> 0, 1);\n }\n _$Eg() {\n this.constructor.elementProperties.forEach((t, e) => {\n this.hasOwnProperty(e) && (this._$Ei.set(e, this[e]), delete this[e]);\n });\n }\n createRenderRoot() {\n var t;\n const e = (t = this.shadowRoot) !== null && t !== void 0 ? t : this.attachShadow(this.constructor.shadowRootOptions);\n return ao(e, this.constructor.elementStyles), e;\n }\n connectedCallback() {\n var t;\n this.renderRoot === void 0 && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (t = this._$ES) === null || t === void 0 || t.forEach((e) => {\n var r;\n return (r = e.hostConnected) === null || r === void 0 ? void 0 : r.call(e);\n });\n }\n enableUpdating(t) {\n }\n disconnectedCallback() {\n var t;\n (t = this._$ES) === null || t === void 0 || t.forEach((e) => {\n var r;\n return (r = e.hostDisconnected) === null || r === void 0 ? void 0 : r.call(e);\n });\n }\n attributeChangedCallback(t, e, r) {\n this._$AK(t, r);\n }\n _$EO(t, e, r = De) {\n var s;\n const i = this.constructor._$Ep(t, r);\n if (i !== void 0 && r.reflect === !0) {\n const o = (((s = r.converter) === null || s === void 0 ? void 0 : s.toAttribute) !== void 0 ? r.converter : We).toAttribute(e, r.type);\n this._$El = t, o == null ? this.removeAttribute(i) : this.setAttribute(i, o), this._$El = null;\n }\n }\n _$AK(t, e) {\n var r;\n const s = this.constructor, i = s._$Ev.get(t);\n if (i !== void 0 && this._$El !== i) {\n const o = s.getPropertyOptions(i), a = typeof o.converter == \"function\" ? { fromAttribute: o.converter } : ((r = o.converter) === null || r === void 0 ? void 0 : r.fromAttribute) !== void 0 ? o.converter : We;\n this._$El = i, this[i] = a.fromAttribute(e, o.type), this._$El = null;\n }\n }\n requestUpdate(t, e, r) {\n let s = !0;\n t !== void 0 && (((r = r || this.constructor.getPropertyOptions(t)).hasChanged || Dr)(this[t], e) ? (this._$AL.has(t) || this._$AL.set(t, e), r.reflect === !0 && this._$El !== t && (this._$EC === void 0 && (this._$EC = /* @__PURE__ */ new Map()), this._$EC.set(t, r))) : s = !1), !this.isUpdatePending && s && (this._$E_ = this._$Ej());\n }\n _$Ej() {\n return z(this, null, function* () {\n this.isUpdatePending = !0;\n try {\n yield this._$E_;\n } catch (e) {\n Promise.reject(e);\n }\n const t = this.scheduleUpdate();\n return t != null && (yield t), !this.isUpdatePending;\n });\n }\n scheduleUpdate() {\n return this.performUpdate();\n }\n performUpdate() {\n var t;\n if (!this.isUpdatePending)\n return;\n this.hasUpdated, this._$Ei && (this._$Ei.forEach((s, i) => this[i] = s), this._$Ei = void 0);\n let e = !1;\n const r = this._$AL;\n try {\n e = this.shouldUpdate(r), e ? (this.willUpdate(r), (t = this._$ES) === null || t === void 0 || t.forEach((s) => {\n var i;\n return (i = s.hostUpdate) === null || i === void 0 ? void 0 : i.call(s);\n }), this.update(r)) : this._$Ek();\n } catch (s) {\n throw e = !1, this._$Ek(), s;\n }\n e && this._$AE(r);\n }\n willUpdate(t) {\n }\n _$AE(t) {\n var e;\n (e = this._$ES) === null || e === void 0 || e.forEach((r) => {\n var s;\n return (s = r.hostUpdated) === null || s === void 0 ? void 0 : s.call(r);\n }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);\n }\n _$Ek() {\n this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;\n }\n get updateComplete() {\n return this.getUpdateComplete();\n }\n getUpdateComplete() {\n return this._$E_;\n }\n shouldUpdate(t) {\n return !0;\n }\n update(t) {\n this._$EC !== void 0 && (this._$EC.forEach((e, r) => this._$EO(r, this[r], e)), this._$EC = void 0), this._$Ek();\n }\n updated(t) {\n }\n firstUpdated(t) {\n }\n};\nAt[Fe] = !0, At.elementProperties = /* @__PURE__ */ new Map(), At.elementStyles = [], At.shadowRootOptions = { mode: \"open\" }, Un == null || Un({ ReactiveElement: At }), ((Le = ue.reactiveElementVersions) !== null && Le !== void 0 ? Le : ue.reactiveElementVersions = []).push(\"1.6.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Te;\nconst de = window, _t = de.trustedTypes, Bn = _t ? _t.createPolicy(\"lit-html\", { createHTML: (n) => n }) : void 0, qe = \"$lit$\", ct = `lit$${(Math.random() + \"\").slice(9)}$`, Tr = \"?\" + ct, ho = `<${Tr}>`, bt = document, It = () => bt.createComment(\"\"), Ht = (n) => n === null || typeof n != \"object\" && typeof n != \"function\", jr = Array.isArray, lo = (n) => jr(n) || typeof (n == null ? void 0 : n[Symbol.iterator]) == \"function\", je = `[ \t\n\\f\\r]`, kt = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g, Vn = /-->/g, zn = />/g, ut = RegExp(`>|${je}(?:([^\\\\s\"'>=/]+)(${je}*=${je}*(?:[^ \t\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`, \"g\"), Wn = /'/g, Fn = /\"/g, Rr = /^(?:script|style|textarea|title)$/i, uo = (n) => (t, ...e) => ({ _$litType$: n, strings: t, values: e }), Kt = uo(1), wt = Symbol.for(\"lit-noChange\"), T = Symbol.for(\"lit-nothing\"), qn = /* @__PURE__ */ new WeakMap(), mt = bt.createTreeWalker(bt, 129, null, !1);\nfunction Ir(n, t) {\n if (!Array.isArray(n) || !n.hasOwnProperty(\"raw\"))\n throw Error(\"invalid template strings array\");\n return Bn !== void 0 ? Bn.createHTML(t) : t;\n}\nconst po = (n, t) => {\n const e = n.length - 1, r = [];\n let s, i = t === 2 ? \"<svg>\" : \"\", o = kt;\n for (let a = 0; a < e; a++) {\n const c = n[a];\n let h, l, u = -1, d = 0;\n for (; d < c.length && (o.lastIndex = d, l = o.exec(c), l !== null); )\n d = o.lastIndex, o === kt ? l[1] === \"!--\" ? o = Vn : l[1] !== void 0 ? o = zn : l[2] !== void 0 ? (Rr.test(l[2]) && (s = RegExp(\"</\" + l[2], \"g\")), o = ut) : l[3] !== void 0 && (o = ut) : o === ut ? l[0] === \">\" ? (o = s != null ? s : kt, u = -1) : l[1] === void 0 ? u = -2 : (u = o.lastIndex - l[2].length, h = l[1], o = l[3] === void 0 ? ut : l[3] === '\"' ? Fn : Wn) : o === Fn || o === Wn ? o = ut : o === Vn || o === zn ? o = kt : (o = ut, s = void 0);\n const p = o === ut && n[a + 1].startsWith(\"/>\") ? \" \" : \"\";\n i += o === kt ? c + ho : u >= 0 ? (r.push(h), c.slice(0, u) + qe + c.slice(u) + ct + p) : c + ct + (u === -2 ? (r.push(void 0), a) : p);\n }\n return [Ir(n, i + (n[e] || \"<?>\") + (t === 2 ? \"</svg>\" : \"\")), r];\n};\nclass Ut {\n constructor({ strings: t, _$litType$: e }, r) {\n let s;\n this.parts = [];\n let i = 0, o = 0;\n const a = t.length - 1, c = this.parts, [h, l] = po(t, e);\n if (this.el = Ut.createElement(h, r), mt.currentNode = this.el.content, e === 2) {\n const u = this.el.content, d = u.firstChild;\n d.remove(), u.append(...d.childNodes);\n }\n for (; (s = mt.nextNode()) !== null && c.length < a; ) {\n if (s.nodeType === 1) {\n if (s.hasAttributes()) {\n const u = [];\n for (const d of s.getAttributeNames())\n if (d.endsWith(qe) || d.startsWith(ct)) {\n const p = l[o++];\n if (u.push(d), p !== void 0) {\n const b = s.getAttribute(p.toLowerCase() + qe).split(ct), v = /([.?@])?(.*)/.exec(p);\n c.push({ type: 1, index: i, name: v[2], strings: b, ctor: v[1] === \".\" ? fo : v[1] === \"?\" ? vo : v[1] === \"@\" ? yo : we });\n } else\n c.push({ type: 6, index: i });\n }\n for (const d of u)\n s.removeAttribute(d);\n }\n if (Rr.test(s.tagName)) {\n const u = s.textContent.split(ct), d = u.length - 1;\n if (d > 0) {\n s.textContent = _t ? _t.emptyScript : \"\";\n for (let p = 0; p < d; p++)\n s.append(u[p], It()), mt.nextNode(), c.push({ type: 2, index: ++i });\n s.append(u[d], It());\n }\n }\n } else if (s.nodeType === 8)\n if (s.data === Tr)\n c.push({ type: 2, index: i });\n else {\n let u = -1;\n for (; (u = s.data.indexOf(ct, u + 1)) !== -1; )\n c.push({ type: 7, index: i }), u += ct.length - 1;\n }\n i++;\n }\n }\n static createElement(t, e) {\n const r = bt.createElement(\"template\");\n return r.innerHTML = t, r;\n }\n}\nfunction St(n, t, e = n, r) {\n var s, i, o, a;\n if (t === wt)\n return t;\n let c = r !== void 0 ? (s = e._$Co) === null || s === void 0 ? void 0 : s[r] : e._$Cl;\n const h = Ht(t) ? void 0 : t._$litDirective$;\n return (c == null ? void 0 : c.constructor) !== h && ((i = c == null ? void 0 : c._$AO) === null || i === void 0 || i.call(c, !1), h === void 0 ? c = void 0 : (c = new h(n), c._$AT(n, e, r)), r !== void 0 ? ((o = (a = e)._$Co) !== null && o !== void 0 ? o : a._$Co = [])[r] = c : e._$Cl = c), c !== void 0 && (t = St(n, c._$AS(n, t.values), c, r)), t;\n}\nclass go {\n constructor(t, e) {\n this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e;\n }\n get parentNode() {\n return this._$AM.parentNode;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n u(t) {\n var e;\n const { el: { content: r }, parts: s } = this._$AD, i = ((e = t == null ? void 0 : t.creationScope) !== null && e !== void 0 ? e : bt).importNode(r, !0);\n mt.currentNode = i;\n let o = mt.nextNode(), a = 0, c = 0, h = s[0];\n for (; h !== void 0; ) {\n if (a === h.index) {\n let l;\n h.type === 2 ? l = new Vt(o, o.nextSibling, this, t) : h.type === 1 ? l = new h.ctor(o, h.name, h.strings, this, t) : h.type === 6 && (l = new bo(o, this, t)), this._$AV.push(l), h = s[++c];\n }\n a !== (h == null ? void 0 : h.index) && (o = mt.nextNode(), a++);\n }\n return mt.currentNode = bt, i;\n }\n v(t) {\n let e = 0;\n for (const r of this._$AV)\n r !== void 0 && (r.strings !== void 0 ? (r._$AI(t, r, e), e += r.strings.length - 2) : r._$AI(t[e])), e++;\n }\n}\nclass Vt {\n constructor(t, e, r, s) {\n var i;\n this.type = 2, this._$AH = T, this._$AN = void 0, this._$AA = t, this._$AB = e, this._$AM = r, this.options = s, this._$Cp = (i = s == null ? void 0 : s.isConnected) === null || i === void 0 || i;\n }\n get _$AU() {\n var t, e;\n return (e = (t = this._$AM) === null || t === void 0 ? void 0 : t._$AU) !== null && e !== void 0 ? e : this._$Cp;\n }\n get parentNode() {\n let t = this._$AA.parentNode;\n const e = this._$AM;\n return e !== void 0 && (t == null ? void 0 : t.nodeType) === 11 && (t = e.parentNode), t;\n }\n get startNode() {\n return this._$AA;\n }\n get endNode() {\n return this._$AB;\n }\n _$AI(t, e = this) {\n t = St(this, t, e), Ht(t) ? t === T || t == null || t === \"\" ? (this._$AH !== T && this._$AR(), this._$AH = T) : t !== this._$AH && t !== wt && this._(t) : t._$litType$ !== void 0 ? this.g(t) : t.nodeType !== void 0 ? this.$(t) : lo(t) ? this.T(t) : this._(t);\n }\n k(t) {\n return this._$AA.parentNode.insertBefore(t, this._$AB);\n }\n $(t) {\n this._$AH !== t && (this._$AR(), this._$AH = this.k(t));\n }\n _(t) {\n this._$AH !== T && Ht(this._$AH) ? this._$AA.nextSibling.data = t : this.$(bt.createTextNode(t)), this._$AH = t;\n }\n g(t) {\n var e;\n const { values: r, _$litType$: s } = t, i = typeof s == \"number\" ? this._$AC(t) : (s.el === void 0 && (s.el = Ut.createElement(Ir(s.h, s.h[0]), this.options)), s);\n if (((e = this._$AH) === null || e === void 0 ? void 0 : e._$AD) === i)\n this._$AH.v(r);\n else {\n const o = new go(i, this), a = o.u(this.options);\n o.v(r), this.$(a), this._$AH = o;\n }\n }\n _$AC(t) {\n let e = qn.get(t.strings);\n return e === void 0 && qn.set(t.strings, e = new Ut(t)), e;\n }\n T(t) {\n jr(this._$AH) || (this._$AH = [], this._$AR());\n const e = this._$AH;\n let r, s = 0;\n for (const i of t)\n s === e.length ? e.push(r = new Vt(this.k(It()), this.k(It()), this, this.options)) : r = e[s], r._$AI(i), s++;\n s < e.length && (this._$AR(r && r._$AB.nextSibling, s), e.length = s);\n }\n _$AR(t = this._$AA.nextSibling, e) {\n var r;\n for ((r = this._$AP) === null || r === void 0 || r.call(this, !1, !0, e); t && t !== this._$AB; ) {\n const s = t.nextSibling;\n t.remove(), t = s;\n }\n }\n setConnected(t) {\n var e;\n this._$AM === void 0 && (this._$Cp = t, (e = this._$AP) === null || e === void 0 || e.call(this, t));\n }\n}\nclass we {\n constructor(t, e, r, s, i) {\n this.type = 1, this._$AH = T, this._$AN = void 0, this.element = t, this.name = e, this._$AM = s, this.options = i, r.length > 2 || r[0] !== \"\" || r[1] !== \"\" ? (this._$AH = Array(r.length - 1).fill(new String()), this.strings = r) : this._$AH = T;\n }\n get tagName() {\n return this.element.tagName;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AI(t, e = this, r, s) {\n const i = this.strings;\n let o = !1;\n if (i === void 0)\n t = St(this, t, e, 0), o = !Ht(t) || t !== this._$AH && t !== wt, o && (this._$AH = t);\n else {\n const a = t;\n let c, h;\n for (t = i[0], c = 0; c < i.length - 1; c++)\n h = St(this, a[r + c], e, c), h === wt && (h = this._$AH[c]), o || (o = !Ht(h) || h !== this._$AH[c]), h === T ? t = T : t !== T && (t += (h != null ? h : \"\") + i[c + 1]), this._$AH[c] = h;\n }\n o && !s && this.j(t);\n }\n j(t) {\n t === T ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t != null ? t : \"\");\n }\n}\nclass fo extends we {\n constructor() {\n super(...arguments), this.type = 3;\n }\n j(t) {\n this.element[this.name] = t === T ? void 0 : t;\n }\n}\nconst mo = _t ? _t.emptyScript : \"\";\nclass vo extends we {\n constructor() {\n super(...arguments), this.type = 4;\n }\n j(t) {\n t && t !== T ? this.element.setAttribute(this.name, mo) : this.element.removeAttribute(this.name);\n }\n}\nclass yo extends we {\n constructor(t, e, r, s, i) {\n super(t, e, r, s, i), this.type = 5;\n }\n _$AI(t, e = this) {\n var r;\n if ((t = (r = St(this, t, e, 0)) !== null && r !== void 0 ? r : T) === wt)\n return;\n const s = this._$AH, i = t === T && s !== T || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, o = t !== T && (s === T || i);\n i && this.element.removeEventListener(this.name, this, s), o && this.element.addEventListener(this.name, this, t), this._$AH = t;\n }\n handleEvent(t) {\n var e, r;\n typeof this._$AH == \"function\" ? this._$AH.call((r = (e = this.options) === null || e === void 0 ? void 0 : e.host) !== null && r !== void 0 ? r : this.element, t) : this._$AH.handleEvent(t);\n }\n}\nclass bo {\n constructor(t, e, r) {\n this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = r;\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AI(t) {\n St(this, t);\n }\n}\nconst Jn = de.litHtmlPolyfillSupport;\nJn == null || Jn(Ut, Vt), ((Te = de.litHtmlVersions) !== null && Te !== void 0 ? Te : de.litHtmlVersions = []).push(\"2.8.0\");\nconst wo = (n, t, e) => {\n var r, s;\n const i = (r = e == null ? void 0 : e.renderBefore) !== null && r !== void 0 ? r : t;\n let o = i._$litPart$;\n if (o === void 0) {\n const a = (s = e == null ? void 0 : e.renderBefore) !== null && s !== void 0 ? s : null;\n i._$litPart$ = o = new Vt(t.insertBefore(It(), a), a, void 0, e != null ? e : {});\n }\n return o._$AI(n), o;\n};\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Re, Ie;\nlet jt = class extends At {\n constructor() {\n super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;\n }\n createRenderRoot() {\n var t, e;\n const r = super.createRenderRoot();\n return (t = (e = this.renderOptions).renderBefore) !== null && t !== void 0 || (e.renderBefore = r.firstChild), r;\n }\n update(t) {\n const e = this.render();\n this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = wo(e, this.renderRoot, this.renderOptions);\n }\n connectedCallback() {\n var t;\n super.connectedCallback(), (t = this._$Do) === null || t === void 0 || t.setConnected(!0);\n }\n disconnectedCallback() {\n var t;\n super.disconnectedCallback(), (t = this._$Do) === null || t === void 0 || t.setConnected(!1);\n }\n render() {\n return wt;\n }\n};\njt.finalized = !0, jt._$litElement$ = !0, (Re = globalThis.litElementHydrateSupport) === null || Re === void 0 || Re.call(globalThis, { LitElement: jt });\nconst Kn = globalThis.litElementPolyfillSupport;\nKn == null || Kn({ LitElement: jt });\n((Ie = globalThis.litElementVersions) !== null && Ie !== void 0 ? Ie : globalThis.litElementVersions = []).push(\"3.3.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst $o = (n, t) => t.kind === \"method\" && t.descriptor && !(\"value\" in t.descriptor) ? zt(st({}, t), { finisher(e) {\n e.createProperty(t.key, n);\n} }) : { kind: \"field\", key: Symbol(), placement: \"own\", descriptor: {}, originalKey: t.key, initializer() {\n typeof t.initializer == \"function\" && (this[t.key] = t.initializer.call(this));\n}, finisher(e) {\n e.createProperty(t.key, n);\n} }, Eo = (n, t, e) => {\n t.constructor.createProperty(e, n);\n};\nfunction Hr(n) {\n return (t, e) => e !== void 0 ? Eo(n, t, e) : $o(n, t);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction nn(n) {\n return Hr(zt(st({}, n), { state: !0 }));\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar He;\n((He = window.HTMLSlotElement) === null || He === void 0 ? void 0 : He.prototype.assignedElements) != null;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst Oo = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }, Ao = (n) => (...t) => ({ _$litDirective$: n, values: t });\nclass xo {\n constructor(t) {\n }\n get _$AU() {\n return this._$AM._$AU;\n }\n _$AT(t, e, r) {\n this._$Ct = t, this._$AM = e, this._$Ci = r;\n }\n _$AS(t, e) {\n return this.update(t, e);\n }\n update(t, e) {\n return this.render(...e);\n }\n}\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst _o = Ao(class extends xo {\n constructor(n) {\n var t;\n if (super(n), n.type !== Oo.ATTRIBUTE || n.name !== \"class\" || ((t = n.strings) === null || t === void 0 ? void 0 : t.length) > 2)\n throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\");\n }\n render(n) {\n return \" \" + Object.keys(n).filter((t) => n[t]).join(\" \") + \" \";\n }\n update(n, [t]) {\n var e, r;\n if (this.it === void 0) {\n this.it = /* @__PURE__ */ new Set(), n.strings !== void 0 && (this.nt = new Set(n.strings.join(\" \").split(/\\s/).filter((i) => i !== \"\")));\n for (const i in t)\n t[i] && !(!((e = this.nt) === null || e === void 0) && e.has(i)) && this.it.add(i);\n return this.render(t);\n }\n const s = n.element.classList;\n this.it.forEach((i) => {\n i in t || (s.remove(i), this.it.delete(i));\n });\n for (const i in t) {\n const o = !!t[i];\n o === this.it.has(i) || !((r = this.nt) === null || r === void 0) && r.has(i) || (o ? (s.add(i), this.it.add(i)) : (s.remove(i), this.it.delete(i)));\n }\n return wt;\n }\n});\nvar So = Object.defineProperty, Po = Object.getOwnPropertyDescriptor, $e = (n, t, e, r) => {\n for (var s = r > 1 ? void 0 : r ? Po(t, e) : t, i = n.length - 1, o; i >= 0; i--)\n (o = n[i]) && (s = (r ? o(t, e, s) : o(s)) || s);\n return r && s && So(t, e, s), s;\n};\nclass lt extends jt {\n constructor() {\n super(...arguments), this.active = !1, this.loaded = !1;\n }\n connectedCallback() {\n return z(this, null, function* () {\n cn(lt.prototype, this, \"connectedCallback\").call(this), this.icon = yield this._renderSymbol(this.symbol), this.loaded = !0;\n });\n }\n _toggleActive() {\n this.active = !this.active;\n }\n _renderSymbol(t) {\n return z(this, null, function* () {\n const e = (r) => z(this, null, function* () {\n return yield import(\"./index-9688347a.js\").then((i) => i[r]);\n });\n if (t) {\n const { type: r, content: s } = t;\n switch (r) {\n case \"Telia\": {\n const i = yield e(s);\n return i ? Kt`<telia-icon\n class=\"trigger-icon\"\n svg=${i.svg}\n size=\"lg\"\n ></telia-icon>` : T;\n }\n case \"FontAwesome\":\n return Kt`<i class=\"trigger-fa-icon fa fa-${s}\"></i>`;\n case \"Uri\":\n return Kt`<i\n class=\"trigger-custom-icon\"\n style=\"background: url(${s}) no-repeat center center;background-size: contain;\"\n ></i>`;\n default:\n return T;\n }\n }\n });\n }\n render() {\n return Kt`<button\n class=${_o({\n trigger: !0,\n active: this.active,\n rendered: this.loaded\n })}\n @click=${this._toggleActive}\n >\n ${this.icon}\n <span class=\"trigger-close\">\n <svg\n width=\"18\"\n height=\"9\"\n viewBox=\"0 0 18 9\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 9C8.81794 9.00045 8.63759 8.96634 8.46939 8.89965C8.3012 8.83295 8.14851 8.735 8.02015 8.61145L0.194523 1.12367C0.068294 0.99862 -0.00155266 0.831133 2.61958e-05 0.657285C0.00160506 0.483436 0.0744832 0.317136 0.202964 0.194202C0.331445 0.0712675 0.505249 0.00153576 0.686941 2.50649e-05C0.868634 -0.00148563 1.04368 0.0653456 1.17437 0.186125L9 7.6739L16.8256 0.186125C16.9563 0.0653456 17.1314 -0.00148563 17.3131 2.50649e-05C17.4948 0.00153576 17.6686 0.0712675 17.797 0.194202C17.9255 0.317136 17.9984 0.483436 18 0.657285C18.0016 0.831133 17.9317 0.99862 17.8055 1.12367L9.97985 8.61145C9.85149 8.735 9.6988 8.83295 9.53061 8.89965C9.36241 8.96634 9.18206 9.00045 9 9Z\"\n fill=\"white\"\n />\n </svg>\n </span>\n <span class=\"trigger-loader\">\n <svg viewBox=\"25 25 50 50\">\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n </svg>\n </span>\n </button>`;\n }\n}\nlt.styles = [\n oo`\n :host {\n --voca-rem-multiplier: 0.625;\n display: block;\n box-sizing: border-box;\n }\n\n .trigger {\n position: fixed;\n transform: scale(0);\n box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;\n bottom: 20px;\n right: 20px;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n line-height: 55px;\n height: 55px;\n width: 55px;\n border-radius: 55px;\n cursor: pointer;\n background-color: #990ae3;\n font-family: Lato;\n text-decoration: none;\n border: 3px dashed transparent;\n box-sizing: border-box;\n transition: transform 200ms ease-out;\n }\n .trigger:hover {\n transform: scale(1.1) !important;\n }\n .trigger.rendered {\n transform: scale(1);\n }\n .trigger.active .trigger-icon {\n opacity: 0;\n transform: rotate(-180deg) scale(0);\n }\n .trigger.active .trigger-close {\n opacity: 1;\n transform: rotate(0deg) scale(1);\n }\n\n .trigger-icon {\n display: inline-block;\n line-height: inherit;\n text-align: center;\n opacity: 1;\n transform: rotate(0deg) scale(1);\n transition:\n opacity 200ms ease-out,\n transform 200ms ease-out;\n color: #ffffff;\n }\n .trigger-close {\n opacity: 0;\n transition: transform 200ms ease-out;\n transform: rotate(180deg) scale(0);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n fill: #ffffff;\n }\n `\n];\n$e([\n Hr({ attribute: !1 })\n], lt.prototype, \"symbol\", 2);\n$e([\n nn()\n], lt.prototype, \"active\", 2);\n$e([\n nn()\n], lt.prototype, \"loaded\", 2);\n$e([\n nn()\n], lt.prototype, \"icon\", 2);\nvar vt = /* @__PURE__ */ ((n) => (n.Inline = \"inline\", n.Link = \"link\", n.Badge = \"badge\", n.Unsupported = \"unsupported\", n))(vt || {});\nconst Co = (n, t) => n && t ? \"both\" : n ? \"widgetDOM\" : t ? \"triggerDOM\" : \"none\", Ur = (n) => n ? typeof n == \"boolean\" && n ? \"link\" : typeof n == \"object\" && !Array.isArray(n) ? \"badge\" : \"unsupported\" : \"inline\", ko = (n, t, e, r, s = !1) => z(void 0, null, function* () {\n var h, l;\n const i = Co(\n t,\n e\n ), o = Ur(r), a = {\n widgetDOMElement: t ? t.cloneNode(!0) : void 0,\n triggerDOMElement: e ? e.cloneNode(!0) : void 0\n }, c = {\n triggerType: o,\n cachedOriginals: a,\n widgetDOMElement: document.createElement(\"div\")\n };\n switch (i) {\n case \"both\": {\n c.widgetDOMElement = t || document.createElement(\"div\"), o !== \"inline\" && (c.triggerDOMElement = e);\n break;\n }\n case \"widgetDOM\": {\n if (c.widgetDOMElement = t || document.createElement(\"div\"), o !== \"inline\") {\n const u = document.body.appendChild(\n document.createElement(\"a\")\n );\n o === \"link\" && (u.innerText = n), c.triggerDOMElement = u;\n }\n break;\n }\n case \"triggerDOM\": {\n const u = document.createElement(\"div\");\n c.widgetDOMElement = u, o === \"inline\" ? (u.id = (e == null ? void 0 : e.id) || \"\", s ? (u.style.display = \"none\", (h = e == null ? void 0 : e.parentNode) == null || h.appendChild(u), c.callback = () => {\n var d;\n (d = e == null ? void 0 : e.parentNode) == null || d.replaceChild(\n u,\n e\n ), u.style.display = (e == null ? void 0 : e.style.display) || \"block\";\n }) : (l = e == null ? void 0 : e.parentNode) == null || l.replaceChild(\n u,\n e\n ), c.cachedOriginals.widgetDOMElement = e, c.cachedOriginals.triggerDOMElement = void 0) : (c.widgetDOMElement = document.body.appendChild(u), c.triggerDOMElement = e);\n break;\n }\n case \"none\": {\n const u = document.body.appendChild(\n document.createElement(\"div\")\n );\n if (c.widgetDOMElement = u, o !== \"inline\") {\n customElements.get(\"ace-widget-trigger\") || customElements.define(\"ace-widget-trigger\", lt);\n const d = document.createElement(\"ace-widget-trigger\");\n d.symbol = r.symbol, document.body.appendChild(d), console.log(\"Created trigger\"), c.triggerDOMElement = d;\n }\n break;\n }\n }\n return c;\n}), No = \"modals\";\nclass Mo {\n constructor(t, e) {\n this.options = e, this.unsubscribe = [], this.container = t.createChild(this), this.container.register(\"widgetDOMElement\", this.options.widgetDOMElement), this.container.register(\n \"triggerDOMElement\",\n this.options.triggerDOMElement\n );\n const r = this.container.get(\"$widget\");\n this.options.widgetDOMElement.classList.add(\"ace-widget\"), this.options.widgetDOMElement.classList.add(`ace-widget_${r.name}`);\n const s = t.get(\"widgetDOMElements\") || [];\n t.register(\"widgetDOMElements\", [\n ...s,\n this.options.widgetDOMElement\n ]);\n }\n /**\n * Renders the view outlet to the DOM.\n */\n render() {\n const { widgetDOMElement: t, triggerDOMElement: e } = this.options, r = this.container.get(\"$widget\");\n return t.getAttribute(\"data-rendered\") === \"true\" ? Promise.resolve() : (e && this.options.triggerType === vt.Badge && so(e), import(\"./render-33d3aace.js\").then((s) => s.default(this.container, t)).then(() => {\n if (t.setAttribute(\"data-rendered\", \"true\"), e && this.options.triggerType === vt.Badge) {\n const i = this.options.triggerOptions.openTooltip;\n Mr(e, i);\n }\n os(this.container, t);\n const s = this.container.get(\"$environment\").widgets.all();\n Y(\n this.container,\n No,\n S.Session\n ).then((i) => {\n i && i.forEach((o) => {\n s.find(\n (a) => a.name === o.name && a.state === \"activated\"\n ) && r.events.dispatch(\"widget:modal-opened\", o);\n });\n });\n }));\n }\n renderBadge(t) {\n const { triggerDOMElement: e } = this.options;\n if (!e)\n return;\n e.getAttribute(\"role\") || e.setAttribute(\"role\", \"button\");\n const { name: r } = this.container.get(\"$widget\"), { label: s, symbol: i, ariaLabel: o, closedTooltip: a, openTooltip: c } = t, h = { closedTooltip: a, openTooltip: c };\n this.options.triggerOptions = h;\n const l = no(e, {\n label: s,\n symbol: i,\n ariaLabel: o,\n widgetName: r,\n tooltip: a\n });\n this.unsubscribe.push(l);\n }\n dispose() {\n return z(this, null, function* () {\n var r, s, i, o;\n const { triggerDOMElement: t, widgetDOMElement: e } = this.options;\n this.options.cachedOriginals.widgetDOMElement && e && ((r = e.parentNode) == null || r.replaceChild(\n this.options.cachedOriginals.widgetDOMElement,\n e\n )), this.options.cachedOriginals.triggerDOMElement && t && ((s = t.parentNode) == null || s.replaceChild(\n this.options.cachedOriginals.triggerDOMElement,\n t\n )), this.unsubscribe.forEach((a) => {\n a();\n }), (i = e.parentNode) == null || i.removeChild(e), (o = t == null ? void 0 : t.parentNode) == null || o.removeChild(t);\n });\n }\n}\nconst Gt = \"changesets\", Lo = (n) => {\n const t = { tags: n.tags };\n return n.context && typeof n.context != \"function\" && (t.context = n.context), n.properties && typeof n.properties != \"function\" && (t.properties = n.properties), n.layout && typeof n.layout != \"function\" && (t.layout = n.layout), t;\n};\nclass rn {\n constructor(t, e) {\n this.container = t, this.storageWriter = e;\n }\n static create(t) {\n return et(\n t,\n Gt,\n P.Necessary,\n {\n medium: S.Local\n }\n ).then(\n (e) => new rn(t, e)\n );\n }\n write(t, e, r, s) {\n return Q(this)(() => Y(\n this.container,\n Gt,\n S.Local\n ).then((i = {}) => {\n const { keys: o = [], items: a = {} } = i, c = o.indexOf(t);\n return c > -1 && o.splice(c, 1), o.push(t), a[t] = {\n options: s,\n attributes: Lo(r),\n rules: e.rules\n }, this.storageWriter({ keys: o, items: a });\n }));\n }\n remove(t) {\n return Q(this)(() => Y(\n this.container,\n Gt,\n S.Local\n ).then((e = {}) => {\n const { keys: r = [], items: s = {} } = e, i = r.indexOf(t);\n if (i > -1)\n return r.splice(i, 1), delete s[t], this.storageWriter(e);\n }));\n }\n load(t) {\n return Q(this)(() => Y(\n this.container,\n Gt,\n S.Local\n ).then((e = {}) => {\n const { keys: r = [], items: s = {} } = e;\n r.forEach((i) => {\n const o = s[i];\n if (o) {\n const { rules: a, attributes: c, options: h } = o;\n t.write({\n attributes: c,\n options: h,\n target: new Pt(t, a)\n });\n }\n });\n }));\n }\n}\nconst Do = (n) => {\n const { container: t } = n;\n return rn.create(t).then(\n (e) => {\n const r = t.get(\"$settings\"), s = { localStorage: e }, i = new me(n, s), o = rr(i, r);\n return n.events.subscribe(\n \"widget:state-change\",\n (a, c) => {\n c.state === Qn.Deactivating && o();\n }\n ), i;\n }\n );\n}, To = (n) => Promise.resolve().then(() => Gi).then(\n ({ RoutingService: t, HistoryMode: e }) => n.get(\"settings\").then((r) => {\n const {\n routing: {\n initialPath: s = \"/\",\n mode: i = e.scopedHash,\n basePath: o\n },\n views: a\n } = r;\n return new t(n, {\n initialPath: s,\n mode: i,\n routes: Object.keys(a).map((h) => ({\n name: h,\n path: a[h].path\n })),\n basePath: o\n });\n })\n), jo = (n) => Promise.resolve().then(() => ai).then(({ StorageProvider: t }) => new t()), Ro = (n) => Promise.resolve().then(() => Ge).then(({ ActionResolver: t }) => new t(n)), Io = (n) => Promise.resolve().then(() => Ge).then(({ ComponentResolver: t }) => new t(n)), Ho = (n) => Promise.resolve().then(() => Ge).then(() => Do(n.get(\"$widget\"))), Ue = \"$settings\", Yt = \"open\", Gn = \"activeStickyWidget\";\nclass la extends Zr {\n constructor(t) {\n super(t), this.outlets = /* @__PURE__ */ new Map(), this.activated = void 0, this.subs = [], this.handleBootstrapping = (e) => {\n const r = {\n triggerDOMElement: e.sourceDOMElement,\n withRenderState: \"storage\"\n /* Storage */\n };\n this.container.get(\"settings\").then((s) => {\n const { activate: i } = s;\n (typeof i == \"undefined\" || i === null || i === !0) && (this.activated = (this.activated || this.widget.activate()).then(\n () => this.attach(r)\n ));\n });\n }, this.container.registerAsync(\n \"storage\",\n () => jo(this.container)\n ), this.container.registerFactory(\"settings\", () => Y(\n this.container,\n Ue,\n S.Local\n ).then((e = {}) => st(st({}, this.container.get(\"$settings\")), e))), to(this, \"load\", this.handleBootstrapping), this.container.registerAsync(\n \"componentResolver\",\n () => Io(this.container)\n ), this.container.registerAsync(\n \"router\",\n () => To(this.container)\n ), this.container.registerAsync(\n \"actionResolver\",\n () => Ro(this.container)\n ), this.container.register(\"matchMedia\", window.matchMedia), this.container.registerAsync(\n \"components\",\n () => Ho(this.container)\n );\n }\n initialize() {\n const t = this.container.getManyAsync(\n \"actionResolver\",\n \"router\",\n \"components\"\n ), e = this.container.get(\"csp\");\n return e && (window.webprovisionsEnvironmentVariables || (window.webprovisionsEnvironmentVariables = {}), window.webprovisionsEnvironmentVariables.cspNonce = e.nonce), Promise.all([t, this.container.get(\"settings\")]).then(\n ([{ actionResolver: r, router: s, components: i }, o]) => {\n var h;\n r.subscribe(\n this.widget.name,\n (l, u, d) => this.onAction(u, d)\n );\n const a = (l) => {\n i.nodes.query({ type: \"view\" }).forEach((u) => {\n i.setSwitch(u, l);\n });\n }, c = ((h = s.getInitialRoute()) == null ? void 0 : h.name) || \"index\";\n return a(c), this.events.subscribe(\"widget:data-loaded\", (l, { element: u }) => {\n this.widget.container.get(\"seoConfiguration\") && this.events.dispatch(\"widget:preloaded-replaced\", {\n element: u\n });\n }), this.events.subscribe(\n \"router:change\",\n (l, { previous: u = { routeData: {} }, next: d = { routeData: {} } }) => {\n const { routeData: p } = u, { routeData: b } = d, v = Object.keys(o.views).reduce(\n (g, O) => typeof o.views[O].path == \"undefined\" ? O : g,\n \"\"\n );\n !b.name && v ? a(v) : a(b.name), yt(p && p.params), yt(b && b.params), this.container.getAsync(\"actionResolver\").then((g) => {\n g.action(this.widget.name, \"routeChange\", {\n next: b,\n previous: p\n });\n });\n }\n ), s.initialize();\n }\n );\n }\n attach(t = {}) {\n return this.container.get(\"settings\").then((r) => z(this, [r], function* ({ trigger: e }) {\n var p, b;\n const {\n widgetDOMElement: s,\n key: i = Bt(),\n triggerDOMElement: o,\n withRenderState: a\n } = t, h = Ur(e) === vt.Inline && ((o == null ? void 0 : o.childElementCount) || 0) > 0, l = yield ko(\n this.widget.name,\n s,\n o,\n e,\n h\n );\n this.outlets.size < 1 && !a && this.setRenderState(\"unset\");\n const u = () => {\n const v = () => g.querySelectorAll(\"[data-loading=true]\").length === 0, [g] = this.widget.container.get(\"widgetDOMElements\"), O = (H, k) => {\n v() && (l.callback && l.callback(), k.disconnect());\n }, j = {\n attributes: !0,\n subtree: !0,\n childList: !0\n };\n v() && l.callback && l.callback(), new MutationObserver(O).observe(g, j);\n };\n h && this.widget.container.getAsync(\"dataClient\").then(({ events: v }) => {\n v.subscribe(\n \"data-client:fetched\",\n (g, O) => {\n O.unresolvedQueries === 0 && u();\n }\n );\n });\n const d = this.getOrCreateViewOutlet(i, l);\n if (this.outlets.set(i, d), this.widget.events.dispatch(\"widget:attached\", {}, { bubbles: !0 }), l.triggerType === vt.Badge && e && ((p = l.triggerDOMElement) == null || p.setAttribute(\n \"aria-expanded\",\n \"false\"\n ), d == null || d.renderBadge(e)), l.triggerType !== vt.Inline && ((b = l.triggerDOMElement) == null || b.addEventListener(\n \"click\",\n (v) => {\n v.preventDefault(), this.container.get(\"settings\").then(({ trigger: g }) => {\n d.render().then(() => this.renderState()).then((O) => g && g.action && g.action === \"hide\" ? O === q.open ? this.hide() : this.open() : O === q.open ? this.close() : this.open());\n });\n }\n )), this.outlets.size > 1)\n return this.renderState().then((v) => {\n this.triggerStateIfApplicable(v);\n });\n if (a)\n return a === \"storage\" ? this.renderState().then((v) => {\n if (l.triggerType === vt.Inline) {\n this.triggerStateIfApplicable(\"open\");\n return;\n }\n this.triggerStateIfApplicable(v);\n }) : this.triggerStateIfApplicable(a);\n }));\n }\n detach(t) {\n if (t) {\n if (this.outlets.has(t)) {\n const e = this.outlets.get(t);\n e == null || e.dispose(), this.outlets.delete(t);\n return;\n }\n process.env.NODE_ENV !== \"production\" && console.warn(`detach(): Could not find View Outlet with key ${t}`);\n return;\n }\n this.outlets.forEach((e) => {\n e.dispose();\n }), this.outlets.clear();\n }\n triggerStateIfApplicable(t) {\n return this.container.getAsync(\"router\").then((e) => {\n switch (t) {\n case \"closed\":\n this.close();\n break;\n case \"open\":\n this.open();\n break;\n case \"hidden\":\n this.hide(), e.start();\n break;\n default:\n return;\n }\n });\n }\n getOrCreateViewOutlet(t, e) {\n return this.outlets.has(t) ? this.outlets.get(t) : new Mo(this.container, e);\n }\n render(t = {}) {\n if (process.env.NODE_ENV !== \"production\" && console.warn(\n \"widget.render() is deprecated. Use widget.attach() instead.\"\n ), t.open) {\n const e = zt(st({}, t), {\n withRenderState: \"open\"\n /* Open */\n });\n return this.attach(e);\n }\n return this.attach(t);\n }\n activate(t) {\n t != null && t.override && this.setSettings(() => t.override), t != null && t.apiNotificationPriorityBy && this.container.register(\n \"apiNotificationPriorityBy\",\n t.apiNotificationPriorityBy\n );\n }\n setSettings(t) {\n return Promise.all([\n this.container.get(\"settings\"),\n et(\n this.container,\n Ue,\n P.Necessary,\n {\n medium: S.Local\n }\n )\n ]).then(([e, r]) => Promise.resolve(t(e)).then((s) => r(s).then(() => {\n const i = st(st({}, e), s);\n return this.widget.events.dispatch(\"widget:settings-updated\", i), i;\n })));\n }\n clearSettings() {\n return et(\n this.container,\n Ue,\n P.Necessary,\n { medium: S.Local }\n ).then((t) => t()).then(() => this.container.get(\"settings\")).then((t) => {\n this.widget.events.dispatch(\"widget:settings-updated\", t);\n });\n }\n action({ action: t, value: e }) {\n return this.container.getAsync(\"actionResolver\").then((r) => {\n r.action(this.widget.name, t, e);\n });\n }\n renderState() {\n if (Xe(this.container))\n return Promise.resolve(q.open);\n const t = () => Y(\n this.container,\n Yt,\n S.Session\n ).then((r = q.closed) => r), e = () => Y(\n this.container,\n Yt,\n S.Session\n ).then((r = q.closed) => r);\n return this.container.getAsync(\"router\").then((r) => r.isSticky() ? e().then((s) => s === q.open ? s : t()) : t());\n }\n hide() {\n return this.outlets.size < 1 ? (process.env.NODE_ENV !== \"production\" && console.warn(\n \"hide(): No-op as no view outlets are registered. Invoke the attach() command first.\"\n ), Promise.resolve()) : (this.outlets.forEach((t) => t.render()), this.action({ action: \"hide\" }).then(() => {\n this.setTriggerState(!1);\n }));\n }\n open() {\n return this.outlets.size < 1 ? (process.env.NODE_ENV !== \"production\" && console.warn(\n \"open(): No-op as no view outlets are registered. Invoke the attach() command first.\"\n ), Promise.resolve()) : (this.outlets.forEach((t) => t.render()), this.action({ action: \"open\" }).then(() => (this.widget.events.dispatch(\"tracking:widget-rendered\", {}), this.onOpen())));\n }\n close() {\n return this.outlets.size < 1 ? (process.env.NODE_ENV !== \"production\" && console.warn(\n \"close(): No-op as no view outlets are registered. Invoke the attach() command first.\"\n ), Promise.resolve()) : this.action({ action: \"close\" }).then(() => this.onClose());\n }\n show() {\n return process.env.NODE_ENV !== \"production\" && console.warn(\n \"show(): Command is deprecated and will be removed in the future. Use open() instead.\"\n ), this.open();\n }\n onAction(t, e) {\n switch (t) {\n case \"close\":\n case \"open\":\n case \"hide\":\n const r = t === \"open\" ? q.open : t === \"close\" ? q.closed : q.hidden;\n return this.setRenderState(r).then(() => {\n this.setTriggerState(r === q.open), r !== q.hidden ? r === q.open ? this.onOpen() : this.onClose() : this.outlets.forEach(\n (s) => {\n var i;\n return (i = s.options.triggerDOMElement) == null ? void 0 : i.setAttribute(\n \"aria-expanded\",\n \"false\"\n );\n }\n );\n });\n }\n }\n setRenderState(t) {\n const { invoke: e, events: r } = this.container.get(\"$widget\");\n return Promise.all([\n et(\n this.container,\n Yt,\n P.Necessary,\n {\n medium: S.Session\n }\n ),\n et(\n this.container,\n Yt,\n P.Necessary,\n {\n medium: S.Local,\n duration: { minutes: 5 }\n }\n ),\n this.container.getAsync(\"router\"),\n e(\"renderState\")\n ]).then(\n ([s, i, o, a]) => {\n t === \"unset\" || !t ? (i(), s()) : (o.isSticky() && i(t), s(t)), r.dispatch(\"widget:render-state-changed\", {\n previous: a,\n next: t\n });\n }\n );\n }\n onOpen() {\n return this.container.getAsync(\"router\").then((t) => (this.outlets.forEach(\n (e) => {\n var r;\n return (r = e.options.triggerDOMElement) == null ? void 0 : r.setAttribute(\n \"aria-expanded\",\n \"true\"\n );\n }\n ), t.start()));\n }\n onClose() {\n const t = this.container.getManyAsync(\n \"router\",\n \"components\"\n );\n return (() => this.container.get(\"settings\").then((r) => {\n const { activate: s } = this.container.get(\"$settings\");\n return r.activate !== s ? this.setSettings(() => Promise.resolve({ activate: s })) : Promise.resolve();\n }))().then(() => t).then(\n ({\n router: r,\n components: s\n }) => {\n const i = s.nodes.visible;\n return this.outlets.forEach(\n (o) => {\n var a;\n return (a = o.options.triggerDOMElement) == null ? void 0 : a.setAttribute(\n \"aria-expanded\",\n \"false\"\n );\n }\n ), i.filter(\n (o) => o.attributes.properties.animation && o.attributes.properties.animation !== \"none\"\n ).length ? new Promise((o) => {\n setTimeout(() => {\n o(r);\n }, 200);\n }) : Promise.resolve(r);\n }\n ).then((r) => r.stop());\n }\n setTriggerState(t) {\n this.outlets.forEach((e) => {\n const {\n options: { triggerDOMElement: r, triggerOptions: s }\n } = e, { openTooltip: i, closedTooltip: o } = s || {};\n r && (t ? Mr(r, i) : ro(r, o));\n });\n }\n deactivate() {\n this.subs.forEach((e) => e());\n const t = [];\n return this.outlets.forEach((e) => t.push(e.dispose())), Y(\n this.container,\n Gn,\n S.Local\n ).then((e) => e === this.widget.name ? et(\n this.container,\n Gn,\n P.Necessary,\n {\n medium: S.Local,\n scope: Ct.Implementation\n }\n ).then((r) => r()).then(() => Promise.all(t)) : Promise.all(t));\n }\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet Uo = class extends Event {\n constructor(t, e, r) {\n super(\"context-request\", { bubbles: !0, composed: !0 }), this.context = t, this.callback = e, this.subscribe = r != null && r;\n }\n};\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass Yn {\n constructor(t, e, r, s) {\n var i;\n if (this.subscribe = !1, this.provided = !1, this.value = void 0, this.t = (o, a) => {\n this.unsubscribe && (this.unsubscribe !== a && (this.provided = !1, this.unsubscribe()), this.subscribe || this.unsubscribe()), this.value = o, this.host.requestUpdate(), this.provided && !this.subscribe || (this.provided = !0, this.callback && this.callback(o, a)), this.unsubscribe = a;\n }, this.host = t, e.context !== void 0) {\n const o = e;\n this.context = o.context, this.callback = o.callback, this.subscribe = (i = o.subscribe) !== null && i !== void 0 && i;\n } else\n this.context = e, this.callback = r, this.subscribe = s != null && s;\n this.host.addController(this);\n }\n hostConnected() {\n this.dispatchRequest();\n }\n hostDisconnected() {\n this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0);\n }\n dispatchRequest() {\n this.host.dispatchEvent(new Uo(this.context, this.t, this.subscribe));\n }\n}\nconst da = \"children\", Bo = \"descriptor\", Vo = \"container\", pa = \"context\", ga = \"layout\", fa = \"properties\";\nclass ma {\n constructor(t) {\n (this.host = t).addController(this), new Yn(\n t,\n Vo,\n (e) => {\n this._container = e, this.host.requestUpdate();\n },\n !0\n ), new Yn(\n t,\n Bo,\n (e) => {\n this._descriptor = e, this.host.requestUpdate();\n },\n !0\n );\n }\n hostConnected() {\n }\n hostDisconnected() {\n }\n dispatch(t, e) {\n return z(this, null, function* () {\n if (!this._container || !this._descriptor)\n return;\n const r = yield me.getInstance(\n this._container\n ), s = new Pt(r).withId(\n this._descriptor.id\n );\n yield r.actions(\n s,\n this._descriptor.type || Bt()\n ).dispatch(t, e);\n });\n }\n}\nconst zo = (n, t) => z(void 0, null, function* () {\n const e = n.properties().provider;\n let r = {}, s = \"\";\n Array.isArray(e) ? (s = e[0], r = e[1]) : s = e || \"\";\n const i = yield t.getAsync(s);\n if (!i)\n throw new Error(\"No provider defined in ListComponent\");\n return i.applyComponentNodeSettings(n.node.id, r), { provider: i, settings: r };\n}), va = (n, t) => z(void 0, null, function* () {\n const { provider: e, settings: r = {} } = yield zo(n, t);\n return {\n addResource: (s, i) => e.addResource(s, i),\n getData: (s, i) => e.getData(s, i, r)\n };\n});\nclass Wo {\n constructor(t) {\n this.container = t, this.resources = /* @__PURE__ */ new Map(), this.nodeConfiguration = /* @__PURE__ */ new Map();\n }\n getData(t, e, r) {\n return z(this, null, function* () {\n const s = this.resources.get(t);\n if (!s)\n throw new Error(`Unable to get EntityProvider for \"${t}\"`);\n return yield s.query(e, r);\n });\n }\n addResource(t, e) {\n this.resources.set(t, e);\n }\n applyComponentNodeSettings(t, e) {\n this.nodeConfiguration.set(t, e);\n }\n}\nconst Zn = (n) => ({\n title: n.Title,\n id: n.Id.toString()\n});\nclass Fo extends Wo {\n constructor(t) {\n super(t), this.addResource(\"item\", {\n query: (e, r) => z(this, null, function* () {\n const s = e.itemId, i = \"78aacc09-ae6f-5485-5ca3-9dacebb95825\", o = t.get(\"$widget\").name, a = r.projection || \"\", h = yield (yield fetch(\n `${a}/guides/${s}?client=${i}&funnel=${o}&site=%2F%2Fdemo.humany.cc%2Fadmin%2Finterfaces&phrase=&connectionId=&p.LastGuideId=2857`\n )).json();\n return h ? Zn(h) : null;\n })\n }), this.addResource(\"items\", {\n query: (e, r) => z(this, null, function* () {\n const s = \"\", i = t.get(\"$widget\").name, o = r.projection || \"\", u = yield (yield fetch(\n `${o}/guides?client=${s}&funnel=${i}&site=&phrase=&skip=0&take=10&sorting.type=popularity&sorting.direction=descending`\n )).json();\n return {\n items: (u.Matches || []).map((d) => Zn(d)),\n totalItems: (u == null ? void 0 : u.TotalMatches) || 0\n };\n })\n });\n }\n}\nconst ya = (n) => z(void 0, null, function* () {\n n.registerAsync(\"guideProvider\", () => new Fo(n));\n}), ba = (n, t, e, r, s) => n.getAsync(\"componentResolver\").then((i) => (i.registerComponent(t, e), sr(n, t, r || (() => {\n}), t, s)));\nexport {\n T as A,\n Wo as D,\n xs as E,\n ya as G,\n la as W,\n Yn as a,\n jt as b,\n Vo as c,\n oo as d,\n Ao as e,\n nn as f,\n Bo as g,\n da as h,\n xo as i,\n fa as j,\n pa as k,\n ga as l,\n q as m,\n Hr as n,\n ma as o,\n me as p,\n va as q,\n ba as r,\n Uo as s,\n Oo as t,\n Kt as x\n};\n//# sourceMappingURL=index-53eef382.js.map\n","import { Container } from '@webprovisions/platform';\r\n\r\nimport {\r\n ConversationMessageContent,\r\n ConversationMessageSender,\r\n} from '../../types';\r\nimport {\r\n ConversationMessage,\r\n ConversationMessageType,\r\n} from '../../conversation-controller';\r\nimport { ConversationPlatform } from '../../conversation-platform';\r\nimport { createWebComponent } from '@telia-ace/widget-runtime-flamingo';\r\n\r\nexport type BundledConversationMessage = {\r\n timestamp: number;\r\n content: [BundledMessageContent];\r\n sender: ConversationMessageSender;\r\n type: ConversationMessageType;\r\n};\r\n\r\ntype BundledMessageContent = {\r\n key: string;\r\n} & ConversationMessageContent;\r\n\r\nexport type ConversationContent = {\r\n loading: boolean;\r\n typingActors: ConversationMessageSender[];\r\n messages: ConversationMessage[];\r\n};\r\n\r\n/**\r\n * Group items by sender, type and time. Current grouping threshold is 2000 ms.\r\n * Put this as a property on either the component or on the provider?\r\n * Could possibly be implemented directly in the createEntry method\r\n * of the conversation controller to avoid iterating over the entire array on\r\n * each update.\r\n */\r\nconst groupedMessages = (\r\n messages: ConversationMessage[],\r\n timeout?: number\r\n): BundledConversationMessage[] => {\r\n return messages.reduce((acc: any[], current: any, _index: number) => {\r\n const newItem = {\r\n ...current,\r\n content: [{ ...current.content, key: current.key }],\r\n };\r\n if (acc.length > 0 && current.type !== ConversationMessageType.System) {\r\n const previous = acc[acc.length - 1];\r\n if (\r\n (!timeout && timeout !== 0) ||\r\n Math.abs(previous.timestamp - current.timestamp) < timeout\r\n ) {\r\n if (\r\n previous.sender?.name === current.sender?.name &&\r\n previous.type === current.type\r\n ) {\r\n previous.timestamp = current.timestamp;\r\n previous.content.push({ ...current.content, key: current.key });\r\n return acc;\r\n }\r\n }\r\n }\r\n acc.push(newItem);\r\n return acc;\r\n }, []);\r\n};\r\n\r\nexport type ConversationComponentProperties = {\r\n providers: string[];\r\n messages: BundledConversationMessage[]; // internal\r\n overlay?: { conversation: boolean; secondary: boolean }; // internal\r\n overlayConversationHeader?: string;\r\n overlayConversationCloseLabel?: string;\r\n loading: boolean;\r\n inputPlaceholder: string;\r\n inputDisabled: boolean;\r\n inputHidden: boolean;\r\n inputMultiline: boolean;\r\n rehydrate?: boolean;\r\n userLabel: string;\r\n avatarSize: string;\r\n typingActors: any[]; // internal\r\n conversationControllerId?: string; // internal\r\n sendButtonLabel: string;\r\n secondaryAction?: { icon?: string; action: string; label: string };\r\n};\r\n\r\nexport const ConversationComponent = async (container: Container) => {\r\n const router = await container.getAsync('router');\r\n const platform = await ConversationPlatform.getInstance(container);\r\n\r\n return createWebComponent(\r\n container,\r\n 'conversation',\r\n import('./conversation'),\r\n async (component) => {\r\n const { rehydrate = false } =\r\n component.properties<ConversationComponentProperties>();\r\n const routeData = router.getRouteData();\r\n const name = routeData.params.id || component.node.name || 'component';\r\n const conversation = await platform.createController(name, { rehydrate });\r\n const isNewController = platform.registerController(\r\n conversation,\r\n component\r\n );\r\n\r\n const messageGroupingTimeout = 3 * 60 * 1000;\r\n\r\n const setProperties = (properties: ConversationComponentProperties) => {\r\n const { providers = [] } = properties;\r\n if (providers) {\r\n const providerKeys = Array.isArray(providers)\r\n ? providers\r\n : [providers];\r\n conversation.setProviders(providerKeys);\r\n return providerKeys;\r\n }\r\n };\r\n setProperties(\r\n component.properties<ConversationComponentProperties>(setProperties)\r\n );\r\n\r\n conversation.setComponentMountedState(true);\r\n\r\n const writeMessages = (messageStream: any) => {\r\n const { loading, typingActors, messages } = messageStream;\r\n component.writeProperties({\r\n loading,\r\n typingActors,\r\n messages: groupedMessages(messages, messageGroupingTimeout),\r\n });\r\n };\r\n\r\n writeMessages(conversation.getMessageStream());\r\n\r\n if (isNewController) {\r\n component.writeProperties({\r\n conversationControllerId: conversation.id,\r\n });\r\n // todo: dont create actions here, there will be duplicates due to reuseController = true\r\n component.actions.create('user-submit', (data, options) => {\r\n if (options) {\r\n const { preventDefault, validationPromise } = options;\r\n if (preventDefault) {\r\n if (validationPromise) {\r\n validationPromise().then((text: string) => {\r\n if (text) {\r\n conversation.user.print(text);\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n }\r\n conversation.user.print(data.text);\r\n });\r\n\r\n component.actions.create('user-typing', (_data, _options) => {});\r\n\r\n component.actions.create('form', (_data, _options) => {});\r\n\r\n component.actions.create('action', (_data, _options) => {});\r\n\r\n component.actions.create('overlay-mounted', (_data, _options) => {});\r\n\r\n component.actions.create('show-overlay', (_data, _options) => {\r\n component.writeProperties({\r\n overlay: { conversation: false, secondary: false },\r\n });\r\n });\r\n\r\n component.actions.create('hide-overlay', (_data, _options) => {\r\n component.writeProperties({\r\n overlay: null,\r\n });\r\n });\r\n\r\n component.actions.create(\r\n 'show-overlay-conversation',\r\n (_data, _options) => {\r\n component.writeProperties({\r\n overlay: { conversation: true, secondary: false },\r\n });\r\n }\r\n );\r\n\r\n component.actions.create(\r\n 'hide-overlay-conversation',\r\n (_data, _options) => {\r\n component.writeProperties({\r\n overlay: { conversation: false, secondary: false },\r\n });\r\n }\r\n );\r\n }\r\n\r\n const unsubscribe = conversation.events.subscribe(\r\n 'conversation:updated',\r\n (_e: any, conversationData: ConversationContent) => {\r\n writeMessages(conversationData);\r\n }\r\n );\r\n\r\n return () => {\r\n conversation.setComponentMountedState(false);\r\n unsubscribe();\r\n if (!conversation.active) {\r\n // unregisterController();\r\n // todo: add possibility to dispose this through extendComponent()\r\n // component.dispose();\r\n writeMessages({ messages: [], typingActors: [], loading: false });\r\n }\r\n };\r\n }\r\n );\r\n};\r\n\r\nexport default ConversationComponent;\r\n","// import { Form, FormBuilder } from '@telia-ace/widget-forms';\r\n\r\nexport type ConversationMessageSettings = {\r\n key?: string;\r\n timestamp?: number;\r\n title?: string;\r\n body?: string;\r\n actions?: { [actionKey: string]: any };\r\n form?: (builder: any /*FormBuilder*/) => void;\r\n type?: string;\r\n items?: ConversationMessageList[];\r\n [key: string]: any;\r\n};\r\n\r\nexport type NormalizedMessageSettings = {\r\n content: ConversationMessageContent;\r\n key: string;\r\n timestamp: number | null;\r\n};\r\n\r\nexport type ConversationMessageList = {\r\n header?: string;\r\n itemKey: string;\r\n type?: ConversationMessageListType;\r\n items: ConversationMessageListItem[];\r\n};\r\n\r\nexport type ConversationMessageListItem = {\r\n icon?: string;\r\n type?: ConversationMessageListItemType;\r\n actions?: { [actionKey: string]: any };\r\n form?: any /*Form*/;\r\n body?: string;\r\n key: string;\r\n [key: string]: any;\r\n};\r\n\r\nexport type ConversationMessageContent = {\r\n title?: string;\r\n body?: string;\r\n actions?: { [actionKey: string]: any };\r\n items?: ConverstationMessageItem<any>[];\r\n form?: any /*Form*/;\r\n [key: string]: any;\r\n};\r\n\r\nexport type ConverstationMessageItem<T, R = ItemPayload> = R extends [T, any]\r\n ? R\r\n : never;\r\n\r\nexport type ConversationMessageUpdateSettings = ConversationMessageContent & {\r\n timestamp?: number;\r\n};\r\n\r\nexport type ConversationMessageSender = {\r\n name?: string;\r\n avatar?: string | Symbol;\r\n id?: string;\r\n};\r\n\r\nexport enum ConversationMessageListType {\r\n Ordinary = 'ordinary',\r\n Seperator = 'seperator',\r\n}\r\n\r\nexport enum ConversationMessageListItemType {\r\n LinkList = 'link-list',\r\n Separator = 'separator',\r\n ButtonList = 'button-list',\r\n ItemList = 'item-list',\r\n Text = 'text',\r\n HTML = 'html',\r\n VideoRequest = 'video-request',\r\n}\r\n\r\nexport type LinkListProperties = {\r\n header?: string;\r\n actions:\r\n | { [key: string]: string }\r\n | { label: string; actionKey: string; data: any }[];\r\n};\r\n\r\ntype LinkListItem = [\r\n ConversationMessageListItemType.LinkList,\r\n LinkListProperties,\r\n];\r\n\r\ntype TextItem = [ConversationMessageListItemType.Text, string];\r\ntype SeparatorItem = [ConversationMessageListItemType.Separator, undefined];\r\n\r\nexport type ButtonListProperties = {\r\n header?: string;\r\n actions:\r\n | { [key: string]: string }\r\n | { label: string; actionKey: string; data: any }[];\r\n};\r\n\r\ntype ButtonListItem = [\r\n ConversationMessageListItemType.ButtonList,\r\n ButtonListProperties,\r\n];\r\n\r\nexport type ItemListProperties = {\r\n header?: string;\r\n actions:\r\n | { [key: string]: string }\r\n | { label: string; actionKey: string; data: any }[];\r\n};\r\n\r\ntype ItemListItem = [\r\n ConversationMessageListItemType.ItemList,\r\n ItemListProperties,\r\n];\r\n\r\nexport type VideoRequestProperties = {\r\n header?: string;\r\n acceptLabel: string;\r\n declineLabel: string;\r\n};\r\n\r\ntype VideoRequestItem = [\r\n ConversationMessageListItemType.VideoRequest,\r\n VideoRequestProperties,\r\n];\r\n\r\nexport type HtmlProperties = {\r\n body: string;\r\n};\r\n\r\ntype HtmlItem = [ConversationMessageListItemType.HTML, HtmlProperties];\r\n\r\ntype ItemPayload =\r\n | LinkListItem\r\n | TextItem\r\n | SeparatorItem\r\n | ButtonListItem\r\n | HtmlItem\r\n | VideoRequestItem\r\n | ItemListItem;\r\n\r\nexport type Symbol = {\r\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\r\n content: string;\r\n};\r\n","import { Container } from '@webprovisions/platform';\r\n\r\nexport const registerCustomMessageComponent = async (\r\n _container: Container,\r\n _type: string,\r\n componentImport: any\r\n) => {\r\n await componentImport;\r\n // return container\r\n // .getAsync('componentResolver')\r\n // .then(async (o: ComponentResolver) => {\r\n // const platform = await ConversationPlatform.getInstance(container);\r\n // platform.addSubscription(\r\n // o.registerComponent(\r\n // type,\r\n // lazy(() => component)\r\n // )\r\n // );\r\n // });\r\n};\r\n"],"names":["f","n","r","o","E","m","g","L","i","s","y","O$2","A","O","u","p","k","d","F","z","b","I","c","M","_","G$1","J$1","X$2","W$1","W","a","G","X","J","L$1","q","D$3","D","l","P","Z$2","w","K","nt","tt","st","Q","et","V","it","T","rt","x","v","R","ot","at","j","ct$3","ht","ct","lt","ut","dt","pt$2","vt","pt","U","$","gt","Z","mt$1","Y","yt","mt","wt","C$3","C","S","N","bt","H","t","e","B","Z$1","P$2","et$1","it$1","pt$1","h","re","se","ne","oe","ee","te","ie","ae","ce$1","ce","ConversationHistory","controller","events","unsubscribe","_e","data","acc","message","normalized","getNormalizedMessageSettings","content","type","sender","timestamp","parsed","handle","body","options","messagesAsList","messageData","_type","items","item","res","ConversationMessageType","contactMethodId","method","result","linebreak","header","title","label","description","text","html","actions","key","value","option","target","Agent","provider","settings","uuid","_a","name","avatar","ConversationProvider","_container","container","storedAgent","agent","__spreadValues","unsub","fn","createSessionStorageKey","id","Locker","unlockNext","willLock","resolve","willUnlock","Store","conversation","enabled","__async","storedAgents","agents","providerIndex","storedMessages","__spreadProps","messages","agentId","action","unlock","createStorageWriter","StorageCategory","write","prev","newData","readStorage","User","swapProvider","conversationId","providerName","components","currentInstance","toQueue","conversationQuery","ConversationEntry","writer","removeTypingState","typingActors","senderString","indexToRemove","ConversationController","widget","providers","removed","added","providerToRemove","index","mounted","nextProvider","entry","updated","updatedTimestamp","dismissed","handler","getParentWidget","widgetName","implementation","mainWidgetName","getSeparateWidget","originWidget","mainWidget","trigger","chatWidgetName","chatWidget","shouldPreventDefault","openChatWidget","contactMethod","triggerDOMTarget","contactMethodsQuery","conversationsQuery","StorageMedium","StorageScope","platform","ConversationEndedBehavior","navigateToConversation","routeName","router","STORAGE_KEY","ConversationPlatform","storedSession","_event","_data","_b","_c","initialRoute","sub","lock","ComponentPlatform","params","behavior","stored","storageKey","component","invokeHandlers","removedProvider","dispose","isActive","session","properties","_key","event","_callback","triggerEl","Br","Vr","zr","on","Wr","Fr","qr","Jr","an","zt","cn","Ee","Kr","Gr","hn","Yr","Je","pe","Nt","Xn","ns","un","rs","Wt","Bt","cs","hs","ls","pn","us","ds","gn","ps","gs","tr","Pt","ms","Ke","ge","vs","Be","er","fe","Zt","nr","ys","bs","ws","$s","Oe","Es","Os","me","sr","qs","On","Js","Ks","An","$t","Ct","xn","Qe","Ys","Ze","ti","ni","Xs","ei","xt","xe","lr","Gs","ye","ve","Se","Ye","ur","Ve","Zs","Qt","Qs","Pe","si","ft","ii","_n","oi","dr","mr","vr","di","pi","gi","Jt","Ce","mi","vi","yi","Cn","bi","wi","Oi","Er","xi","Me","Yi","Rt","Zi","Dn","Qi","Nr","tn","en","Rn","Lr","io","oo","ao","In","Le","ue","Hn","co","Un","We","Dr","De","Fe","At","Te","de","_t","Bn","qe","Tr","ho","It","Ht","jr","lo","je","kt","Vn","zn","Wn","Fn","Rr","uo","Kt","qn","Ir","po","Ut","fo","vo","yo","we","St","go","Vt","bo","mo","Jn","wo","Re","Ie","jt","Kn","$o","Eo","Hr","nn","He","Oo","Ao","xo","_o","So","Po","$e","Uo","Yn","Bo","Vo","fa","ma","ba","groupedMessages","timeout","current","_index","newItem","previous","ConversationComponent","createWebComponent","rehydrate","isNewController","messageGroupingTimeout","setProperties","providerKeys","writeMessages","messageStream","loading","preventDefault","validationPromise","_options","conversationData","ConversationMessageListItemType","registerCustomMessageComponent","componentImport"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|