@telia-ace/widget-conversation-flamingo 1.0.12 → 1.0.13
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/{conversation-f9d92933.js → conversation-34a9a242.js} +2 -2
- package/dist/{conversation-f9d92933.js.map → conversation-34a9a242.js.map} +1 -1
- package/dist/{index-30c34562.js → index-b8cb68ab.js} +4 -4
- package/dist/{index-30c34562.js.map → index-b8cb68ab.js.map} +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-30c34562.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-a6e9b2dc.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 qr = Object.defineProperty, Jr = Object.defineProperties;\nvar Kr = Object.getOwnPropertyDescriptors;\nvar un = Object.getOwnPropertySymbols, Gr = Object.getPrototypeOf, Yr = Object.prototype.hasOwnProperty, Zr = Object.prototype.propertyIsEnumerable, Qr = Reflect.get;\nvar dn = (n, t, e) => t in n ? qr(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, tt = (n, t) => {\n for (var e in t || (t = {}))\n Yr.call(t, e) && dn(n, e, t[e]);\n if (un)\n for (var e of un(t))\n Zr.call(t, e) && dn(n, e, t[e]);\n return n;\n}, Mt = (n, t) => Jr(n, Kr(t));\nvar pn = (n, t, e) => Qr(Gr(n), e, t);\nvar B = (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 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}, Xr = (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 he = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(he || {}), mt = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(mt || {});\nconst ts = (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 gn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet es = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: he.Widget,\n stage: mt.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: gn(e.scope, he.Widget),\n stage: gn(e.stage, mt.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 Xe = (n) => {\n const t = new es({});\n return n(t), t.get();\n};\nXe((n) => {\n n.createCommand(\n \"types.register\",\n { scope: he.Implementation, stage: mt.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: mt.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: mt.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: mt.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 = ts(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n Xr(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 nr = /* @__PURE__ */ ((n) => (n.Activating = \"activating\", n.Loading = \"loading\", n.Activated = \"activated\", n.Deactivating = \"deactivating\", n.Deactivated = \"deactivated\", n))(nr || {});\nlet ns = 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 fn = Object.getOwnPropertySymbols, rs = Object.prototype.hasOwnProperty, ss = Object.prototype.propertyIsEnumerable, is = (n, t) => {\n var e = {};\n for (var r in n)\n rs.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && fn)\n for (var r of fn(n))\n t.indexOf(r) < 0 && ss.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction os(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 = is(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((E) => {\n typeof n[E] == \"string\" && (g[E] = n[E]);\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 be = (n, t, ...e) => typeof t == \"string\" ? n(`[humany] ${t}`, ...e) : n(t, ...e), Rt = class {\n constructor() {\n this.keys = [], this.log = (t, ...e) => this.lookup(t, () => Rt.log(...e)), this.warn = (t, ...e) => this.lookup(t, () => Rt.warn(...e)), this.error = (t, ...e) => this.lookup(t, () => Rt.error(...e)), this.info = (t, ...e) => this.lookup(t, () => Rt.info(...e));\n }\n lookup(t, e) {\n this.keys.indexOf(t) === -1 && (this.keys.push(t), e());\n }\n};\nlet I = Rt;\nI.log = (...n) => be(console.log, ...n);\nI.warn = (...n) => be(console.warn, ...n);\nI.error = (...n) => be(console.error, ...n);\nI.info = (...n) => be(console.info, ...n);\nconst rr = (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 ? rr(e) : e;\n return t;\n}, as = rr;\nfunction mn(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 cs = 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 Gt = /* @__PURE__ */ new WeakMap();\nfunction X(n, t = 5e3, e = 1e3) {\n return Gt.has(n) || Gt.set(n, new cs(t, e)), (r) => new Promise((s, i) => {\n const o = Gt.get(n);\n o.add(r, s, i, () => {\n o.tasks.length || Gt.delete(n);\n });\n });\n}\nconst hs = (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}, ls = (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, hs(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}, us = ls, ds = (n = {}) => (Object.keys(n).forEach((t) => {\n (n[t] === null || typeof n[t] == \"undefined\") && delete n[t];\n}), n), $t = ds, vn = (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}, ot = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction qt() {\n return ot() + ot() + \"-\" + ot() + \"-\" + ot() + \"-\" + ot() + \"-\" + ot() + ot() + ot();\n}\nvar ps = Object.defineProperty, gs = Object.defineProperties, fs = Object.getOwnPropertyDescriptors, yn = Object.getOwnPropertySymbols, ms = Object.prototype.hasOwnProperty, vs = Object.prototype.propertyIsEnumerable, bn = (n, t, e) => t in n ? ps(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, ys = (n, t) => {\n for (var e in t || (t = {}))\n ms.call(t, e) && bn(n, e, t[e]);\n if (yn)\n for (var e of yn(t))\n vs.call(t, e) && bn(n, e, t[e]);\n return n;\n}, bs = (n, t) => gs(n, fs(t));\nclass ws {\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 sr = (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 Nt = 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 $s(this.platform, this);\n }\n}, tn = class {\n constructor(t, e, r) {\n this.platform = t, this.node = e, this.actions = new we(\n t,\n new Nt(t).withId(e.id),\n r\n );\n const [s, i] = sr(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 $s {\n constructor(t, e, r = !0) {\n this.platform = t, this.target = e, this.clearOnDispose = r, this.removes = [], this.actions = new we(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 Os = (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) => bs(ys({}, u), {\n cancelled: c\n }));\n }\n return Promise.resolve({ data: i, cancelled: !1, options: o });\n };\n return s(t, {}, e);\n};\nlet we = 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 tn(\n this.platform,\n h,\n this.ns\n );\n return Os(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};\nXe((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 qe = class {\n constructor(t, e) {\n this.events = t, this.tags = [], this.children = {}, this.changesets = [], this.mountCount = 0, this.id = qt(), 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 ir = (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 ir(o, t, e);\n }\n}, $e = (n, t, e) => {\n if (e(n) !== !0) {\n const r = t[n.id] || \"default\", s = n.children[r];\n ir(s, t, e);\n }\n}, ne = (n, t) => {\n const e = [];\n return $e(n, t, (r) => {\n e.push(r);\n }), e;\n}, or = (n, t, e) => {\n let r;\n return $e(n, t, (s) => {\n if (e(s))\n return r = s, !0;\n }), r;\n};\nlet Es = 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 = ne(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 = ne(t, e);\n }), r.subscribe(\"components:node-switched\", (s, i) => {\n this.visible = ne(t, e);\n });\n }\n query(t = {}) {\n const e = [];\n return $e(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 or(this.root, this.switches, (e) => e.id === t) || this.detached.find((e) => e.id === t);\n }\n}, xs = 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 _s = (n) => {\n let t = n, e = 0;\n for (; t.parent; )\n e = e + 1, t = t.parent;\n return e;\n}, As = (n) => n.map(([t, e]) => [_s(t), t, e]).sort(([t], [e]) => t - e).map(([, t, e]) => [t, e]), Ce = (n) => n instanceof Date ? !1 : n && typeof n == \"object\" && !Array.isArray(n), et = (n, ...t) => {\n if (!t.length)\n return n;\n const e = t.shift();\n if (Ce(n) && Ce(e))\n for (const r in e)\n Ce(e[r]) ? (n[r] || Object.assign(n, { [r]: {} }), et(n[r], e[r])) : Object.assign(n, { [r]: e[r] });\n return et(n, ...t);\n}, Ps = (n, t) => !n || n === \"all\" ? !0 : n.some((e) => t.indexOf(e) > -1), Cs = (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 = As(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 = et({}, (d = l.parent) == null ? void 0 : d.attributes.context));\n const E = [], R = [], F = [];\n if (l.changesets.forEach((H) => {\n const [k, U] = H;\n Ps(U.breakpoints, n.breakpoints) && (v && (typeof k.properties == \"function\" ? E.push(\n k.properties\n ) : et(l.attributes.properties, k.properties)), g && (typeof k.layout == \"function\" ? R.push(k.layout) : et(l.attributes.layout, k.layout)), b && (typeof k.context == \"function\" ? F.push(k.context) : et(l.attributes.context, k.context)));\n }), E.forEach((H) => {\n et(l.attributes.properties, H(l.attributes.properties));\n }), R.forEach((H) => {\n et(l.attributes.layout, H(l.attributes.layout));\n }), F.forEach((H) => {\n et(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 Jt = class {\n constructor(t, e = {}) {\n this.providers = e, this.breakpoints = [], this.actionsState = { handlers: [], watchers: [] }, this.switches = {}, this.changesets = [], this.subscriptions = [], this.customComponentHandler = new xs(), this.events = t.events.createChild(this);\n const r = new qe(this.events, \"root\");\n r.name = `root-${t.name}`, this.nodes = new Es(r, this.switches, this.events);\n const s = this.processNode = Cs(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 qe(this.events, t);\n return e.detached && this.nodes.detached.push(r), r;\n }\n components() {\n return new Nt(this);\n }\n actions(t, e) {\n return new we(this, t, e);\n }\n write(t) {\n const { provider: e, target: r, attributes: s, options: i = {}, removable: o } = t, a = t.key || qt(), 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 Ss = (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}, le = (n, t, e, r, s, i) => {\n e.forEach((o) => {\n const a = Ss(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 le(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 && le(n, l, h.children, r, s);\n }\n });\n}, ar = (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 }), le(n, n.nodes.root, [e], r, i), () => o.forEach((a) => {\n a();\n });\n}, Je = (n, t) => ({\n id: n.id,\n type: n.type,\n name: n.name,\n branch: t || \"default\"\n}), cr = (n, t, e, r = qt(), s = {}) => n.getAsync(\"components\").then((i) => {\n let o;\n if (typeof t == \"string\") {\n const h = new Nt(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) : Jt.getInstance(n).then((u) => new tn(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 ks {\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 J = /* @__PURE__ */ ((n) => (n.open = \"open\", n.closed = \"closed\", n.hidden = \"hidden\", n))(J || {});\nconst en = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n ActionResolver: ws,\n ActionsController: we,\n ComponentNode: qe,\n ComponentNodeController: tn,\n ComponentPlatform: Jt,\n ComponentQuery: Nt,\n ComponentResolver: ks,\n WidgetRenderState: J,\n asDescriptor: Je,\n createChildren: le,\n createComponentModel: ar,\n createEventSubscriber: sr,\n extendComponent: cr,\n findComponent: or,\n findVisibleComponents: ne,\n traverseComponents: $e\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction hr(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar lr = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (lr = 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 Ns = lr;\nconst nt = /* @__PURE__ */ hr(Ns);\nvar Ls = 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}, Ms = Ls;\nconst Ds = /* @__PURE__ */ hr(Ms);\nfunction Yt(n) {\n return n.charAt(0) === \"/\";\n}\nfunction Se(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 js(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Yt(n), i = t && Yt(t), o = s || i;\n if (n && Yt(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 === \".\" ? Se(r, l) : u === \"..\" ? (Se(r, l), h++) : h && (Se(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Yt(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nvar Rs = function(t) {\n return t.charAt(0) === \"/\" ? t : \"/\" + t;\n}, ur = function(t, e) {\n return new RegExp(\"^\" + e + \"(\\\\/|\\\\?|#|$)\", \"i\").test(t);\n}, Ts = function(t, e) {\n return ur(t, e) ? t.substr(e.length) : t;\n}, Is = function(t) {\n return t.charAt(t.length - 1) === \"/\" ? t.slice(0, -1) : t;\n}, Hs = 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}, dr = 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}, Us = 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}, vt = function(t, e, r, s) {\n var i = void 0;\n typeof t == \"string\" ? (i = Hs(t), i.state = e) : (i = Us({}, 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 = js(i.pathname, s.pathname)) : i.pathname = s.pathname : i.pathname || (i.pathname = \"/\"), i;\n}, pr = function() {\n var t = null, e = function(c) {\n return nt(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) : (nt(!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}, Vs = !!(typeof window != \"undefined\" && window.document && window.document.createElement), wn = function(t, e, r) {\n return t.addEventListener ? t.addEventListener(e, r, !1) : t.attachEvent(\"on\" + e, r);\n}, $n = function(t, e, r) {\n return t.removeEventListener ? t.removeEventListener(e, r, !1) : t.detachEvent(\"on\" + e, r);\n}, Bs = function(t, e) {\n return e(window.confirm(t));\n}, zs = 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}, Ws = function() {\n return window.navigator.userAgent.indexOf(\"Trident\") === -1;\n}, Fs = function(t) {\n return t.state === void 0 && navigator.userAgent.indexOf(\"CriOS\") === -1;\n}, On = 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}, qs = 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 = \"popstate\", xn = \"hashchange\", _n = function() {\n try {\n return window.history.state || {};\n } catch (t) {\n return {};\n }\n}, Js = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n Ds(Vs, \"Browser history needs a DOM\");\n var e = window.history, r = zs(), s = !Ws(), i = t.forceRefresh, o = i === void 0 ? !1 : i, a = t.getUserConfirmation, c = a === void 0 ? Bs : a, h = t.keyLength, l = h === void 0 ? 6 : h, u = t.basename ? Is(Rs(t.basename)) : \"\", d = function(m) {\n var O = m || {}, L = O.key, M = O.state, K = window.location, G = K.pathname, it = K.search, Q = K.hash, q = G + it + Q;\n return nt(!u || ur(q, u), 'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path \"' + q + '\" to begin with \"' + u + '\".'), u && (q = Ts(q, u)), vt(q, M, L);\n }, p = function() {\n return Math.random().toString(36).substr(2, l);\n }, b = pr(), v = function(m) {\n qs(A, m), A.length = e.length, b.notifyListeners(A.location, A.action);\n }, g = function(m) {\n Fs(m) || F(d(m.state));\n }, E = function() {\n F(d(_n()));\n }, R = !1, F = function(m) {\n if (R)\n R = !1, v();\n else {\n var O = \"POP\";\n b.confirmTransitionTo(m, O, c, function(L) {\n L ? v({ action: O, location: m }) : H(m);\n });\n }\n }, H = function(m) {\n var O = A.location, L = U.indexOf(O.key);\n L === -1 && (L = 0);\n var M = U.indexOf(m.key);\n M === -1 && (M = 0);\n var K = L - M;\n K && (R = !0, D(K));\n }, k = d(_n()), U = [k.key], x = function(m) {\n return u + dr(m);\n }, N = function(m, O) {\n nt(!((typeof m == \"undefined\" ? \"undefined\" : On(m)) === \"object\" && m.state !== void 0 && O !== 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 L = \"PUSH\", M = vt(m, O, p(), A.location);\n b.confirmTransitionTo(M, L, c, function(K) {\n if (K) {\n var G = x(M), it = M.key, Q = M.state;\n if (r)\n if (e.pushState({ key: it, state: Q }, null, G), o)\n window.location.href = G;\n else {\n var q = U.indexOf(A.location.key), ln = U.slice(0, q === -1 ? 0 : q + 1);\n ln.push(M.key), U = ln, v({ action: L, location: M });\n }\n else\n nt(Q === void 0, \"Browser history cannot push state in browsers that do not support HTML5 history\"), window.location.href = G;\n }\n });\n }, S = function(m, O) {\n nt(!((typeof m == \"undefined\" ? \"undefined\" : On(m)) === \"object\" && m.state !== void 0 && O !== 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 L = \"REPLACE\", M = vt(m, O, p(), A.location);\n b.confirmTransitionTo(M, L, c, function(K) {\n if (K) {\n var G = x(M), it = M.key, Q = M.state;\n if (r)\n if (e.replaceState({ key: it, state: Q }, null, G), o)\n window.location.replace(G);\n else {\n var q = U.indexOf(A.location.key);\n q !== -1 && (U[q] = M.key), v({ action: L, location: M });\n }\n else\n nt(Q === void 0, \"Browser history cannot replace state in browsers that do not support HTML5 history\"), window.location.replace(G);\n }\n });\n }, D = function(m) {\n e.go(m);\n }, z = function() {\n return D(-1);\n }, V = function() {\n return D(1);\n }, T = 0, f = function(m) {\n T += m, T === 1 ? (wn(window, En, g), s && wn(window, xn, E)) : T === 0 && ($n(window, En, g), s && $n(window, xn, E));\n }, w = !1, y = function() {\n var m = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, O = b.setPrompt(m);\n return w || (f(1), w = !0), function() {\n return w && (w = !1, f(-1)), O();\n };\n }, $ = function(m) {\n var O = b.appendListener(m);\n return f(1), function() {\n f(-1), O();\n };\n }, A = {\n length: e.length,\n action: \"POP\",\n location: k,\n createHref: x,\n push: N,\n replace: S,\n go: D,\n goBack: z,\n goForward: V,\n block: y,\n listen: $\n };\n return A;\n}, An = 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}, Ks = 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}, Pn = function(t, e, r) {\n return Math.min(Math.max(t, e), r);\n}, Gs = 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 = pr(), l = function(S) {\n Ks(x, S), x.length = x.entries.length, h.notifyListeners(x.location, x.action);\n }, u = function() {\n return Math.random().toString(36).substr(2, c);\n }, d = Pn(o, 0, s.length - 1), p = s.map(function(N) {\n return typeof N == \"string\" ? vt(N, void 0, u()) : vt(N, void 0, N.key || u());\n }), b = dr, v = function(S, D) {\n nt(!((typeof S == \"undefined\" ? \"undefined\" : An(S)) === \"object\" && S.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 z = \"PUSH\", V = vt(S, D, u(), x.location);\n h.confirmTransitionTo(V, z, e, function(T) {\n if (T) {\n var f = x.index, w = f + 1, y = x.entries.slice(0);\n y.length > w ? y.splice(w, y.length - w, V) : y.push(V), l({\n action: z,\n location: V,\n index: w,\n entries: y\n });\n }\n });\n }, g = function(S, D) {\n nt(!((typeof S == \"undefined\" ? \"undefined\" : An(S)) === \"object\" && S.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 z = \"REPLACE\", V = vt(S, D, u(), x.location);\n h.confirmTransitionTo(V, z, e, function(T) {\n T && (x.entries[x.index] = V, l({ action: z, location: V }));\n });\n }, E = function(S) {\n var D = Pn(x.index + S, 0, x.entries.length - 1), z = \"POP\", V = x.entries[D];\n h.confirmTransitionTo(V, z, e, function(T) {\n T ? l({\n action: z,\n location: V,\n index: D\n }) : l();\n });\n }, R = function() {\n return E(-1);\n }, F = function() {\n return E(1);\n }, H = function(S) {\n var D = x.index + S;\n return D >= 0 && D < x.entries.length;\n }, k = function() {\n var S = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1;\n return h.setPrompt(S);\n }, U = function(S) {\n return h.appendListener(S);\n }, x = {\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: E,\n goBack: R,\n goForward: F,\n canGo: H,\n block: k,\n listen: U\n };\n return x;\n}, Ys = Object.defineProperty, Cn = Object.getOwnPropertySymbols, Zs = Object.prototype.hasOwnProperty, Qs = Object.prototype.propertyIsEnumerable, Sn = (n, t, e) => t in n ? Ys(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, xt = (n, t) => {\n for (var e in t || (t = {}))\n Zs.call(t, e) && Sn(n, e, t[e]);\n if (Cn)\n for (var e of Cn(t))\n Qs.call(t, e) && Sn(n, e, t[e]);\n return n;\n}, Zt = (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}), P = /* @__PURE__ */ ((n) => (n.Cookie = \"cookie\", n.Local = \"local\", n.Session = \"session\", n))(P || {}), Lt = /* @__PURE__ */ ((n) => (n.Tenant = \"tenant\", n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Lt || {}), C = /* @__PURE__ */ ((n) => (n.Necessary = \"necessary\", n.Functional = \"functional\", n.Analytical = \"analytical\", n.Marketing = \"marketing\", n))(C || {});\nconst rt = (n, t, e, r = {}) => kn(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) => (sn(n), kn(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 = Lt.Widget,\n medium: c = P.Session,\n duration: h\n } = r, l = ti();\n return l[a][t] = rn(i, e, h), c === P.Cookie ? si(n, l) : oi(n, c, l);\n})))), Z = (n, t, e = P.Session) => (sn(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 === P.Cookie ? ri(n).then((r) => de(r, t)) : ii(n, e).then((r) => de(r, t))), Ct = (n) => !!Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").length, ke = (n) => Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").forEach(([t, { value: e }]) => {\n typeof e == \"undefined\" && delete n[t];\n}), gr = (n, t) => {\n const e = {\n tenant: xt(xt({}, n.tenant), t.tenant),\n implementation: xt(xt({}, n.implementation), t.implementation),\n widget: xt(xt({}, n.widget), t.widget)\n };\n return ke(e.tenant), ke(e.implementation), ke(e.widget), e;\n}, Xs = (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() || Ee(), Oe = (n) => {\n const {\n name: t,\n implementation: { name: e, tenant: r }\n } = n.get(\"$widget\");\n return [\n `humany_${r}`,\n `humany_${mn(r + e)}`,\n `humany_${mn(r + e + t)}`\n ];\n}, Ne = (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}, Le = (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}, nn = (n) => {\n const [t, e, r] = Oe(n), s = Ne(t) || {}, i = Ne(e) || {}, o = Ne(r) || {};\n return {\n tenant: s,\n implementation: i,\n widget: o\n };\n}, fr = (n, t) => {\n const e = nn(n), r = gr(e, t), [s, i, o] = Oe(n), { tenant: a, implementation: c, widget: h } = r, l = Xs(t), u = Ee({ days: -1 });\n Le(s, a, Ct(a) ? l : u), Le(\n i,\n c,\n Ct(c) ? l : u\n ), Le(o, h, Ct(h) ? l : u);\n}, ue = (n, t) => {\n const [e, r, s] = Oe(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}, Ke = (n, t, e) => {\n const r = ue(n, t), s = gr(r, e), [i, o, a] = Oe(n), { tenant: c, implementation: h, widget: l } = s;\n Ct(c) ? t.setItem(i, JSON.stringify(c)) : t.removeItem(i), Ct(h) ? t.setItem(o, JSON.stringify(h)) : t.removeItem(o), Ct(l) ? t.setItem(a, JSON.stringify(l)) : t.removeItem(a);\n}, ti = () => ({ tenant: {}, implementation: {}, widget: {} }), ei = (n) => n ? !!n && /* @__PURE__ */ new Date() > new Date(n) : !1, de = (n, t) => {\n const e = n.widget[t] || n.implementation[t] || n.tenant[t];\n return e == null ? void 0 : e.value;\n}, rn = (n, t, e) => e ? {\n value: n,\n category: t,\n expiration: typeof e == \"object\" ? Ee(e) : e\n} : {\n value: n,\n category: t\n}, re = (n, t) => {\n const e = as(n);\n return Object.entries(e).forEach(([r, s]) => {\n Object.entries(s).forEach(([i, o]) => {\n const { expiration: a, category: c } = o;\n (ei(a) || ni(t, c)) && (s[i] = rn(void 0, c, a));\n });\n }), e;\n}, kn = (n, t) => Z(n, \"storagePolicy\", P.Cookie).then(\n (e = [C.Necessary]) => !!t && e.indexOf(t) === -1\n), ni = (n = [C.Necessary], t) => !!t && n.indexOf(t) === -1, sn = (n) => {\n const t = nn(n), e = ue(n, window.localStorage), r = ue(n, sessionStorage), s = de(t, \"storagePolicy\"), [i, o, a] = [\n t,\n e,\n r\n ].map((c) => re(c, s));\n fr(n, i), Ke(n, window.localStorage, o), Ke(n, window.sessionStorage, a);\n}, Ee = (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}, ri = (n) => X(document)(() => nn(n)), si = (n, t) => X(document)(() => fr(n, t)), ii = (n, t) => {\n const e = t === P.Local ? window.localStorage : window.sessionStorage;\n return X(e)(() => ue(n, e));\n}, oi = (n, t, e) => {\n const r = t === P.Local ? window.localStorage : window.sessionStorage;\n return X(r)(() => Ke(n, r, e));\n};\nlet se = class {\n constructor() {\n this.memory = {\n tenant: {},\n implementation: {},\n widget: {}\n };\n }\n setItem(t, e) {\n return Zt(this, arguments, function* (r, s, i = {}) {\n return X(this)(() => {\n const o = re(this.memory, [C.Necessary]), { scope: a = Lt.Tenant, expiration: c } = i;\n o[a][r] = rn(\n s,\n C.Necessary,\n (c == null ? void 0 : c.toISOString()) || Ee()\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 Zt(this, null, function* () {\n return X(this)(() => {\n const e = re(this.memory, [C.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 = de(e, t);\n return this.memory = e, r;\n });\n });\n }\n removeItem(t) {\n return Zt(this, null, function* () {\n return X(this)(() => {\n const e = re(this.memory, [C.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 Zt(this, null, function* () {\n return Promise.resolve();\n });\n }\n}, ai = class {\n constructor() {\n this.cookies = new se(), this.session = new se(), this.local = new se();\n }\n};\nconst 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}, ci = (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 pe = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(pe || {}), yt = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(yt || {});\nconst hi = (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 Nn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet li = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: pe.Widget,\n stage: yt.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: Nn(e.scope, pe.Widget),\n stage: Nn(e.stage, yt.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 mr = (n) => {\n const t = new li({});\n return n(t), t.get();\n};\nmr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: pe.Implementation, stage: yt.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: yt.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: yt.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: yt.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 = hi(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n ci(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});\nmr((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 C.Necessary,\n C.Functional,\n C.Analytical,\n C.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(C.Necessary) === -1 && (process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent does not include category: '${C.Necessary}'. Consent has to atleast include the '${C.Necessary}' category.\n Passed consent: ${JSON.stringify(r)}`\n ), s.unshift(C.Necessary)), rt(\n t.container,\n \"storagePolicy\",\n C.Necessary,\n {\n medium: P.Cookie,\n scope: Lt.Tenant,\n duration: { days: 365 }\n }\n ).then((i) => i(s)).then(() => {\n sn(t.container), t.events.dispatch(\"storage:policy-changed\", s);\n });\n }\n });\n});\nconst ui = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StorageCategory: C,\n StorageMedium: P,\n StorageProvider: ai,\n StorageScope: Lt,\n StorageService: se,\n createStorageWriter: rt,\n readStorage: Z\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar di = Object.defineProperty, pi = Object.defineProperties, gi = Object.getOwnPropertyDescriptors, ge = Object.getOwnPropertySymbols, vr = Object.prototype.hasOwnProperty, yr = Object.prototype.propertyIsEnumerable, Ln = (n, t, e) => t in n ? di(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, At = (n, t) => {\n for (var e in t || (t = {}))\n vr.call(t, e) && Ln(n, e, t[e]);\n if (ge)\n for (var e of ge(t))\n yr.call(t, e) && Ln(n, e, t[e]);\n return n;\n}, br = (n, t) => pi(n, gi(t)), fi = (n, t) => {\n var e = {};\n for (var r in n)\n vr.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && ge)\n for (var r of ge(n))\n t.indexOf(r) < 0 && yr.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction wr(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 $r = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && ($r = 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 mi = $r, vi = mi, Mn = yi(vi);\nfunction yi(n) {\n return n && n.__esModule ? n : { default: n };\n}\nvar bi = function() {\n var n = null, t = function(o) {\n return (0, Mn.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, Mn.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}, Or = bi, Er;\nEr = function(n, t) {\n return t(window.confirm(n));\n};\nfunction Qt(n) {\n return n.charAt(0) === \"/\";\n}\nfunction De(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 wi(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Qt(n), i = t && Qt(t), o = s || i;\n if (n && Qt(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 === \".\" ? De(r, l) : u === \"..\" ? (De(r, l), h++) : h && (De(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Qt(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nconst $i = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: wi\n}, Symbol.toStringTag, { value: \"Module\" })), Oi = /* @__PURE__ */ wr($i);\nvar Dn = 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 ie(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 ie(c, t[h]);\n });\n var e = typeof n == \"undefined\" ? \"undefined\" : Dn(n), r = typeof t == \"undefined\" ? \"undefined\" : Dn(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 ie(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 ie(n[c], t[c]);\n });\n }\n return !1;\n}\nconst Ei = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: ie\n}, Symbol.toStringTag, { value: \"Module\" })), xi = /* @__PURE__ */ wr(Ei);\nvar st = {}, at, xr, Ge, Ut;\nst.__esModule = !0;\nUt = st.addLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n : \"/\" + n;\n};\nGe = st.stripLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n.substr(1) : n;\n};\nvar _i = st.hasBasename = function(n, t) {\n return new RegExp(\"^\" + t + \"(\\\\/|\\\\?|#|$)\", \"i\").test(n);\n};\nst.stripBasename = function(n, t) {\n return _i(n, t) ? n.substr(t.length) : n;\n};\nxr = st.stripTrailingSlash = function(n) {\n return n.charAt(n.length - 1) === \"/\" ? n.slice(0, -1) : n;\n};\nst.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};\nat = st.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 xe, _r = xe = void 0, Ai = 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}, Pi = Oi, Ci = Ar(Pi), Si = xi, ki = Ar(Si), Ni = st;\nfunction Ar(n) {\n return n && n.__esModule ? n : { default: n };\n}\nxe = function(n, t, e, r) {\n var s = void 0;\n typeof n == \"string\" ? (s = (0, Ni.parsePath)(n), s.state = t) : (s = Ai({}, 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, Ci.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, ki.default)(n.state, t.state);\n};\nconst Pr = \"/\", Cr = \"./\", Li = 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), Sr = (n, t) => {\n const e = [];\n let r = 0, s = 0, i = \"\";\n const o = t && t.delimiter || Pr, a = t && t.delimiters || Cr;\n let c = !1, h;\n for (; (h = Li.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], E = h[4], R = 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 F = p !== \"\" && b !== void 0 && b !== p, H = R === \"+\" || R === \"*\", k = R === \"?\" || R === \"*\", U = p || o, x = g || E;\n e.push({\n delimiter: U,\n optional: k,\n repeat: H,\n partial: F,\n name: v || r++,\n // tslint:disable-line:no-increment-decrement\n prefix: p,\n pattern: x ? ji(x) : \"[^\" + Tt(U) + \"]+?\"\n });\n }\n return (i || s < n.length) && e.push(i + n.substr(s)), e;\n}, Mi = (n, t) => Di(Sr(n, t)), Di = (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}, Tt = (n) => n.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\"), ji = (n) => n.replace(/([=!:$/()])/g, \"\\\\$1\"), kr = (n) => n && n.sensitive ? \"\" : \"i\", Ri = (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}, Ti = (n, t, e) => {\n const r = [];\n for (let s = 0; s < n.length; s++)\n r.push(Nr(n[s], t, e).source);\n return new RegExp(\"(?:\" + r.join(\"|\") + \")\", kr(e));\n}, Ii = (n, t, e) => Hi(Sr(n, e), t, e), Hi = (n, t, e) => {\n e = e || {};\n const r = e.strict, s = e.end !== !1, i = Tt(e.delimiter || Pr), o = e.delimiters || Cr, a = [].concat(e.endsWith || []).map(Tt).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 += Tt(u), h = l === n.length - 1 && o.indexOf(u[u.length - 1]) > -1;\n else {\n const d = Tt(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, kr(e));\n}, Nr = (n, t, e) => n instanceof RegExp ? Ri(n, t || []) : Array.isArray(n) ? Ti(n, t, e) : Ii(n, t, e), fe = Nr;\nvar Y = /* @__PURE__ */ ((n) => (n.scopedHash = \"scopedHash\", n.hash = \"hash\", n.browser = \"browser\", n.memory = \"memory\", n))(Y || {}), ft = /* @__PURE__ */ ((n) => (n.storage = \"storage\", n.path = \"path\", n.initialPath = \"initial\", n))(ft || {});\nconst It = (n, t) => {\n const e = [], r = fe(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}, Ui = (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}, \"?\"), je = (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}, Lr = (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 br(At({}, t), { [r]: decodeURIComponent(s).replace(\"%20\", \"&\") });\n}, {}) : {}, Vi = (n, t) => {\n const e = t.map((r) => oe(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 = Lr(`?${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}, oe = (n, t) => {\n const e = $t(n);\n if (Array.isArray(t)) {\n const c = Vi(e, t);\n if (!c)\n throw new Error(\"Unable to match path.\");\n return c;\n }\n const r = Mi(t);\n let s = t;\n try {\n s = r(e);\n } catch (c) {\n return null;\n }\n const i = [];\n fe(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}${Ui(a)}` : s;\n}, _t = (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) => fe(a, []).exec(e || \"\") && !o ? e : o, void 0) && !r ? s : r;\n if (!s.path)\n return r;\n const i = [];\n return fe(s.path, i).exec(e || \"\") && !r ? s : r;\n }, void 0);\n}, Bi = (n) => {\n let t = n.get(\"historyTransitionManager\");\n return t || (t = Or(), n.parent && n.parent.register(\"historyTransitionManager\", t)), t;\n}, Ht = (n, t = null) => n ? xe(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, zi = (n, t) => {\n if ($t(n), $t(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}, Wi = (n) => {\n if (typeof n.mode == \"string\") {\n if (n.mode === Y.memory)\n return !0;\n } else if (n.mode[1]) {\n const [t, { sticky: e }] = n.mode;\n if (t === Y.memory)\n return typeof e == \"undefined\" ? !0 : e;\n }\n return !1;\n}, Re = (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}, jn = \"hashchange\", Fi = {\n hashbang: {\n encodePath: (n) => n.charAt(0) === \"!\" ? n : \"!/\" + Ge(n),\n decodePath: (n) => n.charAt(0) === \"!\" ? n.substr(1) : n\n },\n noslash: {\n encodePath: Ge,\n decodePath: Ut\n },\n slash: {\n encodePath: Ut,\n decodePath: Ut\n }\n}, ct = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, Rn = (n) => window.location.hash = n, Tn = (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}, ae = (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}, qi = (n = {}) => {\n const t = window.history, { getUserConfirmation: e = Er, hashType: r = \"slash\" } = n, s = n.basename ? xr(Ut(n.basename)) : \"\", { encodePath: i } = Fi[r], o = () => {\n const f = ct(), w = l(f);\n return Ht(w, ae);\n }, a = n.transitionManager || Or(), c = (f) => {\n Object.assign(T, f), T.length = t.length, a.notifyListeners(T.location, T.action, n.widgetName);\n };\n let h = !1;\n const l = (f) => {\n const w = ($) => {\n function A(_, m) {\n const O = {};\n let L;\n for (; L = m.exec(_); )\n O[L[1]] = L[2];\n return O;\n }\n return A($, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, y = \"humany-\" + n.widgetName;\n return w(f)[y];\n }, u = () => {\n const f = o(), w = T.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 = T.location;\n let y = g.lastIndexOf(at(w));\n y === -1 && (y = 0);\n let $ = g.lastIndexOf(at(f));\n $ === -1 && ($ = 0);\n const A = y - $;\n A && (h = !0, x(A));\n }, b = ct(), v = i(b);\n b !== v && Tn(v);\n let g = [];\n const E = o();\n E.pathname !== null && g.push(at(E));\n const R = (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: A }) => {\n y = y.replace(A, $);\n }), y;\n }, F = (f, w, y) => {\n let $ = \"\", A = !1;\n return f.split(\"&\").forEach((_) => {\n const m = _.split(\"=\"), O = m[0], L = m[1];\n if (O === w) {\n if (A = !0, y === null)\n return;\n $.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += O + \"=\" + y : $ += O;\n } else\n O && ($.length > 0 && ($ += \"&\"), $ += O + \"=\" + L);\n }), !A && y !== null && ($.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += w + \"=\" + y : $ += w), $;\n }, H = (f) => {\n const w = f.pathname, y = R(f.search), $ = w + (y ? `;${y}` : \"\"), A = `humany-${n.widgetName}`, _ = ct();\n return `#${F(_, A, $).replace(\";;\", \";\")}`;\n }, k = (f, w) => {\n const y = \"PUSH\", $ = Ht(f, ae), A = $.pathname, _ = R($.search), m = A + (_ ? `${_}` : \"\"), O = `humany-${n.widgetName}`, L = ct(), M = F(L, O, m);\n a.confirmTransitionTo($, y, e, (K) => {\n if (!K)\n return;\n const G = at($), it = i(M);\n if (ct() !== it) {\n Rn(it);\n const Q = g.lastIndexOf(at(T.location)), q = g.slice(0, Q === -1 ? 0 : Q + 1);\n q.push(G), g = q, c({ action: y, location: $ });\n } else\n c();\n });\n }, U = (f, w) => {\n const y = \"REPLACE\", $ = Ht(f, ae);\n a.confirmTransitionTo($, y, e, (A) => {\n if (!A)\n return;\n const _ = at($), m = i(s + _);\n ct() !== m && Tn(m);\n const O = g.indexOf(at(T.location));\n O !== -1 && (g[O] = _), c({ action: y, location: $ });\n });\n }, x = (f) => {\n t.go(f);\n }, N = () => x(-1), S = () => x(1);\n let D = 0;\n const z = (f) => {\n D += f, D === 1 ? window.addEventListener(jn, u) : D === 0 && window.removeEventListener(jn, u);\n };\n let V = !1;\n const T = {\n createHref: H,\n createLocation: Ht,\n push: k,\n replace: U,\n go: x,\n goBack: N,\n goForward: S,\n block: (f = !1) => {\n const w = a.setPrompt(f);\n return V || (z(1), V = !0), () => (V && (V = !1, z(-1)), w());\n },\n listen: (f) => {\n const w = a.appendListener(f);\n return z(1), () => {\n z(-1), w();\n };\n },\n stop: () => {\n const f = ct(), w = F(f, `humany-${n.widgetName}`, null), y = i(w);\n Rn(y);\n },\n length: t.length,\n action: \"POP\",\n location: E\n };\n return T;\n}, Mr = qi, Ji = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n decodeSearch: ae,\n default: Mr,\n getHashPath: ct\n}, Symbol.toStringTag, { value: \"Module\" })), Ki = (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}, Gi = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, Yi = (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}, Zi = (n, t = null) => n ? xe(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, Dr = (n) => {\n const t = Gi(), e = Ki(t, n);\n return Zi(e, Yi);\n}, on = (n) => {\n const { name: t } = n.get(\"$widget\");\n return !!Dr(t).pathname;\n};\nXe((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 In = \"routeData\";\nclass Qi {\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 = fi(r, [\"routes\"]);\n this.settings = At(At({}, i), t.get(\"routingSettings\")), this.sticky = Wi(this.settings), this.storageMedium = this.sticky ? P.Local : P.Session, rt(t, In, C.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 = vn(\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 = je(t, this.routes);\n if (!r || !this.history)\n throw `No route found for ${t}`;\n const s = oe(e, r.path);\n if (!s)\n throw `Unable to generate path for \"${t}\".`;\n const i = Ht(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 = je(t, this.routes);\n if (!r || !this.history)\n return;\n const s = oe(e, r.path);\n if (!s)\n return;\n const i = this.getRouteData(), o = i && i.name === t && zi(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 = vn(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, os(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 = Re(this.container);\n if (t) {\n const r = _t(t, this.routes);\n return r ? {\n params: $t(It(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 || _t(r, this.routes), this.currentRoute) {\n const { path: i, name: o } = this.currentRoute;\n this.match || (this.match = {\n params: It(r, i),\n isExact: !0,\n path: i,\n url: r\n });\n const a = $t(At(At({}, this.match.params), s.length > 0 && Lr(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 Z(this.container, In, 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 = on(this.container);\n return r === Y.browser || s ? ft.path : r === Y.memory && t ? ft.storage : ft.initialPath;\n })()) {\n case ft.initialPath: {\n const s = this.getRouteData(e);\n return s && s.name ? this.navigate(s.name, s.params) : void 0;\n }\n case ft.path: {\n const { pathname: s } = this.location;\n if (this.currentRoute = _t(s, this.routes), this.currentRoute) {\n const { path: o } = this.currentRoute;\n return this.setMatch({\n params: It(s, o),\n isExact: !0,\n path: o,\n url: s\n });\n }\n const i = Re(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 ft.storage: {\n const { pathname: s } = this.location;\n this.currentRoute = _t(s, this.routes);\n const { name: i = \"\", params: o = {} } = t || {}, a = je(i, this.routes);\n if (a) {\n const c = oe(o, a.path);\n if (c)\n return this.history.push(c), this.location = br(At({}, this.location), { pathname: c }), this.currentRoute = _t(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 === Y.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 === Y.scopedHash && e !== this.widget.name)\n return;\n this.location = t, this.currentRoute = _t(r, this.routes);\n const i = Re(this.container);\n if (this.currentRoute) {\n const { path: o } = this.currentRoute;\n this.setMatch({\n params: It(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 === Y.scopedHash) {\n const s = this.widget.name, i = Bi(this.container);\n return Promise.resolve().then(() => Ji).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 === Y.memory)\n return t(Gs());\n if (e === Y.browser)\n return t(Js({ basename: r }));\n throw \"RoutingService: History could not be created.\";\n });\n }\n}\nconst Xi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n HistoryMode: Y,\n RoutingService: Qi,\n createHashHistory: Mr,\n getScopedHashDOMLocation: Dr,\n matchParams: It,\n onWidgetUrl: on\n}, Symbol.toStringTag, { value: \"Module\" })), Te = (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}, to = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Te(t, \"info\", e, ...r),\n warn: (e, ...r) => Te(t, \"warning\", e, ...r),\n error: (e, ...r) => Te(t, \"error\", e, ...r)\n };\n};\nvar Bt = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Bt || {}), ut = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(ut || {});\nconst eo = (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}\nclass no {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: Bt.Widget,\n stage: ut.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: Hn(e.scope, Bt.Widget),\n stage: Hn(e.stage, ut.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 jr = (n) => {\n const t = new no({});\n return n(t), t.get();\n};\njr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: Bt.Implementation, stage: ut.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: ut.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: ut.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: ut.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 = eo(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n to(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 ro(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 Un = (n, t, e) => {\n const r = ro(n);\n e({\n sourceDOMElement: n,\n eventType: t,\n data: r\n });\n};\nfunction Vn(n, t, e) {\n n.forEach((r) => {\n r.dataset.attached !== \"true\" && (t === \"load\" ? Un(r, t, e) : r.addEventListener(t, (s) => {\n s.preventDefault(), Un(r, t, e);\n }), r.dataset.monitored = \"true\");\n });\n}\nfunction so(n, t, e) {\n const r = n.container.get(\"bootstrapping.monitor\");\n r && r.events.subscribe(\"bootstrap:trigger-elements-updated\", (i, o) => {\n Vn(\n o.triggerElements,\n t,\n e\n );\n });\n const s = n.container.get(\"triggerElements\");\n s && Vn(\n s,\n t,\n e\n );\n}\njr((n) => {\n n.createCommand(\n \"ready\",\n { scope: Bt.Implementation, stage: ut.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 io = (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 oo(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), io(n);\n}\nfunction ao(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 co(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 Rr(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 ce = window, an = ce.ShadowRoot && (ce.ShadyCSS === void 0 || ce.ShadyCSS.nativeShadow) && \"adoptedStyleSheets\" in Document.prototype && \"replace\" in CSSStyleSheet.prototype, cn = Symbol(), Bn = /* @__PURE__ */ new WeakMap();\nlet Tr = class {\n constructor(t, e, r) {\n if (this._$cssResult$ = !0, r !== cn)\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 (an && t === void 0) {\n const r = e !== void 0 && e.length === 1;\n r && (t = Bn.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), r && Bn.set(e, t));\n }\n return t;\n }\n toString() {\n return this.cssText;\n }\n};\nconst ho = (n) => new Tr(typeof n == \"string\" ? n : n + \"\", void 0, cn), Ir = (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 Tr(e, n, cn);\n}, lo = (n, t) => {\n an ? n.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet) : t.forEach((e) => {\n const r = document.createElement(\"style\"), s = ce.litNonce;\n s !== void 0 && r.setAttribute(\"nonce\", s), r.textContent = e.cssText, n.appendChild(r);\n });\n}, zn = an ? (n) => n : (n) => n instanceof CSSStyleSheet ? ((t) => {\n let e = \"\";\n for (const r of t.cssRules)\n e += r.cssText;\n return ho(e);\n})(n) : n;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Ie;\nconst me = window, Wn = me.trustedTypes, uo = Wn ? Wn.emptyScript : \"\", Fn = me.reactiveElementPolyfillSupport, Ye = { toAttribute(n, t) {\n switch (t) {\n case Boolean:\n n = n ? uo : 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} }, Hr = (n, t) => t !== n && (t == t || n == n), He = { attribute: !0, type: String, converter: Ye, reflect: !1, hasChanged: Hr }, Ze = \"finalized\";\nlet Pt = 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 = He) {\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) || He;\n }\n static finalize() {\n if (this.hasOwnProperty(Ze))\n return !1;\n this[Ze] = !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(zn(s));\n } else\n t !== void 0 && e.push(zn(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 lo(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 = He) {\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 : Ye).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 : Ye;\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 || Hr)(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 B(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};\nPt[Ze] = !0, Pt.elementProperties = /* @__PURE__ */ new Map(), Pt.elementStyles = [], Pt.shadowRootOptions = { mode: \"open\" }, Fn == null || Fn({ ReactiveElement: Pt }), ((Ie = me.reactiveElementVersions) !== null && Ie !== void 0 ? Ie : me.reactiveElementVersions = []).push(\"1.6.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Ue;\nconst ve = window, St = ve.trustedTypes, qn = St ? St.createPolicy(\"lit-html\", { createHTML: (n) => n }) : void 0, Qe = \"$lit$\", ht = `lit$${(Math.random() + \"\").slice(9)}$`, Ur = \"?\" + ht, po = `<${Ur}>`, Ot = document, zt = () => Ot.createComment(\"\"), Wt = (n) => n === null || typeof n != \"object\" && typeof n != \"function\", Vr = Array.isArray, go = (n) => Vr(n) || typeof (n == null ? void 0 : n[Symbol.iterator]) == \"function\", Ve = `[ \t\n\\f\\r]`, Dt = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g, Jn = /-->/g, Kn = />/g, pt = RegExp(`>|${Ve}(?:([^\\\\s\"'>=/]+)(${Ve}*=${Ve}*(?:[^ \t\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`, \"g\"), Gn = /'/g, Yn = /\"/g, Br = /^(?:script|style|textarea|title)$/i, fo = (n) => (t, ...e) => ({ _$litType$: n, strings: t, values: e }), Xt = fo(1), Et = Symbol.for(\"lit-noChange\"), j = Symbol.for(\"lit-nothing\"), Zn = /* @__PURE__ */ new WeakMap(), bt = Ot.createTreeWalker(Ot, 129, null, !1);\nfunction zr(n, t) {\n if (!Array.isArray(n) || !n.hasOwnProperty(\"raw\"))\n throw Error(\"invalid template strings array\");\n return qn !== void 0 ? qn.createHTML(t) : t;\n}\nconst mo = (n, t) => {\n const e = n.length - 1, r = [];\n let s, i = t === 2 ? \"<svg>\" : \"\", o = Dt;\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 === Dt ? l[1] === \"!--\" ? o = Jn : l[1] !== void 0 ? o = Kn : l[2] !== void 0 ? (Br.test(l[2]) && (s = RegExp(\"</\" + l[2], \"g\")), o = pt) : l[3] !== void 0 && (o = pt) : o === pt ? l[0] === \">\" ? (o = s != null ? s : Dt, u = -1) : l[1] === void 0 ? u = -2 : (u = o.lastIndex - l[2].length, h = l[1], o = l[3] === void 0 ? pt : l[3] === '\"' ? Yn : Gn) : o === Yn || o === Gn ? o = pt : o === Jn || o === Kn ? o = Dt : (o = pt, s = void 0);\n const p = o === pt && n[a + 1].startsWith(\"/>\") ? \" \" : \"\";\n i += o === Dt ? c + po : u >= 0 ? (r.push(h), c.slice(0, u) + Qe + c.slice(u) + ht + p) : c + ht + (u === -2 ? (r.push(void 0), a) : p);\n }\n return [zr(n, i + (n[e] || \"<?>\") + (t === 2 ? \"</svg>\" : \"\")), r];\n};\nclass Ft {\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] = mo(t, e);\n if (this.el = Ft.createElement(h, r), bt.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 = bt.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(ht)) {\n const p = l[o++];\n if (u.push(d), p !== void 0) {\n const b = s.getAttribute(p.toLowerCase() + Qe).split(ht), v = /([.?@])?(.*)/.exec(p);\n c.push({ type: 1, index: i, name: v[2], strings: b, ctor: v[1] === \".\" ? yo : v[1] === \"?\" ? wo : v[1] === \"@\" ? $o : _e });\n } else\n c.push({ type: 6, index: i });\n }\n for (const d of u)\n s.removeAttribute(d);\n }\n if (Br.test(s.tagName)) {\n const u = s.textContent.split(ht), d = u.length - 1;\n if (d > 0) {\n s.textContent = St ? St.emptyScript : \"\";\n for (let p = 0; p < d; p++)\n s.append(u[p], zt()), bt.nextNode(), c.push({ type: 2, index: ++i });\n s.append(u[d], zt());\n }\n }\n } else if (s.nodeType === 8)\n if (s.data === Ur)\n c.push({ type: 2, index: i });\n else {\n let u = -1;\n for (; (u = s.data.indexOf(ht, u + 1)) !== -1; )\n c.push({ type: 7, index: i }), u += ht.length - 1;\n }\n i++;\n }\n }\n static createElement(t, e) {\n const r = Ot.createElement(\"template\");\n return r.innerHTML = t, r;\n }\n}\nfunction kt(n, t, e = n, r) {\n var s, i, o, a;\n if (t === Et)\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 = Wt(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 = kt(n, c._$AS(n, t.values), c, r)), t;\n}\nclass vo {\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 : Ot).importNode(r, !0);\n bt.currentNode = i;\n let o = bt.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 Kt(o, o.nextSibling, this, t) : h.type === 1 ? l = new h.ctor(o, h.name, h.strings, this, t) : h.type === 6 && (l = new Oo(o, this, t)), this._$AV.push(l), h = s[++c];\n }\n a !== (h == null ? void 0 : h.index) && (o = bt.nextNode(), a++);\n }\n return bt.currentNode = Ot, 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 Kt {\n constructor(t, e, r, s) {\n var i;\n this.type = 2, this._$AH = j, 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 = kt(this, t, e), Wt(t) ? t === j || t == null || t === \"\" ? (this._$AH !== j && this._$AR(), this._$AH = j) : t !== this._$AH && t !== Et && this._(t) : t._$litType$ !== void 0 ? this.g(t) : t.nodeType !== void 0 ? this.$(t) : go(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 !== j && Wt(this._$AH) ? this._$AA.nextSibling.data = t : this.$(Ot.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 = Ft.createElement(zr(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 vo(i, this), a = o.u(this.options);\n o.v(r), this.$(a), this._$AH = o;\n }\n }\n _$AC(t) {\n let e = Zn.get(t.strings);\n return e === void 0 && Zn.set(t.strings, e = new Ft(t)), e;\n }\n T(t) {\n Vr(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 Kt(this.k(zt()), this.k(zt()), 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 _e {\n constructor(t, e, r, s, i) {\n this.type = 1, this._$AH = j, 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 = j;\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 = kt(this, t, e, 0), o = !Wt(t) || t !== this._$AH && t !== Et, 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 = kt(this, a[r + c], e, c), h === Et && (h = this._$AH[c]), o || (o = !Wt(h) || h !== this._$AH[c]), h === j ? t = j : t !== j && (t += (h != null ? h : \"\") + i[c + 1]), this._$AH[c] = h;\n }\n o && !s && this.j(t);\n }\n j(t) {\n t === j ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t != null ? t : \"\");\n }\n}\nclass yo extends _e {\n constructor() {\n super(...arguments), this.type = 3;\n }\n j(t) {\n this.element[this.name] = t === j ? void 0 : t;\n }\n}\nconst bo = St ? St.emptyScript : \"\";\nclass wo extends _e {\n constructor() {\n super(...arguments), this.type = 4;\n }\n j(t) {\n t && t !== j ? this.element.setAttribute(this.name, bo) : this.element.removeAttribute(this.name);\n }\n}\nclass $o extends _e {\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 = kt(this, t, e, 0)) !== null && r !== void 0 ? r : j) === Et)\n return;\n const s = this._$AH, i = t === j && s !== j || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, o = t !== j && (s === j || 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 Oo {\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 kt(this, t);\n }\n}\nconst Qn = ve.litHtmlPolyfillSupport;\nQn == null || Qn(Ft, Kt), ((Ue = ve.litHtmlVersions) !== null && Ue !== void 0 ? Ue : ve.litHtmlVersions = []).push(\"2.8.0\");\nconst Eo = (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 Kt(t.insertBefore(zt(), 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 Be, ze;\nlet Vt = class extends Pt {\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 = Eo(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 Et;\n }\n};\nVt.finalized = !0, Vt._$litElement$ = !0, (Be = globalThis.litElementHydrateSupport) === null || Be === void 0 || Be.call(globalThis, { LitElement: Vt });\nconst Xn = globalThis.litElementPolyfillSupport;\nXn == null || Xn({ LitElement: Vt });\n((ze = globalThis.litElementVersions) !== null && ze !== void 0 ? ze : globalThis.litElementVersions = []).push(\"3.3.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst xo = (n, t) => t.kind === \"method\" && t.descriptor && !(\"value\" in t.descriptor) ? Mt(tt({}, 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} }, _o = (n, t, e) => {\n t.constructor.createProperty(e, n);\n};\nfunction ye(n) {\n return (t, e) => e !== void 0 ? _o(n, t, e) : xo(n, t);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction lt(n) {\n return ye(Mt(tt({}, n), { state: !0 }));\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst Ao = ({ finisher: n, descriptor: t }) => (e, r) => {\n var s;\n if (r === void 0) {\n const i = (s = e.originalKey) !== null && s !== void 0 ? s : e.key, o = t != null ? { kind: \"method\", placement: \"prototype\", key: i, descriptor: t(e.key) } : Mt(tt({}, e), { key: i });\n return n != null && (o.finisher = function(a) {\n n(a, i);\n }), o;\n }\n {\n const i = e.constructor;\n t !== void 0 && Object.defineProperty(e, r, t(r)), n == null || n(i, r);\n }\n};\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar We;\n((We = window.HTMLSlotElement) === null || We === void 0 ? void 0 : We.prototype.assignedElements) != null;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst Po = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }, Co = (n) => (...t) => ({ _$litDirective$: n, values: t });\nlet So = class {\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 ko = Co(class extends So {\n constructor(n) {\n var t;\n if (super(n), n.type !== Po.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 Et;\n }\n});\nvar No = Object.defineProperty, Lo = Object.getOwnPropertyDescriptor, Ae = (n, t, e, r) => {\n for (var s = r > 1 ? void 0 : r ? Lo(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 && No(t, e, s), s;\n};\nclass dt extends Vt {\n constructor() {\n super(...arguments), this.active = !1, this.loaded = !1;\n }\n connectedCallback() {\n return B(this, null, function* () {\n pn(dt.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 B(this, null, function* () {\n const e = (r) => B(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 ? Xt`<telia-icon\n class=\"trigger-icon\"\n svg=${i.svg}\n size=\"lg\"\n ></telia-icon>` : j;\n }\n case \"FontAwesome\":\n return Xt`<i class=\"trigger-fa-icon fa fa-${s}\"></i>`;\n case \"Uri\":\n return Xt`<i\n class=\"trigger-custom-icon\"\n style=\"background: url(${s}) no-repeat center center;background-size: contain;\"\n ></i>`;\n default:\n return j;\n }\n }\n });\n }\n render() {\n return Xt`<button\n class=${ko({\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}\ndt.styles = [\n Ir`\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];\nAe([\n ye({ attribute: !1 })\n], dt.prototype, \"symbol\", 2);\nAe([\n lt()\n], dt.prototype, \"active\", 2);\nAe([\n lt()\n], dt.prototype, \"loaded\", 2);\nAe([\n lt()\n], dt.prototype, \"icon\", 2);\nvar wt = /* @__PURE__ */ ((n) => (n.Inline = \"inline\", n.Link = \"link\", n.Badge = \"badge\", n.Unsupported = \"unsupported\", n))(wt || {});\nconst Mo = (n, t) => n && t ? \"both\" : n ? \"widgetDOM\" : t ? \"triggerDOM\" : \"none\", Wr = (n) => n ? typeof n == \"boolean\" && n ? \"link\" : typeof n == \"object\" && !Array.isArray(n) ? \"badge\" : \"unsupported\" : \"inline\", Do = (n, t, e, r, s = !1) => B(void 0, null, function* () {\n var h, l;\n const i = Mo(\n t,\n e\n ), o = Wr(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\", dt);\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}), jo = \"modals\";\nclass Ro {\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 === wt.Badge && co(e), import(\"./render-f341736f.js\").then((s) => s.default(this.container, t)).then(() => {\n if (t.setAttribute(\"data-rendered\", \"true\"), e && this.options.triggerType === wt.Badge) {\n const i = this.options.triggerOptions.openTooltip;\n Rr(e, i);\n }\n us(this.container, t);\n const s = this.container.get(\"$environment\").widgets.all();\n Z(\n this.container,\n jo,\n P.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 = oo(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 B(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 te = \"changesets\", To = (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 hn {\n constructor(t, e) {\n this.container = t, this.storageWriter = e;\n }\n static create(t) {\n return rt(\n t,\n te,\n C.Necessary,\n {\n medium: P.Local\n }\n ).then(\n (e) => new hn(t, e)\n );\n }\n write(t, e, r, s) {\n return X(this)(() => Z(\n this.container,\n te,\n P.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: To(r),\n rules: e.rules\n }, this.storageWriter({ keys: o, items: a });\n }));\n }\n remove(t) {\n return X(this)(() => Z(\n this.container,\n te,\n P.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 X(this)(() => Z(\n this.container,\n te,\n P.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 Nt(t, a)\n });\n }\n });\n }));\n }\n}\nconst Io = (n) => {\n const { container: t } = n;\n return hn.create(t).then(\n (e) => {\n const r = t.get(\"$settings\"), s = { localStorage: e }, i = new Jt(n, s), o = ar(i, r);\n return n.events.subscribe(\n \"widget:state-change\",\n (a, c) => {\n c.state === nr.Deactivating && o();\n }\n ), i;\n }\n );\n}, Ho = (n) => Promise.resolve().then(() => Xi).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), Uo = (n) => Promise.resolve().then(() => ui).then(({ StorageProvider: t }) => new t()), Vo = (n) => Promise.resolve().then(() => en).then(({ ActionResolver: t }) => new t(n)), Bo = (n) => Promise.resolve().then(() => en).then(({ ComponentResolver: t }) => new t(n)), zo = (n) => Promise.resolve().then(() => en).then(() => Io(n.get(\"$widget\"))), Fe = \"$settings\", ee = \"open\", tr = \"activeStickyWidget\";\nclass Ca extends ns {\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 () => Uo(this.container)\n ), this.container.registerFactory(\"settings\", () => Z(\n this.container,\n Fe,\n P.Local\n ).then((e = {}) => tt(tt({}, this.container.get(\"$settings\")), e))), so(this, \"load\", this.handleBootstrapping), this.container.registerAsync(\n \"componentResolver\",\n () => Bo(this.container)\n ), this.container.registerAsync(\n \"router\",\n () => Ho(this.container)\n ), this.container.registerAsync(\n \"actionResolver\",\n () => Vo(this.container)\n ), this.container.register(\"matchMedia\", window.matchMedia), this.container.registerAsync(\n \"components\",\n () => zo(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, E) => typeof o.views[E].path == \"undefined\" ? E : g,\n \"\"\n );\n !b.name && v ? a(v) : a(b.name), $t(p && p.params), $t(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) => B(this, [r], function* ({ trigger: e }) {\n var p, b;\n const {\n widgetDOMElement: s,\n key: i = qt(),\n triggerDOMElement: o,\n withRenderState: a\n } = t, h = Wr(e) === wt.Inline && ((o == null ? void 0 : o.childElementCount) || 0) > 0, l = yield Do(\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\"), E = (H, k) => {\n v() && (l.callback && l.callback(), k.disconnect());\n }, R = {\n attributes: !0,\n subtree: !0,\n childList: !0\n };\n v() && l.callback && l.callback(), new MutationObserver(E).observe(g, R);\n };\n h && this.widget.container.getAsync(\"dataClient\").then(({ events: v }) => {\n v.subscribe(\n \"data-client:fetched\",\n (g, E) => {\n E.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 === wt.Badge && e && ((p = l.triggerDOMElement) == null || p.setAttribute(\n \"aria-expanded\",\n \"false\"\n ), d == null || d.renderBadge(e)), l.triggerType !== wt.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((E) => g && g.action && g.action === \"hide\" ? E === J.open ? this.hide() : this.open() : E === J.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 === wt.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 Ro(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 = Mt(tt({}, 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 rt(\n this.container,\n Fe,\n C.Necessary,\n {\n medium: P.Local\n }\n )\n ]).then(([e, r]) => Promise.resolve(t(e)).then((s) => r(s).then(() => {\n const i = tt(tt({}, e), s);\n return this.widget.events.dispatch(\"widget:settings-updated\", i), i;\n })));\n }\n clearSettings() {\n return rt(\n this.container,\n Fe,\n C.Necessary,\n { medium: P.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 (on(this.container))\n return Promise.resolve(J.open);\n const t = () => Z(\n this.container,\n ee,\n P.Session\n ).then((r = J.closed) => r), e = () => Z(\n this.container,\n ee,\n P.Session\n ).then((r = J.closed) => r);\n return this.container.getAsync(\"router\").then((r) => r.isSticky() ? e().then((s) => s === J.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\" ? J.open : t === \"close\" ? J.closed : J.hidden;\n return this.setRenderState(r).then(() => {\n this.setTriggerState(r === J.open), r !== J.hidden ? r === J.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 rt(\n this.container,\n ee,\n C.Necessary,\n {\n medium: P.Session\n }\n ),\n rt(\n this.container,\n ee,\n C.Necessary,\n {\n medium: P.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 ? Rr(r, i) : ao(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())), Z(\n this.container,\n tr,\n P.Local\n ).then((e) => e === this.widget.name ? rt(\n this.container,\n tr,\n C.Necessary,\n {\n medium: P.Local,\n scope: Lt.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 Fr = 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 */\nlet Wo = class {\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 Fr(this.context, this.t, this.subscribe));\n }\n};\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass Fo {\n constructor(t) {\n this.subscriptions = /* @__PURE__ */ new Map(), this.updateObservers = () => {\n for (const [e, { disposer: r }] of this.subscriptions)\n e(this.o, r);\n }, t !== void 0 && (this.value = t);\n }\n get value() {\n return this.o;\n }\n set value(t) {\n this.setValue(t);\n }\n setValue(t, e = !1) {\n const r = e || !Object.is(t, this.o);\n this.o = t, r && this.updateObservers();\n }\n addCallback(t, e, r) {\n if (!r)\n return void t(this.value);\n this.subscriptions.has(t) || this.subscriptions.set(t, { disposer: () => {\n this.subscriptions.delete(t);\n }, consumerHost: e });\n const { disposer: s } = this.subscriptions.get(t);\n t(this.value, s);\n }\n clearCallbacks() {\n this.subscriptions.clear();\n }\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass qo extends Event {\n constructor(t) {\n super(\"context-provider\", { bubbles: !0, composed: !0 }), this.context = t;\n }\n}\nclass jt extends Fo {\n constructor(t, e, r) {\n super(e.context !== void 0 ? e.initialValue : r), this.onContextRequest = (s) => {\n const i = s.composedPath()[0];\n s.context === this.context && i !== this.host && (s.stopPropagation(), this.addCallback(s.callback, i, s.subscribe));\n }, this.onProviderRequest = (s) => {\n const i = s.composedPath()[0];\n if (s.context === this.context && i !== this.host) {\n for (const [o, { consumerHost: a }] of this.subscriptions)\n a.dispatchEvent(new Fr(this.context, o, !0));\n s.stopPropagation();\n }\n }, this.host = t, e.context !== void 0 ? this.context = e.context : this.context = e, this.attachListeners(), this.host.addController(this);\n }\n attachListeners() {\n this.host.addEventListener(\"context-request\", this.onContextRequest), this.host.addEventListener(\"context-provider\", this.onProviderRequest);\n }\n hostConnected() {\n this.host.dispatchEvent(new qo(this.context));\n }\n}\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction Jo({ context: n, subscribe: t }) {\n return Ao({ finisher: (e, r) => {\n e.addInitializer((s) => {\n new Wo(s, { context: n, callback: (i) => {\n s[r] = i;\n }, subscribe: t });\n });\n } });\n}\nconst Ko = \"children\", Go = \"descriptor\", Yo = \"container\", Zo = \"context\", Qo = \"layout\", Xo = \"properties\";\nclass ta {\n constructor(t) {\n (this.host = t).addController(this);\n }\n hostConnected() {\n }\n hostDisconnected() {\n }\n setDescriptor(t) {\n this._descriptor = t;\n }\n setContainer(t) {\n this._container = t;\n }\n dispatch(t, e) {\n return B(this, null, function* () {\n if (!this._container || !this._descriptor)\n return;\n const r = yield Jt.getInstance(\n this._container\n ), s = new Nt(r).withId(\n this._descriptor.id\n );\n yield r.actions(\n s,\n this._descriptor.type || qt()\n ).dispatch(t, e);\n });\n }\n}\nconst ea = (n, t) => B(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}), Na = (n, t) => B(void 0, null, function* () {\n const { provider: e, settings: r = {} } = yield ea(n, t);\n return {\n addResource: (s, i) => e.addResource(s, i),\n getData: (s, i) => e.getData(s, i, r)\n };\n});\nclass na {\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 B(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 er = (n) => ({\n title: n.Title,\n id: n.Id.toString()\n});\nclass ra extends na {\n constructor(t) {\n super(t), this.addResource(\"item\", {\n query: (e, r) => B(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 ? er(h) : null;\n })\n }), this.addResource(\"items\", {\n query: (e, r) => B(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) => er(d)),\n totalItems: (u == null ? void 0 : u.TotalMatches) || 0\n };\n })\n });\n }\n}\nconst La = (n) => B(void 0, null, function* () {\n n.registerAsync(\"guideProvider\", () => new ra(n));\n}), Ma = (n, t, e, r, s) => n.getAsync(\"componentResolver\").then((i) => (i.registerComponent(t, e), cr(n, t, r || (() => {\n}), t, s))), W = (n, t, e) => {\n n && e.style.setProperty(t, n);\n}, sa = (n, t) => {\n var e, r, s, i, o, a, c, h, l, u, d;\n W((e = n.colors) == null ? void 0 : e.primary, \"--primary-color\", t), W((r = n.colors) == null ? void 0 : r.secondary, \"--secondary-color\", t), W((s = n.colors) == null ? void 0 : s.text, \"--text-color\", t), W((i = n.colors) == null ? void 0 : i.link, \"--link-color\", t), W((o = n.colors) == null ? void 0 : o.gray, \"--gray-color\", t), W((a = n.colors) == null ? void 0 : a.grayDark, \"--gray-dark-color\", t), W((c = n.spacing) == null ? void 0 : c.xs, \"--spacing-xs\", t), W((h = n.spacing) == null ? void 0 : h.sm, \"--spacing-sm\", t), W((l = n.spacing) == null ? void 0 : l.md, \"--spacing-md\", t), W((u = n.spacing) == null ? void 0 : u.lg, \"--spacing-lg\", t), W((d = n.spacing) == null ? void 0 : d.xl, \"--spacing-xl\", t), W(n.boxShadow, \"--box-shadow\", t), W(n.borderRadius, \"--border-radius\", t), W(n.borderRadiusSm, \"--border-radius-sm\", t), W(n.fontFamily, \"--font-family\", t);\n}, ia = (n) => {\n const t = {};\n return Object.keys(n).forEach((e) => {\n e.indexOf(\"css-\") > -1 && (t[e] = n[e]);\n }), t;\n}, oa = (n, t) => {\n const e = ia(t);\n Object.entries(e).forEach(([r, s]) => {\n n.style.setProperty(r.replace(\"css-\", \"\"), s);\n });\n};\nvar aa = Object.defineProperty, ca = Object.getOwnPropertyDescriptor, gt = (n, t, e, r) => {\n for (var s = r > 1 ? void 0 : r ? ca(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 && aa(t, e, s), s;\n};\nconst Da = (n) => {\n var e;\n class t extends n {\n constructor() {\n super(...arguments), this.entry = \"\", this._descriptorProvider = new jt(\n this,\n Go,\n void 0\n ), this._childrenProvider = new jt(this, Ko, []), this._propertiesProvider = new jt(this, Xo, {}), this._contextProvider = new jt(this, Zo, {}), this._layoutProvider = new jt(this, Qo, {}), this.actions = new ta(this), this.context = {}, this.layout = {}, this.properties = {};\n }\n connectedCallback() {\n super.connectedCallback(), this.container && (this.actions.setContainer(this.container), Jt.getInstance(this.container).then(\n (s) => B(this, null, function* () {\n var o;\n const i = s.nodes.get(this.entry);\n if (i) {\n this._propertyChangeListener = s.events.subscribe(\n \"components:properties-changed\",\n (u, d) => {\n i.id === d.node.id && this._setProperties(d.node.attributes.properties);\n }\n ), this._contextChangeListener = s.events.subscribe(\n \"components:context-changed\",\n (u, d) => {\n i.id === d.node.id && this._setContext(d.node.attributes.context);\n }\n ), this._layoutChangeListener = s.events.subscribe(\n \"components:layout-changed\",\n (u, d) => {\n i.id === d.node.id && this._setLayout(d.node.attributes.layout);\n }\n );\n const a = \"default\";\n this._unmountNode = i.mount(this.container), this._setDescriptor(Je(i, a)), this._setProperties(i.attributes.properties), this._setContext(i.attributes.context), this._setLayout(this.layout);\n const c = i.getChildren(a).map((u) => Je(u));\n this._childrenProvider.setValue(c);\n const l = (yield this.container.getAsync(\"componentResolver\")).getComponent(\n ((o = this.descriptor) == null ? void 0 : o.type) || \"\"\n );\n l.then && l.then((u) => {\n this.component = u.default;\n });\n }\n })\n ));\n }\n disconnectedCallback() {\n super.disconnectedCallback(), this._propertyChangeListener && this._propertyChangeListener(), this._contextChangeListener && this._contextChangeListener(), this._layoutChangeListener && this._layoutChangeListener(), this._unmountNode && this._unmountNode();\n }\n updated(s) {\n this.container && (console.log(\"ccccontainer\", this.container, s), this.actions.setContainer(this.container)), sa(this.context, this.renderRoot.host), this.renderRoot.host.style.setProperty(\n \"--width\",\n this.layout.size === \"full\" ? \"var(--columns, 1)\" : `min(${this.layout.size || \"var(--columns)\"}, var(--columns))`\n ), oa(this.renderRoot.host, this.properties);\n }\n _setProperties(s) {\n this._propertiesProvider.setValue(s), this.properties = s;\n }\n _setContext(s) {\n this._contextProvider.setValue(s), this.context = s;\n }\n _setLayout(s) {\n this._layoutProvider.setValue(s), this.layout = s;\n }\n _setDescriptor(s) {\n this.descriptor = s, this._descriptorProvider.setValue(s), this.actions.setDescriptor(s);\n }\n }\n return t.styles = [\n (e = n.styles) != null ? e : [],\n Ir`\n :host {\n --font-family: TeliaSans, Helvetica, Arial, Lucida Grande, sans-serif;\n --spacing-xs: 0.2rem;\n --spacing-sm: 0.5rem;\n --spacing-md: 1rem;\n --spacing-lg: 1.2rem;\n --spacing-xl: 1.8rem;\n\n --primary-color: #29003e;\n --secondary-color: #00558f;\n --text-color: #222222;\n --link-color: #990ae3;\n --gray-color: #efefef;\n --gray-dark-color: #a6a6a6;\n\n --box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\n --border-radius: 1rem;\n --border-radius-sm: 0.3rem;\n\n font-family: var(--font-family);\n grid-column: span var(--width);\n max-width: 100%;\n overflow: hidden;\n box-sizing: border-box;\n display: block;\n }\n * {\n box-sizing: border-box;\n }\n `\n ], gt([\n Jo({ context: Yo }),\n ye({ attribute: !1 })\n ], t.prototype, \"container\", 2), gt([\n ye()\n ], t.prototype, \"entry\", 2), gt([\n lt()\n ], t.prototype, \"descriptor\", 2), gt([\n lt()\n ], t.prototype, \"component\", 2), gt([\n lt()\n ], t.prototype, \"context\", 2), gt([\n lt()\n ], t.prototype, \"layout\", 2), gt([\n lt()\n ], t.prototype, \"properties\", 2), t;\n};\nexport {\n j as A,\n na as D,\n La as G,\n Et as T,\n Da as W,\n jt as a,\n Ir as b,\n Yo as c,\n lt as d,\n Co as e,\n sa as f,\n oa as g,\n Ca as h,\n So as i,\n Ko as j,\n Go as k,\n Zo as l,\n J as m,\n ye as n,\n Qo as o,\n Jt as p,\n Xo as q,\n ta as r,\n Vt as s,\n Po as t,\n Na as u,\n Ma as v,\n Xt as x\n};\n//# sourceMappingURL=index-a6e9b2dc.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 return createWebComponent(\r\n container,\r\n 'conversation',\r\n import('./conversation'),\r\n async (component) => {\r\n const router = await container.getAsync('router');\r\n const platform = await ConversationPlatform.getInstance(container);\r\n\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$2","W","a","G","X","J","L$1","q","D$3","D","l","P","Z$3","w","K","nt","tt","st","Q","et","V","it","T","rt","x","v","R","ot","at","j","ct$2","ht","ct","lt","ut","dt","pt$2","vt","pt","U","$","gt","Z","mt$1","Y","yt$1","mt","wt","yt","C$4","C","S","N","bt","H","t","e","B","Z$2","P$2","et$1","ot$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","qr","Jr","Kr","un","Gr","Yr","Zr","Qr","dn","Mt","pn","Pe","Xr","he","ts","gn","es","Xe","be","Rt","rr","as","mn","cs","Gt","qt","ps","gs","fs","yn","ms","vs","bn","ys","bs","sr","Nt","$s","tn","we","Os","qe","ir","$e","or","Es","xs","_s","As","Ce","Ps","Cs","Jt","Je","cr","Ys","Cn","Zs","Qs","Sn","xt","Lt","kn","sn","ti","rn","si","oi","ri","de","ii","Ct","ke","gr","Xs","Ee","Oe","Ne","Le","nn","fr","ue","Ke","ei","ni","Me","ci","pe","hi","Nn","li","mr","wr","$r","mi","vi","yi","Qt","De","wi","$i","Oi","Dn","Ei","xi","Pi","Ar","Si","Te","to","Bt","eo","Hn","no","jr","an","cn","Bn","Tr","ho","Ir","lo","zn","Ie","me","Wn","uo","Fn","Ye","Hr","He","Ze","Pt","Ue","ve","St","qn","Qe","Ur","po","Ot","zt","Wt","Vr","go","Ve","Dt","Jn","Kn","Gn","Yn","Br","fo","Xt","Et","Zn","zr","mo","Ft","yo","wo","$o","kt","vo","Kt","Oo","bo","Qn","Eo","Be","ze","Vt","Xn","xo","_o","ye","Ao","We","Po","Co","So","ko","No","Lo","Ae","Fr","Wo","Fo","qo","jt","Jo","Ko","Go","Yo","Zo","Qo","Xo","ta","Ma","sa","ia","oa","aa","ca","Da","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-b8cb68ab.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-79b338f7.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 qr = Object.defineProperty, Jr = Object.defineProperties;\nvar Kr = Object.getOwnPropertyDescriptors;\nvar un = Object.getOwnPropertySymbols, Gr = Object.getPrototypeOf, Yr = Object.prototype.hasOwnProperty, Zr = Object.prototype.propertyIsEnumerable, Qr = Reflect.get;\nvar dn = (n, t, e) => t in n ? qr(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, tt = (n, t) => {\n for (var e in t || (t = {}))\n Yr.call(t, e) && dn(n, e, t[e]);\n if (un)\n for (var e of un(t))\n Zr.call(t, e) && dn(n, e, t[e]);\n return n;\n}, Mt = (n, t) => Jr(n, Kr(t));\nvar pn = (n, t, e) => Qr(Gr(n), e, t);\nvar B = (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 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}, Xr = (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 he = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(he || {}), mt = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(mt || {});\nconst ts = (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 gn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet es = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: he.Widget,\n stage: mt.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: gn(e.scope, he.Widget),\n stage: gn(e.stage, mt.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 Xe = (n) => {\n const t = new es({});\n return n(t), t.get();\n};\nXe((n) => {\n n.createCommand(\n \"types.register\",\n { scope: he.Implementation, stage: mt.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: mt.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: mt.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: mt.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 = ts(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n Xr(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 nr = /* @__PURE__ */ ((n) => (n.Activating = \"activating\", n.Loading = \"loading\", n.Activated = \"activated\", n.Deactivating = \"deactivating\", n.Deactivated = \"deactivated\", n))(nr || {});\nlet ns = 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 fn = Object.getOwnPropertySymbols, rs = Object.prototype.hasOwnProperty, ss = Object.prototype.propertyIsEnumerable, is = (n, t) => {\n var e = {};\n for (var r in n)\n rs.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && fn)\n for (var r of fn(n))\n t.indexOf(r) < 0 && ss.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction os(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 = is(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((E) => {\n typeof n[E] == \"string\" && (g[E] = n[E]);\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 be = (n, t, ...e) => typeof t == \"string\" ? n(`[humany] ${t}`, ...e) : n(t, ...e), Rt = class {\n constructor() {\n this.keys = [], this.log = (t, ...e) => this.lookup(t, () => Rt.log(...e)), this.warn = (t, ...e) => this.lookup(t, () => Rt.warn(...e)), this.error = (t, ...e) => this.lookup(t, () => Rt.error(...e)), this.info = (t, ...e) => this.lookup(t, () => Rt.info(...e));\n }\n lookup(t, e) {\n this.keys.indexOf(t) === -1 && (this.keys.push(t), e());\n }\n};\nlet I = Rt;\nI.log = (...n) => be(console.log, ...n);\nI.warn = (...n) => be(console.warn, ...n);\nI.error = (...n) => be(console.error, ...n);\nI.info = (...n) => be(console.info, ...n);\nconst rr = (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 ? rr(e) : e;\n return t;\n}, as = rr;\nfunction mn(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 cs = 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 Gt = /* @__PURE__ */ new WeakMap();\nfunction X(n, t = 5e3, e = 1e3) {\n return Gt.has(n) || Gt.set(n, new cs(t, e)), (r) => new Promise((s, i) => {\n const o = Gt.get(n);\n o.add(r, s, i, () => {\n o.tasks.length || Gt.delete(n);\n });\n });\n}\nconst hs = (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}, ls = (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, hs(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}, us = ls, ds = (n = {}) => (Object.keys(n).forEach((t) => {\n (n[t] === null || typeof n[t] == \"undefined\") && delete n[t];\n}), n), $t = ds, vn = (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}, ot = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction qt() {\n return ot() + ot() + \"-\" + ot() + \"-\" + ot() + \"-\" + ot() + \"-\" + ot() + ot() + ot();\n}\nvar ps = Object.defineProperty, gs = Object.defineProperties, fs = Object.getOwnPropertyDescriptors, yn = Object.getOwnPropertySymbols, ms = Object.prototype.hasOwnProperty, vs = Object.prototype.propertyIsEnumerable, bn = (n, t, e) => t in n ? ps(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, ys = (n, t) => {\n for (var e in t || (t = {}))\n ms.call(t, e) && bn(n, e, t[e]);\n if (yn)\n for (var e of yn(t))\n vs.call(t, e) && bn(n, e, t[e]);\n return n;\n}, bs = (n, t) => gs(n, fs(t));\nclass ws {\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 sr = (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 Nt = 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 $s(this.platform, this);\n }\n}, tn = class {\n constructor(t, e, r) {\n this.platform = t, this.node = e, this.actions = new we(\n t,\n new Nt(t).withId(e.id),\n r\n );\n const [s, i] = sr(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 $s {\n constructor(t, e, r = !0) {\n this.platform = t, this.target = e, this.clearOnDispose = r, this.removes = [], this.actions = new we(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 Os = (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) => bs(ys({}, u), {\n cancelled: c\n }));\n }\n return Promise.resolve({ data: i, cancelled: !1, options: o });\n };\n return s(t, {}, e);\n};\nlet we = 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 tn(\n this.platform,\n h,\n this.ns\n );\n return Os(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};\nXe((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 qe = class {\n constructor(t, e) {\n this.events = t, this.tags = [], this.children = {}, this.changesets = [], this.mountCount = 0, this.id = qt(), 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 ir = (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 ir(o, t, e);\n }\n}, $e = (n, t, e) => {\n if (e(n) !== !0) {\n const r = t[n.id] || \"default\", s = n.children[r];\n ir(s, t, e);\n }\n}, ne = (n, t) => {\n const e = [];\n return $e(n, t, (r) => {\n e.push(r);\n }), e;\n}, or = (n, t, e) => {\n let r;\n return $e(n, t, (s) => {\n if (e(s))\n return r = s, !0;\n }), r;\n};\nlet Es = 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 = ne(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 = ne(t, e);\n }), r.subscribe(\"components:node-switched\", (s, i) => {\n this.visible = ne(t, e);\n });\n }\n query(t = {}) {\n const e = [];\n return $e(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 or(this.root, this.switches, (e) => e.id === t) || this.detached.find((e) => e.id === t);\n }\n}, xs = 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 _s = (n) => {\n let t = n, e = 0;\n for (; t.parent; )\n e = e + 1, t = t.parent;\n return e;\n}, As = (n) => n.map(([t, e]) => [_s(t), t, e]).sort(([t], [e]) => t - e).map(([, t, e]) => [t, e]), Ce = (n) => n instanceof Date ? !1 : n && typeof n == \"object\" && !Array.isArray(n), et = (n, ...t) => {\n if (!t.length)\n return n;\n const e = t.shift();\n if (Ce(n) && Ce(e))\n for (const r in e)\n Ce(e[r]) ? (n[r] || Object.assign(n, { [r]: {} }), et(n[r], e[r])) : Object.assign(n, { [r]: e[r] });\n return et(n, ...t);\n}, Ps = (n, t) => !n || n === \"all\" ? !0 : n.some((e) => t.indexOf(e) > -1), Cs = (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 = As(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 = et({}, (d = l.parent) == null ? void 0 : d.attributes.context));\n const E = [], R = [], F = [];\n if (l.changesets.forEach((H) => {\n const [k, U] = H;\n Ps(U.breakpoints, n.breakpoints) && (v && (typeof k.properties == \"function\" ? E.push(\n k.properties\n ) : et(l.attributes.properties, k.properties)), g && (typeof k.layout == \"function\" ? R.push(k.layout) : et(l.attributes.layout, k.layout)), b && (typeof k.context == \"function\" ? F.push(k.context) : et(l.attributes.context, k.context)));\n }), E.forEach((H) => {\n et(l.attributes.properties, H(l.attributes.properties));\n }), R.forEach((H) => {\n et(l.attributes.layout, H(l.attributes.layout));\n }), F.forEach((H) => {\n et(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 Jt = class {\n constructor(t, e = {}) {\n this.providers = e, this.breakpoints = [], this.actionsState = { handlers: [], watchers: [] }, this.switches = {}, this.changesets = [], this.subscriptions = [], this.customComponentHandler = new xs(), this.events = t.events.createChild(this);\n const r = new qe(this.events, \"root\");\n r.name = `root-${t.name}`, this.nodes = new Es(r, this.switches, this.events);\n const s = this.processNode = Cs(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 qe(this.events, t);\n return e.detached && this.nodes.detached.push(r), r;\n }\n components() {\n return new Nt(this);\n }\n actions(t, e) {\n return new we(this, t, e);\n }\n write(t) {\n const { provider: e, target: r, attributes: s, options: i = {}, removable: o } = t, a = t.key || qt(), 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 Ss = (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}, le = (n, t, e, r, s, i) => {\n e.forEach((o) => {\n const a = Ss(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 le(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 && le(n, l, h.children, r, s);\n }\n });\n}, ar = (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 }), le(n, n.nodes.root, [e], r, i), () => o.forEach((a) => {\n a();\n });\n}, Je = (n, t) => ({\n id: n.id,\n type: n.type,\n name: n.name,\n branch: t || \"default\"\n}), cr = (n, t, e, r = qt(), s = {}) => n.getAsync(\"components\").then((i) => {\n let o;\n if (typeof t == \"string\") {\n const h = new Nt(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) : Jt.getInstance(n).then((u) => new tn(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 ks {\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 J = /* @__PURE__ */ ((n) => (n.open = \"open\", n.closed = \"closed\", n.hidden = \"hidden\", n))(J || {});\nconst en = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n ActionResolver: ws,\n ActionsController: we,\n ComponentNode: qe,\n ComponentNodeController: tn,\n ComponentPlatform: Jt,\n ComponentQuery: Nt,\n ComponentResolver: ks,\n WidgetRenderState: J,\n asDescriptor: Je,\n createChildren: le,\n createComponentModel: ar,\n createEventSubscriber: sr,\n extendComponent: cr,\n findComponent: or,\n findVisibleComponents: ne,\n traverseComponents: $e\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction hr(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar lr = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (lr = 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 Ns = lr;\nconst nt = /* @__PURE__ */ hr(Ns);\nvar Ls = 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}, Ms = Ls;\nconst Ds = /* @__PURE__ */ hr(Ms);\nfunction Yt(n) {\n return n.charAt(0) === \"/\";\n}\nfunction Se(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 js(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Yt(n), i = t && Yt(t), o = s || i;\n if (n && Yt(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 === \".\" ? Se(r, l) : u === \"..\" ? (Se(r, l), h++) : h && (Se(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Yt(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nvar Rs = function(t) {\n return t.charAt(0) === \"/\" ? t : \"/\" + t;\n}, ur = function(t, e) {\n return new RegExp(\"^\" + e + \"(\\\\/|\\\\?|#|$)\", \"i\").test(t);\n}, Ts = function(t, e) {\n return ur(t, e) ? t.substr(e.length) : t;\n}, Is = function(t) {\n return t.charAt(t.length - 1) === \"/\" ? t.slice(0, -1) : t;\n}, Hs = 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}, dr = 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}, Us = 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}, vt = function(t, e, r, s) {\n var i = void 0;\n typeof t == \"string\" ? (i = Hs(t), i.state = e) : (i = Us({}, 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 = js(i.pathname, s.pathname)) : i.pathname = s.pathname : i.pathname || (i.pathname = \"/\"), i;\n}, pr = function() {\n var t = null, e = function(c) {\n return nt(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) : (nt(!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}, Vs = !!(typeof window != \"undefined\" && window.document && window.document.createElement), wn = function(t, e, r) {\n return t.addEventListener ? t.addEventListener(e, r, !1) : t.attachEvent(\"on\" + e, r);\n}, $n = function(t, e, r) {\n return t.removeEventListener ? t.removeEventListener(e, r, !1) : t.detachEvent(\"on\" + e, r);\n}, Bs = function(t, e) {\n return e(window.confirm(t));\n}, zs = 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}, Ws = function() {\n return window.navigator.userAgent.indexOf(\"Trident\") === -1;\n}, Fs = function(t) {\n return t.state === void 0 && navigator.userAgent.indexOf(\"CriOS\") === -1;\n}, On = 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}, qs = 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 = \"popstate\", xn = \"hashchange\", _n = function() {\n try {\n return window.history.state || {};\n } catch (t) {\n return {};\n }\n}, Js = function() {\n var t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n Ds(Vs, \"Browser history needs a DOM\");\n var e = window.history, r = zs(), s = !Ws(), i = t.forceRefresh, o = i === void 0 ? !1 : i, a = t.getUserConfirmation, c = a === void 0 ? Bs : a, h = t.keyLength, l = h === void 0 ? 6 : h, u = t.basename ? Is(Rs(t.basename)) : \"\", d = function(m) {\n var O = m || {}, L = O.key, M = O.state, K = window.location, G = K.pathname, it = K.search, Q = K.hash, q = G + it + Q;\n return nt(!u || ur(q, u), 'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path \"' + q + '\" to begin with \"' + u + '\".'), u && (q = Ts(q, u)), vt(q, M, L);\n }, p = function() {\n return Math.random().toString(36).substr(2, l);\n }, b = pr(), v = function(m) {\n qs(A, m), A.length = e.length, b.notifyListeners(A.location, A.action);\n }, g = function(m) {\n Fs(m) || F(d(m.state));\n }, E = function() {\n F(d(_n()));\n }, R = !1, F = function(m) {\n if (R)\n R = !1, v();\n else {\n var O = \"POP\";\n b.confirmTransitionTo(m, O, c, function(L) {\n L ? v({ action: O, location: m }) : H(m);\n });\n }\n }, H = function(m) {\n var O = A.location, L = U.indexOf(O.key);\n L === -1 && (L = 0);\n var M = U.indexOf(m.key);\n M === -1 && (M = 0);\n var K = L - M;\n K && (R = !0, D(K));\n }, k = d(_n()), U = [k.key], x = function(m) {\n return u + dr(m);\n }, N = function(m, O) {\n nt(!((typeof m == \"undefined\" ? \"undefined\" : On(m)) === \"object\" && m.state !== void 0 && O !== 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 L = \"PUSH\", M = vt(m, O, p(), A.location);\n b.confirmTransitionTo(M, L, c, function(K) {\n if (K) {\n var G = x(M), it = M.key, Q = M.state;\n if (r)\n if (e.pushState({ key: it, state: Q }, null, G), o)\n window.location.href = G;\n else {\n var q = U.indexOf(A.location.key), ln = U.slice(0, q === -1 ? 0 : q + 1);\n ln.push(M.key), U = ln, v({ action: L, location: M });\n }\n else\n nt(Q === void 0, \"Browser history cannot push state in browsers that do not support HTML5 history\"), window.location.href = G;\n }\n });\n }, S = function(m, O) {\n nt(!((typeof m == \"undefined\" ? \"undefined\" : On(m)) === \"object\" && m.state !== void 0 && O !== 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 L = \"REPLACE\", M = vt(m, O, p(), A.location);\n b.confirmTransitionTo(M, L, c, function(K) {\n if (K) {\n var G = x(M), it = M.key, Q = M.state;\n if (r)\n if (e.replaceState({ key: it, state: Q }, null, G), o)\n window.location.replace(G);\n else {\n var q = U.indexOf(A.location.key);\n q !== -1 && (U[q] = M.key), v({ action: L, location: M });\n }\n else\n nt(Q === void 0, \"Browser history cannot replace state in browsers that do not support HTML5 history\"), window.location.replace(G);\n }\n });\n }, D = function(m) {\n e.go(m);\n }, z = function() {\n return D(-1);\n }, V = function() {\n return D(1);\n }, T = 0, f = function(m) {\n T += m, T === 1 ? (wn(window, En, g), s && wn(window, xn, E)) : T === 0 && ($n(window, En, g), s && $n(window, xn, E));\n }, w = !1, y = function() {\n var m = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1, O = b.setPrompt(m);\n return w || (f(1), w = !0), function() {\n return w && (w = !1, f(-1)), O();\n };\n }, $ = function(m) {\n var O = b.appendListener(m);\n return f(1), function() {\n f(-1), O();\n };\n }, A = {\n length: e.length,\n action: \"POP\",\n location: k,\n createHref: x,\n push: N,\n replace: S,\n go: D,\n goBack: z,\n goForward: V,\n block: y,\n listen: $\n };\n return A;\n}, An = 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}, Ks = 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}, Pn = function(t, e, r) {\n return Math.min(Math.max(t, e), r);\n}, Gs = 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 = pr(), l = function(S) {\n Ks(x, S), x.length = x.entries.length, h.notifyListeners(x.location, x.action);\n }, u = function() {\n return Math.random().toString(36).substr(2, c);\n }, d = Pn(o, 0, s.length - 1), p = s.map(function(N) {\n return typeof N == \"string\" ? vt(N, void 0, u()) : vt(N, void 0, N.key || u());\n }), b = dr, v = function(S, D) {\n nt(!((typeof S == \"undefined\" ? \"undefined\" : An(S)) === \"object\" && S.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 z = \"PUSH\", V = vt(S, D, u(), x.location);\n h.confirmTransitionTo(V, z, e, function(T) {\n if (T) {\n var f = x.index, w = f + 1, y = x.entries.slice(0);\n y.length > w ? y.splice(w, y.length - w, V) : y.push(V), l({\n action: z,\n location: V,\n index: w,\n entries: y\n });\n }\n });\n }, g = function(S, D) {\n nt(!((typeof S == \"undefined\" ? \"undefined\" : An(S)) === \"object\" && S.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 z = \"REPLACE\", V = vt(S, D, u(), x.location);\n h.confirmTransitionTo(V, z, e, function(T) {\n T && (x.entries[x.index] = V, l({ action: z, location: V }));\n });\n }, E = function(S) {\n var D = Pn(x.index + S, 0, x.entries.length - 1), z = \"POP\", V = x.entries[D];\n h.confirmTransitionTo(V, z, e, function(T) {\n T ? l({\n action: z,\n location: V,\n index: D\n }) : l();\n });\n }, R = function() {\n return E(-1);\n }, F = function() {\n return E(1);\n }, H = function(S) {\n var D = x.index + S;\n return D >= 0 && D < x.entries.length;\n }, k = function() {\n var S = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1;\n return h.setPrompt(S);\n }, U = function(S) {\n return h.appendListener(S);\n }, x = {\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: E,\n goBack: R,\n goForward: F,\n canGo: H,\n block: k,\n listen: U\n };\n return x;\n}, Ys = Object.defineProperty, Cn = Object.getOwnPropertySymbols, Zs = Object.prototype.hasOwnProperty, Qs = Object.prototype.propertyIsEnumerable, Sn = (n, t, e) => t in n ? Ys(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, xt = (n, t) => {\n for (var e in t || (t = {}))\n Zs.call(t, e) && Sn(n, e, t[e]);\n if (Cn)\n for (var e of Cn(t))\n Qs.call(t, e) && Sn(n, e, t[e]);\n return n;\n}, Zt = (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}), P = /* @__PURE__ */ ((n) => (n.Cookie = \"cookie\", n.Local = \"local\", n.Session = \"session\", n))(P || {}), Lt = /* @__PURE__ */ ((n) => (n.Tenant = \"tenant\", n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Lt || {}), C = /* @__PURE__ */ ((n) => (n.Necessary = \"necessary\", n.Functional = \"functional\", n.Analytical = \"analytical\", n.Marketing = \"marketing\", n))(C || {});\nconst rt = (n, t, e, r = {}) => kn(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) => (sn(n), kn(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 = Lt.Widget,\n medium: c = P.Session,\n duration: h\n } = r, l = ti();\n return l[a][t] = rn(i, e, h), c === P.Cookie ? si(n, l) : oi(n, c, l);\n})))), Z = (n, t, e = P.Session) => (sn(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 === P.Cookie ? ri(n).then((r) => de(r, t)) : ii(n, e).then((r) => de(r, t))), Ct = (n) => !!Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").length, ke = (n) => Object.entries(n).filter(([t, e]) => typeof e != \"undefined\").forEach(([t, { value: e }]) => {\n typeof e == \"undefined\" && delete n[t];\n}), gr = (n, t) => {\n const e = {\n tenant: xt(xt({}, n.tenant), t.tenant),\n implementation: xt(xt({}, n.implementation), t.implementation),\n widget: xt(xt({}, n.widget), t.widget)\n };\n return ke(e.tenant), ke(e.implementation), ke(e.widget), e;\n}, Xs = (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() || Ee(), Oe = (n) => {\n const {\n name: t,\n implementation: { name: e, tenant: r }\n } = n.get(\"$widget\");\n return [\n `humany_${r}`,\n `humany_${mn(r + e)}`,\n `humany_${mn(r + e + t)}`\n ];\n}, Ne = (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}, Le = (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}, nn = (n) => {\n const [t, e, r] = Oe(n), s = Ne(t) || {}, i = Ne(e) || {}, o = Ne(r) || {};\n return {\n tenant: s,\n implementation: i,\n widget: o\n };\n}, fr = (n, t) => {\n const e = nn(n), r = gr(e, t), [s, i, o] = Oe(n), { tenant: a, implementation: c, widget: h } = r, l = Xs(t), u = Ee({ days: -1 });\n Le(s, a, Ct(a) ? l : u), Le(\n i,\n c,\n Ct(c) ? l : u\n ), Le(o, h, Ct(h) ? l : u);\n}, ue = (n, t) => {\n const [e, r, s] = Oe(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}, Ke = (n, t, e) => {\n const r = ue(n, t), s = gr(r, e), [i, o, a] = Oe(n), { tenant: c, implementation: h, widget: l } = s;\n Ct(c) ? t.setItem(i, JSON.stringify(c)) : t.removeItem(i), Ct(h) ? t.setItem(o, JSON.stringify(h)) : t.removeItem(o), Ct(l) ? t.setItem(a, JSON.stringify(l)) : t.removeItem(a);\n}, ti = () => ({ tenant: {}, implementation: {}, widget: {} }), ei = (n) => n ? !!n && /* @__PURE__ */ new Date() > new Date(n) : !1, de = (n, t) => {\n const e = n.widget[t] || n.implementation[t] || n.tenant[t];\n return e == null ? void 0 : e.value;\n}, rn = (n, t, e) => e ? {\n value: n,\n category: t,\n expiration: typeof e == \"object\" ? Ee(e) : e\n} : {\n value: n,\n category: t\n}, re = (n, t) => {\n const e = as(n);\n return Object.entries(e).forEach(([r, s]) => {\n Object.entries(s).forEach(([i, o]) => {\n const { expiration: a, category: c } = o;\n (ei(a) || ni(t, c)) && (s[i] = rn(void 0, c, a));\n });\n }), e;\n}, kn = (n, t) => Z(n, \"storagePolicy\", P.Cookie).then(\n (e = [C.Necessary]) => !!t && e.indexOf(t) === -1\n), ni = (n = [C.Necessary], t) => !!t && n.indexOf(t) === -1, sn = (n) => {\n const t = nn(n), e = ue(n, window.localStorage), r = ue(n, sessionStorage), s = de(t, \"storagePolicy\"), [i, o, a] = [\n t,\n e,\n r\n ].map((c) => re(c, s));\n fr(n, i), Ke(n, window.localStorage, o), Ke(n, window.sessionStorage, a);\n}, Ee = (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}, ri = (n) => X(document)(() => nn(n)), si = (n, t) => X(document)(() => fr(n, t)), ii = (n, t) => {\n const e = t === P.Local ? window.localStorage : window.sessionStorage;\n return X(e)(() => ue(n, e));\n}, oi = (n, t, e) => {\n const r = t === P.Local ? window.localStorage : window.sessionStorage;\n return X(r)(() => Ke(n, r, e));\n};\nlet se = class {\n constructor() {\n this.memory = {\n tenant: {},\n implementation: {},\n widget: {}\n };\n }\n setItem(t, e) {\n return Zt(this, arguments, function* (r, s, i = {}) {\n return X(this)(() => {\n const o = re(this.memory, [C.Necessary]), { scope: a = Lt.Tenant, expiration: c } = i;\n o[a][r] = rn(\n s,\n C.Necessary,\n (c == null ? void 0 : c.toISOString()) || Ee()\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 Zt(this, null, function* () {\n return X(this)(() => {\n const e = re(this.memory, [C.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 = de(e, t);\n return this.memory = e, r;\n });\n });\n }\n removeItem(t) {\n return Zt(this, null, function* () {\n return X(this)(() => {\n const e = re(this.memory, [C.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 Zt(this, null, function* () {\n return Promise.resolve();\n });\n }\n}, ai = class {\n constructor() {\n this.cookies = new se(), this.session = new se(), this.local = new se();\n }\n};\nconst 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}, ci = (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 pe = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(pe || {}), yt = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(yt || {});\nconst hi = (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 Nn(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet li = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: pe.Widget,\n stage: yt.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: Nn(e.scope, pe.Widget),\n stage: Nn(e.stage, yt.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 mr = (n) => {\n const t = new li({});\n return n(t), t.get();\n};\nmr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: pe.Implementation, stage: yt.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: yt.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: yt.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: yt.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 = hi(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n ci(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});\nmr((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 C.Necessary,\n C.Functional,\n C.Analytical,\n C.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(C.Necessary) === -1 && (process.env.NODE_ENV !== \"production\" && I.warn(\n `storagePolicyConfigurationApi: passed consent does not include category: '${C.Necessary}'. Consent has to atleast include the '${C.Necessary}' category.\n Passed consent: ${JSON.stringify(r)}`\n ), s.unshift(C.Necessary)), rt(\n t.container,\n \"storagePolicy\",\n C.Necessary,\n {\n medium: P.Cookie,\n scope: Lt.Tenant,\n duration: { days: 365 }\n }\n ).then((i) => i(s)).then(() => {\n sn(t.container), t.events.dispatch(\"storage:policy-changed\", s);\n });\n }\n });\n});\nconst ui = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StorageCategory: C,\n StorageMedium: P,\n StorageProvider: ai,\n StorageScope: Lt,\n StorageService: se,\n createStorageWriter: rt,\n readStorage: Z\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar di = Object.defineProperty, pi = Object.defineProperties, gi = Object.getOwnPropertyDescriptors, ge = Object.getOwnPropertySymbols, vr = Object.prototype.hasOwnProperty, yr = Object.prototype.propertyIsEnumerable, Ln = (n, t, e) => t in n ? di(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, At = (n, t) => {\n for (var e in t || (t = {}))\n vr.call(t, e) && Ln(n, e, t[e]);\n if (ge)\n for (var e of ge(t))\n yr.call(t, e) && Ln(n, e, t[e]);\n return n;\n}, br = (n, t) => pi(n, gi(t)), fi = (n, t) => {\n var e = {};\n for (var r in n)\n vr.call(n, r) && t.indexOf(r) < 0 && (e[r] = n[r]);\n if (n != null && ge)\n for (var r of ge(n))\n t.indexOf(r) < 0 && yr.call(n, r) && (e[r] = n[r]);\n return e;\n};\nfunction wr(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 $r = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && ($r = 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 mi = $r, vi = mi, Mn = yi(vi);\nfunction yi(n) {\n return n && n.__esModule ? n : { default: n };\n}\nvar bi = function() {\n var n = null, t = function(o) {\n return (0, Mn.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, Mn.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}, Or = bi, Er;\nEr = function(n, t) {\n return t(window.confirm(n));\n};\nfunction Qt(n) {\n return n.charAt(0) === \"/\";\n}\nfunction De(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 wi(n) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", e = n && n.split(\"/\") || [], r = t && t.split(\"/\") || [], s = n && Qt(n), i = t && Qt(t), o = s || i;\n if (n && Qt(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 === \".\" ? De(r, l) : u === \"..\" ? (De(r, l), h++) : h && (De(r, l), h--);\n }\n if (!o)\n for (; h--; h)\n r.unshift(\"..\");\n o && r[0] !== \"\" && (!r[0] || !Qt(r[0])) && r.unshift(\"\");\n var d = r.join(\"/\");\n return a && d.substr(-1) !== \"/\" && (d += \"/\"), d;\n}\nconst $i = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: wi\n}, Symbol.toStringTag, { value: \"Module\" })), Oi = /* @__PURE__ */ wr($i);\nvar Dn = 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 ie(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 ie(c, t[h]);\n });\n var e = typeof n == \"undefined\" ? \"undefined\" : Dn(n), r = typeof t == \"undefined\" ? \"undefined\" : Dn(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 ie(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 ie(n[c], t[c]);\n });\n }\n return !1;\n}\nconst Ei = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: ie\n}, Symbol.toStringTag, { value: \"Module\" })), xi = /* @__PURE__ */ wr(Ei);\nvar st = {}, at, xr, Ge, Ut;\nst.__esModule = !0;\nUt = st.addLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n : \"/\" + n;\n};\nGe = st.stripLeadingSlash = function(n) {\n return n.charAt(0) === \"/\" ? n.substr(1) : n;\n};\nvar _i = st.hasBasename = function(n, t) {\n return new RegExp(\"^\" + t + \"(\\\\/|\\\\?|#|$)\", \"i\").test(n);\n};\nst.stripBasename = function(n, t) {\n return _i(n, t) ? n.substr(t.length) : n;\n};\nxr = st.stripTrailingSlash = function(n) {\n return n.charAt(n.length - 1) === \"/\" ? n.slice(0, -1) : n;\n};\nst.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};\nat = st.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 xe, _r = xe = void 0, Ai = 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}, Pi = Oi, Ci = Ar(Pi), Si = xi, ki = Ar(Si), Ni = st;\nfunction Ar(n) {\n return n && n.__esModule ? n : { default: n };\n}\nxe = function(n, t, e, r) {\n var s = void 0;\n typeof n == \"string\" ? (s = (0, Ni.parsePath)(n), s.state = t) : (s = Ai({}, 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, Ci.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, ki.default)(n.state, t.state);\n};\nconst Pr = \"/\", Cr = \"./\", Li = 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), Sr = (n, t) => {\n const e = [];\n let r = 0, s = 0, i = \"\";\n const o = t && t.delimiter || Pr, a = t && t.delimiters || Cr;\n let c = !1, h;\n for (; (h = Li.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], E = h[4], R = 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 F = p !== \"\" && b !== void 0 && b !== p, H = R === \"+\" || R === \"*\", k = R === \"?\" || R === \"*\", U = p || o, x = g || E;\n e.push({\n delimiter: U,\n optional: k,\n repeat: H,\n partial: F,\n name: v || r++,\n // tslint:disable-line:no-increment-decrement\n prefix: p,\n pattern: x ? ji(x) : \"[^\" + Tt(U) + \"]+?\"\n });\n }\n return (i || s < n.length) && e.push(i + n.substr(s)), e;\n}, Mi = (n, t) => Di(Sr(n, t)), Di = (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}, Tt = (n) => n.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\"), ji = (n) => n.replace(/([=!:$/()])/g, \"\\\\$1\"), kr = (n) => n && n.sensitive ? \"\" : \"i\", Ri = (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}, Ti = (n, t, e) => {\n const r = [];\n for (let s = 0; s < n.length; s++)\n r.push(Nr(n[s], t, e).source);\n return new RegExp(\"(?:\" + r.join(\"|\") + \")\", kr(e));\n}, Ii = (n, t, e) => Hi(Sr(n, e), t, e), Hi = (n, t, e) => {\n e = e || {};\n const r = e.strict, s = e.end !== !1, i = Tt(e.delimiter || Pr), o = e.delimiters || Cr, a = [].concat(e.endsWith || []).map(Tt).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 += Tt(u), h = l === n.length - 1 && o.indexOf(u[u.length - 1]) > -1;\n else {\n const d = Tt(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, kr(e));\n}, Nr = (n, t, e) => n instanceof RegExp ? Ri(n, t || []) : Array.isArray(n) ? Ti(n, t, e) : Ii(n, t, e), fe = Nr;\nvar Y = /* @__PURE__ */ ((n) => (n.scopedHash = \"scopedHash\", n.hash = \"hash\", n.browser = \"browser\", n.memory = \"memory\", n))(Y || {}), ft = /* @__PURE__ */ ((n) => (n.storage = \"storage\", n.path = \"path\", n.initialPath = \"initial\", n))(ft || {});\nconst It = (n, t) => {\n const e = [], r = fe(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}, Ui = (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}, \"?\"), je = (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}, Lr = (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 br(At({}, t), { [r]: decodeURIComponent(s).replace(\"%20\", \"&\") });\n}, {}) : {}, Vi = (n, t) => {\n const e = t.map((r) => oe(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 = Lr(`?${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}, oe = (n, t) => {\n const e = $t(n);\n if (Array.isArray(t)) {\n const c = Vi(e, t);\n if (!c)\n throw new Error(\"Unable to match path.\");\n return c;\n }\n const r = Mi(t);\n let s = t;\n try {\n s = r(e);\n } catch (c) {\n return null;\n }\n const i = [];\n fe(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}${Ui(a)}` : s;\n}, _t = (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) => fe(a, []).exec(e || \"\") && !o ? e : o, void 0) && !r ? s : r;\n if (!s.path)\n return r;\n const i = [];\n return fe(s.path, i).exec(e || \"\") && !r ? s : r;\n }, void 0);\n}, Bi = (n) => {\n let t = n.get(\"historyTransitionManager\");\n return t || (t = Or(), n.parent && n.parent.register(\"historyTransitionManager\", t)), t;\n}, Ht = (n, t = null) => n ? xe(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, zi = (n, t) => {\n if ($t(n), $t(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}, Wi = (n) => {\n if (typeof n.mode == \"string\") {\n if (n.mode === Y.memory)\n return !0;\n } else if (n.mode[1]) {\n const [t, { sticky: e }] = n.mode;\n if (t === Y.memory)\n return typeof e == \"undefined\" ? !0 : e;\n }\n return !1;\n}, Re = (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}, jn = \"hashchange\", Fi = {\n hashbang: {\n encodePath: (n) => n.charAt(0) === \"!\" ? n : \"!/\" + Ge(n),\n decodePath: (n) => n.charAt(0) === \"!\" ? n.substr(1) : n\n },\n noslash: {\n encodePath: Ge,\n decodePath: Ut\n },\n slash: {\n encodePath: Ut,\n decodePath: Ut\n }\n}, ct = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, Rn = (n) => window.location.hash = n, Tn = (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}, ae = (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}, qi = (n = {}) => {\n const t = window.history, { getUserConfirmation: e = Er, hashType: r = \"slash\" } = n, s = n.basename ? xr(Ut(n.basename)) : \"\", { encodePath: i } = Fi[r], o = () => {\n const f = ct(), w = l(f);\n return Ht(w, ae);\n }, a = n.transitionManager || Or(), c = (f) => {\n Object.assign(T, f), T.length = t.length, a.notifyListeners(T.location, T.action, n.widgetName);\n };\n let h = !1;\n const l = (f) => {\n const w = ($) => {\n function A(_, m) {\n const O = {};\n let L;\n for (; L = m.exec(_); )\n O[L[1]] = L[2];\n return O;\n }\n return A($, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, y = \"humany-\" + n.widgetName;\n return w(f)[y];\n }, u = () => {\n const f = o(), w = T.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 = T.location;\n let y = g.lastIndexOf(at(w));\n y === -1 && (y = 0);\n let $ = g.lastIndexOf(at(f));\n $ === -1 && ($ = 0);\n const A = y - $;\n A && (h = !0, x(A));\n }, b = ct(), v = i(b);\n b !== v && Tn(v);\n let g = [];\n const E = o();\n E.pathname !== null && g.push(at(E));\n const R = (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: A }) => {\n y = y.replace(A, $);\n }), y;\n }, F = (f, w, y) => {\n let $ = \"\", A = !1;\n return f.split(\"&\").forEach((_) => {\n const m = _.split(\"=\"), O = m[0], L = m[1];\n if (O === w) {\n if (A = !0, y === null)\n return;\n $.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += O + \"=\" + y : $ += O;\n } else\n O && ($.length > 0 && ($ += \"&\"), $ += O + \"=\" + L);\n }), !A && y !== null && ($.length > 0 && ($ += \"&\"), typeof y != \"undefined\" ? $ += w + \"=\" + y : $ += w), $;\n }, H = (f) => {\n const w = f.pathname, y = R(f.search), $ = w + (y ? `;${y}` : \"\"), A = `humany-${n.widgetName}`, _ = ct();\n return `#${F(_, A, $).replace(\";;\", \";\")}`;\n }, k = (f, w) => {\n const y = \"PUSH\", $ = Ht(f, ae), A = $.pathname, _ = R($.search), m = A + (_ ? `${_}` : \"\"), O = `humany-${n.widgetName}`, L = ct(), M = F(L, O, m);\n a.confirmTransitionTo($, y, e, (K) => {\n if (!K)\n return;\n const G = at($), it = i(M);\n if (ct() !== it) {\n Rn(it);\n const Q = g.lastIndexOf(at(T.location)), q = g.slice(0, Q === -1 ? 0 : Q + 1);\n q.push(G), g = q, c({ action: y, location: $ });\n } else\n c();\n });\n }, U = (f, w) => {\n const y = \"REPLACE\", $ = Ht(f, ae);\n a.confirmTransitionTo($, y, e, (A) => {\n if (!A)\n return;\n const _ = at($), m = i(s + _);\n ct() !== m && Tn(m);\n const O = g.indexOf(at(T.location));\n O !== -1 && (g[O] = _), c({ action: y, location: $ });\n });\n }, x = (f) => {\n t.go(f);\n }, N = () => x(-1), S = () => x(1);\n let D = 0;\n const z = (f) => {\n D += f, D === 1 ? window.addEventListener(jn, u) : D === 0 && window.removeEventListener(jn, u);\n };\n let V = !1;\n const T = {\n createHref: H,\n createLocation: Ht,\n push: k,\n replace: U,\n go: x,\n goBack: N,\n goForward: S,\n block: (f = !1) => {\n const w = a.setPrompt(f);\n return V || (z(1), V = !0), () => (V && (V = !1, z(-1)), w());\n },\n listen: (f) => {\n const w = a.appendListener(f);\n return z(1), () => {\n z(-1), w();\n };\n },\n stop: () => {\n const f = ct(), w = F(f, `humany-${n.widgetName}`, null), y = i(w);\n Rn(y);\n },\n length: t.length,\n action: \"POP\",\n location: E\n };\n return T;\n}, Mr = qi, Ji = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n decodeSearch: ae,\n default: Mr,\n getHashPath: ct\n}, Symbol.toStringTag, { value: \"Module\" })), Ki = (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}, Gi = () => {\n const n = window.location.href, t = n.indexOf(\"#\");\n return t === -1 ? \"\" : n.substring(t + 1);\n}, Yi = (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}, Zi = (n, t = null) => n ? xe(t ? t(n) : n) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, Dr = (n) => {\n const t = Gi(), e = Ki(t, n);\n return Zi(e, Yi);\n}, on = (n) => {\n const { name: t } = n.get(\"$widget\");\n return !!Dr(t).pathname;\n};\nXe((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 In = \"routeData\";\nclass Qi {\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 = fi(r, [\"routes\"]);\n this.settings = At(At({}, i), t.get(\"routingSettings\")), this.sticky = Wi(this.settings), this.storageMedium = this.sticky ? P.Local : P.Session, rt(t, In, C.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 = vn(\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 = je(t, this.routes);\n if (!r || !this.history)\n throw `No route found for ${t}`;\n const s = oe(e, r.path);\n if (!s)\n throw `Unable to generate path for \"${t}\".`;\n const i = Ht(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 = je(t, this.routes);\n if (!r || !this.history)\n return;\n const s = oe(e, r.path);\n if (!s)\n return;\n const i = this.getRouteData(), o = i && i.name === t && zi(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 = vn(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, os(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 = Re(this.container);\n if (t) {\n const r = _t(t, this.routes);\n return r ? {\n params: $t(It(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 || _t(r, this.routes), this.currentRoute) {\n const { path: i, name: o } = this.currentRoute;\n this.match || (this.match = {\n params: It(r, i),\n isExact: !0,\n path: i,\n url: r\n });\n const a = $t(At(At({}, this.match.params), s.length > 0 && Lr(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 Z(this.container, In, 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 = on(this.container);\n return r === Y.browser || s ? ft.path : r === Y.memory && t ? ft.storage : ft.initialPath;\n })()) {\n case ft.initialPath: {\n const s = this.getRouteData(e);\n return s && s.name ? this.navigate(s.name, s.params) : void 0;\n }\n case ft.path: {\n const { pathname: s } = this.location;\n if (this.currentRoute = _t(s, this.routes), this.currentRoute) {\n const { path: o } = this.currentRoute;\n return this.setMatch({\n params: It(s, o),\n isExact: !0,\n path: o,\n url: s\n });\n }\n const i = Re(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 ft.storage: {\n const { pathname: s } = this.location;\n this.currentRoute = _t(s, this.routes);\n const { name: i = \"\", params: o = {} } = t || {}, a = je(i, this.routes);\n if (a) {\n const c = oe(o, a.path);\n if (c)\n return this.history.push(c), this.location = br(At({}, this.location), { pathname: c }), this.currentRoute = _t(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 === Y.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 === Y.scopedHash && e !== this.widget.name)\n return;\n this.location = t, this.currentRoute = _t(r, this.routes);\n const i = Re(this.container);\n if (this.currentRoute) {\n const { path: o } = this.currentRoute;\n this.setMatch({\n params: It(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 === Y.scopedHash) {\n const s = this.widget.name, i = Bi(this.container);\n return Promise.resolve().then(() => Ji).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 === Y.memory)\n return t(Gs());\n if (e === Y.browser)\n return t(Js({ basename: r }));\n throw \"RoutingService: History could not be created.\";\n });\n }\n}\nconst Xi = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n HistoryMode: Y,\n RoutingService: Qi,\n createHashHistory: Mr,\n getScopedHashDOMLocation: Dr,\n matchParams: It,\n onWidgetUrl: on\n}, Symbol.toStringTag, { value: \"Module\" })), Te = (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}, to = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => Te(t, \"info\", e, ...r),\n warn: (e, ...r) => Te(t, \"warning\", e, ...r),\n error: (e, ...r) => Te(t, \"error\", e, ...r)\n };\n};\nvar Bt = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(Bt || {}), ut = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(ut || {});\nconst eo = (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}\nclass no {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let s;\n typeof e == \"function\" ? s = {\n scope: Bt.Widget,\n stage: ut.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : s = {\n scope: Hn(e.scope, Bt.Widget),\n stage: Hn(e.stage, ut.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 jr = (n) => {\n const t = new no({});\n return n(t), t.get();\n};\njr((n) => {\n n.createCommand(\n \"types.register\",\n { scope: Bt.Implementation, stage: ut.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: ut.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: ut.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: ut.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 = eo(\n o,\n a,\n i,\n d\n );\n i.get(\"$plugins\").push(p), l && p.invoke(\"initialize\", null);\n } catch (p) {\n to(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 ro(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 Un = (n, t, e) => {\n const r = ro(n);\n e({\n sourceDOMElement: n,\n eventType: t,\n data: r\n });\n};\nfunction Vn(n, t, e) {\n n.forEach((r) => {\n r.dataset.attached !== \"true\" && (t === \"load\" ? Un(r, t, e) : r.addEventListener(t, (s) => {\n s.preventDefault(), Un(r, t, e);\n }), r.dataset.monitored = \"true\");\n });\n}\nfunction so(n, t, e) {\n const r = n.container.get(\"bootstrapping.monitor\");\n r && r.events.subscribe(\"bootstrap:trigger-elements-updated\", (i, o) => {\n Vn(\n o.triggerElements,\n t,\n e\n );\n });\n const s = n.container.get(\"triggerElements\");\n s && Vn(\n s,\n t,\n e\n );\n}\njr((n) => {\n n.createCommand(\n \"ready\",\n { scope: Bt.Implementation, stage: ut.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 io = (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 oo(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), io(n);\n}\nfunction ao(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 co(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 Rr(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 ce = window, an = ce.ShadowRoot && (ce.ShadyCSS === void 0 || ce.ShadyCSS.nativeShadow) && \"adoptedStyleSheets\" in Document.prototype && \"replace\" in CSSStyleSheet.prototype, cn = Symbol(), Bn = /* @__PURE__ */ new WeakMap();\nlet Tr = class {\n constructor(t, e, r) {\n if (this._$cssResult$ = !0, r !== cn)\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 (an && t === void 0) {\n const r = e !== void 0 && e.length === 1;\n r && (t = Bn.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), r && Bn.set(e, t));\n }\n return t;\n }\n toString() {\n return this.cssText;\n }\n};\nconst ho = (n) => new Tr(typeof n == \"string\" ? n : n + \"\", void 0, cn), Ir = (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 Tr(e, n, cn);\n}, lo = (n, t) => {\n an ? n.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet) : t.forEach((e) => {\n const r = document.createElement(\"style\"), s = ce.litNonce;\n s !== void 0 && r.setAttribute(\"nonce\", s), r.textContent = e.cssText, n.appendChild(r);\n });\n}, zn = an ? (n) => n : (n) => n instanceof CSSStyleSheet ? ((t) => {\n let e = \"\";\n for (const r of t.cssRules)\n e += r.cssText;\n return ho(e);\n})(n) : n;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Ie;\nconst me = window, Wn = me.trustedTypes, uo = Wn ? Wn.emptyScript : \"\", Fn = me.reactiveElementPolyfillSupport, Ye = { toAttribute(n, t) {\n switch (t) {\n case Boolean:\n n = n ? uo : 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} }, Hr = (n, t) => t !== n && (t == t || n == n), He = { attribute: !0, type: String, converter: Ye, reflect: !1, hasChanged: Hr }, Ze = \"finalized\";\nlet Pt = 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 = He) {\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) || He;\n }\n static finalize() {\n if (this.hasOwnProperty(Ze))\n return !1;\n this[Ze] = !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(zn(s));\n } else\n t !== void 0 && e.push(zn(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 lo(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 = He) {\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 : Ye).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 : Ye;\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 || Hr)(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 B(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};\nPt[Ze] = !0, Pt.elementProperties = /* @__PURE__ */ new Map(), Pt.elementStyles = [], Pt.shadowRootOptions = { mode: \"open\" }, Fn == null || Fn({ ReactiveElement: Pt }), ((Ie = me.reactiveElementVersions) !== null && Ie !== void 0 ? Ie : me.reactiveElementVersions = []).push(\"1.6.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar Ue;\nconst ve = window, St = ve.trustedTypes, qn = St ? St.createPolicy(\"lit-html\", { createHTML: (n) => n }) : void 0, Qe = \"$lit$\", ht = `lit$${(Math.random() + \"\").slice(9)}$`, Ur = \"?\" + ht, po = `<${Ur}>`, Ot = document, zt = () => Ot.createComment(\"\"), Wt = (n) => n === null || typeof n != \"object\" && typeof n != \"function\", Vr = Array.isArray, go = (n) => Vr(n) || typeof (n == null ? void 0 : n[Symbol.iterator]) == \"function\", Ve = `[ \t\n\\f\\r]`, Dt = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g, Jn = /-->/g, Kn = />/g, pt = RegExp(`>|${Ve}(?:([^\\\\s\"'>=/]+)(${Ve}*=${Ve}*(?:[^ \t\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`, \"g\"), Gn = /'/g, Yn = /\"/g, Br = /^(?:script|style|textarea|title)$/i, fo = (n) => (t, ...e) => ({ _$litType$: n, strings: t, values: e }), Xt = fo(1), Et = Symbol.for(\"lit-noChange\"), j = Symbol.for(\"lit-nothing\"), Zn = /* @__PURE__ */ new WeakMap(), bt = Ot.createTreeWalker(Ot, 129, null, !1);\nfunction zr(n, t) {\n if (!Array.isArray(n) || !n.hasOwnProperty(\"raw\"))\n throw Error(\"invalid template strings array\");\n return qn !== void 0 ? qn.createHTML(t) : t;\n}\nconst mo = (n, t) => {\n const e = n.length - 1, r = [];\n let s, i = t === 2 ? \"<svg>\" : \"\", o = Dt;\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 === Dt ? l[1] === \"!--\" ? o = Jn : l[1] !== void 0 ? o = Kn : l[2] !== void 0 ? (Br.test(l[2]) && (s = RegExp(\"</\" + l[2], \"g\")), o = pt) : l[3] !== void 0 && (o = pt) : o === pt ? l[0] === \">\" ? (o = s != null ? s : Dt, u = -1) : l[1] === void 0 ? u = -2 : (u = o.lastIndex - l[2].length, h = l[1], o = l[3] === void 0 ? pt : l[3] === '\"' ? Yn : Gn) : o === Yn || o === Gn ? o = pt : o === Jn || o === Kn ? o = Dt : (o = pt, s = void 0);\n const p = o === pt && n[a + 1].startsWith(\"/>\") ? \" \" : \"\";\n i += o === Dt ? c + po : u >= 0 ? (r.push(h), c.slice(0, u) + Qe + c.slice(u) + ht + p) : c + ht + (u === -2 ? (r.push(void 0), a) : p);\n }\n return [zr(n, i + (n[e] || \"<?>\") + (t === 2 ? \"</svg>\" : \"\")), r];\n};\nclass Ft {\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] = mo(t, e);\n if (this.el = Ft.createElement(h, r), bt.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 = bt.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(ht)) {\n const p = l[o++];\n if (u.push(d), p !== void 0) {\n const b = s.getAttribute(p.toLowerCase() + Qe).split(ht), v = /([.?@])?(.*)/.exec(p);\n c.push({ type: 1, index: i, name: v[2], strings: b, ctor: v[1] === \".\" ? yo : v[1] === \"?\" ? wo : v[1] === \"@\" ? $o : _e });\n } else\n c.push({ type: 6, index: i });\n }\n for (const d of u)\n s.removeAttribute(d);\n }\n if (Br.test(s.tagName)) {\n const u = s.textContent.split(ht), d = u.length - 1;\n if (d > 0) {\n s.textContent = St ? St.emptyScript : \"\";\n for (let p = 0; p < d; p++)\n s.append(u[p], zt()), bt.nextNode(), c.push({ type: 2, index: ++i });\n s.append(u[d], zt());\n }\n }\n } else if (s.nodeType === 8)\n if (s.data === Ur)\n c.push({ type: 2, index: i });\n else {\n let u = -1;\n for (; (u = s.data.indexOf(ht, u + 1)) !== -1; )\n c.push({ type: 7, index: i }), u += ht.length - 1;\n }\n i++;\n }\n }\n static createElement(t, e) {\n const r = Ot.createElement(\"template\");\n return r.innerHTML = t, r;\n }\n}\nfunction kt(n, t, e = n, r) {\n var s, i, o, a;\n if (t === Et)\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 = Wt(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 = kt(n, c._$AS(n, t.values), c, r)), t;\n}\nclass vo {\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 : Ot).importNode(r, !0);\n bt.currentNode = i;\n let o = bt.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 Kt(o, o.nextSibling, this, t) : h.type === 1 ? l = new h.ctor(o, h.name, h.strings, this, t) : h.type === 6 && (l = new Oo(o, this, t)), this._$AV.push(l), h = s[++c];\n }\n a !== (h == null ? void 0 : h.index) && (o = bt.nextNode(), a++);\n }\n return bt.currentNode = Ot, 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 Kt {\n constructor(t, e, r, s) {\n var i;\n this.type = 2, this._$AH = j, 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 = kt(this, t, e), Wt(t) ? t === j || t == null || t === \"\" ? (this._$AH !== j && this._$AR(), this._$AH = j) : t !== this._$AH && t !== Et && this._(t) : t._$litType$ !== void 0 ? this.g(t) : t.nodeType !== void 0 ? this.$(t) : go(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 !== j && Wt(this._$AH) ? this._$AA.nextSibling.data = t : this.$(Ot.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 = Ft.createElement(zr(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 vo(i, this), a = o.u(this.options);\n o.v(r), this.$(a), this._$AH = o;\n }\n }\n _$AC(t) {\n let e = Zn.get(t.strings);\n return e === void 0 && Zn.set(t.strings, e = new Ft(t)), e;\n }\n T(t) {\n Vr(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 Kt(this.k(zt()), this.k(zt()), 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 _e {\n constructor(t, e, r, s, i) {\n this.type = 1, this._$AH = j, 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 = j;\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 = kt(this, t, e, 0), o = !Wt(t) || t !== this._$AH && t !== Et, 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 = kt(this, a[r + c], e, c), h === Et && (h = this._$AH[c]), o || (o = !Wt(h) || h !== this._$AH[c]), h === j ? t = j : t !== j && (t += (h != null ? h : \"\") + i[c + 1]), this._$AH[c] = h;\n }\n o && !s && this.j(t);\n }\n j(t) {\n t === j ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t != null ? t : \"\");\n }\n}\nclass yo extends _e {\n constructor() {\n super(...arguments), this.type = 3;\n }\n j(t) {\n this.element[this.name] = t === j ? void 0 : t;\n }\n}\nconst bo = St ? St.emptyScript : \"\";\nclass wo extends _e {\n constructor() {\n super(...arguments), this.type = 4;\n }\n j(t) {\n t && t !== j ? this.element.setAttribute(this.name, bo) : this.element.removeAttribute(this.name);\n }\n}\nclass $o extends _e {\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 = kt(this, t, e, 0)) !== null && r !== void 0 ? r : j) === Et)\n return;\n const s = this._$AH, i = t === j && s !== j || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, o = t !== j && (s === j || 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 Oo {\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 kt(this, t);\n }\n}\nconst Qn = ve.litHtmlPolyfillSupport;\nQn == null || Qn(Ft, Kt), ((Ue = ve.litHtmlVersions) !== null && Ue !== void 0 ? Ue : ve.litHtmlVersions = []).push(\"2.8.0\");\nconst Eo = (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 Kt(t.insertBefore(zt(), 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 Be, ze;\nlet Vt = class extends Pt {\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 = Eo(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 Et;\n }\n};\nVt.finalized = !0, Vt._$litElement$ = !0, (Be = globalThis.litElementHydrateSupport) === null || Be === void 0 || Be.call(globalThis, { LitElement: Vt });\nconst Xn = globalThis.litElementPolyfillSupport;\nXn == null || Xn({ LitElement: Vt });\n((ze = globalThis.litElementVersions) !== null && ze !== void 0 ? ze : globalThis.litElementVersions = []).push(\"3.3.3\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst xo = (n, t) => t.kind === \"method\" && t.descriptor && !(\"value\" in t.descriptor) ? Mt(tt({}, 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} }, _o = (n, t, e) => {\n t.constructor.createProperty(e, n);\n};\nfunction ye(n) {\n return (t, e) => e !== void 0 ? _o(n, t, e) : xo(n, t);\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction lt(n) {\n return ye(Mt(tt({}, n), { state: !0 }));\n}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst Ao = ({ finisher: n, descriptor: t }) => (e, r) => {\n var s;\n if (r === void 0) {\n const i = (s = e.originalKey) !== null && s !== void 0 ? s : e.key, o = t != null ? { kind: \"method\", placement: \"prototype\", key: i, descriptor: t(e.key) } : Mt(tt({}, e), { key: i });\n return n != null && (o.finisher = function(a) {\n n(a, i);\n }), o;\n }\n {\n const i = e.constructor;\n t !== void 0 && Object.defineProperty(e, r, t(r)), n == null || n(i, r);\n }\n};\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar We;\n((We = window.HTMLSlotElement) === null || We === void 0 ? void 0 : We.prototype.assignedElements) != null;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst Po = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 }, Co = (n) => (...t) => ({ _$litDirective$: n, values: t });\nlet So = class {\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 ko = Co(class extends So {\n constructor(n) {\n var t;\n if (super(n), n.type !== Po.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 Et;\n }\n});\nvar No = Object.defineProperty, Lo = Object.getOwnPropertyDescriptor, Ae = (n, t, e, r) => {\n for (var s = r > 1 ? void 0 : r ? Lo(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 && No(t, e, s), s;\n};\nclass dt extends Vt {\n constructor() {\n super(...arguments), this.active = !1, this.loaded = !1;\n }\n connectedCallback() {\n return B(this, null, function* () {\n pn(dt.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 B(this, null, function* () {\n const e = (r) => B(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 ? Xt`<telia-icon\n class=\"trigger-icon\"\n svg=${i.svg}\n size=\"lg\"\n ></telia-icon>` : j;\n }\n case \"FontAwesome\":\n return Xt`<i class=\"trigger-fa-icon fa fa-${s}\"></i>`;\n case \"Uri\":\n return Xt`<i\n class=\"trigger-custom-icon\"\n style=\"background: url(${s}) no-repeat center center;background-size: contain;\"\n ></i>`;\n default:\n return j;\n }\n }\n });\n }\n render() {\n return Xt`<button\n class=${ko({\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}\ndt.styles = [\n Ir`\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];\nAe([\n ye({ attribute: !1 })\n], dt.prototype, \"symbol\", 2);\nAe([\n lt()\n], dt.prototype, \"active\", 2);\nAe([\n lt()\n], dt.prototype, \"loaded\", 2);\nAe([\n lt()\n], dt.prototype, \"icon\", 2);\nvar wt = /* @__PURE__ */ ((n) => (n.Inline = \"inline\", n.Link = \"link\", n.Badge = \"badge\", n.Unsupported = \"unsupported\", n))(wt || {});\nconst Mo = (n, t) => n && t ? \"both\" : n ? \"widgetDOM\" : t ? \"triggerDOM\" : \"none\", Wr = (n) => n ? typeof n == \"boolean\" && n ? \"link\" : typeof n == \"object\" && !Array.isArray(n) ? \"badge\" : \"unsupported\" : \"inline\", Do = (n, t, e, r, s = !1) => B(void 0, null, function* () {\n var h, l;\n const i = Mo(\n t,\n e\n ), o = Wr(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\", dt);\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}), jo = \"modals\";\nclass Ro {\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 === wt.Badge && co(e), import(\"./render-416c8c88.js\").then((s) => s.default(this.container, t)).then(() => {\n if (t.setAttribute(\"data-rendered\", \"true\"), e && this.options.triggerType === wt.Badge) {\n const i = this.options.triggerOptions.openTooltip;\n Rr(e, i);\n }\n us(this.container, t);\n const s = this.container.get(\"$environment\").widgets.all();\n Z(\n this.container,\n jo,\n P.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 = oo(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 B(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 te = \"changesets\", To = (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 hn {\n constructor(t, e) {\n this.container = t, this.storageWriter = e;\n }\n static create(t) {\n return rt(\n t,\n te,\n C.Necessary,\n {\n medium: P.Local\n }\n ).then(\n (e) => new hn(t, e)\n );\n }\n write(t, e, r, s) {\n return X(this)(() => Z(\n this.container,\n te,\n P.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: To(r),\n rules: e.rules\n }, this.storageWriter({ keys: o, items: a });\n }));\n }\n remove(t) {\n return X(this)(() => Z(\n this.container,\n te,\n P.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 X(this)(() => Z(\n this.container,\n te,\n P.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 Nt(t, a)\n });\n }\n });\n }));\n }\n}\nconst Io = (n) => {\n const { container: t } = n;\n return hn.create(t).then(\n (e) => {\n const r = t.get(\"$settings\"), s = { localStorage: e }, i = new Jt(n, s), o = ar(i, r);\n return n.events.subscribe(\n \"widget:state-change\",\n (a, c) => {\n c.state === nr.Deactivating && o();\n }\n ), i;\n }\n );\n}, Ho = (n) => Promise.resolve().then(() => Xi).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), Uo = (n) => Promise.resolve().then(() => ui).then(({ StorageProvider: t }) => new t()), Vo = (n) => Promise.resolve().then(() => en).then(({ ActionResolver: t }) => new t(n)), Bo = (n) => Promise.resolve().then(() => en).then(({ ComponentResolver: t }) => new t(n)), zo = (n) => Promise.resolve().then(() => en).then(() => Io(n.get(\"$widget\"))), Fe = \"$settings\", ee = \"open\", tr = \"activeStickyWidget\";\nclass Ca extends ns {\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 () => Uo(this.container)\n ), this.container.registerFactory(\"settings\", () => Z(\n this.container,\n Fe,\n P.Local\n ).then((e = {}) => tt(tt({}, this.container.get(\"$settings\")), e))), so(this, \"load\", this.handleBootstrapping), this.container.registerAsync(\n \"componentResolver\",\n () => Bo(this.container)\n ), this.container.registerAsync(\n \"router\",\n () => Ho(this.container)\n ), this.container.registerAsync(\n \"actionResolver\",\n () => Vo(this.container)\n ), this.container.register(\"matchMedia\", window.matchMedia), this.container.registerAsync(\n \"components\",\n () => zo(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, E) => typeof o.views[E].path == \"undefined\" ? E : g,\n \"\"\n );\n !b.name && v ? a(v) : a(b.name), $t(p && p.params), $t(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) => B(this, [r], function* ({ trigger: e }) {\n var p, b;\n const {\n widgetDOMElement: s,\n key: i = qt(),\n triggerDOMElement: o,\n withRenderState: a\n } = t, h = Wr(e) === wt.Inline && ((o == null ? void 0 : o.childElementCount) || 0) > 0, l = yield Do(\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\"), E = (H, k) => {\n v() && (l.callback && l.callback(), k.disconnect());\n }, R = {\n attributes: !0,\n subtree: !0,\n childList: !0\n };\n v() && l.callback && l.callback(), new MutationObserver(E).observe(g, R);\n };\n h && this.widget.container.getAsync(\"dataClient\").then(({ events: v }) => {\n v.subscribe(\n \"data-client:fetched\",\n (g, E) => {\n E.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 === wt.Badge && e && ((p = l.triggerDOMElement) == null || p.setAttribute(\n \"aria-expanded\",\n \"false\"\n ), d == null || d.renderBadge(e)), l.triggerType !== wt.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((E) => g && g.action && g.action === \"hide\" ? E === J.open ? this.hide() : this.open() : E === J.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 === wt.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 Ro(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 = Mt(tt({}, 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 rt(\n this.container,\n Fe,\n C.Necessary,\n {\n medium: P.Local\n }\n )\n ]).then(([e, r]) => Promise.resolve(t(e)).then((s) => r(s).then(() => {\n const i = tt(tt({}, e), s);\n return this.widget.events.dispatch(\"widget:settings-updated\", i), i;\n })));\n }\n clearSettings() {\n return rt(\n this.container,\n Fe,\n C.Necessary,\n { medium: P.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 (on(this.container))\n return Promise.resolve(J.open);\n const t = () => Z(\n this.container,\n ee,\n P.Session\n ).then((r = J.closed) => r), e = () => Z(\n this.container,\n ee,\n P.Session\n ).then((r = J.closed) => r);\n return this.container.getAsync(\"router\").then((r) => r.isSticky() ? e().then((s) => s === J.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\" ? J.open : t === \"close\" ? J.closed : J.hidden;\n return this.setRenderState(r).then(() => {\n this.setTriggerState(r === J.open), r !== J.hidden ? r === J.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 rt(\n this.container,\n ee,\n C.Necessary,\n {\n medium: P.Session\n }\n ),\n rt(\n this.container,\n ee,\n C.Necessary,\n {\n medium: P.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 ? Rr(r, i) : ao(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())), Z(\n this.container,\n tr,\n P.Local\n ).then((e) => e === this.widget.name ? rt(\n this.container,\n tr,\n C.Necessary,\n {\n medium: P.Local,\n scope: Lt.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 Fr = 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 */\nlet Wo = class {\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 Fr(this.context, this.t, this.subscribe));\n }\n};\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass Fo {\n constructor(t) {\n this.subscriptions = /* @__PURE__ */ new Map(), this.updateObservers = () => {\n for (const [e, { disposer: r }] of this.subscriptions)\n e(this.o, r);\n }, t !== void 0 && (this.value = t);\n }\n get value() {\n return this.o;\n }\n set value(t) {\n this.setValue(t);\n }\n setValue(t, e = !1) {\n const r = e || !Object.is(t, this.o);\n this.o = t, r && this.updateObservers();\n }\n addCallback(t, e, r) {\n if (!r)\n return void t(this.value);\n this.subscriptions.has(t) || this.subscriptions.set(t, { disposer: () => {\n this.subscriptions.delete(t);\n }, consumerHost: e });\n const { disposer: s } = this.subscriptions.get(t);\n t(this.value, s);\n }\n clearCallbacks() {\n this.subscriptions.clear();\n }\n}\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass qo extends Event {\n constructor(t) {\n super(\"context-provider\", { bubbles: !0, composed: !0 }), this.context = t;\n }\n}\nclass jt extends Fo {\n constructor(t, e, r) {\n super(e.context !== void 0 ? e.initialValue : r), this.onContextRequest = (s) => {\n const i = s.composedPath()[0];\n s.context === this.context && i !== this.host && (s.stopPropagation(), this.addCallback(s.callback, i, s.subscribe));\n }, this.onProviderRequest = (s) => {\n const i = s.composedPath()[0];\n if (s.context === this.context && i !== this.host) {\n for (const [o, { consumerHost: a }] of this.subscriptions)\n a.dispatchEvent(new Fr(this.context, o, !0));\n s.stopPropagation();\n }\n }, this.host = t, e.context !== void 0 ? this.context = e.context : this.context = e, this.attachListeners(), this.host.addController(this);\n }\n attachListeners() {\n this.host.addEventListener(\"context-request\", this.onContextRequest), this.host.addEventListener(\"context-provider\", this.onProviderRequest);\n }\n hostConnected() {\n this.host.dispatchEvent(new qo(this.context));\n }\n}\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction Jo({ context: n, subscribe: t }) {\n return Ao({ finisher: (e, r) => {\n e.addInitializer((s) => {\n new Wo(s, { context: n, callback: (i) => {\n s[r] = i;\n }, subscribe: t });\n });\n } });\n}\nconst Ko = \"children\", Go = \"descriptor\", Yo = \"container\", Zo = \"context\", Qo = \"layout\", Xo = \"properties\";\nclass ta {\n constructor(t) {\n (this.host = t).addController(this);\n }\n hostConnected() {\n }\n hostDisconnected() {\n }\n setDescriptor(t) {\n this._descriptor = t;\n }\n setContainer(t) {\n this._container = t;\n }\n dispatch(t, e) {\n return B(this, null, function* () {\n if (!this._container || !this._descriptor)\n return;\n const r = yield Jt.getInstance(\n this._container\n ), s = new Nt(r).withId(\n this._descriptor.id\n );\n yield r.actions(\n s,\n this._descriptor.type || qt()\n ).dispatch(t, e);\n });\n }\n}\nconst ea = (n, t) => B(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}), Na = (n, t) => B(void 0, null, function* () {\n const { provider: e, settings: r = {} } = yield ea(n, t);\n return {\n addResource: (s, i) => e.addResource(s, i),\n getData: (s, i) => e.getData(s, i, r)\n };\n});\nclass na {\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 B(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 er = (n) => ({\n title: n.Title,\n id: n.Id.toString()\n});\nclass ra extends na {\n constructor(t) {\n super(t), this.addResource(\"item\", {\n query: (e, r) => B(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 ? er(h) : null;\n })\n }), this.addResource(\"items\", {\n query: (e, r) => B(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) => er(d)),\n totalItems: (u == null ? void 0 : u.TotalMatches) || 0\n };\n })\n });\n }\n}\nconst La = (n) => B(void 0, null, function* () {\n n.registerAsync(\"guideProvider\", () => new ra(n));\n}), Ma = (n, t, e, r, s) => n.getAsync(\"componentResolver\").then((i) => (i.registerComponent(t, e), cr(n, t, r || (() => {\n}), t, s))), W = (n, t, e) => {\n n && e.style.setProperty(t, n);\n}, sa = (n, t) => {\n var e, r, s, i, o, a, c, h, l, u, d;\n W((e = n.colors) == null ? void 0 : e.primary, \"--primary-color\", t), W((r = n.colors) == null ? void 0 : r.secondary, \"--secondary-color\", t), W((s = n.colors) == null ? void 0 : s.text, \"--text-color\", t), W((i = n.colors) == null ? void 0 : i.link, \"--link-color\", t), W((o = n.colors) == null ? void 0 : o.gray, \"--gray-color\", t), W((a = n.colors) == null ? void 0 : a.grayDark, \"--gray-dark-color\", t), W((c = n.spacing) == null ? void 0 : c.xs, \"--spacing-xs\", t), W((h = n.spacing) == null ? void 0 : h.sm, \"--spacing-sm\", t), W((l = n.spacing) == null ? void 0 : l.md, \"--spacing-md\", t), W((u = n.spacing) == null ? void 0 : u.lg, \"--spacing-lg\", t), W((d = n.spacing) == null ? void 0 : d.xl, \"--spacing-xl\", t), W(n.boxShadow, \"--box-shadow\", t), W(n.borderRadius, \"--border-radius\", t), W(n.borderRadiusSm, \"--border-radius-sm\", t), W(n.fontFamily, \"--font-family\", t);\n}, ia = (n) => {\n const t = {};\n return Object.keys(n).forEach((e) => {\n e.indexOf(\"css-\") > -1 && (t[e] = n[e]);\n }), t;\n}, oa = (n, t) => {\n const e = ia(t);\n Object.entries(e).forEach(([r, s]) => {\n n.style.setProperty(r.replace(\"css-\", \"\"), s);\n });\n};\nvar aa = Object.defineProperty, ca = Object.getOwnPropertyDescriptor, gt = (n, t, e, r) => {\n for (var s = r > 1 ? void 0 : r ? ca(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 && aa(t, e, s), s;\n};\nconst Da = (n) => {\n var e;\n class t extends n {\n constructor() {\n super(...arguments), this.entry = \"\", this._descriptorProvider = new jt(\n this,\n Go,\n void 0\n ), this._childrenProvider = new jt(this, Ko, []), this._propertiesProvider = new jt(this, Xo, {}), this._contextProvider = new jt(this, Zo, {}), this._layoutProvider = new jt(this, Qo, {}), this.actions = new ta(this), this.context = {}, this.layout = {}, this.properties = {};\n }\n connectedCallback() {\n super.connectedCallback(), this.container && (this.actions.setContainer(this.container), Jt.getInstance(this.container).then(\n (s) => B(this, null, function* () {\n var o;\n const i = s.nodes.get(this.entry);\n if (i) {\n this._propertyChangeListener = s.events.subscribe(\n \"components:properties-changed\",\n (u, d) => {\n i.id === d.node.id && this._setProperties(d.node.attributes.properties);\n }\n ), this._contextChangeListener = s.events.subscribe(\n \"components:context-changed\",\n (u, d) => {\n i.id === d.node.id && this._setContext(d.node.attributes.context);\n }\n ), this._layoutChangeListener = s.events.subscribe(\n \"components:layout-changed\",\n (u, d) => {\n i.id === d.node.id && this._setLayout(d.node.attributes.layout);\n }\n );\n const a = \"default\";\n this._unmountNode = i.mount(this.container), this._setDescriptor(Je(i, a)), this._setProperties(i.attributes.properties), this._setContext(i.attributes.context), this._setLayout(this.layout);\n const c = i.getChildren(a).map((u) => Je(u));\n this._childrenProvider.setValue(c);\n const l = (yield this.container.getAsync(\"componentResolver\")).getComponent(\n ((o = this.descriptor) == null ? void 0 : o.type) || \"\"\n );\n l.then && l.then((u) => {\n this.component = u.default;\n });\n }\n })\n ));\n }\n disconnectedCallback() {\n super.disconnectedCallback(), this._propertyChangeListener && this._propertyChangeListener(), this._contextChangeListener && this._contextChangeListener(), this._layoutChangeListener && this._layoutChangeListener(), this._unmountNode && this._unmountNode();\n }\n updated() {\n this.container && this.actions.setContainer(this.container), sa(this.context, this.renderRoot.host), this.renderRoot.host.style.setProperty(\n \"--width\",\n this.layout.size === \"full\" ? \"var(--columns, 1)\" : `min(${this.layout.size || \"var(--columns)\"}, var(--columns))`\n ), oa(this.renderRoot.host, this.properties);\n }\n _setProperties(s) {\n this._propertiesProvider.setValue(s), this.properties = s;\n }\n _setContext(s) {\n this._contextProvider.setValue(s), this.context = s;\n }\n _setLayout(s) {\n this._layoutProvider.setValue(s), this.layout = s;\n }\n _setDescriptor(s) {\n this.descriptor = s, this._descriptorProvider.setValue(s), this.actions.setDescriptor(s);\n }\n }\n return t.styles = [\n (e = n.styles) != null ? e : [],\n Ir`\n :host {\n --font-family: TeliaSans, Helvetica, Arial, Lucida Grande, sans-serif;\n --spacing-xs: 0.2rem;\n --spacing-sm: 0.5rem;\n --spacing-md: 1rem;\n --spacing-lg: 1.2rem;\n --spacing-xl: 1.8rem;\n\n --primary-color: #29003e;\n --secondary-color: #00558f;\n --text-color: #222222;\n --link-color: #990ae3;\n --gray-color: #efefef;\n --gray-dark-color: #a6a6a6;\n\n --box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\n --border-radius: 1rem;\n --border-radius-sm: 0.3rem;\n\n font-family: var(--font-family);\n grid-column: span var(--width);\n max-width: 100%;\n overflow: hidden;\n box-sizing: border-box;\n display: block;\n }\n * {\n box-sizing: border-box;\n }\n `\n ], gt([\n Jo({ context: Yo }),\n ye({ attribute: !1 })\n ], t.prototype, \"container\", 2), gt([\n ye()\n ], t.prototype, \"entry\", 2), gt([\n lt()\n ], t.prototype, \"descriptor\", 2), gt([\n lt()\n ], t.prototype, \"component\", 2), gt([\n lt()\n ], t.prototype, \"context\", 2), gt([\n lt()\n ], t.prototype, \"layout\", 2), gt([\n lt()\n ], t.prototype, \"properties\", 2), t;\n};\nexport {\n j as A,\n na as D,\n La as G,\n Et as T,\n Da as W,\n jt as a,\n Ir as b,\n Yo as c,\n lt as d,\n Co as e,\n sa as f,\n oa as g,\n Ca as h,\n So as i,\n Ko as j,\n Go as k,\n Zo as l,\n J as m,\n ye as n,\n Qo as o,\n Jt as p,\n Xo as q,\n ta as r,\n Vt as s,\n Po as t,\n Na as u,\n Ma as v,\n Xt as x\n};\n//# sourceMappingURL=index-79b338f7.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 return createWebComponent(\r\n container,\r\n 'conversation',\r\n import('./conversation'),\r\n async (component) => {\r\n const router = await container.getAsync('router');\r\n const platform = await ConversationPlatform.getInstance(container);\r\n\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$2","W","a","G","X","J","L$1","q","D$3","D","l","P","Z$3","w","K","nt","tt","st","Q","et","V","it","T","rt","x","v","R","ot","at","j","ct$2","ht","ct","lt","ut","dt","pt$2","vt","pt","U","$","gt","Z","mt$1","Y","yt$1","mt","wt","yt","C$4","C","S","N","bt","H","t","e","B","Z$2","P$2","et$1","ot$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","qr","Jr","Kr","un","Gr","Yr","Zr","Qr","dn","Mt","pn","Pe","Xr","he","ts","gn","es","Xe","be","Rt","rr","as","mn","cs","Gt","qt","ps","gs","fs","yn","ms","vs","bn","ys","bs","sr","Nt","$s","tn","we","Os","qe","ir","$e","or","Es","xs","_s","As","Ce","Ps","Cs","Jt","Je","cr","Ys","Cn","Zs","Qs","Sn","xt","Lt","kn","sn","ti","rn","si","oi","ri","de","ii","Ct","ke","gr","Xs","Ee","Oe","Ne","Le","nn","fr","ue","Ke","ei","ni","Me","ci","pe","hi","Nn","li","mr","wr","$r","mi","vi","yi","Qt","De","wi","$i","Oi","Dn","Ei","xi","Pi","Ar","Si","Te","to","Bt","eo","Hn","no","jr","an","cn","Bn","Tr","ho","Ir","lo","zn","Ie","me","Wn","uo","Fn","Ye","Hr","He","Ze","Pt","Ue","ve","St","qn","Qe","Ur","po","Ot","zt","Wt","Vr","go","Ve","Dt","Jn","Kn","Gn","Yn","Br","fo","Xt","Et","Zn","zr","mo","Ft","yo","wo","$o","kt","vo","Kt","Oo","bo","Qn","Eo","Be","ze","Vt","Xn","xo","_o","ye","Ao","We","Po","Co","So","ko","No","Lo","Ae","Fr","Wo","Fo","qo","jt","Jo","Ko","Go","Yo","Zo","Qo","Xo","ta","Ma","sa","ia","oa","aa","ca","Da","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]}
|