@telia-ace/widget-runtime-flamingo 1.0.11 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"index-212dab55.js","sources":["../../../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/warning@3.0.0/node_modules/warning/browser.js","../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js","../../../node_modules/.pnpm/resolve-pathname@2.2.0/node_modules/resolve-pathname/index.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/PathUtils.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/LocationUtils.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/createTransitionManager.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/DOMUtils.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/createBrowserHistory.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/createMemoryHistory.js","../../../node_modules/.pnpm/@telia-ace+widget-services@1.0.27/node_modules/@telia-ace/widget-services/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-routing@1.0.28/node_modules/@telia-ace/widget-routing/dist/index.js","../../../node_modules/.pnpm/@webprovisions+bootstrapping@1.0.14/node_modules/@webprovisions/bootstrapping/dist/index.js","../src/ui/html-element-handlers.ts","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-element@3.3.3/node_modules/lit-element/lit-element.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/base.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directive.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directives/class-map.js","../src/ui/trigger-component.ts","../src/ui/prepare-dom.ts","../src/ui/view-outlet.ts","../src/component-platform-factory.ts","../src/services.ts","../src/widget.ts","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/context-request-event.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/create-context.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/controllers/context-consumer.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/value-notifier.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/controllers/context-provider.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/decorators/consume.js","../src/context/children.context.ts","../src/context/component-node.context.ts","../src/context/container.context.ts","../src/context/context.context.ts","../src/context/layout.context.ts","../src/context/properties.context.ts","../src/controllers/actions-controller.ts","../src/data-provider/data-provider.ts","../src/data-provider/providers/guide-provider.plugin.ts","../src/core/create-lit-component.ts","../src/ui/branding.ts","../src/ui/get-css-props.ts","../src/mixins/widget-component.mixin.ts"],"sourcesContent":["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","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","export var addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nexport var stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nexport var hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nexport var stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nexport var stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nexport var parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nexport var createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport { parsePath } from './PathUtils';\n\nexport var createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nexport var locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n};","import warning from 'warning';\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n warning(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexport default createTransitionManager;","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nexport var removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nexport var getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nexport var supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nexport var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nexport var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nexport var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation } from './LocationUtils';\nimport { addLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, isExtraneousPopstateEvent } from './DOMUtils';\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n invariant(canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = stripBasename(path, basename);\n\n return createLocation(path, state, key);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = createTransitionManager();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + createPath(location);\n };\n\n var push = function push(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n addEventListener(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) addEventListener(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n removeEventListener(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) removeEventListener(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexport default createBrowserHistory;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport { createPath } from './PathUtils';\nimport { createLocation } from './LocationUtils';\nimport createTransitionManager from './createTransitionManager';\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = createTransitionManager();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = createPath;\n\n var push = function push(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexport default createMemoryHistory;","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","var Ft = Object.defineProperty, Bt = Object.defineProperties;\nvar kt = Object.getOwnPropertyDescriptors;\nvar K = Object.getOwnPropertySymbols;\nvar dt = Object.prototype.hasOwnProperty, pt = Object.prototype.propertyIsEnumerable;\nvar ft = (e, t, n) => t in e ? Ft(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, L = (e, t) => {\n for (var n in t || (t = {}))\n dt.call(t, n) && ft(e, n, t[n]);\n if (K)\n for (var n of K(t))\n pt.call(t, n) && ft(e, n, t[n]);\n return e;\n}, st = (e, t) => Bt(e, kt(t));\nvar mt = (e, t) => {\n var n = {};\n for (var r in e)\n dt.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n if (e != null && K)\n for (var r of K(e))\n t.indexOf(r) < 0 && pt.call(e, r) && (n[r] = e[r]);\n return n;\n};\nimport { Logger as Et, removeNullAndUndefinedValues as B, shallowCompare as gt, createParams as Vt } from \"@telia-ace/widget-utilities\";\nimport { createMemoryHistory as zt, createBrowserHistory as Gt } from \"history\";\nimport { createConfigurationApi as Kt } from \"@webprovisions/platform\";\nimport { StorageMedium as yt, createStorageWriter as Qt, StorageCategory as Xt, readStorage as Yt } from \"@telia-ace/widget-services\";\nfunction Ot(e) {\n if (e.__esModule)\n return e;\n var t = e.default;\n if (typeof t == \"function\") {\n var n = function r() {\n if (this instanceof r) {\n var s = [null];\n s.push.apply(s, arguments);\n var a = Function.bind.apply(t, s);\n return new a();\n }\n return t.apply(this, arguments);\n };\n n.prototype = t.prototype;\n } else\n n = {};\n return Object.defineProperty(n, \"__esModule\", { value: !0 }), Object.keys(e).forEach(function(r) {\n var s = Object.getOwnPropertyDescriptor(e, r);\n Object.defineProperty(n, r, s.get ? s : {\n enumerable: !0,\n get: function() {\n return e[r];\n }\n });\n }), n;\n}\nvar Rt = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (Rt = function(e, t, n) {\n var r = arguments.length;\n n = new Array(r > 2 ? r - 2 : 0);\n for (var s = 2; s < r; s++)\n n[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 (!e) {\n var a = 0, c = \"Warning: \" + t.replace(/%s/g, function() {\n return n[a++];\n });\n typeof console != \"undefined\" && console.error(c);\n try {\n throw new Error(c);\n } catch (o) {\n }\n }\n});\nvar Jt = Rt, Zt = Jt, vt = te(Zt);\nfunction te(e) {\n return e && e.__esModule ? e : { default: e };\n}\nvar ee = function() {\n var t = null, n = function(i) {\n return (0, vt.default)(t == null, \"A history supports only one prompt at a time\"), t = i, function() {\n t === i && (t = null);\n };\n }, r = function(i, h, u, f) {\n if (t != null) {\n var g = typeof t == \"function\" ? t(i, h) : t;\n typeof g == \"string\" ? typeof u == \"function\" ? u(g, f) : ((0, vt.default)(!1, \"A history needs a getUserConfirmation function in order to use a prompt message\"), f(!0)) : f(g !== !1);\n } else\n f(!0);\n }, s = [], a = function(i) {\n var h = !0, u = function() {\n h && i.apply(void 0, arguments);\n };\n return s.push(u), function() {\n h = !1, s = s.filter(function(f) {\n return f !== u;\n });\n };\n }, c = function() {\n for (var i = arguments.length, h = Array(i), u = 0; u < i; u++)\n h[u] = arguments[u];\n s.forEach(function(f) {\n return f.apply(void 0, h);\n });\n };\n return {\n setPrompt: n,\n confirmTransitionTo: r,\n appendListener: a,\n notifyListeners: c\n };\n}, Tt = ee, At;\nAt = function(t, n) {\n return n(window.confirm(t));\n};\nfunction Q(e) {\n return e.charAt(0) === \"/\";\n}\nfunction at(e, t) {\n for (var n = t, r = n + 1, s = e.length; r < s; n += 1, r += 1)\n e[n] = e[r];\n e.pop();\n}\nfunction ne(e) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", n = e && e.split(\"/\") || [], r = t && t.split(\"/\") || [], s = e && Q(e), a = t && Q(t), c = s || a;\n if (e && Q(e) ? r = n : n.length && (r.pop(), r = r.concat(n)), !r.length)\n return \"/\";\n var o = void 0;\n if (r.length) {\n var i = r[r.length - 1];\n o = i === \".\" || i === \"..\" || i === \"\";\n } else\n o = !1;\n for (var h = 0, u = r.length; u >= 0; u--) {\n var f = r[u];\n f === \".\" ? at(r, u) : f === \"..\" ? (at(r, u), h++) : h && (at(r, u), h--);\n }\n if (!c)\n for (; h--; h)\n r.unshift(\"..\");\n c && r[0] !== \"\" && (!r[0] || !Q(r[0])) && r.unshift(\"\");\n var g = r.join(\"/\");\n return o && g.substr(-1) !== \"/\" && (g += \"/\"), g;\n}\nconst re = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: ne\n}, Symbol.toStringTag, { value: \"Module\" })), se = /* @__PURE__ */ Ot(re);\nvar Pt = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n} : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n};\nfunction Y(e, t) {\n if (e === t)\n return !0;\n if (e == null || t == null)\n return !1;\n if (Array.isArray(e))\n return Array.isArray(t) && e.length === t.length && e.every(function(i, h) {\n return Y(i, t[h]);\n });\n var n = typeof e == \"undefined\" ? \"undefined\" : Pt(e), r = typeof t == \"undefined\" ? \"undefined\" : Pt(t);\n if (n !== r)\n return !1;\n if (n === \"object\") {\n var s = e.valueOf(), a = t.valueOf();\n if (s !== e || a !== t)\n return Y(s, a);\n var c = Object.keys(e), o = Object.keys(t);\n return c.length !== o.length ? !1 : c.every(function(i) {\n return Y(e[i], t[i]);\n });\n }\n return !1;\n}\nconst ae = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: Y\n}, Symbol.toStringTag, { value: \"Module\" })), ie = /* @__PURE__ */ Ot(ae);\nvar O = {}, R, _t, ct, F;\nO.__esModule = !0;\nF = O.addLeadingSlash = function(t) {\n return t.charAt(0) === \"/\" ? t : \"/\" + t;\n};\nct = O.stripLeadingSlash = function(t) {\n return t.charAt(0) === \"/\" ? t.substr(1) : t;\n};\nvar oe = O.hasBasename = function(t, n) {\n return new RegExp(\"^\" + n + \"(\\\\/|\\\\?|#|$)\", \"i\").test(t);\n};\nO.stripBasename = function(t, n) {\n return oe(t, n) ? t.substr(n.length) : t;\n};\n_t = O.stripTrailingSlash = function(t) {\n return t.charAt(t.length - 1) === \"/\" ? t.slice(0, -1) : t;\n};\nO.parsePath = function(t) {\n var n = t || \"/\", r = \"\", s = \"\", a = n.indexOf(\"#\");\n a !== -1 && (s = n.substr(a), n = n.substr(0, a));\n var c = n.indexOf(\"?\");\n return c !== -1 && (r = n.substr(c), n = n.substr(0, c)), {\n pathname: n,\n search: r === \"?\" ? \"\" : r,\n hash: s === \"#\" ? \"\" : s\n };\n};\nR = O.createPath = function(t) {\n var n = t.pathname, r = t.search, s = t.hash, a = n || \"/\";\n return r && r !== \"?\" && (a += r.charAt(0) === \"?\" ? r : \"?\" + r), s && s !== \"#\" && (a += s.charAt(0) === \"#\" ? s : \"#\" + s), a;\n};\nvar j, $t = j = void 0, ce = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n)\n Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n}, he = se, ue = Ht(he), le = ie, fe = Ht(le), de = O;\nfunction Ht(e) {\n return e && e.__esModule ? e : { default: e };\n}\nj = function(t, n, r, s) {\n var a = void 0;\n typeof t == \"string\" ? (a = (0, de.parsePath)(t), a.state = n) : (a = ce({}, t), a.pathname === void 0 && (a.pathname = \"\"), a.search ? a.search.charAt(0) !== \"?\" && (a.search = \"?\" + a.search) : a.search = \"\", a.hash ? a.hash.charAt(0) !== \"#\" && (a.hash = \"#\" + a.hash) : a.hash = \"\", n !== void 0 && a.state === void 0 && (a.state = n));\n try {\n a.pathname = decodeURI(a.pathname);\n } catch (c) {\n throw c instanceof URIError ? new URIError('Pathname \"' + a.pathname + '\" could not be decoded. This is likely caused by an invalid percent-encoding.') : c;\n }\n return r && (a.key = r), s ? a.pathname ? a.pathname.charAt(0) !== \"/\" && (a.pathname = (0, ue.default)(a.pathname, s.pathname)) : a.pathname = s.pathname : a.pathname || (a.pathname = \"/\"), a;\n};\n$t = function(t, n) {\n return t.pathname === n.pathname && t.search === n.search && t.hash === n.hash && t.key === n.key && (0, fe.default)(t.state, n.state);\n};\nconst Lt = \"/\", Dt = \"./\", pe = 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), Mt = (e, t) => {\n const n = [];\n let r = 0, s = 0, a = \"\";\n const c = t && t.delimiter || Lt, o = t && t.delimiters || Dt;\n let i = !1, h;\n for (; (h = pe.exec(e)) !== null; ) {\n const u = h[0], f = h[1], g = h.index;\n if (a += e.slice(s, g), s = g + u.length, f) {\n a += f[1], i = !0;\n continue;\n }\n let P = \"\";\n const I = e[s], k = h[2], w = h[3], C = h[4], A = h[5];\n if (!i && a.length) {\n const U = a.length - 1;\n o.indexOf(a[U]) > -1 && (P = a[U], a = a.slice(0, U));\n }\n a && (n.push(a), a = \"\", i = !1);\n const N = P !== \"\" && I !== void 0 && I !== P, et = A === \"+\" || A === \"*\", nt = A === \"?\" || A === \"*\", V = P || c, _ = w || C;\n n.push({\n delimiter: V,\n optional: nt,\n repeat: et,\n partial: N,\n name: k || r++,\n // tslint:disable-line:no-increment-decrement\n prefix: P,\n pattern: _ ? ye(_) : \"[^\" + q(V) + \"]+?\"\n });\n }\n return (a || s < e.length) && n.push(a + e.substr(s)), n;\n}, me = (e, t) => ge(Mt(e, t)), ge = (e) => {\n const t = new Array(e.length);\n for (let n = 0; n < e.length; n++)\n typeof e[n] == \"object\" && (t[n] = new RegExp(\"^(?:\" + e[n].pattern + \")$\"));\n return function(n, r) {\n let s = \"\";\n const a = r && r.encode || encodeURIComponent;\n for (let c = 0; c < e.length; c++) {\n const o = e[c];\n if (typeof o == \"string\") {\n s += o;\n continue;\n }\n const i = n ? n[o.name] : void 0;\n let h;\n if (Array.isArray(i)) {\n if (!o.repeat)\n throw new TypeError(\n 'Expected \"' + o.name + '\" to not repeat, but got array'\n );\n if (i.length === 0) {\n if (o.optional)\n continue;\n throw new TypeError('Expected \"' + o.name + '\" to not be empty');\n }\n for (let u = 0; u < i.length; u++) {\n if (h = a(i[u], o), !t[c].test(h))\n throw new TypeError(\n 'Expected all \"' + o.name + '\" to match \"' + o.pattern + '\"'\n );\n s += (u === 0 ? o.prefix : o.delimiter) + h;\n }\n continue;\n }\n if (typeof i == \"string\" || typeof i == \"number\" || typeof i == \"boolean\") {\n if (h = a(String(i), o), !t[c].test(h))\n throw new TypeError(\n 'Expected \"' + o.name + '\" to match \"' + o.pattern + '\", but got \"' + h + '\"'\n );\n s += o.prefix + h;\n continue;\n }\n if (o.optional) {\n o.partial && (s += o.prefix);\n continue;\n }\n throw new TypeError(\n 'Expected \"' + o.name + '\" to be ' + (o.repeat ? \"an array\" : \"a string\")\n );\n }\n return s;\n };\n}, q = (e) => e.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\"), ye = (e) => e.replace(/([=!:$/()])/g, \"\\\\$1\"), jt = (e) => e && e.sensitive ? \"\" : \"i\", ve = (e, t) => {\n if (!t)\n return e;\n const n = e.source.match(/\\((?!\\?)/g);\n if (n)\n for (let r = 0; r < n.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 e;\n}, Pe = (e, t, n) => {\n const r = [];\n for (let s = 0; s < e.length; s++)\n r.push(It(e[s], t, n).source);\n return new RegExp(\"(?:\" + r.join(\"|\") + \")\", jt(n));\n}, we = (e, t, n) => xe(Mt(e, n), t, n), xe = (e, t, n) => {\n n = n || {};\n const r = n.strict, s = n.end !== !1, a = q(n.delimiter || Lt), c = n.delimiters || Dt, o = [].concat(n.endsWith || []).map(q).concat(\"$\").join(\"|\");\n let i = \"\", h = !1;\n for (let u = 0; u < e.length; u++) {\n const f = e[u];\n if (typeof f == \"string\")\n i += q(f), h = u === e.length - 1 && c.indexOf(f[f.length - 1]) > -1;\n else {\n const g = q(f.prefix), P = f.repeat ? \"(?:\" + f.pattern + \")(?:\" + g + \"(?:\" + f.pattern + \"))*\" : f.pattern;\n t && t.push(f), f.optional ? f.partial ? i += g + \"(\" + P + \")?\" : i += \"(?:\" + g + \"(\" + P + \"))?\" : i += g + \"(\" + P + \")\";\n }\n }\n return s ? (r || (i += \"(?:\" + a + \")?\"), i += o === \"$\" ? \"$\" : \"(?=\" + o + \")\") : (r || (i += \"(?:\" + a + \"(?=\" + o + \"))?\"), h || (i += \"(?=\" + a + \"|\" + o + \")\")), new RegExp(\"^\" + i, jt(n));\n}, It = (e, t, n) => e instanceof RegExp ? ve(e, t || []) : Array.isArray(e) ? Pe(e, t, n) : we(e, t, n), tt = It;\nvar S = /* @__PURE__ */ ((e) => (e.scopedHash = \"scopedHash\", e.hash = \"hash\", e.browser = \"browser\", e.memory = \"memory\", e))(S || {}), D = /* @__PURE__ */ ((e) => (e.storage = \"storage\", e.path = \"path\", e.initialPath = \"initial\", e))(D || {});\nconst X = (e, t) => {\n const n = [], s = tt(t, n).exec(e);\n if (!s)\n return {};\n const [a, ...c] = s;\n return n.reduce((i, h, u) => (i[h.name] = c[u], i), {});\n}, be = (e) => Object.keys(e).reduce((t, n) => {\n const r = typeof e[n] == \"string\" ? e[n].replace(\"&\", \"%20\") : e[n];\n let s = `${n}=${r}`;\n return t.length > 1 && (s = \"&\".concat(s)), t.concat(s);\n}, \"?\"), it = (e, t) => {\n const n = t.find((r) => r.name === e);\n if (!n) {\n process.env.NODE_ENV !== \"production\" && Et.warn(`Unable to find route with specified name: ${e}`);\n return;\n }\n return n;\n}, Ct = (e) => e.length ? e.slice(1).split(\"&\").map((t) => t.split(\"=\")).reduce((t, n) => {\n const [r, s] = n.map(encodeURI).map(decodeURIComponent);\n return st(L({}, t), { [r]: decodeURIComponent(s).replace(\"%20\", \"&\") });\n}, {}) : {}, Se = (e, t) => {\n const n = t.map((r) => J(e, r)).reduce(\n (r, s) => {\n if (s === null)\n return r;\n const a = s.split(\"?\")[1];\n let c = 0;\n if (a) {\n const o = Ct(`?${a}`);\n c = Object.keys(o).length;\n }\n return !r.path || r.count && c < r.count ? {\n count: c,\n path: s\n } : r;\n },\n { count: void 0, path: void 0 }\n );\n return n ? n.path : t[0];\n}, J = (e, t) => {\n const n = B(e);\n if (Array.isArray(t)) {\n const i = Se(n, t);\n if (!i)\n throw new Error(\"Unable to match path.\");\n return i;\n }\n const r = me(t);\n let s = t;\n try {\n s = r(n);\n } catch (i) {\n return null;\n }\n const a = [];\n tt(t, a);\n const c = Object.keys(n).reduce((i, h) => (a.find((f) => f.name === h) || i.push(h), i), []), o = {};\n return c.forEach((i) => o[i] = n[i]), Object.keys(o).forEach((i) => o[i] === null && delete o[i]), Object.keys(o).length > 0 ? `${s}${be(o)}` : s;\n}, M = (e, t) => {\n let n = e;\n return n.indexOf(\"?\") > -1 && (n = n.substring(0, n.indexOf(\"?\"))), n.indexOf(\";\") > -1 && (n = n.substring(0, n.indexOf(\";\"))), n === \"\" && (n = \"/\"), t.reduce((r, s) => {\n if (Array.isArray(s.path))\n return s.path.reduce((h, u) => tt(u, []).exec(n || \"\") && !h ? n : h, void 0) && !r ? s : r;\n if (!s.path)\n return r;\n const a = [];\n return tt(s.path, a).exec(n || \"\") && !r ? s : r;\n }, void 0);\n}, Ee = (e) => {\n let t = e.get(\"historyTransitionManager\");\n return t || (t = Tt(), e.parent && e.parent.register(\"historyTransitionManager\", t)), t;\n}, W = (e, t = null) => e ? j(t ? t(e) : e) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, ze = (e, t) => {\n const n = `humany-${t}=([^&?]+)&?`, r = new RegExp(n, \"i\"), s = e.match(r);\n return s && s[1] || \"/\";\n}, Oe = (e, t) => {\n if (B(e), B(t), Object.keys(e).length !== Object.keys(t).length)\n return !1;\n if (Object.keys(e).length === 0 && Object.keys(t).length === 0)\n return !0;\n let n = !0;\n return Object.keys(t).forEach((r) => {\n t[r] !== e[r] && (n = !1);\n }), n;\n}, Re = (e) => {\n if (typeof e.mode == \"string\") {\n if (e.mode === S.memory)\n return !0;\n } else if (e.mode[1]) {\n const [t, { sticky: n }] = e.mode;\n if (t === S.memory)\n return typeof n == \"undefined\" ? !0 : n;\n }\n return !1;\n}, ot = (e) => {\n const { views: t } = e.get(\"$settings\"), n = Object.keys(t).reduce((r, s) => typeof t[s].path == \"undefined\" ? s : r, void 0);\n return n ? {\n name: n,\n params: {}\n } : null;\n}, wt = \"hashchange\", Te = {\n hashbang: {\n encodePath: (e) => e.charAt(0) === \"!\" ? e : \"!/\" + ct(e),\n decodePath: (e) => e.charAt(0) === \"!\" ? e.substr(1) : e\n },\n noslash: {\n encodePath: ct,\n decodePath: F\n },\n slash: {\n encodePath: F,\n decodePath: F\n }\n}, T = () => {\n const e = window.location.href, t = e.indexOf(\"#\");\n return t === -1 ? \"\" : e.substring(t + 1);\n}, xt = (e) => window.location.hash = e, bt = (e) => {\n const t = window.location.href.indexOf(\"#\");\n window.location.replace(\n window.location.href.slice(0, t >= 0 ? t : 0) + \"#\" + e\n );\n}, Z = (e = \"\") => {\n const t = e.replace(\";\", \"?\"), n = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return n.forEach(({ to: s, from: a }) => {\n r = r.replace(a, s);\n }), r;\n}, Ae = (e = {}) => {\n const t = window.history, { getUserConfirmation: n = At, hashType: r = \"slash\" } = e, s = e.basename ? _t(F(e.basename)) : \"\", { encodePath: a } = Te[r], c = () => {\n const l = T(), m = u(l);\n return W(m, Z);\n }, o = e.transitionManager || Tt(), i = (l) => {\n Object.assign(E, l), E.length = t.length, o.notifyListeners(E.location, E.action, e.widgetName);\n };\n let h = !1;\n const u = (l) => {\n const m = (y) => {\n function x(b, $) {\n const v = {};\n let H;\n for (; H = $.exec(b); )\n v[H[1]] = H[2];\n return v;\n }\n return x(y, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, p = \"humany-\" + e.widgetName;\n return m(l)[p];\n }, f = () => {\n const l = c(), m = E.location;\n !h && $t(m, l) || g(l);\n }, g = (l) => {\n if (h)\n h = !1, i();\n else {\n const m = \"POP\";\n o.confirmTransitionTo(\n l,\n m,\n n,\n (p) => {\n p ? i({ action: m, location: l }) : P(l);\n }\n );\n }\n }, P = (l) => {\n const m = E.location;\n let p = w.lastIndexOf(R(m));\n p === -1 && (p = 0);\n let d = w.lastIndexOf(R(l));\n d === -1 && (d = 0);\n const y = p - d;\n y && (h = !0, _(y));\n }, I = T(), k = a(I);\n I !== k && bt(k);\n let w = [];\n const C = c();\n C.pathname !== null && w.push(R(C));\n const A = (l = \"\") => {\n const m = [\n { from: /\\?+/gi, to: \";\" },\n { from: /\\&amp;+/gi, to: \";\" },\n { from: /\\&+/gi, to: \";\" },\n { from: /=+/gi, to: \":\" }\n ];\n let p = l;\n return m.forEach(({ to: d, from: y }) => {\n p = p.replace(y, d);\n }), p;\n }, N = (l, m, p) => {\n let d = \"\", y = !1;\n return l.split(\"&\").forEach((b) => {\n const $ = b.split(\"=\"), v = $[0], H = $[1];\n if (v === m) {\n if (y = !0, p === null)\n return;\n d.length > 0 && (d += \"&\"), typeof p != \"undefined\" ? d += v + \"=\" + p : d += v;\n } else\n v && (d.length > 0 && (d += \"&\"), d += v + \"=\" + H);\n }), !y && p !== null && (d.length > 0 && (d += \"&\"), typeof p != \"undefined\" ? d += m + \"=\" + p : d += m), d;\n }, et = (l) => {\n const m = l.pathname, p = A(l.search), d = m + (p ? `;${p}` : \"\"), x = `humany-${e.widgetName}`, b = T();\n return `#${N(b, x, d).replace(\";;\", \";\")}`;\n }, nt = (l, m) => {\n const p = \"PUSH\", d = W(l, Z), y = d.pathname, x = A(d.search), b = y + (x ? `${x}` : \"\"), v = `humany-${e.widgetName}`, H = T(), Ut = N(H, v, b);\n o.confirmTransitionTo(d, p, n, (qt) => {\n if (!qt)\n return;\n const Wt = R(d), ht = a(Ut);\n if (T() !== ht) {\n xt(ht);\n const ut = w.lastIndexOf(R(E.location)), lt = w.slice(0, ut === -1 ? 0 : ut + 1);\n lt.push(Wt), w = lt, i({ action: p, location: d });\n } else\n i();\n });\n }, V = (l, m) => {\n const p = \"REPLACE\", d = W(l, Z);\n o.confirmTransitionTo(d, p, n, (y) => {\n if (!y)\n return;\n const x = R(d), b = a(s + x);\n T() !== b && bt(b);\n const v = w.indexOf(R(E.location));\n v !== -1 && (w[v] = x), i({ action: p, location: d });\n });\n }, _ = (l) => {\n t.go(l);\n }, U = () => _(-1), Nt = () => _(1);\n let rt = 0;\n const z = (l) => {\n rt += l, rt === 1 ? window.addEventListener(wt, f) : rt === 0 && window.removeEventListener(wt, f);\n };\n let G = !1;\n const E = {\n createHref: et,\n createLocation: W,\n push: nt,\n replace: V,\n go: _,\n goBack: U,\n goForward: Nt,\n block: (l = !1) => {\n const m = o.setPrompt(l);\n return G || (z(1), G = !0), () => (G && (G = !1, z(-1)), m());\n },\n listen: (l) => {\n const m = o.appendListener(l);\n return z(1), () => {\n z(-1), m();\n };\n },\n stop: () => {\n const l = T(), m = N(l, `humany-${e.widgetName}`, null), p = a(m);\n xt(p);\n },\n length: t.length,\n action: \"POP\",\n location: C\n };\n return E;\n}, _e = Ae, $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n decodeSearch: Z,\n default: _e,\n getHashPath: T\n}, Symbol.toStringTag, { value: \"Module\" })), He = (e, t) => {\n const n = (a) => {\n function c(o, i) {\n const h = {};\n let u;\n for (; u = i.exec(o); )\n h[u[1]] = u[2];\n return h;\n }\n return c(a, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, r = `humany-${t}`;\n return n(e)[r];\n}, Le = () => {\n const e = window.location.href, t = e.indexOf(\"#\");\n return t === -1 ? \"\" : e.substring(t + 1);\n}, De = (e = \"\") => {\n const t = e.replace(\";\", \"?\"), n = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return n.forEach(({ to: s, from: a }) => {\n r = r.replace(a, s);\n }), r;\n}, Me = (e, t = null) => e ? j(t ? t(e) : e) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, je = (e) => {\n const t = Le(), n = He(t, e);\n return Me(n, De);\n}, Ie = (e) => {\n const { name: t } = e.get(\"$widget\");\n return !!je(t).pathname;\n}, Ge = Kt((e) => {\n e.createCommand(\"routing\", (t) => (n) => {\n const r = {\n mode: n.mode\n };\n n.basePath && (r.basePath = n.basePath), t.container.register(\"routingSettings\", r);\n });\n}), St = \"routeData\";\nclass Ke {\n constructor(t, n) {\n this.container = t, this.steps = [], this.historyListenSubscription = () => {\n }, this.sticky = !1, this.storageWriter = null, this.widget = t.get(\"$widget\");\n const a = n, { routes: r } = a, s = mt(a, [\"routes\"]);\n this.settings = L(L({}, s), t.get(\"routingSettings\")), this.sticky = Re(this.settings), this.storageMedium = this.sticky ? yt.Local : yt.Session, Qt(t, St, Xt.Necessary, {\n medium: this.storageMedium\n }).then((c) => this.storageWriter = c), this.routes = r;\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 (n, r, s) => this.handleLocationChange(n, s)\n );\n });\n }\n setMatch(t) {\n if (this.match = t, this.location) {\n const n = this.getRouteData(), r = {\n routeData: n,\n location: this.location\n }, s = this.steps[0], a = n.name === (s == null ? void 0 : s.routeData.name), c = gt(\n n.params,\n (s == null ? void 0 : s.routeData.params) || {}\n );\n (!a || !c) && (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, n = {}) {\n const r = it(t, this.routes);\n if (!r || !this.history)\n throw `No route found for ${t}`;\n const s = J(n, r.path);\n if (!s)\n throw `Unable to generate path for \"${t}\".`;\n const a = W(s, this.settings.decodeSearch);\n let c = this.history.createHref(a);\n const { mode: o, basePath: i } = this.settings;\n return o === \"browser\" && i && (c = c.replace(i, \"\")), c.charAt(0) !== \"/\" && (c = `/${c}`), c;\n }\n /**\n * Navigate to path\n * @param routeName Route to navigate to\n * @param params Optional: route params\n */\n navigate(t, n = {}) {\n const r = it(t, this.routes);\n if (!r || !this.history)\n return;\n const s = J(n, r.path);\n if (!s)\n return;\n const a = this.getRouteData(), c = a && a.name === t && Oe(a.params, n);\n if (this.steps[0] && c)\n return;\n const { decodeSearch: i } = this.settings, h = i ? i(s) : s;\n this.widget.events.dispatch(\"router:navigate\", {\n decodedPath: h\n }), h.charAt(0) !== \"/\" ? this.history.push(`/${h}`) : this.history.push(h);\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), n = this.getRouteData(), r = n.name === t.name, s = gt(n.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 n = this.getRouteData(this.settings.initialPath);\n n && n.name && (this.navigate(n.name, n.params), this.steps = []);\n } else {\n const n = t >= this.steps.length ? this.steps.length - 1 : t, { routeData: r } = this.steps[n];\n this.steps = [...this.steps.slice(n + 1)], this.navigate(r.name, Vt(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 = this.routes.find((r) => r.name === t);\n return n || (this.routes.length > 0 ? this.routes[0] : (process.env.NODE_ENV !== \"production\" && Et.warn(\"Unable to get initial route as no routes are defined.\"), null));\n }\n getRouteData(t) {\n const n = ot(this.container);\n if (t) {\n const r = M(t, this.routes);\n return r ? {\n params: B(X(t, r.path)),\n name: r.name\n } : n || {\n name: \"\",\n params: {}\n };\n }\n if (this.location) {\n const { pathname: r, search: s } = this.location;\n if (this.currentRoute = this.currentRoute || M(r, this.routes), this.currentRoute) {\n const { path: a, name: c } = this.currentRoute;\n this.match || (this.match = {\n params: X(r, a),\n isExact: !0,\n path: a,\n url: r\n });\n const o = B(L(L({}, this.match.params), s.length > 0 && Ct(s)));\n return {\n name: c,\n params: o\n };\n }\n }\n return n || {\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 Yt(this.container, St, this.storageMedium).then(\n (t) => {\n if (!this.location || !this.history)\n return;\n const { initialPath: n, mode: r } = this.settings;\n switch ((() => {\n const a = Ie(this.container);\n return r === S.browser || a ? D.path : r === S.memory && t ? D.storage : D.initialPath;\n })()) {\n case D.initialPath: {\n const a = this.getRouteData(n);\n return a && a.name ? this.navigate(a.name, a.params) : void 0;\n }\n case D.path: {\n const { pathname: a } = this.location;\n if (this.currentRoute = M(a, this.routes), this.currentRoute) {\n const { path: o } = this.currentRoute;\n return this.setMatch({\n params: X(a, o),\n isExact: !0,\n path: o,\n url: a\n });\n }\n const c = ot(this.container);\n return c ? this.setMatch({\n params: {},\n isExact: !0,\n path: c.name,\n url: a\n }) : void 0;\n }\n case D.storage: {\n const { pathname: a } = this.location;\n this.currentRoute = M(a, this.routes);\n const { name: c = \"\", params: o = {} } = t || {}, i = it(c, this.routes);\n if (i) {\n const h = J(o, i.path);\n if (h)\n return this.history.push(h), this.location = st(L({}, this.location), { pathname: h }), this.currentRoute = M(h, this.routes), this.setMatch({\n params: o,\n isExact: !0,\n path: i.path,\n url: h\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 === S.scopedHash && this.history.stop(), this.steps = [], this.storageWriter) ? this.storageWriter() : Promise.resolve();\n }\n handleLocationChange(t, n) {\n const { pathname: r } = t, { mode: s } = this.settings;\n if (r.indexOf(\"?\") > -1 || r.indexOf(\";\") > -1 || s === S.scopedHash && n !== this.widget.name)\n return;\n this.location = t, this.currentRoute = M(r, this.routes);\n const a = ot(this.container);\n if (this.currentRoute) {\n const { path: c } = this.currentRoute;\n this.setMatch({\n params: X(r, c),\n isExact: !0,\n path: c,\n url: r\n });\n } else\n a && this.setMatch({\n params: {},\n isExact: !0,\n path: a.name,\n url: r\n });\n }\n createHistory() {\n return new Promise((t) => {\n const { mode: n, basePath: r } = this.settings;\n if (n === S.scopedHash) {\n const s = this.widget.name, a = Ee(this.container);\n return Promise.resolve().then(() => $e).then((c) => {\n const o = c.default({\n widgetName: s,\n transitionManager: a,\n hashType: \"noslash\"\n });\n return t(o);\n });\n }\n if (n === S.memory)\n return t(zt());\n if (n === S.browser)\n return t(Gt({ basename: r }));\n throw \"RoutingService: History could not be created.\";\n });\n }\n}\nexport {\n S as HistoryMode,\n Ke as RoutingService,\n _e as createHashHistory,\n je as getScopedHashDOMLocation,\n ze as getSpecificWidgetPath,\n X as matchParams,\n Ie as onWidgetUrl,\n Ge as routingConfigurationApi\n};\n//# sourceMappingURL=index.js.map\n","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 triggerTabHandler = (triggerDOMElement: HTMLElement) => {\r\n const toggleTabbing = (element: HTMLElement, tabbing: boolean) => {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n if (tabbing) {\r\n element.classList.add('ace-tabbing');\r\n } else {\r\n element.classList.remove('ace-tabbing');\r\n }\r\n };\r\n\r\n const handleKeydown = (e: KeyboardEvent) => {\r\n if (e.key === 'Tab') {\r\n toggleTabbing(triggerDOMElement, true);\r\n } else if (\r\n !(\r\n e.key === 'Enter' &&\r\n document.activeElement &&\r\n document.activeElement.classList.contains('ace-widget-trigger')\r\n )\r\n ) {\r\n toggleTabbing(triggerDOMElement, false);\r\n }\r\n };\r\n\r\n const handleClick = (_e: MouseEvent) => {\r\n if (\r\n document.activeElement &&\r\n document.activeElement.classList.contains('ace-widget-trigger') &&\r\n document.activeElement.classList.contains('ace-tabbing')\r\n ) {\r\n return;\r\n }\r\n toggleTabbing(triggerDOMElement, false);\r\n };\r\n\r\n document.addEventListener('keydown', handleKeydown);\r\n document.addEventListener('click', handleClick);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', handleKeydown);\r\n document.removeEventListener('click', handleClick);\r\n };\r\n};\r\n\r\nexport type TriggerElementOptions = {\r\n symbol?: { type: string; content: string };\r\n widgetName: string;\r\n label?: string;\r\n ariaLabel?: string;\r\n tooltip?: string;\r\n};\r\n\r\nexport function createTriggerElement(\r\n element: HTMLElement,\r\n options: TriggerElementOptions\r\n) {\r\n const {\r\n // symbol,\r\n widgetName,\r\n label = '',\r\n ariaLabel = '',\r\n tooltip = '',\r\n } = options;\r\n\r\n element.classList.add('ace-widget-trigger');\r\n element.classList.add(`ace-widget_${widgetName}`);\r\n\r\n if (label.length) {\r\n element.classList.add('trigger-has-text');\r\n }\r\n\r\n if (ariaLabel.length && !element.getAttribute('aria-label')) {\r\n element.setAttribute('aria-label', ariaLabel);\r\n }\r\n\r\n if (ariaLabel.length && !element.getAttribute('tabindex')) {\r\n element.setAttribute('tabindex', '0');\r\n }\r\n\r\n if (tooltip.length && !element.getAttribute('title')) {\r\n element.setAttribute('title', tooltip);\r\n }\r\n\r\n return triggerTabHandler(element);\r\n}\r\n\r\nexport function setInactive(\r\n elements: HTMLElement | HTMLElement[],\r\n title?: string\r\n) {\r\n if (elements instanceof HTMLElement) {\r\n if (title) {\r\n elements.setAttribute('title', title);\r\n }\r\n elements.classList.remove('ace-trigger-active');\r\n elements.classList.remove('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n if (title) {\r\n e.setAttribute('title', title);\r\n }\r\n e.classList.remove('ace-trigger-active');\r\n e.classList.remove('ace-trigger-loading');\r\n });\r\n }\r\n}\r\nexport function setLoading(elements: HTMLElement | HTMLElement[]) {\r\n if (elements instanceof HTMLElement) {\r\n elements.classList.remove('ace-trigger-active');\r\n elements.classList.add('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n e.classList.remove('ace-trigger-active');\r\n e.classList.add('ace-trigger-loading');\r\n });\r\n }\r\n}\r\nexport function setActive(\r\n elements: HTMLElement | HTMLElement[],\r\n title?: string\r\n) {\r\n if (elements instanceof HTMLElement) {\r\n if (title) {\r\n elements.setAttribute('title', title);\r\n }\r\n elements.classList.add('ace-trigger-active');\r\n elements.classList.remove('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n if (title) {\r\n e.setAttribute('title', title);\r\n }\r\n e.classList.add('ace-trigger-active');\r\n e.classList.remove('ace-trigger-loading');\r\n });\r\n }\r\n}\r\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { LitElement, html, css, nothing } from 'lit';\r\nimport { property, state } from 'lit/decorators.js';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\n\r\ntype Symbol = {\r\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\r\n content: string;\r\n};\r\n\r\n// @customElement('ace-widget-trigger')\r\nexport class TriggerComponent extends LitElement {\r\n static override styles = [\r\n css`\r\n :host {\r\n --voca-rem-multiplier: 0.625;\r\n display: block;\r\n box-sizing: border-box;\r\n }\r\n\r\n .trigger {\r\n position: fixed;\r\n transform: scale(0);\r\n box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;\r\n bottom: 20px;\r\n right: 20px;\r\n z-index: 5;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n line-height: 55px;\r\n height: 55px;\r\n width: 55px;\r\n border-radius: 55px;\r\n cursor: pointer;\r\n background-color: #990ae3;\r\n font-family: Lato;\r\n text-decoration: none;\r\n border: 3px dashed transparent;\r\n box-sizing: border-box;\r\n transition: transform 200ms ease-out;\r\n }\r\n .trigger:hover {\r\n transform: scale(1.1) !important;\r\n }\r\n .trigger.rendered {\r\n transform: scale(1);\r\n }\r\n .trigger.active .trigger-icon {\r\n opacity: 0;\r\n transform: rotate(-180deg) scale(0);\r\n }\r\n .trigger.active .trigger-close {\r\n opacity: 1;\r\n transform: rotate(0deg) scale(1);\r\n }\r\n\r\n .trigger-icon {\r\n display: inline-block;\r\n line-height: inherit;\r\n text-align: center;\r\n opacity: 1;\r\n transform: rotate(0deg) scale(1);\r\n transition:\r\n opacity 200ms ease-out,\r\n transform 200ms ease-out;\r\n color: #ffffff;\r\n }\r\n .trigger-close {\r\n opacity: 0;\r\n transition: transform 200ms ease-out;\r\n transform: rotate(180deg) scale(0);\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n fill: #ffffff;\r\n }\r\n `,\r\n ];\r\n\r\n @property({ attribute: false })\r\n symbol?: Symbol;\r\n\r\n @state()\r\n active: boolean = false;\r\n\r\n @state()\r\n loaded: boolean = false;\r\n\r\n @state()\r\n icon: any;\r\n\r\n override async connectedCallback() {\r\n super.connectedCallback();\r\n\r\n this.icon = await this._renderSymbol(this.symbol);\r\n this.loaded = true;\r\n }\r\n\r\n _toggleActive() {\r\n this.active = !this.active;\r\n }\r\n\r\n async _renderSymbol(symbol?: Symbol) {\r\n const importIcon = async (iconName: string) => {\r\n const icon = await import('@teliads/icons').then((m) => {\r\n return m[iconName];\r\n });\r\n return icon;\r\n };\r\n\r\n if (symbol) {\r\n const { type, content } = symbol;\r\n switch (type) {\r\n case 'Telia': {\r\n const icon: any = await importIcon(content);\r\n if (icon) {\r\n return html`<telia-icon\r\n class=\"trigger-icon\"\r\n svg=${icon.svg}\r\n size=\"lg\"\r\n ></telia-icon>`;\r\n }\r\n return nothing;\r\n }\r\n case 'FontAwesome':\r\n return html`<i class=\"trigger-fa-icon fa fa-${content}\"></i>`;\r\n case 'Uri':\r\n return html`<i\r\n class=\"trigger-custom-icon\"\r\n style=\"background: url(${content}) no-repeat center center;background-size: contain;\"\r\n ></i>`;\r\n default:\r\n return nothing;\r\n }\r\n }\r\n }\r\n\r\n override render() {\r\n return html`<button\r\n class=${classMap({\r\n trigger: true,\r\n active: this.active,\r\n rendered: this.loaded,\r\n })}\r\n @click=${this._toggleActive}\r\n >\r\n ${this.icon}\r\n <span class=\"trigger-close\">\r\n <svg\r\n width=\"18\"\r\n height=\"9\"\r\n viewBox=\"0 0 18 9\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\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\"\r\n fill=\"white\"\r\n />\r\n </svg>\r\n </span>\r\n <span class=\"trigger-loader\">\r\n <svg viewBox=\"25 25 50 50\">\r\n <circle\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke=\"#000\"\r\n stroke-width=\"2\"\r\n stroke-miterlimit=\"10\"\r\n />\r\n </svg>\r\n </span>\r\n </button>`;\r\n }\r\n}\r\n","import { ViewOutletOptions } from './view-outlet';\r\nimport { TriggerComponent } from './trigger-component';\r\n\r\nenum ProvidedElements {\r\n None = 'none',\r\n WidgetDOM = 'widgetDOM',\r\n TriggerDOM = 'triggerDOM',\r\n Both = 'both',\r\n}\r\n\r\nexport enum TriggerType {\r\n Inline = 'inline',\r\n Link = 'link',\r\n Badge = 'badge',\r\n Unsupported = 'unsupported',\r\n}\r\n\r\nexport const determineProvidedElements = (\r\n widgetDOMElement?: HTMLElement,\r\n triggerDOMElement?: HTMLElement\r\n): ProvidedElements => {\r\n if (widgetDOMElement && triggerDOMElement) {\r\n return ProvidedElements.Both;\r\n }\r\n if (widgetDOMElement) {\r\n return ProvidedElements.WidgetDOM;\r\n }\r\n if (triggerDOMElement) {\r\n return ProvidedElements.TriggerDOM;\r\n }\r\n return ProvidedElements.None;\r\n};\r\n\r\nexport const determineTriggerType = (triggerDefinition?: any) => {\r\n if (!triggerDefinition) {\r\n return TriggerType.Inline;\r\n }\r\n if (typeof triggerDefinition === 'boolean' && triggerDefinition) {\r\n return TriggerType.Link;\r\n }\r\n if (\r\n typeof triggerDefinition === 'object' &&\r\n !Array.isArray(triggerDefinition)\r\n ) {\r\n return TriggerType.Badge;\r\n }\r\n return TriggerType.Unsupported;\r\n};\r\n\r\ntype PrepareDOMElementsOutput = ViewOutletOptions & {\r\n callback?: () => void;\r\n};\r\n\r\nexport const prepareDOMElements = async (\r\n name: string,\r\n providedWidgetElement?: HTMLElement,\r\n providedTriggerElement?: HTMLElement,\r\n triggerDefinition?: any,\r\n waitWithReplace: boolean = false\r\n): Promise<PrepareDOMElementsOutput> => {\r\n const providedElements = determineProvidedElements(\r\n providedWidgetElement,\r\n providedTriggerElement\r\n );\r\n const triggerType = determineTriggerType(triggerDefinition);\r\n\r\n const cachedOriginals = {\r\n widgetDOMElement: providedWidgetElement\r\n ? providedWidgetElement.cloneNode(true)\r\n : undefined,\r\n triggerDOMElement: providedTriggerElement\r\n ? providedTriggerElement.cloneNode(true)\r\n : undefined,\r\n };\r\n\r\n const output: PrepareDOMElementsOutput = {\r\n triggerType,\r\n cachedOriginals,\r\n widgetDOMElement: document.createElement('div'),\r\n };\r\n\r\n switch (providedElements) {\r\n case ProvidedElements.Both: {\r\n output.widgetDOMElement =\r\n providedWidgetElement || document.createElement('div');\r\n if (triggerType !== TriggerType.Inline) {\r\n output.triggerDOMElement = providedTriggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.WidgetDOM: {\r\n output.widgetDOMElement =\r\n providedWidgetElement || document.createElement('div');\r\n if (triggerType !== TriggerType.Inline) {\r\n const triggerElement = document.body.appendChild(\r\n document.createElement('a')\r\n );\r\n if (triggerType === TriggerType.Link) {\r\n triggerElement.innerText = name;\r\n }\r\n output.triggerDOMElement = triggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.TriggerDOM: {\r\n const widgetElement = document.createElement('div');\r\n output.widgetDOMElement = widgetElement;\r\n if (triggerType === TriggerType.Inline) {\r\n // replace with widgetDOMElement in the DOM\r\n widgetElement.id = providedTriggerElement?.id || '';\r\n if (waitWithReplace) {\r\n widgetElement.style.display = 'none';\r\n providedTriggerElement?.parentNode?.appendChild(widgetElement);\r\n\r\n output.callback = () => {\r\n providedTriggerElement?.parentNode?.replaceChild(\r\n widgetElement,\r\n providedTriggerElement\r\n );\r\n widgetElement.style.display =\r\n providedTriggerElement?.style.display || 'block';\r\n };\r\n } else {\r\n providedTriggerElement?.parentNode?.replaceChild(\r\n widgetElement,\r\n providedTriggerElement\r\n );\r\n }\r\n output.cachedOriginals.widgetDOMElement = providedTriggerElement;\r\n output.cachedOriginals.triggerDOMElement = undefined;\r\n } else {\r\n output.widgetDOMElement = document.body.appendChild(widgetElement);\r\n output.triggerDOMElement = providedTriggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.None: {\r\n const widgetElement = document.body.appendChild(\r\n document.createElement('div')\r\n );\r\n output.widgetDOMElement = widgetElement;\r\n if (triggerType !== TriggerType.Inline) {\r\n if (!customElements.get('ace-widget-trigger')) {\r\n customElements.define('ace-widget-trigger', TriggerComponent);\r\n }\r\n const trigger: any = document.createElement('ace-widget-trigger');\r\n trigger.symbol = triggerDefinition.symbol;\r\n\r\n document.body.appendChild(trigger);\r\n console.log('Created trigger');\r\n // if (triggerType === TriggerType.Link) {\r\n // triggerElement.innerText = name;\r\n // }\r\n output.triggerDOMElement = trigger;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return output;\r\n};\r\n","import { readStorage, StorageMedium } from '@telia-ace/widget-services';\r\nimport { Symbol } from '@telia-ace/widget-ui';\r\nimport { notifyDataLoaded } from '@telia-ace/widget-utilities';\r\nimport { Container, Widget } from '@webprovisions/platform';\r\nimport {\r\n createTriggerElement,\r\n setActive,\r\n setLoading,\r\n} from './html-element-handlers';\r\nimport { TriggerType } from './prepare-dom';\r\n\r\nconst MODALS_STORAGE_KEY = 'modals';\r\n\r\nexport type BadgeOptions = {\r\n symbol?: Symbol;\r\n label?: string;\r\n ariaLabel?: string;\r\n openTooltip?: string;\r\n closedTooltip?: string;\r\n};\r\n\r\nexport type ViewOutletOptions = {\r\n widgetDOMElement: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n triggerOptions?: BadgeOptions | boolean;\r\n triggerType: TriggerType;\r\n cachedOriginals: {\r\n widgetDOMElement?: Node;\r\n triggerDOMElement?: Node;\r\n };\r\n};\r\n\r\ntype Modals = {\r\n name: string;\r\n ref?: HTMLElement;\r\n selector?: string;\r\n};\r\n\r\nexport class ViewOutlet {\r\n container: Container;\r\n private unsubscribe: (() => void)[] = [];\r\n\r\n constructor(\r\n container: Container,\r\n public options: ViewOutletOptions\r\n ) {\r\n this.container = container.createChild(this);\r\n this.container.register('widgetDOMElement', this.options.widgetDOMElement);\r\n this.container.register(\r\n 'triggerDOMElement',\r\n this.options.triggerDOMElement\r\n );\r\n\r\n const widget: Widget = this.container.get('$widget');\r\n this.options.widgetDOMElement.classList.add('ace-widget');\r\n this.options.widgetDOMElement.classList.add(`ace-widget_${widget.name}`);\r\n\r\n const widgetDOMElements = container.get('widgetDOMElements') || [];\r\n container.register('widgetDOMElements', [\r\n ...widgetDOMElements,\r\n this.options.widgetDOMElement,\r\n ]);\r\n }\r\n\r\n /**\r\n * Renders the view outlet to the DOM.\r\n */\r\n render() {\r\n const { widgetDOMElement, triggerDOMElement } = this.options;\r\n\r\n const widget: Widget = this.container.get('$widget');\r\n\r\n if (widgetDOMElement.getAttribute('data-rendered') === 'true') {\r\n return Promise.resolve();\r\n }\r\n\r\n if (triggerDOMElement && this.options.triggerType === TriggerType.Badge) {\r\n setLoading(triggerDOMElement);\r\n }\r\n\r\n return import('./render')\r\n .then((module) => module.default(this.container, widgetDOMElement))\r\n .then(() => {\r\n widgetDOMElement.setAttribute('data-rendered', 'true');\r\n\r\n if (\r\n triggerDOMElement &&\r\n this.options.triggerType === TriggerType.Badge\r\n ) {\r\n const tooltip = (this.options.triggerOptions as BadgeOptions)\r\n .openTooltip;\r\n setActive(triggerDOMElement, tooltip);\r\n }\r\n notifyDataLoaded(this.container, widgetDOMElement);\r\n\r\n const widgets = this.container.get('$environment').widgets.all();\r\n\r\n readStorage<Modals[]>(\r\n this.container,\r\n MODALS_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((modals) => {\r\n if (modals) {\r\n modals.forEach((modal) => {\r\n if (\r\n widgets.find(\r\n (w: Widget) =>\r\n w.name === modal.name && w.state === 'activated'\r\n )\r\n ) {\r\n widget.events.dispatch('widget:modal-opened', modal);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n renderBadge(options: BadgeOptions) {\r\n const { triggerDOMElement } = this.options;\r\n\r\n if (!triggerDOMElement) {\r\n return;\r\n }\r\n\r\n if (!triggerDOMElement.getAttribute('role')) {\r\n triggerDOMElement.setAttribute('role', 'button');\r\n }\r\n\r\n const { name }: Widget = this.container.get('$widget');\r\n\r\n const { label, symbol, ariaLabel, closedTooltip, openTooltip } = options;\r\n\r\n const triggerOptions = { closedTooltip, openTooltip };\r\n this.options.triggerOptions = triggerOptions;\r\n\r\n const removeTriggerListeners = createTriggerElement(triggerDOMElement, {\r\n label,\r\n symbol,\r\n ariaLabel,\r\n widgetName: name,\r\n tooltip: closedTooltip,\r\n });\r\n this.unsubscribe.push(removeTriggerListeners);\r\n }\r\n\r\n async dispose() {\r\n const { triggerDOMElement, widgetDOMElement } = this.options;\r\n if (this.options.cachedOriginals.widgetDOMElement) {\r\n if (widgetDOMElement) {\r\n widgetDOMElement.parentNode?.replaceChild(\r\n this.options.cachedOriginals.widgetDOMElement,\r\n widgetDOMElement\r\n );\r\n }\r\n }\r\n if (this.options.cachedOriginals.triggerDOMElement) {\r\n if (triggerDOMElement) {\r\n triggerDOMElement.parentNode?.replaceChild(\r\n this.options.cachedOriginals.triggerDOMElement,\r\n triggerDOMElement\r\n );\r\n }\r\n }\r\n this.unsubscribe.forEach((unsubscribe) => {\r\n unsubscribe();\r\n });\r\n widgetDOMElement.parentNode?.removeChild(widgetDOMElement);\r\n triggerDOMElement?.parentNode?.removeChild(triggerDOMElement);\r\n }\r\n}\r\n","import {\r\n ChangesetOptions,\r\n ChangesetProvider,\r\n ComponentNodeAttributes,\r\n ComponentNodeSettings,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n ComponentQueryRule,\r\n createComponentModel,\r\n WidgetSettings,\r\n} from '@telia-ace/widget-core';\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 { Container, Widget, WidgetState } from '@webprovisions/platform';\r\n\r\nconst STORAGE_KEY = 'changesets';\r\n\r\ntype ChangesetItem = {\r\n rules: ComponentQueryRule[];\r\n attributes: Partial<ComponentNodeAttributes>;\r\n options: ChangesetOptions;\r\n};\r\n\r\ntype ChangesetItemBag = {\r\n items?: { [key: string]: ChangesetItem };\r\n keys?: string[];\r\n};\r\n\r\nconst convertSettingsToAttributes = (\r\n settings: Partial<ComponentNodeSettings>\r\n): Partial<ComponentNodeAttributes> => {\r\n const attributes: Partial<ComponentNodeAttributes> = { tags: settings.tags };\r\n if (settings.context && typeof settings.context !== 'function') {\r\n attributes.context = settings.context;\r\n }\r\n if (settings.properties && typeof settings.properties !== 'function') {\r\n attributes.properties = settings.properties;\r\n }\r\n if (settings.layout && typeof settings.layout !== 'function') {\r\n attributes.layout = settings.layout;\r\n }\r\n\r\n return attributes;\r\n};\r\n\r\nexport class LocalStorageChangesetProvider implements ChangesetProvider {\r\n constructor(\r\n private container: Container,\r\n private storageWriter: StorageWriter\r\n ) {}\r\n\r\n static create(container: Container): Promise<LocalStorageChangesetProvider> {\r\n return createStorageWriter(\r\n container,\r\n STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ).then(\r\n (storageWriter) =>\r\n new LocalStorageChangesetProvider(container, storageWriter)\r\n );\r\n }\r\n\r\n write(\r\n key: string,\r\n target: ComponentQuery,\r\n attributes: Partial<ComponentNodeSettings>,\r\n options: ChangesetOptions\r\n ): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n const existingIndex = keys.indexOf(key);\r\n if (existingIndex > -1) {\r\n keys.splice(existingIndex, 1);\r\n }\r\n keys.push(key);\r\n items[key] = {\r\n options,\r\n attributes: convertSettingsToAttributes(attributes),\r\n rules: target.rules,\r\n };\r\n return this.storageWriter({ keys, items });\r\n });\r\n });\r\n }\r\n\r\n remove(key: string): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n const indexToRemove = keys.indexOf(key);\r\n if (indexToRemove > -1) {\r\n keys.splice(indexToRemove, 1);\r\n delete items[key];\r\n return this.storageWriter(bag);\r\n }\r\n });\r\n });\r\n }\r\n\r\n load(platform: ComponentPlatform): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n keys.forEach((key) => {\r\n const item = items[key];\r\n if (item) {\r\n const { rules, attributes, options } = item;\r\n platform.write({\r\n attributes,\r\n options,\r\n target: new ComponentQuery(platform, rules),\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const createPlatform = (widget: Widget): Promise<ComponentPlatform> => {\r\n const { container } = widget;\r\n return LocalStorageChangesetProvider.create(container).then(\r\n (localStorage) => {\r\n const settings: WidgetSettings = container.get('$settings');\r\n const providers = { localStorage };\r\n const platform = new ComponentPlatform(widget, providers);\r\n const destructComponentModel = createComponentModel(platform, settings);\r\n\r\n widget.events.subscribe(\r\n 'widget:state-change',\r\n (_event, data: { state: WidgetState }) => {\r\n if (data.state === WidgetState.Deactivating) {\r\n destructComponentModel();\r\n }\r\n }\r\n );\r\n\r\n return platform;\r\n }\r\n );\r\n};\r\n","import { WidgetSettings } from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { createPlatform } from './component-platform-factory';\r\n\r\nexport const createRoutingService = (container: Container) => {\r\n return import('@telia-ace/widget-routing').then(\r\n ({ RoutingService, HistoryMode }) => {\r\n return container.get('settings').then((settings: WidgetSettings) => {\r\n const {\r\n routing: {\r\n initialPath = '/',\r\n mode = HistoryMode.scopedHash,\r\n basePath,\r\n },\r\n views,\r\n } = settings;\r\n\r\n const routingService = new RoutingService(container, {\r\n initialPath,\r\n mode,\r\n routes: Object.keys(views).map((name) => ({\r\n name,\r\n path: views[name].path,\r\n })),\r\n basePath,\r\n });\r\n return routingService;\r\n });\r\n }\r\n );\r\n};\r\n\r\nexport const createStorageService = (_container: Container) => {\r\n return import('@telia-ace/widget-services').then(({ StorageProvider }) => {\r\n return new StorageProvider();\r\n });\r\n};\r\n\r\nexport const createActionResolver = (container: Container) => {\r\n return import('@telia-ace/widget-core').then(({ ActionResolver }) => {\r\n return new ActionResolver(container);\r\n });\r\n};\r\n\r\nexport const createComponentResolver = (container: Container) => {\r\n return import('@telia-ace/widget-core').then(({ ComponentResolver }) => {\r\n return new ComponentResolver(container);\r\n });\r\n};\r\n\r\nexport const createComponentPlatform = (container: Container) => {\r\n return import('@telia-ace/widget-core').then(() => {\r\n // ({ ComponentPlatform, createComponentModel }) => {\r\n return createPlatform(container.get('$widget'));\r\n });\r\n};\r\n","import {\r\n ActionResolver,\r\n ComponentPlatform,\r\n WidgetRenderState,\r\n WidgetSettings,\r\n} from '@telia-ace/widget-core';\r\nimport {\r\n RouteData,\r\n RoutingService,\r\n onWidgetUrl,\r\n} from '@telia-ace/widget-routing';\r\nimport {\r\n StorageCategory,\r\n StorageMedium,\r\n StorageScope,\r\n createStorageWriter,\r\n readStorage,\r\n} from '@telia-ace/widget-services';\r\nimport {\r\n removeNullAndUndefinedValues,\r\n uuid,\r\n} from '@telia-ace/widget-utilities';\r\nimport {\r\n BootstrappingActivationData,\r\n supportBootstrapping,\r\n} from '@webprovisions/bootstrapping';\r\nimport {\r\n Container,\r\n EventSubscriptionCancellation,\r\n WidgetType,\r\n} from '@webprovisions/platform';\r\nimport {\r\n BadgeOptions,\r\n ViewOutlet,\r\n ViewOutletOptions,\r\n} from '././ui/view-outlet';\r\nimport {\r\n createActionResolver,\r\n createComponentPlatform,\r\n createComponentResolver,\r\n createRoutingService,\r\n createStorageService,\r\n} from './services';\r\nimport { setActive, setInactive } from './ui/html-element-handlers';\r\nimport {\r\n TriggerType,\r\n determineTriggerType,\r\n prepareDOMElements,\r\n} from './ui/prepare-dom';\r\n\r\nconst SETTINGS_STORAGE_KEY = '$settings';\r\nconst OPEN_STORAGE_KEY = 'open';\r\nconst STICKY_WIDGET_STORAGE_KEY = 'activeStickyWidget';\r\n\r\nexport enum InitialRenderState {\r\n Open = 'open',\r\n Closed = 'closed',\r\n Hidden = 'hidden',\r\n Storage = 'storage',\r\n}\r\n\r\nexport type RenderData = {\r\n widgetDOMElement?: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n key?: string;\r\n open?: boolean;\r\n withRenderState?: InitialRenderState;\r\n};\r\n\r\nexport type AttachData = {\r\n widgetDOMElement?: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n key?: string;\r\n withRenderState?: InitialRenderState;\r\n};\r\n\r\nexport default class Widget extends WidgetType {\r\n outlets = new Map<string, ViewOutlet>();\r\n activated: Promise<void> | undefined = undefined;\r\n subs: EventSubscriptionCancellation[] = [];\r\n\r\n constructor(container: Container) {\r\n super(container);\r\n\r\n this.container.registerAsync('storage', () =>\r\n createStorageService(this.container)\r\n );\r\n\r\n this.container.registerFactory('settings', () => {\r\n return readStorage<Partial<WidgetSettings>>(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((settings = {}) => {\r\n return {\r\n ...this.container.get('$settings'),\r\n ...settings,\r\n };\r\n });\r\n });\r\n\r\n supportBootstrapping(this as any, 'load', this.handleBootstrapping);\r\n\r\n this.container.registerAsync('componentResolver', () =>\r\n createComponentResolver(this.container)\r\n );\r\n this.container.registerAsync('router', () =>\r\n createRoutingService(this.container)\r\n );\r\n this.container.registerAsync('actionResolver', () =>\r\n createActionResolver(this.container)\r\n );\r\n this.container.register('matchMedia', window.matchMedia);\r\n this.container.registerAsync('components', () =>\r\n createComponentPlatform(this.container)\r\n );\r\n }\r\n\r\n handleBootstrapping = (activationData: BootstrappingActivationData) => {\r\n const options = {\r\n triggerDOMElement: activationData.sourceDOMElement,\r\n withRenderState: InitialRenderState.Storage,\r\n };\r\n\r\n this.container.get('settings').then((settings: any) => {\r\n const { activate } = settings;\r\n const shouldActivate =\r\n typeof activate === 'undefined' ||\r\n activate === null ||\r\n activate === true;\r\n\r\n if (shouldActivate) {\r\n this.activated = (this.activated || this.widget.activate()).then(() =>\r\n this.attach(options)\r\n );\r\n }\r\n });\r\n };\r\n\r\n initialize() {\r\n const promises = this.container.getManyAsync(\r\n 'actionResolver',\r\n 'router',\r\n 'components'\r\n ) as Promise<{\r\n actionResolver: ActionResolver;\r\n router: RoutingService;\r\n components: ComponentPlatform;\r\n }>;\r\n\r\n const cspSettings: { nonce: string } | undefined =\r\n this.container.get('csp');\r\n if (cspSettings) {\r\n if (!(window as any).webprovisionsEnvironmentVariables) {\r\n (window as any).webprovisionsEnvironmentVariables = {};\r\n }\r\n (window as any).webprovisionsEnvironmentVariables['cspNonce'] =\r\n cspSettings.nonce;\r\n }\r\n\r\n return Promise.all([promises, this.container.get('settings')]).then(\r\n ([{ actionResolver, router, components }, settings]) => {\r\n actionResolver.subscribe(this.widget.name, (_origin, action, value) =>\r\n this.onAction(action, value)\r\n );\r\n\r\n const switchViewNodes = (routeName: string) => {\r\n components.nodes.query({ type: 'view' }).forEach((viewNode) => {\r\n components.setSwitch(viewNode, routeName);\r\n });\r\n };\r\n\r\n const initialRoute = router.getInitialRoute()?.name || 'index';\r\n switchViewNodes(initialRoute);\r\n\r\n this.events.subscribe('widget:data-loaded', (_e, { element }) => {\r\n if (this.widget.container.get('seoConfiguration')) {\r\n this.events.dispatch('widget:preloaded-replaced', {\r\n element,\r\n });\r\n }\r\n });\r\n\r\n this.events.subscribe(\r\n 'router:change',\r\n (_e, { previous = { routeData: {} }, next = { routeData: {} } }) => {\r\n const { routeData: prevData }: { routeData: RouteData } = previous;\r\n const { routeData: nextData }: { routeData: RouteData } = next;\r\n\r\n const notFoundView = Object.keys(settings.views).reduce(\r\n (acc, key) => {\r\n const view = settings.views[key];\r\n if (typeof view.path === 'undefined') {\r\n return key;\r\n }\r\n return acc;\r\n },\r\n ''\r\n );\r\n\r\n // route not found\r\n if (!nextData.name && notFoundView) {\r\n switchViewNodes(notFoundView);\r\n } else {\r\n switchViewNodes(nextData.name);\r\n }\r\n\r\n removeNullAndUndefinedValues(prevData && prevData.params);\r\n removeNullAndUndefinedValues(nextData && nextData.params);\r\n\r\n this.container\r\n .getAsync('actionResolver')\r\n .then((actionResolver: ActionResolver) => {\r\n actionResolver.action(this.widget.name, 'routeChange', {\r\n next: nextData,\r\n previous: prevData,\r\n });\r\n });\r\n }\r\n );\r\n\r\n return router.initialize();\r\n }\r\n );\r\n }\r\n\r\n attach(attachData: AttachData = {}) {\r\n return this.container\r\n .get('settings')\r\n .then(async ({ trigger }: WidgetSettings) => {\r\n const {\r\n widgetDOMElement,\r\n key = uuid(),\r\n triggerDOMElement,\r\n withRenderState,\r\n } = attachData;\r\n\r\n const triggerType = determineTriggerType(trigger);\r\n\r\n // This could probably be defined already when bootstrapping occurs,\r\n // Webprovisions knows when a widget is prerendered,\r\n // see \"queryPrerenderedTargets in @webprovisions/bootstrapping\"\r\n const waitWithReplace =\r\n triggerType === TriggerType.Inline &&\r\n (triggerDOMElement?.childElementCount || 0) > 0;\r\n\r\n const outletOptions = await prepareDOMElements(\r\n this.widget.name,\r\n widgetDOMElement,\r\n triggerDOMElement,\r\n trigger,\r\n waitWithReplace\r\n );\r\n\r\n if (this.outlets.size < 1 && !withRenderState) {\r\n this.setRenderState('unset');\r\n }\r\n\r\n const swap = () => {\r\n const isReady = () =>\r\n widgetDOMElement.querySelectorAll('[data-loading=true]').length ===\r\n 0;\r\n const [widgetDOMElement] =\r\n this.widget.container.get('widgetDOMElements');\r\n\r\n const watcher = (\r\n _mutations: MutationRecord[],\r\n observer: MutationObserver\r\n ) => {\r\n if (isReady()) {\r\n if (outletOptions.callback) {\r\n outletOptions.callback();\r\n }\r\n observer.disconnect();\r\n }\r\n };\r\n const options = {\r\n attributes: true,\r\n subtree: true,\r\n childList: true,\r\n };\r\n\r\n if (isReady()) {\r\n outletOptions.callback && outletOptions.callback();\r\n }\r\n const observer = new MutationObserver(watcher);\r\n\r\n observer.observe(widgetDOMElement, options);\r\n };\r\n\r\n if (waitWithReplace) {\r\n this.widget.container\r\n .getAsync('dataClient')\r\n .then(({ events }: any) => {\r\n events.subscribe(\r\n 'data-client:fetched',\r\n (_event: any, data: any) => {\r\n if (data.unresolvedQueries === 0) {\r\n swap();\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n const outlet = this.getOrCreateViewOutlet(key, outletOptions);\r\n this.outlets.set(key, outlet);\r\n this.widget.events.dispatch('widget:attached', {}, { bubbles: true });\r\n\r\n if (outletOptions.triggerType === TriggerType.Badge && trigger) {\r\n outletOptions.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n );\r\n outlet?.renderBadge(trigger);\r\n }\r\n\r\n if (outletOptions.triggerType !== TriggerType.Inline) {\r\n outletOptions.triggerDOMElement?.addEventListener(\r\n 'click',\r\n (event: any) => {\r\n event.preventDefault();\r\n this.container\r\n .get('settings')\r\n .then(({ trigger: updatedTrigger }: WidgetSettings) => {\r\n outlet\r\n .render()\r\n .then(() => this.renderState())\r\n .then((renderState) => {\r\n if (\r\n updatedTrigger &&\r\n updatedTrigger.action &&\r\n updatedTrigger.action === 'hide'\r\n ) {\r\n return renderState === WidgetRenderState.open\r\n ? this.hide()\r\n : this.open();\r\n }\r\n return renderState === WidgetRenderState.open\r\n ? this.close()\r\n : this.open();\r\n });\r\n });\r\n }\r\n );\r\n }\r\n\r\n if (this.outlets.size > 1) {\r\n return this.renderState().then((state: WidgetRenderState) => {\r\n // new outlets should have the same state as existing ones\r\n this.triggerStateIfApplicable(state);\r\n });\r\n }\r\n\r\n if (withRenderState) {\r\n if (withRenderState === InitialRenderState.Storage) {\r\n return this.renderState().then((state: WidgetRenderState) => {\r\n if (outletOptions.triggerType === TriggerType.Inline) {\r\n this.triggerStateIfApplicable('open');\r\n return;\r\n }\r\n this.triggerStateIfApplicable(state);\r\n });\r\n }\r\n return this.triggerStateIfApplicable(withRenderState);\r\n }\r\n\r\n return;\r\n });\r\n }\r\n\r\n detach(key?: string) {\r\n if (key) {\r\n if (this.outlets.has(key)) {\r\n const outlet = this.outlets.get(key);\r\n outlet?.dispose();\r\n this.outlets.delete(key);\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`detach(): Could not find View Outlet with key ${key}`);\r\n }\r\n return;\r\n }\r\n this.outlets.forEach((outlet) => {\r\n outlet.dispose();\r\n });\r\n this.outlets.clear();\r\n }\r\n\r\n private triggerStateIfApplicable(input: string) {\r\n return this.container.getAsync('router').then((router) => {\r\n switch (input) {\r\n case 'closed':\r\n this.close();\r\n break;\r\n case 'open':\r\n this.open();\r\n break;\r\n case 'hidden':\r\n this.hide();\r\n router.start();\r\n break;\r\n default:\r\n return;\r\n }\r\n });\r\n }\r\n\r\n private getOrCreateViewOutlet(\r\n key: string,\r\n options: ViewOutletOptions\r\n ): ViewOutlet {\r\n return (\r\n this.outlets.has(key)\r\n ? this.outlets.get(key)\r\n : new ViewOutlet(this.container, options)\r\n )!;\r\n }\r\n\r\n render(renderData: RenderData = {}) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'widget.render() is deprecated. Use widget.attach() instead.'\r\n );\r\n }\r\n if (renderData.open) {\r\n const options: AttachData = {\r\n ...renderData,\r\n withRenderState: InitialRenderState.Open,\r\n };\r\n return this.attach(options);\r\n }\r\n return this.attach(renderData);\r\n }\r\n\r\n activate(data?: any) {\r\n if (data?.override) {\r\n this.setSettings(() => data.override);\r\n }\r\n // TODO: this is considered a hack, remove apiNotificationPriorityBy\r\n // when there is a better way to get notifications from backend\r\n if (data?.apiNotificationPriorityBy) {\r\n this.container.register(\r\n 'apiNotificationPriorityBy',\r\n data.apiNotificationPriorityBy\r\n );\r\n }\r\n }\r\n\r\n setSettings(\r\n fn: (settings: WidgetSettings) => Promise<Partial<WidgetSettings>>\r\n ): Promise<WidgetSettings> {\r\n return Promise.all([\r\n this.container.get('settings'),\r\n createStorageWriter(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ),\r\n ]).then(([settings, write]) => {\r\n return Promise.resolve(fn(settings)).then((override) => {\r\n return write(override).then(() => {\r\n const updated = { ...settings, ...override };\r\n this.widget.events.dispatch('widget:settings-updated', updated);\r\n return updated;\r\n });\r\n });\r\n });\r\n }\r\n\r\n clearSettings(): Promise<void> {\r\n return createStorageWriter(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n { medium: StorageMedium.Local }\r\n )\r\n .then((write) => write())\r\n .then(() => this.container.get('settings'))\r\n .then((settings) => {\r\n this.widget.events.dispatch('widget:settings-updated', settings);\r\n });\r\n }\r\n\r\n action({ action, value }: { action: string; value?: any }) {\r\n return this.container\r\n .getAsync('actionResolver')\r\n .then((actionResolver: ActionResolver) => {\r\n actionResolver.action(this.widget.name, action, value);\r\n });\r\n }\r\n\r\n renderState(): Promise<WidgetRenderState> {\r\n if (onWidgetUrl(this.container)) {\r\n return Promise.resolve(WidgetRenderState.open);\r\n }\r\n const readSessionOpen = () =>\r\n readStorage<WidgetRenderState>(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((value = WidgetRenderState.closed) => value);\r\n\r\n const readLocalOpen = () =>\r\n readStorage<WidgetRenderState>(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((value = WidgetRenderState.closed) => value);\r\n\r\n return this.container.getAsync('router').then((routing: RoutingService) => {\r\n if (routing.isSticky()) {\r\n return readLocalOpen().then((localOpen) => {\r\n return localOpen === WidgetRenderState.open\r\n ? localOpen\r\n : readSessionOpen();\r\n });\r\n }\r\n return readSessionOpen();\r\n });\r\n }\r\n\r\n hide(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'hide(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n this.outlets.forEach((outlet) => outlet.render());\r\n return this.action({ action: 'hide' }).then(() => {\r\n this.setTriggerState(false);\r\n });\r\n }\r\n\r\n open(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'open(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n this.outlets.forEach((outlet) => outlet.render());\r\n return this.action({ action: 'open' }).then(() => {\r\n this.widget.events.dispatch('tracking:widget-rendered', {});\r\n return this.onOpen();\r\n });\r\n }\r\n\r\n close(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'close(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n return this.action({ action: 'close' }).then(() => this.onClose());\r\n }\r\n\r\n show(): Promise<void> {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'show(): Command is deprecated and will be removed in the future. Use open() instead.'\r\n );\r\n }\r\n return this.open();\r\n }\r\n\r\n private onAction(action: string, _value: any) {\r\n switch (action) {\r\n case 'close':\r\n case 'open':\r\n case 'hide':\r\n const newState =\r\n action === 'open'\r\n ? WidgetRenderState.open\r\n : action === 'close'\r\n ? WidgetRenderState.closed\r\n : WidgetRenderState.hidden;\r\n\r\n return this.setRenderState(newState).then(() => {\r\n this.setTriggerState(newState === WidgetRenderState.open);\r\n if (newState !== WidgetRenderState.hidden) {\r\n newState === WidgetRenderState.open\r\n ? this.onOpen()\r\n : this.onClose();\r\n } else {\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n )\r\n );\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n\r\n private setRenderState(newState: string): Promise<void> {\r\n const { invoke, events } = this.container.get('$widget');\r\n return Promise.all([\r\n createStorageWriter(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Session,\r\n }\r\n ),\r\n createStorageWriter(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n duration: { minutes: 5 },\r\n }\r\n ),\r\n this.container.getAsync('router'),\r\n invoke('renderState'),\r\n ]).then(\r\n ([writeSessionOpen, writeLocalOpen, routing, previousRenderState]) => {\r\n if (newState === 'unset' || !newState) {\r\n writeLocalOpen();\r\n writeSessionOpen();\r\n } else {\r\n if (routing.isSticky()) {\r\n writeLocalOpen(newState);\r\n }\r\n writeSessionOpen(newState);\r\n }\r\n events.dispatch('widget:render-state-changed', {\r\n previous: previousRenderState,\r\n next: newState,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private onOpen(): Promise<void> {\r\n return this.container.getAsync('router').then((router: RoutingService) => {\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'true'\r\n )\r\n );\r\n return router.start();\r\n });\r\n }\r\n\r\n private onClose(): Promise<void> {\r\n const services = this.container.getManyAsync(\r\n 'router',\r\n 'components'\r\n ) as Promise<{\r\n router: RoutingService;\r\n components: ComponentPlatform;\r\n }>;\r\n\r\n const resetActivateProp = () => {\r\n return this.container\r\n .get('settings')\r\n .then((widgetSettings: WidgetSettings) => {\r\n const { activate } = this.container.get('$settings');\r\n if (widgetSettings.activate !== activate) {\r\n return this.setSettings(() => Promise.resolve({ activate }));\r\n }\r\n return Promise.resolve();\r\n });\r\n };\r\n\r\n return resetActivateProp()\r\n .then(() => {\r\n return services;\r\n })\r\n .then(\r\n ({\r\n router,\r\n components,\r\n }: {\r\n router: RoutingService;\r\n components: ComponentPlatform;\r\n }) => {\r\n const visibleNodes = components.nodes.visible;\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n )\r\n );\r\n\r\n if (\r\n visibleNodes.filter(\r\n (c) =>\r\n c.attributes.properties.animation &&\r\n c.attributes.properties.animation !== 'none'\r\n ).length\r\n ) {\r\n return new Promise<RoutingService>((resolve) => {\r\n setTimeout(() => {\r\n resolve(router);\r\n }, 200);\r\n });\r\n }\r\n\r\n return Promise.resolve(router);\r\n }\r\n )\r\n .then((router: RoutingService) => router.stop());\r\n }\r\n\r\n private setTriggerState(open: boolean) {\r\n this.outlets.forEach((outlet) => {\r\n const {\r\n options: { triggerDOMElement, triggerOptions },\r\n } = outlet;\r\n const { openTooltip, closedTooltip } =\r\n (triggerOptions as BadgeOptions) || {};\r\n if (triggerDOMElement) {\r\n open\r\n ? setActive(triggerDOMElement, openTooltip)\r\n : setInactive(triggerDOMElement, closedTooltip);\r\n }\r\n });\r\n }\r\n\r\n deactivate() {\r\n this.subs.forEach((s) => s());\r\n\r\n const promises: Promise<void>[] = [];\r\n this.outlets.forEach((outlet) => promises.push(outlet.dispose()));\r\n\r\n return readStorage<string>(\r\n this.container,\r\n STICKY_WIDGET_STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((value) => {\r\n /**\r\n * Remove stored sticky widget from implementation's localStorage if applicable\r\n */\r\n if (value === this.widget.name) {\r\n return createStorageWriter(\r\n this.container,\r\n STICKY_WIDGET_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n scope: StorageScope.Implementation,\r\n }\r\n )\r\n .then((write) => write())\r\n .then(() => Promise.all(promises));\r\n }\r\n return Promise.all(promises);\r\n });\r\n }\r\n}\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.callback=t,this.subscribe=null!=e&&e}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){var e;if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=null!==(e=t.subscribe)&&void 0!==e&&e}else this.context=s,this.callback=i,this.subscribe=null!=h&&h;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class i extends Event{constructor(t){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t}}class e extends s{constructor(s,i,e){super(void 0!==i.context?i.initialValue:e),this.onContextRequest=t=>{const s=t.composedPath()[0];t.context===this.context&&s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{const i=s.composedPath()[0];if(s.context===this.context&&i!==this.host){for(const[s,{consumerHost:i}]of this.subscriptions)i.dispatchEvent(new t(this.context,s,!0));s.stopPropagation()}},this.host=s,void 0!==i.context?this.context=i.context:this.context=i,this.attachListeners(),this.host.addController(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new i(this.context))}}export{e as ContextProvider,i as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{decorateProperty as e}from\"@lit/reactive-element/decorators/base.js\";import{ContextConsumer as r}from\"../controllers/context-consumer.js\";\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t({context:t,subscribe:o}){return e({finisher:(e,c)=>{e.addInitializer((e=>{new r(e,{context:t,callback:r=>{e[c]=r},subscribe:o})}))}})}export{t as consume};\n//# sourceMappingURL=consume.js.map\n","import { createContext } from '@lit-labs/context';\r\nimport { ComponentDescriptor } from '@telia-ace/widget-core';\r\n\r\nexport const childrenContext = createContext<ComponentDescriptor[]>('children');\r\n","import { createContext } from '@lit-labs/context';\r\nimport { ComponentDescriptor } from '@telia-ace/widget-core';\r\n\r\nexport const descriptorContext = createContext<ComponentDescriptor | undefined>(\r\n 'descriptor'\r\n);\r\n","import { Container } from '@webprovisions/platform';\r\nimport { createContext } from '@lit-labs/context';\r\n\r\nexport const containerContext = createContext<Container | undefined>(\r\n 'container'\r\n);\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const contextCtx = createContext<Record<string, any>>('context');\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const layoutCtx = createContext<Record<string, any>>('layout');\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const propertiesCtx = createContext<Record<string, any>>('properties');\r\n","import {\r\n ReactiveController,\r\n ReactiveControllerHost,\r\n ReactiveElement,\r\n} from 'lit';\r\nimport { Container } from '@webprovisions/platform';\r\nimport {\r\n ComponentDescriptor,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n} from '@telia-ace/widget-core';\r\nimport { uuid } from '@telia-ace/widget-utilities';\r\n\r\nexport class ActionsController implements ReactiveController {\r\n host: ReactiveControllerHost;\r\n\r\n private _container?: Container;\r\n\r\n private _descriptor?: ComponentDescriptor;\r\n\r\n constructor(host: ReactiveElement) {\r\n (this.host = host).addController(this);\r\n }\r\n\r\n hostConnected() {}\r\n hostDisconnected() {}\r\n\r\n setDescriptor(descriptor: ComponentDescriptor) {\r\n this._descriptor = descriptor;\r\n }\r\n\r\n setContainer(container: Container) {\r\n this._container = container;\r\n }\r\n\r\n async dispatch(key: string, value: Record<string, any> | string) {\r\n if (!this._container || !this._descriptor) {\r\n return;\r\n }\r\n\r\n const componentPlatform = await ComponentPlatform.getInstance(\r\n this._container\r\n );\r\n\r\n const query = new ComponentQuery(componentPlatform).withId(\r\n this._descriptor.id\r\n );\r\n const actions = componentPlatform.actions(\r\n query,\r\n this._descriptor.type || uuid()\r\n );\r\n\r\n await actions.dispatch(key, value);\r\n }\r\n}\r\n","import { ComponentNodeController } from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\ntype DataResource = {\r\n query: (\r\n input: Record<string, any>,\r\n providerSettings: Record<string, any>\r\n ) => Promise<any>;\r\n};\r\n\r\ntype DataProviderSettings = Record<string, any>;\r\n\r\nexport const getProvider = async (\r\n component: ComponentNodeController,\r\n container: Container\r\n) => {\r\n const providerProperty: string | [string, any] | undefined =\r\n component.properties().provider;\r\n let providerSettings = {};\r\n\r\n let providerKey: string = '';\r\n if (Array.isArray(providerProperty)) {\r\n providerKey = providerProperty[0];\r\n providerSettings = providerProperty[1];\r\n } else {\r\n providerKey = providerProperty || '';\r\n }\r\n\r\n const provider: DataProvider | undefined =\r\n await container.getAsync(providerKey);\r\n\r\n if (!provider) {\r\n throw new Error('No provider defined in ListComponent');\r\n }\r\n\r\n provider.applyComponentNodeSettings(component.node.id, providerSettings);\r\n\r\n return { provider, settings: providerSettings };\r\n};\r\n\r\nexport const createDataProvider = async (\r\n component: ComponentNodeController,\r\n container: Container\r\n) => {\r\n const { provider, settings = {} } = await getProvider(component, container);\r\n\r\n return {\r\n addResource: (resourceKey: string, resource: DataResource) => {\r\n return provider.addResource(resourceKey, resource);\r\n },\r\n getData: (resourceKey: string, input: Record<string, any>) => {\r\n return provider.getData(resourceKey, input, settings);\r\n },\r\n };\r\n};\r\n\r\nexport class DataProvider {\r\n private resources = new Map<string, DataResource>();\r\n private nodeConfiguration = new Map<string, DataProviderSettings>();\r\n\r\n constructor(public container: Container) {}\r\n\r\n async getData(\r\n resourceKey: string,\r\n input: Record<string, any>,\r\n providerSettings: Record<string, any>\r\n ) {\r\n const entityProvider = this.resources.get(resourceKey);\r\n\r\n if (!entityProvider) {\r\n throw new Error(`Unable to get EntityProvider for \"${resourceKey}\"`);\r\n }\r\n\r\n const response = await entityProvider.query(input, providerSettings);\r\n\r\n return response;\r\n }\r\n\r\n addResource(resourceKey: string, resource: DataResource) {\r\n this.resources.set(resourceKey, resource);\r\n }\r\n\r\n applyComponentNodeSettings(nodeId: string, value: DataProviderSettings) {\r\n this.nodeConfiguration.set(nodeId, value);\r\n }\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport { DataProvider } from '../data-provider';\r\n\r\ntype RawGuide = any;\r\n\r\nconst formatGuideToItem = (rawGuide: Record<string, RawGuide>) => {\r\n return {\r\n title: rawGuide.Title,\r\n id: rawGuide.Id.toString(),\r\n };\r\n};\r\n\r\nclass GuideProvider extends DataProvider {\r\n constructor(container: Container) {\r\n super(container);\r\n\r\n this.addResource('item', {\r\n query: async (input: Record<string, any>, providerSettings) => {\r\n const itemId = input.itemId;\r\n const client = '78aacc09-ae6f-5485-5ca3-9dacebb95825';\r\n const funnel = container.get('$widget').name;\r\n const projection = providerSettings.projection || '';\r\n\r\n const response = await fetch(\r\n `${projection}/guides/${itemId}?client=${client}&funnel=${funnel}&site=%2F%2Fdemo.humany.cc%2Fadmin%2Finterfaces&phrase=&connectionId=&p.LastGuideId=2857`\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return data ? formatGuideToItem(data) : null;\r\n },\r\n });\r\n\r\n this.addResource('items', {\r\n query: async (_input, providerSettings) => {\r\n const client = '';\r\n const funnel = container.get('$widget').name;\r\n const projection = providerSettings.projection || '';\r\n const site = '';\r\n const skip = '0';\r\n const take = '10';\r\n\r\n const response = await fetch(\r\n `${projection}/guides?client=${client}&funnel=${funnel}&site=${site}&phrase=&skip=${skip}&take=${take}&sorting.type=popularity&sorting.direction=descending`\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return {\r\n items: (data.Matches || []).map((item: RawGuide) => {\r\n return formatGuideToItem(item);\r\n }),\r\n totalItems: data?.TotalMatches || 0,\r\n };\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport const GuideProviderPlugin = async (container: Container) => {\r\n container.registerAsync('guideProvider', () => {\r\n return new GuideProvider(container);\r\n });\r\n};\r\n","import {\r\n ComponentResolver,\r\n extendComponent,\r\n ExtendComponentHandler,\r\n ExtendComponentOptions,\r\n} from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\n/**\r\n * Registers a Lit component on the component platform.\r\n * @param container Container to register the component on.\r\n * @param type Type name to resolve the component from configuration.\r\n * @param component Promise resolving to the Lit component for rendering.\r\n * @param fn Handler for controlling the component.\r\n */\r\nconst createLitComponent = (\r\n container: Container,\r\n type: string,\r\n component: any, // e.g. import('./component.ts)\r\n fn?: ExtendComponentHandler,\r\n options?: ExtendComponentOptions\r\n) => {\r\n return container\r\n .getAsync('componentResolver')\r\n .then((componentResolver: ComponentResolver) => {\r\n componentResolver.registerComponent(type, component);\r\n return extendComponent(container, type, fn || (() => {}), type, options);\r\n });\r\n};\r\n\r\nexport default createLitComponent;\r\n","const mapValue = (value: any, cssVar: string, el: HTMLElement) => {\r\n if (value) {\r\n el.style.setProperty(cssVar, value);\r\n }\r\n};\r\n\r\nexport const mapBranding = (context: Record<string, any>, el: HTMLElement) => {\r\n mapValue(context.colors?.primary, '--primary-color', el);\r\n mapValue(context.colors?.secondary, '--secondary-color', el);\r\n mapValue(context.colors?.text, '--text-color', el);\r\n mapValue(context.colors?.link, '--link-color', el);\r\n mapValue(context.colors?.gray, '--gray-color', el);\r\n mapValue(context.colors?.grayDark, '--gray-dark-color', el);\r\n\r\n mapValue(context.spacing?.xs, '--spacing-xs', el);\r\n mapValue(context.spacing?.sm, '--spacing-sm', el);\r\n mapValue(context.spacing?.md, '--spacing-md', el);\r\n mapValue(context.spacing?.lg, '--spacing-lg', el);\r\n mapValue(context.spacing?.xl, '--spacing-xl', el);\r\n\r\n mapValue(context.boxShadow, '--box-shadow', el);\r\n mapValue(context.borderRadius, '--border-radius', el);\r\n mapValue(context.borderRadiusSm, '--border-radius-sm', el);\r\n mapValue(context.fontFamily, '--font-family', el);\r\n};\r\n","const filterCssProps = (props: Record<string, any>) => {\r\n const cssProps: { [key: string]: any } = {};\r\n\r\n Object.keys(props).forEach((key) => {\r\n if (key.indexOf('css-') > -1) {\r\n cssProps[key] = props[key];\r\n }\r\n });\r\n\r\n return cssProps;\r\n};\r\n\r\nexport const appendStyleFromProperties = (\r\n elem: HTMLElement,\r\n p: Record<string, any>\r\n) => {\r\n const props = filterCssProps(p);\r\n Object.entries(props).forEach(([key, value]) => {\r\n elem.style.setProperty(key.replace('css-', ''), value);\r\n });\r\n};\r\n\r\nexport default filterCssProps;\r\n","import { LitElement, css } from 'lit';\r\nimport { childrenContext } from '../context/children.context';\r\nimport { propertiesCtx } from '../context/properties.context';\r\nimport { contextCtx } from '../context/context.context';\r\nimport { layoutCtx } from '../context/layout.context';\r\nimport { ContextProvider, consume } from '@lit-labs/context';\r\nimport {\r\n Container,\r\n EventSubscriptionCancellation,\r\n} from '@webprovisions/platform';\r\nimport { containerContext } from '../context/container.context';\r\nimport { property, state } from 'lit/decorators.js';\r\nimport {\r\n ComponentDescriptor,\r\n ComponentPlatform,\r\n ComponentResolver,\r\n asDescriptor,\r\n} from '@telia-ace/widget-core';\r\nimport { descriptorContext } from '../context/component-node.context';\r\nimport { ActionsController } from '../controllers/actions-controller';\r\nimport { mapBranding } from '../ui/branding';\r\nimport { appendStyleFromProperties } from '../ui/get-css-props';\r\n\r\ntype Constructor<T = {}> = new (...args: any[]) => T;\r\n\r\nexport declare class WidgetComponentInterface {\r\n entry: string;\r\n descriptor?: ComponentDescriptor;\r\n component?: any;\r\n layout: Record<string, any>;\r\n context: Record<string, any>;\r\n properties: Record<string, any>;\r\n container?: Container;\r\n actions: ActionsController;\r\n _contextProvider: ContextProvider<typeof contextCtx>;\r\n _propertiesProvider: ContextProvider<typeof propertiesCtx>;\r\n _childrenProvider: ContextProvider<typeof childrenContext>;\r\n}\r\n\r\nexport const WidgetComponent = <T extends Constructor<LitElement>>(\r\n superClass: T\r\n) => {\r\n class WidgetComponentClass extends superClass {\r\n static styles = [\r\n (superClass as unknown as typeof LitElement).styles ?? [],\r\n css`\r\n :host {\r\n --font-family: TeliaSans, Helvetica, Arial, Lucida Grande, sans-serif;\r\n --spacing-xs: 0.2rem;\r\n --spacing-sm: 0.5rem;\r\n --spacing-md: 1rem;\r\n --spacing-lg: 1.2rem;\r\n --spacing-xl: 1.8rem;\r\n\r\n --primary-color: #29003e;\r\n --secondary-color: #00558f;\r\n --text-color: #222222;\r\n --link-color: #990ae3;\r\n --gray-color: #efefef;\r\n --gray-dark-color: #a6a6a6;\r\n\r\n --box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\r\n --border-radius: 1rem;\r\n --border-radius-sm: 0.3rem;\r\n\r\n font-family: var(--font-family);\r\n grid-column: span var(--width);\r\n max-width: 100%;\r\n overflow: hidden;\r\n box-sizing: border-box;\r\n display: block;\r\n }\r\n * {\r\n box-sizing: border-box;\r\n }\r\n `,\r\n ];\r\n\r\n @consume({ context: containerContext })\r\n @property({ attribute: false })\r\n public container?: Container;\r\n\r\n @property()\r\n entry: string = '';\r\n\r\n private _descriptorProvider = new ContextProvider(\r\n this,\r\n descriptorContext,\r\n undefined\r\n );\r\n _childrenProvider = new ContextProvider(this, childrenContext, []);\r\n _propertiesProvider = new ContextProvider(this, propertiesCtx, {});\r\n _contextProvider = new ContextProvider(this, contextCtx, {});\r\n private _layoutProvider = new ContextProvider(this, layoutCtx, {});\r\n\r\n private _propertyChangeListener?: EventSubscriptionCancellation;\r\n private _contextChangeListener?: EventSubscriptionCancellation;\r\n private _layoutChangeListener?: EventSubscriptionCancellation;\r\n private _unmountNode?: any;\r\n\r\n actions = new ActionsController(this);\r\n\r\n @state()\r\n descriptor?: ComponentDescriptor;\r\n\r\n @state()\r\n component?: any;\r\n\r\n @state()\r\n context: Record<string, any> = {};\r\n\r\n @state()\r\n layout: Record<string, any> = {};\r\n\r\n @state()\r\n properties: Record<string, any> = {};\r\n\r\n override connectedCallback() {\r\n super.connectedCallback();\r\n\r\n if (this.container) {\r\n this.actions.setContainer(this.container);\r\n ComponentPlatform.getInstance(this.container).then(\r\n async (componentPlatform) => {\r\n const componentNode = componentPlatform.nodes.get(this.entry);\r\n if (componentNode) {\r\n this._propertyChangeListener = componentPlatform.events.subscribe(\r\n 'components:properties-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setProperties(data.node.attributes.properties);\r\n }\r\n }\r\n );\r\n this._contextChangeListener = componentPlatform.events.subscribe(\r\n 'components:context-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setContext(data.node.attributes.context);\r\n }\r\n }\r\n );\r\n this._layoutChangeListener = componentPlatform.events.subscribe(\r\n 'components:layout-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setLayout(data.node.attributes.layout);\r\n }\r\n }\r\n );\r\n\r\n const branch = 'default'; // TODO:\r\n\r\n this._unmountNode = componentNode.mount(this.container!);\r\n\r\n this._setDescriptor(asDescriptor(componentNode, branch));\r\n this._setProperties(componentNode.attributes.properties);\r\n this._setContext(componentNode.attributes.context);\r\n this._setLayout(this.layout);\r\n\r\n const children = componentNode\r\n .getChildren(branch)\r\n .map((child) => asDescriptor(child));\r\n\r\n this._childrenProvider.setValue(children);\r\n\r\n const resolver: ComponentResolver =\r\n await this.container!.getAsync('componentResolver');\r\n\r\n const componentResolver = resolver.getComponent(\r\n this.descriptor?.type || ''\r\n );\r\n if (componentResolver.then) {\r\n componentResolver.then((componentModule: any) => {\r\n this.component = componentModule.default;\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n if (this._propertyChangeListener) {\r\n this._propertyChangeListener();\r\n }\r\n if (this._contextChangeListener) {\r\n this._contextChangeListener();\r\n }\r\n if (this._layoutChangeListener) {\r\n this._layoutChangeListener();\r\n }\r\n\r\n if (this._unmountNode) {\r\n this._unmountNode();\r\n }\r\n }\r\n\r\n override updated() {\r\n mapBranding(this.context, (this.renderRoot as any).host);\r\n\r\n (this.renderRoot as any).host.style.setProperty(\r\n '--width',\r\n this.layout.size === 'full'\r\n ? 'var(--columns, 1)'\r\n : `min(${this.layout.size || 'var(--columns)'}, var(--columns))`\r\n );\r\n\r\n appendStyleFromProperties((this.renderRoot as any).host, this.properties);\r\n }\r\n\r\n private _setProperties(value: Record<string, any>) {\r\n this._propertiesProvider.setValue(value);\r\n this.properties = value;\r\n }\r\n private _setContext(value: Record<string, any>) {\r\n this._contextProvider.setValue(value);\r\n this.context = value;\r\n }\r\n private _setLayout(value: Record<string, any>) {\r\n this._layoutProvider.setValue(value);\r\n this.layout = value;\r\n }\r\n private _setDescriptor(value: ComponentDescriptor) {\r\n this.descriptor = value;\r\n this._descriptorProvider.setValue(value);\r\n this.actions.setDescriptor(value);\r\n }\r\n }\r\n // Cast return type to your mixin's interface intersected with the superClass type\r\n return WidgetComponentClass as Constructor<WidgetComponentInterface> & T;\r\n};\r\n"],"names":["I","s","n","o","u","k","g","at","i","r","j","ct$3","l","ht","ct","m","y","x","v","ft","At$1","O","L","B","e","N","$","t","f","c","h","P","A","C","p","D","_","Z$3","b","Z","a","Q","R","lt","H","gt","dt","d","V","q","z","S","yt","tt","P$2","et","H$1","st","k$2","U","L$3","w","nt","it$1","ot$1","rt","T","pt$1","ot","it","ut","E","Ct","Et","Ot","pt","Nt","mt","warning","condition","format","args","len","key","argIndex","message","browser","invariant","error","isAbsolute","pathname","spliceOne","list","index","resolvePathname","to","from","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","last","up","part","result","addLeadingSlash","path","hasBasename","prefix","stripBasename","stripTrailingSlash","parsePath","search","hash","hashIndex","searchIndex","createPath","location","_extends","target","source","createLocation","state","currentLocation","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","listeners","appendListener","fn","isActive","listener","item","notifyListeners","_len","_key","canUseDOM","addEventListener","node","event","removeEventListener","getConfirmation","supportsHistory","ua","supportsPopStateOnHashChange","isExtraneousPopstateEvent","_typeof","obj","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","props","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","setState","nextState","history","handlePopState","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","initialLocation","createHref","push","href","prevIndex","nextKeys","replace","goBack","goForward","listenerCount","checkDOMListeners","isBlocked","block","unblock","listen","unlisten","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","canGo","G","W","re","se","X","ne","oe","Y","J","M","K","ee","te","k$1","de$1","ie","ae","F","ce$1","ce","Ft","Bt","kt","Rt","Jt","Zt","vt","Tt","At","Pt","_t","$t","he","ue","Ht","le","fe","de","Lt","Dt","pe","Mt","ye","me","ge","jt","ve","Pe","It","we","xe","be","Se","Ee","Oe","Re","wt","Te","xt","bt","Ae","Ut","qt","Wt","_e","$e","He","Le","De","Me","je","Ie","Kt","St","Ke","Qt","Xt","Vt","Yt","zt","Gt","triggerTabHandler","triggerDOMElement","toggleTabbing","element","tabbing","handleKeydown","handleClick","createTriggerElement","options","widgetName","label","ariaLabel","tooltip","setInactive","elements","title","setLoading","setActive","o$5","u$1","__async","__spreadProps","__spreadValues","i$1","TriggerComponent","LitElement","__superGet","symbol","importIcon","iconName","type","content","icon","html","nothing","classMap","css","__decorateClass","property","TriggerType","determineProvidedElements","widgetDOMElement","determineTriggerType","triggerDefinition","prepareDOMElements","name","providedWidgetElement","providedTriggerElement","waitWithReplace","_a","_b","providedElements","triggerType","cachedOriginals","output","triggerElement","widgetElement","trigger","MODALS_STORAGE_KEY","ViewOutlet","container","widget","widgetDOMElements","module","notifyDataLoaded","widgets","readStorage","StorageMedium","modals","modal","closedTooltip","openTooltip","triggerOptions","removeTriggerListeners","_c","_d","unsubscribe","STORAGE_KEY","convertSettingsToAttributes","settings","attributes","LocalStorageChangesetProvider","storageWriter","createStorageWriter","StorageCategory","lock","bag","keys","items","existingIndex","indexToRemove","platform","rules","ComponentQuery","createPlatform","localStorage","providers","ComponentPlatform","destructComponentModel","createComponentModel","_event","data","WidgetState","createRoutingService","RoutingService","HistoryMode","initialPath","mode","basePath","views","createStorageService","_container","StorageProvider","createActionResolver","ActionResolver","createComponentResolver","ComponentResolver","createComponentPlatform","index$2","SETTINGS_STORAGE_KEY","OPEN_STORAGE_KEY","STICKY_WIDGET_STORAGE_KEY","Widget","WidgetType","activationData","activate","supportBootstrapping","promises","cspSettings","actionResolver","router","components","_origin","value","switchViewNodes","routeName","viewNode","initialRoute","previous","next","prevData","nextData","notFoundView","acc","removeNullAndUndefinedValues","attachData","_0","uuid","withRenderState","outletOptions","swap","isReady","watcher","_mutations","observer","events","outlet","updatedTrigger","renderState","WidgetRenderState","input","renderData","write","override","updated","onWidgetUrl","readSessionOpen","readLocalOpen","routing","localOpen","_value","newState","invoke","writeSessionOpen","writeLocalOpen","previousRenderState","services","widgetSettings","visibleNodes","resolve","open","StorageScope","s$1","childrenContext","descriptorContext","containerContext","contextCtx","layoutCtx","propertiesCtx","ActionsController","host","descriptor","componentPlatform","query","getProvider","component","providerProperty","providerSettings","providerKey","provider","createDataProvider","resourceKey","resource","DataProvider","entityProvider","nodeId","formatGuideToItem","rawGuide","GuideProvider","itemId","client","funnel","projection","_input","GuideProviderPlugin","createLitComponent","componentResolver","extendComponent","mapValue","cssVar","el","mapBranding","context","_f","_g","_h","_i","_j","_k","filterCssProps","cssProps","appendStyleFromProperties","elem","WidgetComponent","superClass","WidgetComponentClass","ContextProvider","componentNode","branch","asDescriptor","children","child","componentModule","consume"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37]}
1
+ {"version":3,"file":"index-0f06391c.js","sources":["../../../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/warning@3.0.0/node_modules/warning/browser.js","../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js","../../../node_modules/.pnpm/resolve-pathname@2.2.0/node_modules/resolve-pathname/index.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/PathUtils.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/LocationUtils.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/createTransitionManager.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/DOMUtils.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/createBrowserHistory.js","../../../node_modules/.pnpm/history@4.7.2/node_modules/history/es/createMemoryHistory.js","../../../node_modules/.pnpm/@telia-ace+widget-services@1.0.27/node_modules/@telia-ace/widget-services/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-routing@1.0.28/node_modules/@telia-ace/widget-routing/dist/index.js","../../../node_modules/.pnpm/@webprovisions+bootstrapping@1.0.14/node_modules/@webprovisions/bootstrapping/dist/index.js","../src/ui/html-element-handlers.ts","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-element@3.3.3/node_modules/lit-element/lit-element.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/base.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directive.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directives/class-map.js","../src/ui/trigger-component.ts","../src/ui/prepare-dom.ts","../src/ui/view-outlet.ts","../src/component-platform-factory.ts","../src/services.ts","../src/widget.ts","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/context-request-event.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/create-context.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/controllers/context-consumer.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/value-notifier.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/controllers/context-provider.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/decorators/consume.js","../src/context/children.context.ts","../src/context/component-node.context.ts","../src/context/container.context.ts","../src/context/context.context.ts","../src/context/layout.context.ts","../src/context/properties.context.ts","../src/controllers/actions-controller.ts","../src/data-provider/data-provider.ts","../src/data-provider/providers/guide-provider.plugin.ts","../src/core/create-lit-component.ts","../src/ui/branding.ts","../src/ui/get-css-props.ts","../src/mixins/widget-component.mixin.ts"],"sourcesContent":["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","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","export var addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nexport var stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nexport var hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nexport var stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nexport var stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nexport var parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nexport var createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport { parsePath } from './PathUtils';\n\nexport var createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nexport var locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n};","import warning from 'warning';\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n warning(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexport default createTransitionManager;","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nexport var removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nexport var getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nexport var supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nexport var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nexport var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nexport var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation } from './LocationUtils';\nimport { addLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, isExtraneousPopstateEvent } from './DOMUtils';\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n invariant(canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = stripBasename(path, basename);\n\n return createLocation(path, state, key);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = createTransitionManager();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + createPath(location);\n };\n\n var push = function push(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n addEventListener(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) addEventListener(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n removeEventListener(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) removeEventListener(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexport default createBrowserHistory;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport warning from 'warning';\nimport { createPath } from './PathUtils';\nimport { createLocation } from './LocationUtils';\nimport createTransitionManager from './createTransitionManager';\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = createTransitionManager();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = createPath;\n\n var push = function push(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), '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\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexport default createMemoryHistory;","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","var Ft = Object.defineProperty, Bt = Object.defineProperties;\nvar kt = Object.getOwnPropertyDescriptors;\nvar K = Object.getOwnPropertySymbols;\nvar dt = Object.prototype.hasOwnProperty, pt = Object.prototype.propertyIsEnumerable;\nvar ft = (e, t, n) => t in e ? Ft(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n, L = (e, t) => {\n for (var n in t || (t = {}))\n dt.call(t, n) && ft(e, n, t[n]);\n if (K)\n for (var n of K(t))\n pt.call(t, n) && ft(e, n, t[n]);\n return e;\n}, st = (e, t) => Bt(e, kt(t));\nvar mt = (e, t) => {\n var n = {};\n for (var r in e)\n dt.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n if (e != null && K)\n for (var r of K(e))\n t.indexOf(r) < 0 && pt.call(e, r) && (n[r] = e[r]);\n return n;\n};\nimport { Logger as Et, removeNullAndUndefinedValues as B, shallowCompare as gt, createParams as Vt } from \"@telia-ace/widget-utilities\";\nimport { createMemoryHistory as zt, createBrowserHistory as Gt } from \"history\";\nimport { createConfigurationApi as Kt } from \"@webprovisions/platform\";\nimport { StorageMedium as yt, createStorageWriter as Qt, StorageCategory as Xt, readStorage as Yt } from \"@telia-ace/widget-services\";\nfunction Ot(e) {\n if (e.__esModule)\n return e;\n var t = e.default;\n if (typeof t == \"function\") {\n var n = function r() {\n if (this instanceof r) {\n var s = [null];\n s.push.apply(s, arguments);\n var a = Function.bind.apply(t, s);\n return new a();\n }\n return t.apply(this, arguments);\n };\n n.prototype = t.prototype;\n } else\n n = {};\n return Object.defineProperty(n, \"__esModule\", { value: !0 }), Object.keys(e).forEach(function(r) {\n var s = Object.getOwnPropertyDescriptor(e, r);\n Object.defineProperty(n, r, s.get ? s : {\n enumerable: !0,\n get: function() {\n return e[r];\n }\n });\n }), n;\n}\nvar Rt = function() {\n};\nprocess.env.NODE_ENV !== \"production\" && (Rt = function(e, t, n) {\n var r = arguments.length;\n n = new Array(r > 2 ? r - 2 : 0);\n for (var s = 2; s < r; s++)\n n[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 (!e) {\n var a = 0, c = \"Warning: \" + t.replace(/%s/g, function() {\n return n[a++];\n });\n typeof console != \"undefined\" && console.error(c);\n try {\n throw new Error(c);\n } catch (o) {\n }\n }\n});\nvar Jt = Rt, Zt = Jt, vt = te(Zt);\nfunction te(e) {\n return e && e.__esModule ? e : { default: e };\n}\nvar ee = function() {\n var t = null, n = function(i) {\n return (0, vt.default)(t == null, \"A history supports only one prompt at a time\"), t = i, function() {\n t === i && (t = null);\n };\n }, r = function(i, h, u, f) {\n if (t != null) {\n var g = typeof t == \"function\" ? t(i, h) : t;\n typeof g == \"string\" ? typeof u == \"function\" ? u(g, f) : ((0, vt.default)(!1, \"A history needs a getUserConfirmation function in order to use a prompt message\"), f(!0)) : f(g !== !1);\n } else\n f(!0);\n }, s = [], a = function(i) {\n var h = !0, u = function() {\n h && i.apply(void 0, arguments);\n };\n return s.push(u), function() {\n h = !1, s = s.filter(function(f) {\n return f !== u;\n });\n };\n }, c = function() {\n for (var i = arguments.length, h = Array(i), u = 0; u < i; u++)\n h[u] = arguments[u];\n s.forEach(function(f) {\n return f.apply(void 0, h);\n });\n };\n return {\n setPrompt: n,\n confirmTransitionTo: r,\n appendListener: a,\n notifyListeners: c\n };\n}, Tt = ee, At;\nAt = function(t, n) {\n return n(window.confirm(t));\n};\nfunction Q(e) {\n return e.charAt(0) === \"/\";\n}\nfunction at(e, t) {\n for (var n = t, r = n + 1, s = e.length; r < s; n += 1, r += 1)\n e[n] = e[r];\n e.pop();\n}\nfunction ne(e) {\n var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"\", n = e && e.split(\"/\") || [], r = t && t.split(\"/\") || [], s = e && Q(e), a = t && Q(t), c = s || a;\n if (e && Q(e) ? r = n : n.length && (r.pop(), r = r.concat(n)), !r.length)\n return \"/\";\n var o = void 0;\n if (r.length) {\n var i = r[r.length - 1];\n o = i === \".\" || i === \"..\" || i === \"\";\n } else\n o = !1;\n for (var h = 0, u = r.length; u >= 0; u--) {\n var f = r[u];\n f === \".\" ? at(r, u) : f === \"..\" ? (at(r, u), h++) : h && (at(r, u), h--);\n }\n if (!c)\n for (; h--; h)\n r.unshift(\"..\");\n c && r[0] !== \"\" && (!r[0] || !Q(r[0])) && r.unshift(\"\");\n var g = r.join(\"/\");\n return o && g.substr(-1) !== \"/\" && (g += \"/\"), g;\n}\nconst re = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: ne\n}, Symbol.toStringTag, { value: \"Module\" })), se = /* @__PURE__ */ Ot(re);\nvar Pt = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(e) {\n return typeof e;\n} : function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n};\nfunction Y(e, t) {\n if (e === t)\n return !0;\n if (e == null || t == null)\n return !1;\n if (Array.isArray(e))\n return Array.isArray(t) && e.length === t.length && e.every(function(i, h) {\n return Y(i, t[h]);\n });\n var n = typeof e == \"undefined\" ? \"undefined\" : Pt(e), r = typeof t == \"undefined\" ? \"undefined\" : Pt(t);\n if (n !== r)\n return !1;\n if (n === \"object\") {\n var s = e.valueOf(), a = t.valueOf();\n if (s !== e || a !== t)\n return Y(s, a);\n var c = Object.keys(e), o = Object.keys(t);\n return c.length !== o.length ? !1 : c.every(function(i) {\n return Y(e[i], t[i]);\n });\n }\n return !1;\n}\nconst ae = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: Y\n}, Symbol.toStringTag, { value: \"Module\" })), ie = /* @__PURE__ */ Ot(ae);\nvar O = {}, R, _t, ct, F;\nO.__esModule = !0;\nF = O.addLeadingSlash = function(t) {\n return t.charAt(0) === \"/\" ? t : \"/\" + t;\n};\nct = O.stripLeadingSlash = function(t) {\n return t.charAt(0) === \"/\" ? t.substr(1) : t;\n};\nvar oe = O.hasBasename = function(t, n) {\n return new RegExp(\"^\" + n + \"(\\\\/|\\\\?|#|$)\", \"i\").test(t);\n};\nO.stripBasename = function(t, n) {\n return oe(t, n) ? t.substr(n.length) : t;\n};\n_t = O.stripTrailingSlash = function(t) {\n return t.charAt(t.length - 1) === \"/\" ? t.slice(0, -1) : t;\n};\nO.parsePath = function(t) {\n var n = t || \"/\", r = \"\", s = \"\", a = n.indexOf(\"#\");\n a !== -1 && (s = n.substr(a), n = n.substr(0, a));\n var c = n.indexOf(\"?\");\n return c !== -1 && (r = n.substr(c), n = n.substr(0, c)), {\n pathname: n,\n search: r === \"?\" ? \"\" : r,\n hash: s === \"#\" ? \"\" : s\n };\n};\nR = O.createPath = function(t) {\n var n = t.pathname, r = t.search, s = t.hash, a = n || \"/\";\n return r && r !== \"?\" && (a += r.charAt(0) === \"?\" ? r : \"?\" + r), s && s !== \"#\" && (a += s.charAt(0) === \"#\" ? s : \"#\" + s), a;\n};\nvar j, $t = j = void 0, ce = Object.assign || function(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n)\n Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n}, he = se, ue = Ht(he), le = ie, fe = Ht(le), de = O;\nfunction Ht(e) {\n return e && e.__esModule ? e : { default: e };\n}\nj = function(t, n, r, s) {\n var a = void 0;\n typeof t == \"string\" ? (a = (0, de.parsePath)(t), a.state = n) : (a = ce({}, t), a.pathname === void 0 && (a.pathname = \"\"), a.search ? a.search.charAt(0) !== \"?\" && (a.search = \"?\" + a.search) : a.search = \"\", a.hash ? a.hash.charAt(0) !== \"#\" && (a.hash = \"#\" + a.hash) : a.hash = \"\", n !== void 0 && a.state === void 0 && (a.state = n));\n try {\n a.pathname = decodeURI(a.pathname);\n } catch (c) {\n throw c instanceof URIError ? new URIError('Pathname \"' + a.pathname + '\" could not be decoded. This is likely caused by an invalid percent-encoding.') : c;\n }\n return r && (a.key = r), s ? a.pathname ? a.pathname.charAt(0) !== \"/\" && (a.pathname = (0, ue.default)(a.pathname, s.pathname)) : a.pathname = s.pathname : a.pathname || (a.pathname = \"/\"), a;\n};\n$t = function(t, n) {\n return t.pathname === n.pathname && t.search === n.search && t.hash === n.hash && t.key === n.key && (0, fe.default)(t.state, n.state);\n};\nconst Lt = \"/\", Dt = \"./\", pe = 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), Mt = (e, t) => {\n const n = [];\n let r = 0, s = 0, a = \"\";\n const c = t && t.delimiter || Lt, o = t && t.delimiters || Dt;\n let i = !1, h;\n for (; (h = pe.exec(e)) !== null; ) {\n const u = h[0], f = h[1], g = h.index;\n if (a += e.slice(s, g), s = g + u.length, f) {\n a += f[1], i = !0;\n continue;\n }\n let P = \"\";\n const I = e[s], k = h[2], w = h[3], C = h[4], A = h[5];\n if (!i && a.length) {\n const U = a.length - 1;\n o.indexOf(a[U]) > -1 && (P = a[U], a = a.slice(0, U));\n }\n a && (n.push(a), a = \"\", i = !1);\n const N = P !== \"\" && I !== void 0 && I !== P, et = A === \"+\" || A === \"*\", nt = A === \"?\" || A === \"*\", V = P || c, _ = w || C;\n n.push({\n delimiter: V,\n optional: nt,\n repeat: et,\n partial: N,\n name: k || r++,\n // tslint:disable-line:no-increment-decrement\n prefix: P,\n pattern: _ ? ye(_) : \"[^\" + q(V) + \"]+?\"\n });\n }\n return (a || s < e.length) && n.push(a + e.substr(s)), n;\n}, me = (e, t) => ge(Mt(e, t)), ge = (e) => {\n const t = new Array(e.length);\n for (let n = 0; n < e.length; n++)\n typeof e[n] == \"object\" && (t[n] = new RegExp(\"^(?:\" + e[n].pattern + \")$\"));\n return function(n, r) {\n let s = \"\";\n const a = r && r.encode || encodeURIComponent;\n for (let c = 0; c < e.length; c++) {\n const o = e[c];\n if (typeof o == \"string\") {\n s += o;\n continue;\n }\n const i = n ? n[o.name] : void 0;\n let h;\n if (Array.isArray(i)) {\n if (!o.repeat)\n throw new TypeError(\n 'Expected \"' + o.name + '\" to not repeat, but got array'\n );\n if (i.length === 0) {\n if (o.optional)\n continue;\n throw new TypeError('Expected \"' + o.name + '\" to not be empty');\n }\n for (let u = 0; u < i.length; u++) {\n if (h = a(i[u], o), !t[c].test(h))\n throw new TypeError(\n 'Expected all \"' + o.name + '\" to match \"' + o.pattern + '\"'\n );\n s += (u === 0 ? o.prefix : o.delimiter) + h;\n }\n continue;\n }\n if (typeof i == \"string\" || typeof i == \"number\" || typeof i == \"boolean\") {\n if (h = a(String(i), o), !t[c].test(h))\n throw new TypeError(\n 'Expected \"' + o.name + '\" to match \"' + o.pattern + '\", but got \"' + h + '\"'\n );\n s += o.prefix + h;\n continue;\n }\n if (o.optional) {\n o.partial && (s += o.prefix);\n continue;\n }\n throw new TypeError(\n 'Expected \"' + o.name + '\" to be ' + (o.repeat ? \"an array\" : \"a string\")\n );\n }\n return s;\n };\n}, q = (e) => e.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\"), ye = (e) => e.replace(/([=!:$/()])/g, \"\\\\$1\"), jt = (e) => e && e.sensitive ? \"\" : \"i\", ve = (e, t) => {\n if (!t)\n return e;\n const n = e.source.match(/\\((?!\\?)/g);\n if (n)\n for (let r = 0; r < n.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 e;\n}, Pe = (e, t, n) => {\n const r = [];\n for (let s = 0; s < e.length; s++)\n r.push(It(e[s], t, n).source);\n return new RegExp(\"(?:\" + r.join(\"|\") + \")\", jt(n));\n}, we = (e, t, n) => xe(Mt(e, n), t, n), xe = (e, t, n) => {\n n = n || {};\n const r = n.strict, s = n.end !== !1, a = q(n.delimiter || Lt), c = n.delimiters || Dt, o = [].concat(n.endsWith || []).map(q).concat(\"$\").join(\"|\");\n let i = \"\", h = !1;\n for (let u = 0; u < e.length; u++) {\n const f = e[u];\n if (typeof f == \"string\")\n i += q(f), h = u === e.length - 1 && c.indexOf(f[f.length - 1]) > -1;\n else {\n const g = q(f.prefix), P = f.repeat ? \"(?:\" + f.pattern + \")(?:\" + g + \"(?:\" + f.pattern + \"))*\" : f.pattern;\n t && t.push(f), f.optional ? f.partial ? i += g + \"(\" + P + \")?\" : i += \"(?:\" + g + \"(\" + P + \"))?\" : i += g + \"(\" + P + \")\";\n }\n }\n return s ? (r || (i += \"(?:\" + a + \")?\"), i += o === \"$\" ? \"$\" : \"(?=\" + o + \")\") : (r || (i += \"(?:\" + a + \"(?=\" + o + \"))?\"), h || (i += \"(?=\" + a + \"|\" + o + \")\")), new RegExp(\"^\" + i, jt(n));\n}, It = (e, t, n) => e instanceof RegExp ? ve(e, t || []) : Array.isArray(e) ? Pe(e, t, n) : we(e, t, n), tt = It;\nvar S = /* @__PURE__ */ ((e) => (e.scopedHash = \"scopedHash\", e.hash = \"hash\", e.browser = \"browser\", e.memory = \"memory\", e))(S || {}), D = /* @__PURE__ */ ((e) => (e.storage = \"storage\", e.path = \"path\", e.initialPath = \"initial\", e))(D || {});\nconst X = (e, t) => {\n const n = [], s = tt(t, n).exec(e);\n if (!s)\n return {};\n const [a, ...c] = s;\n return n.reduce((i, h, u) => (i[h.name] = c[u], i), {});\n}, be = (e) => Object.keys(e).reduce((t, n) => {\n const r = typeof e[n] == \"string\" ? e[n].replace(\"&\", \"%20\") : e[n];\n let s = `${n}=${r}`;\n return t.length > 1 && (s = \"&\".concat(s)), t.concat(s);\n}, \"?\"), it = (e, t) => {\n const n = t.find((r) => r.name === e);\n if (!n) {\n process.env.NODE_ENV !== \"production\" && Et.warn(`Unable to find route with specified name: ${e}`);\n return;\n }\n return n;\n}, Ct = (e) => e.length ? e.slice(1).split(\"&\").map((t) => t.split(\"=\")).reduce((t, n) => {\n const [r, s] = n.map(encodeURI).map(decodeURIComponent);\n return st(L({}, t), { [r]: decodeURIComponent(s).replace(\"%20\", \"&\") });\n}, {}) : {}, Se = (e, t) => {\n const n = t.map((r) => J(e, r)).reduce(\n (r, s) => {\n if (s === null)\n return r;\n const a = s.split(\"?\")[1];\n let c = 0;\n if (a) {\n const o = Ct(`?${a}`);\n c = Object.keys(o).length;\n }\n return !r.path || r.count && c < r.count ? {\n count: c,\n path: s\n } : r;\n },\n { count: void 0, path: void 0 }\n );\n return n ? n.path : t[0];\n}, J = (e, t) => {\n const n = B(e);\n if (Array.isArray(t)) {\n const i = Se(n, t);\n if (!i)\n throw new Error(\"Unable to match path.\");\n return i;\n }\n const r = me(t);\n let s = t;\n try {\n s = r(n);\n } catch (i) {\n return null;\n }\n const a = [];\n tt(t, a);\n const c = Object.keys(n).reduce((i, h) => (a.find((f) => f.name === h) || i.push(h), i), []), o = {};\n return c.forEach((i) => o[i] = n[i]), Object.keys(o).forEach((i) => o[i] === null && delete o[i]), Object.keys(o).length > 0 ? `${s}${be(o)}` : s;\n}, M = (e, t) => {\n let n = e;\n return n.indexOf(\"?\") > -1 && (n = n.substring(0, n.indexOf(\"?\"))), n.indexOf(\";\") > -1 && (n = n.substring(0, n.indexOf(\";\"))), n === \"\" && (n = \"/\"), t.reduce((r, s) => {\n if (Array.isArray(s.path))\n return s.path.reduce((h, u) => tt(u, []).exec(n || \"\") && !h ? n : h, void 0) && !r ? s : r;\n if (!s.path)\n return r;\n const a = [];\n return tt(s.path, a).exec(n || \"\") && !r ? s : r;\n }, void 0);\n}, Ee = (e) => {\n let t = e.get(\"historyTransitionManager\");\n return t || (t = Tt(), e.parent && e.parent.register(\"historyTransitionManager\", t)), t;\n}, W = (e, t = null) => e ? j(t ? t(e) : e) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, ze = (e, t) => {\n const n = `humany-${t}=([^&?]+)&?`, r = new RegExp(n, \"i\"), s = e.match(r);\n return s && s[1] || \"/\";\n}, Oe = (e, t) => {\n if (B(e), B(t), Object.keys(e).length !== Object.keys(t).length)\n return !1;\n if (Object.keys(e).length === 0 && Object.keys(t).length === 0)\n return !0;\n let n = !0;\n return Object.keys(t).forEach((r) => {\n t[r] !== e[r] && (n = !1);\n }), n;\n}, Re = (e) => {\n if (typeof e.mode == \"string\") {\n if (e.mode === S.memory)\n return !0;\n } else if (e.mode[1]) {\n const [t, { sticky: n }] = e.mode;\n if (t === S.memory)\n return typeof n == \"undefined\" ? !0 : n;\n }\n return !1;\n}, ot = (e) => {\n const { views: t } = e.get(\"$settings\"), n = Object.keys(t).reduce((r, s) => typeof t[s].path == \"undefined\" ? s : r, void 0);\n return n ? {\n name: n,\n params: {}\n } : null;\n}, wt = \"hashchange\", Te = {\n hashbang: {\n encodePath: (e) => e.charAt(0) === \"!\" ? e : \"!/\" + ct(e),\n decodePath: (e) => e.charAt(0) === \"!\" ? e.substr(1) : e\n },\n noslash: {\n encodePath: ct,\n decodePath: F\n },\n slash: {\n encodePath: F,\n decodePath: F\n }\n}, T = () => {\n const e = window.location.href, t = e.indexOf(\"#\");\n return t === -1 ? \"\" : e.substring(t + 1);\n}, xt = (e) => window.location.hash = e, bt = (e) => {\n const t = window.location.href.indexOf(\"#\");\n window.location.replace(\n window.location.href.slice(0, t >= 0 ? t : 0) + \"#\" + e\n );\n}, Z = (e = \"\") => {\n const t = e.replace(\";\", \"?\"), n = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return n.forEach(({ to: s, from: a }) => {\n r = r.replace(a, s);\n }), r;\n}, Ae = (e = {}) => {\n const t = window.history, { getUserConfirmation: n = At, hashType: r = \"slash\" } = e, s = e.basename ? _t(F(e.basename)) : \"\", { encodePath: a } = Te[r], c = () => {\n const l = T(), m = u(l);\n return W(m, Z);\n }, o = e.transitionManager || Tt(), i = (l) => {\n Object.assign(E, l), E.length = t.length, o.notifyListeners(E.location, E.action, e.widgetName);\n };\n let h = !1;\n const u = (l) => {\n const m = (y) => {\n function x(b, $) {\n const v = {};\n let H;\n for (; H = $.exec(b); )\n v[H[1]] = H[2];\n return v;\n }\n return x(y, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, p = \"humany-\" + e.widgetName;\n return m(l)[p];\n }, f = () => {\n const l = c(), m = E.location;\n !h && $t(m, l) || g(l);\n }, g = (l) => {\n if (h)\n h = !1, i();\n else {\n const m = \"POP\";\n o.confirmTransitionTo(\n l,\n m,\n n,\n (p) => {\n p ? i({ action: m, location: l }) : P(l);\n }\n );\n }\n }, P = (l) => {\n const m = E.location;\n let p = w.lastIndexOf(R(m));\n p === -1 && (p = 0);\n let d = w.lastIndexOf(R(l));\n d === -1 && (d = 0);\n const y = p - d;\n y && (h = !0, _(y));\n }, I = T(), k = a(I);\n I !== k && bt(k);\n let w = [];\n const C = c();\n C.pathname !== null && w.push(R(C));\n const A = (l = \"\") => {\n const m = [\n { from: /\\?+/gi, to: \";\" },\n { from: /\\&amp;+/gi, to: \";\" },\n { from: /\\&+/gi, to: \";\" },\n { from: /=+/gi, to: \":\" }\n ];\n let p = l;\n return m.forEach(({ to: d, from: y }) => {\n p = p.replace(y, d);\n }), p;\n }, N = (l, m, p) => {\n let d = \"\", y = !1;\n return l.split(\"&\").forEach((b) => {\n const $ = b.split(\"=\"), v = $[0], H = $[1];\n if (v === m) {\n if (y = !0, p === null)\n return;\n d.length > 0 && (d += \"&\"), typeof p != \"undefined\" ? d += v + \"=\" + p : d += v;\n } else\n v && (d.length > 0 && (d += \"&\"), d += v + \"=\" + H);\n }), !y && p !== null && (d.length > 0 && (d += \"&\"), typeof p != \"undefined\" ? d += m + \"=\" + p : d += m), d;\n }, et = (l) => {\n const m = l.pathname, p = A(l.search), d = m + (p ? `;${p}` : \"\"), x = `humany-${e.widgetName}`, b = T();\n return `#${N(b, x, d).replace(\";;\", \";\")}`;\n }, nt = (l, m) => {\n const p = \"PUSH\", d = W(l, Z), y = d.pathname, x = A(d.search), b = y + (x ? `${x}` : \"\"), v = `humany-${e.widgetName}`, H = T(), Ut = N(H, v, b);\n o.confirmTransitionTo(d, p, n, (qt) => {\n if (!qt)\n return;\n const Wt = R(d), ht = a(Ut);\n if (T() !== ht) {\n xt(ht);\n const ut = w.lastIndexOf(R(E.location)), lt = w.slice(0, ut === -1 ? 0 : ut + 1);\n lt.push(Wt), w = lt, i({ action: p, location: d });\n } else\n i();\n });\n }, V = (l, m) => {\n const p = \"REPLACE\", d = W(l, Z);\n o.confirmTransitionTo(d, p, n, (y) => {\n if (!y)\n return;\n const x = R(d), b = a(s + x);\n T() !== b && bt(b);\n const v = w.indexOf(R(E.location));\n v !== -1 && (w[v] = x), i({ action: p, location: d });\n });\n }, _ = (l) => {\n t.go(l);\n }, U = () => _(-1), Nt = () => _(1);\n let rt = 0;\n const z = (l) => {\n rt += l, rt === 1 ? window.addEventListener(wt, f) : rt === 0 && window.removeEventListener(wt, f);\n };\n let G = !1;\n const E = {\n createHref: et,\n createLocation: W,\n push: nt,\n replace: V,\n go: _,\n goBack: U,\n goForward: Nt,\n block: (l = !1) => {\n const m = o.setPrompt(l);\n return G || (z(1), G = !0), () => (G && (G = !1, z(-1)), m());\n },\n listen: (l) => {\n const m = o.appendListener(l);\n return z(1), () => {\n z(-1), m();\n };\n },\n stop: () => {\n const l = T(), m = N(l, `humany-${e.widgetName}`, null), p = a(m);\n xt(p);\n },\n length: t.length,\n action: \"POP\",\n location: C\n };\n return E;\n}, _e = Ae, $e = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n decodeSearch: Z,\n default: _e,\n getHashPath: T\n}, Symbol.toStringTag, { value: \"Module\" })), He = (e, t) => {\n const n = (a) => {\n function c(o, i) {\n const h = {};\n let u;\n for (; u = i.exec(o); )\n h[u[1]] = u[2];\n return h;\n }\n return c(a, /([^#?&=]+)=([^&#]*)(?!.*?\\#)/gi) || null;\n }, r = `humany-${t}`;\n return n(e)[r];\n}, Le = () => {\n const e = window.location.href, t = e.indexOf(\"#\");\n return t === -1 ? \"\" : e.substring(t + 1);\n}, De = (e = \"\") => {\n const t = e.replace(\";\", \"?\"), n = [\n { from: /\\;+/gi, to: \"&\" },\n { from: /:+/gi, to: \"=\" }\n ];\n let r = t;\n return n.forEach(({ to: s, from: a }) => {\n r = r.replace(a, s);\n }), r;\n}, Me = (e, t = null) => e ? j(t ? t(e) : e) : {\n pathname: \"\",\n search: \"\",\n hash: \"\"\n}, je = (e) => {\n const t = Le(), n = He(t, e);\n return Me(n, De);\n}, Ie = (e) => {\n const { name: t } = e.get(\"$widget\");\n return !!je(t).pathname;\n}, Ge = Kt((e) => {\n e.createCommand(\"routing\", (t) => (n) => {\n const r = {\n mode: n.mode\n };\n n.basePath && (r.basePath = n.basePath), t.container.register(\"routingSettings\", r);\n });\n}), St = \"routeData\";\nclass Ke {\n constructor(t, n) {\n this.container = t, this.steps = [], this.historyListenSubscription = () => {\n }, this.sticky = !1, this.storageWriter = null, this.widget = t.get(\"$widget\");\n const a = n, { routes: r } = a, s = mt(a, [\"routes\"]);\n this.settings = L(L({}, s), t.get(\"routingSettings\")), this.sticky = Re(this.settings), this.storageMedium = this.sticky ? yt.Local : yt.Session, Qt(t, St, Xt.Necessary, {\n medium: this.storageMedium\n }).then((c) => this.storageWriter = c), this.routes = r;\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 (n, r, s) => this.handleLocationChange(n, s)\n );\n });\n }\n setMatch(t) {\n if (this.match = t, this.location) {\n const n = this.getRouteData(), r = {\n routeData: n,\n location: this.location\n }, s = this.steps[0], a = n.name === (s == null ? void 0 : s.routeData.name), c = gt(\n n.params,\n (s == null ? void 0 : s.routeData.params) || {}\n );\n (!a || !c) && (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, n = {}) {\n const r = it(t, this.routes);\n if (!r || !this.history)\n throw `No route found for ${t}`;\n const s = J(n, r.path);\n if (!s)\n throw `Unable to generate path for \"${t}\".`;\n const a = W(s, this.settings.decodeSearch);\n let c = this.history.createHref(a);\n const { mode: o, basePath: i } = this.settings;\n return o === \"browser\" && i && (c = c.replace(i, \"\")), c.charAt(0) !== \"/\" && (c = `/${c}`), c;\n }\n /**\n * Navigate to path\n * @param routeName Route to navigate to\n * @param params Optional: route params\n */\n navigate(t, n = {}) {\n const r = it(t, this.routes);\n if (!r || !this.history)\n return;\n const s = J(n, r.path);\n if (!s)\n return;\n const a = this.getRouteData(), c = a && a.name === t && Oe(a.params, n);\n if (this.steps[0] && c)\n return;\n const { decodeSearch: i } = this.settings, h = i ? i(s) : s;\n this.widget.events.dispatch(\"router:navigate\", {\n decodedPath: h\n }), h.charAt(0) !== \"/\" ? this.history.push(`/${h}`) : this.history.push(h);\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), n = this.getRouteData(), r = n.name === t.name, s = gt(n.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 n = this.getRouteData(this.settings.initialPath);\n n && n.name && (this.navigate(n.name, n.params), this.steps = []);\n } else {\n const n = t >= this.steps.length ? this.steps.length - 1 : t, { routeData: r } = this.steps[n];\n this.steps = [...this.steps.slice(n + 1)], this.navigate(r.name, Vt(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 = this.routes.find((r) => r.name === t);\n return n || (this.routes.length > 0 ? this.routes[0] : (process.env.NODE_ENV !== \"production\" && Et.warn(\"Unable to get initial route as no routes are defined.\"), null));\n }\n getRouteData(t) {\n const n = ot(this.container);\n if (t) {\n const r = M(t, this.routes);\n return r ? {\n params: B(X(t, r.path)),\n name: r.name\n } : n || {\n name: \"\",\n params: {}\n };\n }\n if (this.location) {\n const { pathname: r, search: s } = this.location;\n if (this.currentRoute = this.currentRoute || M(r, this.routes), this.currentRoute) {\n const { path: a, name: c } = this.currentRoute;\n this.match || (this.match = {\n params: X(r, a),\n isExact: !0,\n path: a,\n url: r\n });\n const o = B(L(L({}, this.match.params), s.length > 0 && Ct(s)));\n return {\n name: c,\n params: o\n };\n }\n }\n return n || {\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 Yt(this.container, St, this.storageMedium).then(\n (t) => {\n if (!this.location || !this.history)\n return;\n const { initialPath: n, mode: r } = this.settings;\n switch ((() => {\n const a = Ie(this.container);\n return r === S.browser || a ? D.path : r === S.memory && t ? D.storage : D.initialPath;\n })()) {\n case D.initialPath: {\n const a = this.getRouteData(n);\n return a && a.name ? this.navigate(a.name, a.params) : void 0;\n }\n case D.path: {\n const { pathname: a } = this.location;\n if (this.currentRoute = M(a, this.routes), this.currentRoute) {\n const { path: o } = this.currentRoute;\n return this.setMatch({\n params: X(a, o),\n isExact: !0,\n path: o,\n url: a\n });\n }\n const c = ot(this.container);\n return c ? this.setMatch({\n params: {},\n isExact: !0,\n path: c.name,\n url: a\n }) : void 0;\n }\n case D.storage: {\n const { pathname: a } = this.location;\n this.currentRoute = M(a, this.routes);\n const { name: c = \"\", params: o = {} } = t || {}, i = it(c, this.routes);\n if (i) {\n const h = J(o, i.path);\n if (h)\n return this.history.push(h), this.location = st(L({}, this.location), { pathname: h }), this.currentRoute = M(h, this.routes), this.setMatch({\n params: o,\n isExact: !0,\n path: i.path,\n url: h\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 === S.scopedHash && this.history.stop(), this.steps = [], this.storageWriter) ? this.storageWriter() : Promise.resolve();\n }\n handleLocationChange(t, n) {\n const { pathname: r } = t, { mode: s } = this.settings;\n if (r.indexOf(\"?\") > -1 || r.indexOf(\";\") > -1 || s === S.scopedHash && n !== this.widget.name)\n return;\n this.location = t, this.currentRoute = M(r, this.routes);\n const a = ot(this.container);\n if (this.currentRoute) {\n const { path: c } = this.currentRoute;\n this.setMatch({\n params: X(r, c),\n isExact: !0,\n path: c,\n url: r\n });\n } else\n a && this.setMatch({\n params: {},\n isExact: !0,\n path: a.name,\n url: r\n });\n }\n createHistory() {\n return new Promise((t) => {\n const { mode: n, basePath: r } = this.settings;\n if (n === S.scopedHash) {\n const s = this.widget.name, a = Ee(this.container);\n return Promise.resolve().then(() => $e).then((c) => {\n const o = c.default({\n widgetName: s,\n transitionManager: a,\n hashType: \"noslash\"\n });\n return t(o);\n });\n }\n if (n === S.memory)\n return t(zt());\n if (n === S.browser)\n return t(Gt({ basename: r }));\n throw \"RoutingService: History could not be created.\";\n });\n }\n}\nexport {\n S as HistoryMode,\n Ke as RoutingService,\n _e as createHashHistory,\n je as getScopedHashDOMLocation,\n ze as getSpecificWidgetPath,\n X as matchParams,\n Ie as onWidgetUrl,\n Ge as routingConfigurationApi\n};\n//# sourceMappingURL=index.js.map\n","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 triggerTabHandler = (triggerDOMElement: HTMLElement) => {\r\n const toggleTabbing = (element: HTMLElement, tabbing: boolean) => {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n if (tabbing) {\r\n element.classList.add('ace-tabbing');\r\n } else {\r\n element.classList.remove('ace-tabbing');\r\n }\r\n };\r\n\r\n const handleKeydown = (e: KeyboardEvent) => {\r\n if (e.key === 'Tab') {\r\n toggleTabbing(triggerDOMElement, true);\r\n } else if (\r\n !(\r\n e.key === 'Enter' &&\r\n document.activeElement &&\r\n document.activeElement.classList.contains('ace-widget-trigger')\r\n )\r\n ) {\r\n toggleTabbing(triggerDOMElement, false);\r\n }\r\n };\r\n\r\n const handleClick = (_e: MouseEvent) => {\r\n if (\r\n document.activeElement &&\r\n document.activeElement.classList.contains('ace-widget-trigger') &&\r\n document.activeElement.classList.contains('ace-tabbing')\r\n ) {\r\n return;\r\n }\r\n toggleTabbing(triggerDOMElement, false);\r\n };\r\n\r\n document.addEventListener('keydown', handleKeydown);\r\n document.addEventListener('click', handleClick);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', handleKeydown);\r\n document.removeEventListener('click', handleClick);\r\n };\r\n};\r\n\r\nexport type TriggerElementOptions = {\r\n symbol?: { type: string; content: string };\r\n widgetName: string;\r\n label?: string;\r\n ariaLabel?: string;\r\n tooltip?: string;\r\n};\r\n\r\nexport function createTriggerElement(\r\n element: HTMLElement,\r\n options: TriggerElementOptions\r\n) {\r\n const {\r\n // symbol,\r\n widgetName,\r\n label = '',\r\n ariaLabel = '',\r\n tooltip = '',\r\n } = options;\r\n\r\n element.classList.add('ace-widget-trigger');\r\n element.classList.add(`ace-widget_${widgetName}`);\r\n\r\n if (label.length) {\r\n element.classList.add('trigger-has-text');\r\n }\r\n\r\n if (ariaLabel.length && !element.getAttribute('aria-label')) {\r\n element.setAttribute('aria-label', ariaLabel);\r\n }\r\n\r\n if (ariaLabel.length && !element.getAttribute('tabindex')) {\r\n element.setAttribute('tabindex', '0');\r\n }\r\n\r\n if (tooltip.length && !element.getAttribute('title')) {\r\n element.setAttribute('title', tooltip);\r\n }\r\n\r\n return triggerTabHandler(element);\r\n}\r\n\r\nexport function setInactive(\r\n elements: HTMLElement | HTMLElement[],\r\n title?: string\r\n) {\r\n if (elements instanceof HTMLElement) {\r\n if (title) {\r\n elements.setAttribute('title', title);\r\n }\r\n elements.classList.remove('ace-trigger-active');\r\n elements.classList.remove('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n if (title) {\r\n e.setAttribute('title', title);\r\n }\r\n e.classList.remove('ace-trigger-active');\r\n e.classList.remove('ace-trigger-loading');\r\n });\r\n }\r\n}\r\nexport function setLoading(elements: HTMLElement | HTMLElement[]) {\r\n if (elements instanceof HTMLElement) {\r\n elements.classList.remove('ace-trigger-active');\r\n elements.classList.add('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n e.classList.remove('ace-trigger-active');\r\n e.classList.add('ace-trigger-loading');\r\n });\r\n }\r\n}\r\nexport function setActive(\r\n elements: HTMLElement | HTMLElement[],\r\n title?: string\r\n) {\r\n if (elements instanceof HTMLElement) {\r\n if (title) {\r\n elements.setAttribute('title', title);\r\n }\r\n elements.classList.add('ace-trigger-active');\r\n elements.classList.remove('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n if (title) {\r\n e.setAttribute('title', title);\r\n }\r\n e.classList.add('ace-trigger-active');\r\n e.classList.remove('ace-trigger-loading');\r\n });\r\n }\r\n}\r\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { LitElement, html, css, nothing } from 'lit';\r\nimport { property, state } from 'lit/decorators.js';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\n\r\ntype Symbol = {\r\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\r\n content: string;\r\n};\r\n\r\n// @customElement('ace-widget-trigger')\r\nexport class TriggerComponent extends LitElement {\r\n static override styles = [\r\n css`\r\n :host {\r\n --voca-rem-multiplier: 0.625;\r\n display: block;\r\n box-sizing: border-box;\r\n }\r\n\r\n .trigger {\r\n position: fixed;\r\n transform: scale(0);\r\n box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;\r\n bottom: 20px;\r\n right: 20px;\r\n z-index: 5;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n line-height: 55px;\r\n height: 55px;\r\n width: 55px;\r\n border-radius: 55px;\r\n cursor: pointer;\r\n background-color: #990ae3;\r\n font-family: Lato;\r\n text-decoration: none;\r\n border: 3px dashed transparent;\r\n box-sizing: border-box;\r\n transition: transform 200ms ease-out;\r\n }\r\n .trigger:hover {\r\n transform: scale(1.1) !important;\r\n }\r\n .trigger.rendered {\r\n transform: scale(1);\r\n }\r\n .trigger.active .trigger-icon {\r\n opacity: 0;\r\n transform: rotate(-180deg) scale(0);\r\n }\r\n .trigger.active .trigger-close {\r\n opacity: 1;\r\n transform: rotate(0deg) scale(1);\r\n }\r\n\r\n .trigger-icon {\r\n display: inline-block;\r\n line-height: inherit;\r\n text-align: center;\r\n opacity: 1;\r\n transform: rotate(0deg) scale(1);\r\n transition:\r\n opacity 200ms ease-out,\r\n transform 200ms ease-out;\r\n color: #ffffff;\r\n }\r\n .trigger-close {\r\n opacity: 0;\r\n transition: transform 200ms ease-out;\r\n transform: rotate(180deg) scale(0);\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n fill: #ffffff;\r\n }\r\n `,\r\n ];\r\n\r\n @property({ attribute: false })\r\n symbol?: Symbol;\r\n\r\n @state()\r\n active: boolean = false;\r\n\r\n @state()\r\n loaded: boolean = false;\r\n\r\n @state()\r\n icon: any;\r\n\r\n override async connectedCallback() {\r\n super.connectedCallback();\r\n\r\n this.icon = await this._renderSymbol(this.symbol);\r\n this.loaded = true;\r\n }\r\n\r\n _toggleActive() {\r\n this.active = !this.active;\r\n }\r\n\r\n async _renderSymbol(symbol?: Symbol) {\r\n const importIcon = async (iconName: string) => {\r\n const icon = await import('@teliads/icons').then((m) => {\r\n return m[iconName];\r\n });\r\n return icon;\r\n };\r\n\r\n if (symbol) {\r\n const { type, content } = symbol;\r\n switch (type) {\r\n case 'Telia': {\r\n const icon: any = await importIcon(content);\r\n if (icon) {\r\n return html`<telia-icon\r\n class=\"trigger-icon\"\r\n svg=${icon.svg}\r\n size=\"lg\"\r\n ></telia-icon>`;\r\n }\r\n return nothing;\r\n }\r\n case 'FontAwesome':\r\n return html`<i class=\"trigger-fa-icon fa fa-${content}\"></i>`;\r\n case 'Uri':\r\n return html`<i\r\n class=\"trigger-custom-icon\"\r\n style=\"background: url(${content}) no-repeat center center;background-size: contain;\"\r\n ></i>`;\r\n default:\r\n return nothing;\r\n }\r\n }\r\n }\r\n\r\n override render() {\r\n return html`<button\r\n class=${classMap({\r\n trigger: true,\r\n active: this.active,\r\n rendered: this.loaded,\r\n })}\r\n @click=${this._toggleActive}\r\n >\r\n ${this.icon}\r\n <span class=\"trigger-close\">\r\n <svg\r\n width=\"18\"\r\n height=\"9\"\r\n viewBox=\"0 0 18 9\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\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\"\r\n fill=\"white\"\r\n />\r\n </svg>\r\n </span>\r\n <span class=\"trigger-loader\">\r\n <svg viewBox=\"25 25 50 50\">\r\n <circle\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke=\"#000\"\r\n stroke-width=\"2\"\r\n stroke-miterlimit=\"10\"\r\n />\r\n </svg>\r\n </span>\r\n </button>`;\r\n }\r\n}\r\n","import { ViewOutletOptions } from './view-outlet';\r\nimport { TriggerComponent } from './trigger-component';\r\n\r\nenum ProvidedElements {\r\n None = 'none',\r\n WidgetDOM = 'widgetDOM',\r\n TriggerDOM = 'triggerDOM',\r\n Both = 'both',\r\n}\r\n\r\nexport enum TriggerType {\r\n Inline = 'inline',\r\n Link = 'link',\r\n Badge = 'badge',\r\n Unsupported = 'unsupported',\r\n}\r\n\r\nexport const determineProvidedElements = (\r\n widgetDOMElement?: HTMLElement,\r\n triggerDOMElement?: HTMLElement\r\n): ProvidedElements => {\r\n if (widgetDOMElement && triggerDOMElement) {\r\n return ProvidedElements.Both;\r\n }\r\n if (widgetDOMElement) {\r\n return ProvidedElements.WidgetDOM;\r\n }\r\n if (triggerDOMElement) {\r\n return ProvidedElements.TriggerDOM;\r\n }\r\n return ProvidedElements.None;\r\n};\r\n\r\nexport const determineTriggerType = (triggerDefinition?: any) => {\r\n if (!triggerDefinition) {\r\n return TriggerType.Inline;\r\n }\r\n if (typeof triggerDefinition === 'boolean' && triggerDefinition) {\r\n return TriggerType.Link;\r\n }\r\n if (\r\n typeof triggerDefinition === 'object' &&\r\n !Array.isArray(triggerDefinition)\r\n ) {\r\n return TriggerType.Badge;\r\n }\r\n return TriggerType.Unsupported;\r\n};\r\n\r\ntype PrepareDOMElementsOutput = ViewOutletOptions & {\r\n callback?: () => void;\r\n};\r\n\r\nexport const prepareDOMElements = async (\r\n name: string,\r\n providedWidgetElement?: HTMLElement,\r\n providedTriggerElement?: HTMLElement,\r\n triggerDefinition?: any,\r\n waitWithReplace: boolean = false\r\n): Promise<PrepareDOMElementsOutput> => {\r\n const providedElements = determineProvidedElements(\r\n providedWidgetElement,\r\n providedTriggerElement\r\n );\r\n const triggerType = determineTriggerType(triggerDefinition);\r\n\r\n const cachedOriginals = {\r\n widgetDOMElement: providedWidgetElement\r\n ? providedWidgetElement.cloneNode(true)\r\n : undefined,\r\n triggerDOMElement: providedTriggerElement\r\n ? providedTriggerElement.cloneNode(true)\r\n : undefined,\r\n };\r\n\r\n const output: PrepareDOMElementsOutput = {\r\n triggerType,\r\n cachedOriginals,\r\n widgetDOMElement: document.createElement('div'),\r\n };\r\n\r\n switch (providedElements) {\r\n case ProvidedElements.Both: {\r\n output.widgetDOMElement =\r\n providedWidgetElement || document.createElement('div');\r\n if (triggerType !== TriggerType.Inline) {\r\n output.triggerDOMElement = providedTriggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.WidgetDOM: {\r\n output.widgetDOMElement =\r\n providedWidgetElement || document.createElement('div');\r\n if (triggerType !== TriggerType.Inline) {\r\n const triggerElement = document.body.appendChild(\r\n document.createElement('a')\r\n );\r\n if (triggerType === TriggerType.Link) {\r\n triggerElement.innerText = name;\r\n }\r\n output.triggerDOMElement = triggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.TriggerDOM: {\r\n const widgetElement = document.createElement('div');\r\n output.widgetDOMElement = widgetElement;\r\n if (triggerType === TriggerType.Inline) {\r\n // replace with widgetDOMElement in the DOM\r\n widgetElement.id = providedTriggerElement?.id || '';\r\n if (waitWithReplace) {\r\n widgetElement.style.display = 'none';\r\n providedTriggerElement?.parentNode?.appendChild(widgetElement);\r\n\r\n output.callback = () => {\r\n providedTriggerElement?.parentNode?.replaceChild(\r\n widgetElement,\r\n providedTriggerElement\r\n );\r\n widgetElement.style.display =\r\n providedTriggerElement?.style.display || 'block';\r\n };\r\n } else {\r\n providedTriggerElement?.parentNode?.replaceChild(\r\n widgetElement,\r\n providedTriggerElement\r\n );\r\n }\r\n output.cachedOriginals.widgetDOMElement = providedTriggerElement;\r\n output.cachedOriginals.triggerDOMElement = undefined;\r\n } else {\r\n output.widgetDOMElement = document.body.appendChild(widgetElement);\r\n output.triggerDOMElement = providedTriggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.None: {\r\n const widgetElement = document.body.appendChild(\r\n document.createElement('div')\r\n );\r\n output.widgetDOMElement = widgetElement;\r\n if (triggerType !== TriggerType.Inline) {\r\n if (!customElements.get('ace-widget-trigger')) {\r\n customElements.define('ace-widget-trigger', TriggerComponent);\r\n }\r\n const trigger: any = document.createElement('ace-widget-trigger');\r\n trigger.symbol = triggerDefinition.symbol;\r\n\r\n document.body.appendChild(trigger);\r\n console.log('Created trigger');\r\n // if (triggerType === TriggerType.Link) {\r\n // triggerElement.innerText = name;\r\n // }\r\n output.triggerDOMElement = trigger;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return output;\r\n};\r\n","import { readStorage, StorageMedium } from '@telia-ace/widget-services';\r\nimport { Symbol } from '@telia-ace/widget-ui';\r\nimport { notifyDataLoaded } from '@telia-ace/widget-utilities';\r\nimport { Container, Widget } from '@webprovisions/platform';\r\nimport {\r\n createTriggerElement,\r\n setActive,\r\n setLoading,\r\n} from './html-element-handlers';\r\nimport { TriggerType } from './prepare-dom';\r\n\r\nconst MODALS_STORAGE_KEY = 'modals';\r\n\r\nexport type BadgeOptions = {\r\n symbol?: Symbol;\r\n label?: string;\r\n ariaLabel?: string;\r\n openTooltip?: string;\r\n closedTooltip?: string;\r\n};\r\n\r\nexport type ViewOutletOptions = {\r\n widgetDOMElement: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n triggerOptions?: BadgeOptions | boolean;\r\n triggerType: TriggerType;\r\n cachedOriginals: {\r\n widgetDOMElement?: Node;\r\n triggerDOMElement?: Node;\r\n };\r\n};\r\n\r\ntype Modals = {\r\n name: string;\r\n ref?: HTMLElement;\r\n selector?: string;\r\n};\r\n\r\nexport class ViewOutlet {\r\n container: Container;\r\n private unsubscribe: (() => void)[] = [];\r\n\r\n constructor(\r\n container: Container,\r\n public options: ViewOutletOptions\r\n ) {\r\n this.container = container.createChild(this);\r\n this.container.register('widgetDOMElement', this.options.widgetDOMElement);\r\n this.container.register(\r\n 'triggerDOMElement',\r\n this.options.triggerDOMElement\r\n );\r\n\r\n const widget: Widget = this.container.get('$widget');\r\n this.options.widgetDOMElement.classList.add('ace-widget');\r\n this.options.widgetDOMElement.classList.add(`ace-widget_${widget.name}`);\r\n\r\n const widgetDOMElements = container.get('widgetDOMElements') || [];\r\n container.register('widgetDOMElements', [\r\n ...widgetDOMElements,\r\n this.options.widgetDOMElement,\r\n ]);\r\n }\r\n\r\n /**\r\n * Renders the view outlet to the DOM.\r\n */\r\n render() {\r\n const { widgetDOMElement, triggerDOMElement } = this.options;\r\n\r\n const widget: Widget = this.container.get('$widget');\r\n\r\n if (widgetDOMElement.getAttribute('data-rendered') === 'true') {\r\n return Promise.resolve();\r\n }\r\n\r\n if (triggerDOMElement && this.options.triggerType === TriggerType.Badge) {\r\n setLoading(triggerDOMElement);\r\n }\r\n\r\n return import('./render')\r\n .then((module) => module.default(this.container, widgetDOMElement))\r\n .then(() => {\r\n widgetDOMElement.setAttribute('data-rendered', 'true');\r\n\r\n if (\r\n triggerDOMElement &&\r\n this.options.triggerType === TriggerType.Badge\r\n ) {\r\n const tooltip = (this.options.triggerOptions as BadgeOptions)\r\n .openTooltip;\r\n setActive(triggerDOMElement, tooltip);\r\n }\r\n notifyDataLoaded(this.container, widgetDOMElement);\r\n\r\n const widgets = this.container.get('$environment').widgets.all();\r\n\r\n readStorage<Modals[]>(\r\n this.container,\r\n MODALS_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((modals) => {\r\n if (modals) {\r\n modals.forEach((modal) => {\r\n if (\r\n widgets.find(\r\n (w: Widget) =>\r\n w.name === modal.name && w.state === 'activated'\r\n )\r\n ) {\r\n widget.events.dispatch('widget:modal-opened', modal);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n renderBadge(options: BadgeOptions) {\r\n const { triggerDOMElement } = this.options;\r\n\r\n if (!triggerDOMElement) {\r\n return;\r\n }\r\n\r\n if (!triggerDOMElement.getAttribute('role')) {\r\n triggerDOMElement.setAttribute('role', 'button');\r\n }\r\n\r\n const { name }: Widget = this.container.get('$widget');\r\n\r\n const { label, symbol, ariaLabel, closedTooltip, openTooltip } = options;\r\n\r\n const triggerOptions = { closedTooltip, openTooltip };\r\n this.options.triggerOptions = triggerOptions;\r\n\r\n const removeTriggerListeners = createTriggerElement(triggerDOMElement, {\r\n label,\r\n symbol,\r\n ariaLabel,\r\n widgetName: name,\r\n tooltip: closedTooltip,\r\n });\r\n this.unsubscribe.push(removeTriggerListeners);\r\n }\r\n\r\n async dispose() {\r\n const { triggerDOMElement, widgetDOMElement } = this.options;\r\n if (this.options.cachedOriginals.widgetDOMElement) {\r\n if (widgetDOMElement) {\r\n widgetDOMElement.parentNode?.replaceChild(\r\n this.options.cachedOriginals.widgetDOMElement,\r\n widgetDOMElement\r\n );\r\n }\r\n }\r\n if (this.options.cachedOriginals.triggerDOMElement) {\r\n if (triggerDOMElement) {\r\n triggerDOMElement.parentNode?.replaceChild(\r\n this.options.cachedOriginals.triggerDOMElement,\r\n triggerDOMElement\r\n );\r\n }\r\n }\r\n this.unsubscribe.forEach((unsubscribe) => {\r\n unsubscribe();\r\n });\r\n widgetDOMElement.parentNode?.removeChild(widgetDOMElement);\r\n triggerDOMElement?.parentNode?.removeChild(triggerDOMElement);\r\n }\r\n}\r\n","import {\r\n ChangesetOptions,\r\n ChangesetProvider,\r\n ComponentNodeAttributes,\r\n ComponentNodeSettings,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n ComponentQueryRule,\r\n createComponentModel,\r\n WidgetSettings,\r\n} from '@telia-ace/widget-core';\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 { Container, Widget, WidgetState } from '@webprovisions/platform';\r\n\r\nconst STORAGE_KEY = 'changesets';\r\n\r\ntype ChangesetItem = {\r\n rules: ComponentQueryRule[];\r\n attributes: Partial<ComponentNodeAttributes>;\r\n options: ChangesetOptions;\r\n};\r\n\r\ntype ChangesetItemBag = {\r\n items?: { [key: string]: ChangesetItem };\r\n keys?: string[];\r\n};\r\n\r\nconst convertSettingsToAttributes = (\r\n settings: Partial<ComponentNodeSettings>\r\n): Partial<ComponentNodeAttributes> => {\r\n const attributes: Partial<ComponentNodeAttributes> = { tags: settings.tags };\r\n if (settings.context && typeof settings.context !== 'function') {\r\n attributes.context = settings.context;\r\n }\r\n if (settings.properties && typeof settings.properties !== 'function') {\r\n attributes.properties = settings.properties;\r\n }\r\n if (settings.layout && typeof settings.layout !== 'function') {\r\n attributes.layout = settings.layout;\r\n }\r\n\r\n return attributes;\r\n};\r\n\r\nexport class LocalStorageChangesetProvider implements ChangesetProvider {\r\n constructor(\r\n private container: Container,\r\n private storageWriter: StorageWriter\r\n ) {}\r\n\r\n static create(container: Container): Promise<LocalStorageChangesetProvider> {\r\n return createStorageWriter(\r\n container,\r\n STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ).then(\r\n (storageWriter) =>\r\n new LocalStorageChangesetProvider(container, storageWriter)\r\n );\r\n }\r\n\r\n write(\r\n key: string,\r\n target: ComponentQuery,\r\n attributes: Partial<ComponentNodeSettings>,\r\n options: ChangesetOptions\r\n ): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n const existingIndex = keys.indexOf(key);\r\n if (existingIndex > -1) {\r\n keys.splice(existingIndex, 1);\r\n }\r\n keys.push(key);\r\n items[key] = {\r\n options,\r\n attributes: convertSettingsToAttributes(attributes),\r\n rules: target.rules,\r\n };\r\n return this.storageWriter({ keys, items });\r\n });\r\n });\r\n }\r\n\r\n remove(key: string): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n const indexToRemove = keys.indexOf(key);\r\n if (indexToRemove > -1) {\r\n keys.splice(indexToRemove, 1);\r\n delete items[key];\r\n return this.storageWriter(bag);\r\n }\r\n });\r\n });\r\n }\r\n\r\n load(platform: ComponentPlatform): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n keys.forEach((key) => {\r\n const item = items[key];\r\n if (item) {\r\n const { rules, attributes, options } = item;\r\n platform.write({\r\n attributes,\r\n options,\r\n target: new ComponentQuery(platform, rules),\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const createPlatform = (widget: Widget): Promise<ComponentPlatform> => {\r\n const { container } = widget;\r\n return LocalStorageChangesetProvider.create(container).then(\r\n (localStorage) => {\r\n const settings: WidgetSettings = container.get('$settings');\r\n const providers = { localStorage };\r\n const platform = new ComponentPlatform(widget, providers);\r\n const destructComponentModel = createComponentModel(platform, settings);\r\n\r\n widget.events.subscribe(\r\n 'widget:state-change',\r\n (_event, data: { state: WidgetState }) => {\r\n if (data.state === WidgetState.Deactivating) {\r\n destructComponentModel();\r\n }\r\n }\r\n );\r\n\r\n return platform;\r\n }\r\n );\r\n};\r\n","import { WidgetSettings } from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { createPlatform } from './component-platform-factory';\r\n\r\nexport const createRoutingService = (container: Container) => {\r\n return import('@telia-ace/widget-routing').then(\r\n ({ RoutingService, HistoryMode }) => {\r\n return container.get('settings').then((settings: WidgetSettings) => {\r\n const {\r\n routing: {\r\n initialPath = '/',\r\n mode = HistoryMode.scopedHash,\r\n basePath,\r\n },\r\n views,\r\n } = settings;\r\n\r\n const routingService = new RoutingService(container, {\r\n initialPath,\r\n mode,\r\n routes: Object.keys(views).map((name) => ({\r\n name,\r\n path: views[name].path,\r\n })),\r\n basePath,\r\n });\r\n return routingService;\r\n });\r\n }\r\n );\r\n};\r\n\r\nexport const createStorageService = (_container: Container) => {\r\n return import('@telia-ace/widget-services').then(({ StorageProvider }) => {\r\n return new StorageProvider();\r\n });\r\n};\r\n\r\nexport const createActionResolver = (container: Container) => {\r\n return import('@telia-ace/widget-core').then(({ ActionResolver }) => {\r\n return new ActionResolver(container);\r\n });\r\n};\r\n\r\nexport const createComponentResolver = (container: Container) => {\r\n return import('@telia-ace/widget-core').then(({ ComponentResolver }) => {\r\n return new ComponentResolver(container);\r\n });\r\n};\r\n\r\nexport const createComponentPlatform = (container: Container) => {\r\n return import('@telia-ace/widget-core').then(() => {\r\n // ({ ComponentPlatform, createComponentModel }) => {\r\n return createPlatform(container.get('$widget'));\r\n });\r\n};\r\n","import {\r\n ActionResolver,\r\n ComponentPlatform,\r\n WidgetRenderState,\r\n WidgetSettings,\r\n} from '@telia-ace/widget-core';\r\nimport {\r\n RouteData,\r\n RoutingService,\r\n onWidgetUrl,\r\n} from '@telia-ace/widget-routing';\r\nimport {\r\n StorageCategory,\r\n StorageMedium,\r\n StorageScope,\r\n createStorageWriter,\r\n readStorage,\r\n} from '@telia-ace/widget-services';\r\nimport {\r\n removeNullAndUndefinedValues,\r\n uuid,\r\n} from '@telia-ace/widget-utilities';\r\nimport {\r\n BootstrappingActivationData,\r\n supportBootstrapping,\r\n} from '@webprovisions/bootstrapping';\r\nimport {\r\n Container,\r\n EventSubscriptionCancellation,\r\n WidgetType,\r\n} from '@webprovisions/platform';\r\nimport {\r\n BadgeOptions,\r\n ViewOutlet,\r\n ViewOutletOptions,\r\n} from '././ui/view-outlet';\r\nimport {\r\n createActionResolver,\r\n createComponentPlatform,\r\n createComponentResolver,\r\n createRoutingService,\r\n createStorageService,\r\n} from './services';\r\nimport { setActive, setInactive } from './ui/html-element-handlers';\r\nimport {\r\n TriggerType,\r\n determineTriggerType,\r\n prepareDOMElements,\r\n} from './ui/prepare-dom';\r\n\r\nconst SETTINGS_STORAGE_KEY = '$settings';\r\nconst OPEN_STORAGE_KEY = 'open';\r\nconst STICKY_WIDGET_STORAGE_KEY = 'activeStickyWidget';\r\n\r\nexport enum InitialRenderState {\r\n Open = 'open',\r\n Closed = 'closed',\r\n Hidden = 'hidden',\r\n Storage = 'storage',\r\n}\r\n\r\nexport type RenderData = {\r\n widgetDOMElement?: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n key?: string;\r\n open?: boolean;\r\n withRenderState?: InitialRenderState;\r\n};\r\n\r\nexport type AttachData = {\r\n widgetDOMElement?: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n key?: string;\r\n withRenderState?: InitialRenderState;\r\n};\r\n\r\nexport default class Widget extends WidgetType {\r\n outlets = new Map<string, ViewOutlet>();\r\n activated: Promise<void> | undefined = undefined;\r\n subs: EventSubscriptionCancellation[] = [];\r\n\r\n constructor(container: Container) {\r\n super(container);\r\n\r\n this.container.registerAsync('storage', () =>\r\n createStorageService(this.container)\r\n );\r\n\r\n this.container.registerFactory('settings', () => {\r\n return readStorage<Partial<WidgetSettings>>(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((settings = {}) => {\r\n return {\r\n ...this.container.get('$settings'),\r\n ...settings,\r\n };\r\n });\r\n });\r\n\r\n supportBootstrapping(this as any, 'load', this.handleBootstrapping);\r\n\r\n this.container.registerAsync('componentResolver', () =>\r\n createComponentResolver(this.container)\r\n );\r\n this.container.registerAsync('router', () =>\r\n createRoutingService(this.container)\r\n );\r\n this.container.registerAsync('actionResolver', () =>\r\n createActionResolver(this.container)\r\n );\r\n this.container.register('matchMedia', window.matchMedia);\r\n this.container.registerAsync('components', () =>\r\n createComponentPlatform(this.container)\r\n );\r\n }\r\n\r\n handleBootstrapping = (activationData: BootstrappingActivationData) => {\r\n const options = {\r\n triggerDOMElement: activationData.sourceDOMElement,\r\n withRenderState: InitialRenderState.Storage,\r\n };\r\n\r\n this.container.get('settings').then((settings: any) => {\r\n const { activate } = settings;\r\n const shouldActivate =\r\n typeof activate === 'undefined' ||\r\n activate === null ||\r\n activate === true;\r\n\r\n if (shouldActivate) {\r\n this.activated = (this.activated || this.widget.activate()).then(() =>\r\n this.attach(options)\r\n );\r\n }\r\n });\r\n };\r\n\r\n initialize() {\r\n const promises = this.container.getManyAsync(\r\n 'actionResolver',\r\n 'router',\r\n 'components'\r\n ) as Promise<{\r\n actionResolver: ActionResolver;\r\n router: RoutingService;\r\n components: ComponentPlatform;\r\n }>;\r\n\r\n const cspSettings: { nonce: string } | undefined =\r\n this.container.get('csp');\r\n if (cspSettings) {\r\n if (!(window as any).webprovisionsEnvironmentVariables) {\r\n (window as any).webprovisionsEnvironmentVariables = {};\r\n }\r\n (window as any).webprovisionsEnvironmentVariables['cspNonce'] =\r\n cspSettings.nonce;\r\n }\r\n\r\n return Promise.all([promises, this.container.get('settings')]).then(\r\n ([{ actionResolver, router, components }, settings]) => {\r\n actionResolver.subscribe(this.widget.name, (_origin, action, value) =>\r\n this.onAction(action, value)\r\n );\r\n\r\n const switchViewNodes = (routeName: string) => {\r\n components.nodes.query({ type: 'view' }).forEach((viewNode) => {\r\n components.setSwitch(viewNode, routeName);\r\n });\r\n };\r\n\r\n const initialRoute = router.getInitialRoute()?.name || 'index';\r\n switchViewNodes(initialRoute);\r\n\r\n this.events.subscribe('widget:data-loaded', (_e, { element }) => {\r\n if (this.widget.container.get('seoConfiguration')) {\r\n this.events.dispatch('widget:preloaded-replaced', {\r\n element,\r\n });\r\n }\r\n });\r\n\r\n this.events.subscribe(\r\n 'router:change',\r\n (_e, { previous = { routeData: {} }, next = { routeData: {} } }) => {\r\n const { routeData: prevData }: { routeData: RouteData } = previous;\r\n const { routeData: nextData }: { routeData: RouteData } = next;\r\n\r\n const notFoundView = Object.keys(settings.views).reduce(\r\n (acc, key) => {\r\n const view = settings.views[key];\r\n if (typeof view.path === 'undefined') {\r\n return key;\r\n }\r\n return acc;\r\n },\r\n ''\r\n );\r\n\r\n // route not found\r\n if (!nextData.name && notFoundView) {\r\n switchViewNodes(notFoundView);\r\n } else {\r\n switchViewNodes(nextData.name);\r\n }\r\n\r\n removeNullAndUndefinedValues(prevData && prevData.params);\r\n removeNullAndUndefinedValues(nextData && nextData.params);\r\n\r\n this.container\r\n .getAsync('actionResolver')\r\n .then((actionResolver: ActionResolver) => {\r\n actionResolver.action(this.widget.name, 'routeChange', {\r\n next: nextData,\r\n previous: prevData,\r\n });\r\n });\r\n }\r\n );\r\n\r\n return router.initialize();\r\n }\r\n );\r\n }\r\n\r\n attach(attachData: AttachData = {}) {\r\n return this.container\r\n .get('settings')\r\n .then(async ({ trigger }: WidgetSettings) => {\r\n const {\r\n widgetDOMElement,\r\n key = uuid(),\r\n triggerDOMElement,\r\n withRenderState,\r\n } = attachData;\r\n\r\n const triggerType = determineTriggerType(trigger);\r\n\r\n // This could probably be defined already when bootstrapping occurs,\r\n // Webprovisions knows when a widget is prerendered,\r\n // see \"queryPrerenderedTargets in @webprovisions/bootstrapping\"\r\n const waitWithReplace =\r\n triggerType === TriggerType.Inline &&\r\n (triggerDOMElement?.childElementCount || 0) > 0;\r\n\r\n const outletOptions = await prepareDOMElements(\r\n this.widget.name,\r\n widgetDOMElement,\r\n triggerDOMElement,\r\n trigger,\r\n waitWithReplace\r\n );\r\n\r\n if (this.outlets.size < 1 && !withRenderState) {\r\n this.setRenderState('unset');\r\n }\r\n\r\n const swap = () => {\r\n const isReady = () =>\r\n widgetDOMElement.querySelectorAll('[data-loading=true]').length ===\r\n 0;\r\n const [widgetDOMElement] =\r\n this.widget.container.get('widgetDOMElements');\r\n\r\n const watcher = (\r\n _mutations: MutationRecord[],\r\n observer: MutationObserver\r\n ) => {\r\n if (isReady()) {\r\n if (outletOptions.callback) {\r\n outletOptions.callback();\r\n }\r\n observer.disconnect();\r\n }\r\n };\r\n const options = {\r\n attributes: true,\r\n subtree: true,\r\n childList: true,\r\n };\r\n\r\n if (isReady()) {\r\n outletOptions.callback && outletOptions.callback();\r\n }\r\n const observer = new MutationObserver(watcher);\r\n\r\n observer.observe(widgetDOMElement, options);\r\n };\r\n\r\n if (waitWithReplace) {\r\n this.widget.container\r\n .getAsync('dataClient')\r\n .then(({ events }: any) => {\r\n events.subscribe(\r\n 'data-client:fetched',\r\n (_event: any, data: any) => {\r\n if (data.unresolvedQueries === 0) {\r\n swap();\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n const outlet = this.getOrCreateViewOutlet(key, outletOptions);\r\n this.outlets.set(key, outlet);\r\n this.widget.events.dispatch('widget:attached', {}, { bubbles: true });\r\n\r\n if (outletOptions.triggerType === TriggerType.Badge && trigger) {\r\n outletOptions.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n );\r\n outlet?.renderBadge(trigger);\r\n }\r\n\r\n if (outletOptions.triggerType !== TriggerType.Inline) {\r\n outletOptions.triggerDOMElement?.addEventListener(\r\n 'click',\r\n (event: any) => {\r\n event.preventDefault();\r\n this.container\r\n .get('settings')\r\n .then(({ trigger: updatedTrigger }: WidgetSettings) => {\r\n outlet\r\n .render()\r\n .then(() => this.renderState())\r\n .then((renderState) => {\r\n if (\r\n updatedTrigger &&\r\n updatedTrigger.action &&\r\n updatedTrigger.action === 'hide'\r\n ) {\r\n return renderState === WidgetRenderState.open\r\n ? this.hide()\r\n : this.open();\r\n }\r\n return renderState === WidgetRenderState.open\r\n ? this.close()\r\n : this.open();\r\n });\r\n });\r\n }\r\n );\r\n }\r\n\r\n if (this.outlets.size > 1) {\r\n return this.renderState().then((state: WidgetRenderState) => {\r\n // new outlets should have the same state as existing ones\r\n this.triggerStateIfApplicable(state);\r\n });\r\n }\r\n\r\n if (withRenderState) {\r\n if (withRenderState === InitialRenderState.Storage) {\r\n return this.renderState().then((state: WidgetRenderState) => {\r\n if (outletOptions.triggerType === TriggerType.Inline) {\r\n this.triggerStateIfApplicable('open');\r\n return;\r\n }\r\n this.triggerStateIfApplicable(state);\r\n });\r\n }\r\n return this.triggerStateIfApplicable(withRenderState);\r\n }\r\n\r\n return;\r\n });\r\n }\r\n\r\n detach(key?: string) {\r\n if (key) {\r\n if (this.outlets.has(key)) {\r\n const outlet = this.outlets.get(key);\r\n outlet?.dispose();\r\n this.outlets.delete(key);\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`detach(): Could not find View Outlet with key ${key}`);\r\n }\r\n return;\r\n }\r\n this.outlets.forEach((outlet) => {\r\n outlet.dispose();\r\n });\r\n this.outlets.clear();\r\n }\r\n\r\n private triggerStateIfApplicable(input: string) {\r\n return this.container.getAsync('router').then((router) => {\r\n switch (input) {\r\n case 'closed':\r\n this.close();\r\n break;\r\n case 'open':\r\n this.open();\r\n break;\r\n case 'hidden':\r\n this.hide();\r\n router.start();\r\n break;\r\n default:\r\n return;\r\n }\r\n });\r\n }\r\n\r\n private getOrCreateViewOutlet(\r\n key: string,\r\n options: ViewOutletOptions\r\n ): ViewOutlet {\r\n return (\r\n this.outlets.has(key)\r\n ? this.outlets.get(key)\r\n : new ViewOutlet(this.container, options)\r\n )!;\r\n }\r\n\r\n render(renderData: RenderData = {}) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'widget.render() is deprecated. Use widget.attach() instead.'\r\n );\r\n }\r\n if (renderData.open) {\r\n const options: AttachData = {\r\n ...renderData,\r\n withRenderState: InitialRenderState.Open,\r\n };\r\n return this.attach(options);\r\n }\r\n return this.attach(renderData);\r\n }\r\n\r\n activate(data?: any) {\r\n if (data?.override) {\r\n this.setSettings(() => data.override);\r\n }\r\n // TODO: this is considered a hack, remove apiNotificationPriorityBy\r\n // when there is a better way to get notifications from backend\r\n if (data?.apiNotificationPriorityBy) {\r\n this.container.register(\r\n 'apiNotificationPriorityBy',\r\n data.apiNotificationPriorityBy\r\n );\r\n }\r\n }\r\n\r\n setSettings(\r\n fn: (settings: WidgetSettings) => Promise<Partial<WidgetSettings>>\r\n ): Promise<WidgetSettings> {\r\n return Promise.all([\r\n this.container.get('settings'),\r\n createStorageWriter(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ),\r\n ]).then(([settings, write]) => {\r\n return Promise.resolve(fn(settings)).then((override) => {\r\n return write(override).then(() => {\r\n const updated = { ...settings, ...override };\r\n this.widget.events.dispatch('widget:settings-updated', updated);\r\n return updated;\r\n });\r\n });\r\n });\r\n }\r\n\r\n clearSettings(): Promise<void> {\r\n return createStorageWriter(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n { medium: StorageMedium.Local }\r\n )\r\n .then((write) => write())\r\n .then(() => this.container.get('settings'))\r\n .then((settings) => {\r\n this.widget.events.dispatch('widget:settings-updated', settings);\r\n });\r\n }\r\n\r\n action({ action, value }: { action: string; value?: any }) {\r\n return this.container\r\n .getAsync('actionResolver')\r\n .then((actionResolver: ActionResolver) => {\r\n actionResolver.action(this.widget.name, action, value);\r\n });\r\n }\r\n\r\n renderState(): Promise<WidgetRenderState> {\r\n if (onWidgetUrl(this.container)) {\r\n return Promise.resolve(WidgetRenderState.open);\r\n }\r\n const readSessionOpen = () =>\r\n readStorage<WidgetRenderState>(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((value = WidgetRenderState.closed) => value);\r\n\r\n const readLocalOpen = () =>\r\n readStorage<WidgetRenderState>(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((value = WidgetRenderState.closed) => value);\r\n\r\n return this.container.getAsync('router').then((routing: RoutingService) => {\r\n if (routing.isSticky()) {\r\n return readLocalOpen().then((localOpen) => {\r\n return localOpen === WidgetRenderState.open\r\n ? localOpen\r\n : readSessionOpen();\r\n });\r\n }\r\n return readSessionOpen();\r\n });\r\n }\r\n\r\n hide(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'hide(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n this.outlets.forEach((outlet) => outlet.render());\r\n return this.action({ action: 'hide' }).then(() => {\r\n this.setTriggerState(false);\r\n });\r\n }\r\n\r\n open(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'open(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n this.outlets.forEach((outlet) => outlet.render());\r\n return this.action({ action: 'open' }).then(() => {\r\n this.widget.events.dispatch('tracking:widget-rendered', {});\r\n return this.onOpen();\r\n });\r\n }\r\n\r\n close(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'close(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n return this.action({ action: 'close' }).then(() => this.onClose());\r\n }\r\n\r\n show(): Promise<void> {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'show(): Command is deprecated and will be removed in the future. Use open() instead.'\r\n );\r\n }\r\n return this.open();\r\n }\r\n\r\n private onAction(action: string, _value: any) {\r\n switch (action) {\r\n case 'close':\r\n case 'open':\r\n case 'hide':\r\n const newState =\r\n action === 'open'\r\n ? WidgetRenderState.open\r\n : action === 'close'\r\n ? WidgetRenderState.closed\r\n : WidgetRenderState.hidden;\r\n\r\n return this.setRenderState(newState).then(() => {\r\n this.setTriggerState(newState === WidgetRenderState.open);\r\n if (newState !== WidgetRenderState.hidden) {\r\n newState === WidgetRenderState.open\r\n ? this.onOpen()\r\n : this.onClose();\r\n } else {\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n )\r\n );\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n\r\n private setRenderState(newState: string): Promise<void> {\r\n const { invoke, events } = this.container.get('$widget');\r\n return Promise.all([\r\n createStorageWriter(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Session,\r\n }\r\n ),\r\n createStorageWriter(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n duration: { minutes: 5 },\r\n }\r\n ),\r\n this.container.getAsync('router'),\r\n invoke('renderState'),\r\n ]).then(\r\n ([writeSessionOpen, writeLocalOpen, routing, previousRenderState]) => {\r\n if (newState === 'unset' || !newState) {\r\n writeLocalOpen();\r\n writeSessionOpen();\r\n } else {\r\n if (routing.isSticky()) {\r\n writeLocalOpen(newState);\r\n }\r\n writeSessionOpen(newState);\r\n }\r\n events.dispatch('widget:render-state-changed', {\r\n previous: previousRenderState,\r\n next: newState,\r\n });\r\n }\r\n );\r\n }\r\n\r\n private onOpen(): Promise<void> {\r\n return this.container.getAsync('router').then((router: RoutingService) => {\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'true'\r\n )\r\n );\r\n return router.start();\r\n });\r\n }\r\n\r\n private onClose(): Promise<void> {\r\n const services = this.container.getManyAsync(\r\n 'router',\r\n 'components'\r\n ) as Promise<{\r\n router: RoutingService;\r\n components: ComponentPlatform;\r\n }>;\r\n\r\n const resetActivateProp = () => {\r\n return this.container\r\n .get('settings')\r\n .then((widgetSettings: WidgetSettings) => {\r\n const { activate } = this.container.get('$settings');\r\n if (widgetSettings.activate !== activate) {\r\n return this.setSettings(() => Promise.resolve({ activate }));\r\n }\r\n return Promise.resolve();\r\n });\r\n };\r\n\r\n return resetActivateProp()\r\n .then(() => {\r\n return services;\r\n })\r\n .then(\r\n ({\r\n router,\r\n components,\r\n }: {\r\n router: RoutingService;\r\n components: ComponentPlatform;\r\n }) => {\r\n const visibleNodes = components.nodes.visible;\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n )\r\n );\r\n\r\n if (\r\n visibleNodes.filter(\r\n (c) =>\r\n c.attributes.properties.animation &&\r\n c.attributes.properties.animation !== 'none'\r\n ).length\r\n ) {\r\n return new Promise<RoutingService>((resolve) => {\r\n setTimeout(() => {\r\n resolve(router);\r\n }, 200);\r\n });\r\n }\r\n\r\n return Promise.resolve(router);\r\n }\r\n )\r\n .then((router: RoutingService) => router.stop());\r\n }\r\n\r\n private setTriggerState(open: boolean) {\r\n this.outlets.forEach((outlet) => {\r\n const {\r\n options: { triggerDOMElement, triggerOptions },\r\n } = outlet;\r\n const { openTooltip, closedTooltip } =\r\n (triggerOptions as BadgeOptions) || {};\r\n if (triggerDOMElement) {\r\n open\r\n ? setActive(triggerDOMElement, openTooltip)\r\n : setInactive(triggerDOMElement, closedTooltip);\r\n }\r\n });\r\n }\r\n\r\n deactivate() {\r\n this.subs.forEach((s) => s());\r\n\r\n const promises: Promise<void>[] = [];\r\n this.outlets.forEach((outlet) => promises.push(outlet.dispose()));\r\n\r\n return readStorage<string>(\r\n this.container,\r\n STICKY_WIDGET_STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((value) => {\r\n /**\r\n * Remove stored sticky widget from implementation's localStorage if applicable\r\n */\r\n if (value === this.widget.name) {\r\n return createStorageWriter(\r\n this.container,\r\n STICKY_WIDGET_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n scope: StorageScope.Implementation,\r\n }\r\n )\r\n .then((write) => write())\r\n .then(() => Promise.all(promises));\r\n }\r\n return Promise.all(promises);\r\n });\r\n }\r\n}\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.callback=t,this.subscribe=null!=e&&e}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){var e;if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=null!==(e=t.subscribe)&&void 0!==e&&e}else this.context=s,this.callback=i,this.subscribe=null!=h&&h;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class i extends Event{constructor(t){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t}}class e extends s{constructor(s,i,e){super(void 0!==i.context?i.initialValue:e),this.onContextRequest=t=>{const s=t.composedPath()[0];t.context===this.context&&s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{const i=s.composedPath()[0];if(s.context===this.context&&i!==this.host){for(const[s,{consumerHost:i}]of this.subscriptions)i.dispatchEvent(new t(this.context,s,!0));s.stopPropagation()}},this.host=s,void 0!==i.context?this.context=i.context:this.context=i,this.attachListeners(),this.host.addController(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new i(this.context))}}export{e as ContextProvider,i as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{decorateProperty as e}from\"@lit/reactive-element/decorators/base.js\";import{ContextConsumer as r}from\"../controllers/context-consumer.js\";\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t({context:t,subscribe:o}){return e({finisher:(e,c)=>{e.addInitializer((e=>{new r(e,{context:t,callback:r=>{e[c]=r},subscribe:o})}))}})}export{t as consume};\n//# sourceMappingURL=consume.js.map\n","import { createContext } from '@lit-labs/context';\r\nimport { ComponentDescriptor } from '@telia-ace/widget-core';\r\n\r\nexport const childrenContext = createContext<ComponentDescriptor[]>('children');\r\n","import { createContext } from '@lit-labs/context';\r\nimport { ComponentDescriptor } from '@telia-ace/widget-core';\r\n\r\nexport const descriptorContext = createContext<ComponentDescriptor | undefined>(\r\n 'descriptor'\r\n);\r\n","import { Container } from '@webprovisions/platform';\r\nimport { createContext } from '@lit-labs/context';\r\n\r\nexport const containerContext = createContext<Container | undefined>(\r\n 'container'\r\n);\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const contextCtx = createContext<Record<string, any>>('context');\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const layoutCtx = createContext<Record<string, any>>('layout');\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const propertiesCtx = createContext<Record<string, any>>('properties');\r\n","import {\r\n ReactiveController,\r\n ReactiveControllerHost,\r\n ReactiveElement,\r\n} from 'lit';\r\nimport { Container } from '@webprovisions/platform';\r\nimport {\r\n ComponentDescriptor,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n} from '@telia-ace/widget-core';\r\nimport { uuid } from '@telia-ace/widget-utilities';\r\n\r\nexport class ActionsController implements ReactiveController {\r\n host: ReactiveControllerHost;\r\n\r\n private _container?: Container;\r\n\r\n private _descriptor?: ComponentDescriptor;\r\n\r\n constructor(host: ReactiveElement) {\r\n (this.host = host).addController(this);\r\n }\r\n\r\n hostConnected() {}\r\n hostDisconnected() {}\r\n\r\n setDescriptor(descriptor: ComponentDescriptor) {\r\n this._descriptor = descriptor;\r\n }\r\n\r\n setContainer(container: Container) {\r\n this._container = container;\r\n }\r\n\r\n async dispatch(key: string, value: Record<string, any> | string) {\r\n if (!this._container || !this._descriptor) {\r\n return;\r\n }\r\n\r\n const componentPlatform = await ComponentPlatform.getInstance(\r\n this._container\r\n );\r\n\r\n const query = new ComponentQuery(componentPlatform).withId(\r\n this._descriptor.id\r\n );\r\n const actions = componentPlatform.actions(\r\n query,\r\n this._descriptor.type || uuid()\r\n );\r\n\r\n await actions.dispatch(key, value);\r\n }\r\n}\r\n","import { ComponentNodeController } from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\ntype DataResource = {\r\n query: (\r\n input: Record<string, any>,\r\n providerSettings: Record<string, any>\r\n ) => Promise<any>;\r\n};\r\n\r\ntype DataProviderSettings = Record<string, any>;\r\n\r\nexport const getProvider = async (\r\n component: ComponentNodeController,\r\n container: Container\r\n) => {\r\n const providerProperty: string | [string, any] | undefined =\r\n component.properties().provider;\r\n let providerSettings = {};\r\n\r\n let providerKey: string = '';\r\n if (Array.isArray(providerProperty)) {\r\n providerKey = providerProperty[0];\r\n providerSettings = providerProperty[1];\r\n } else {\r\n providerKey = providerProperty || '';\r\n }\r\n\r\n const provider: DataProvider | undefined =\r\n await container.getAsync(providerKey);\r\n\r\n if (!provider) {\r\n throw new Error('No provider defined in ListComponent');\r\n }\r\n\r\n provider.applyComponentNodeSettings(component.node.id, providerSettings);\r\n\r\n return { provider, settings: providerSettings };\r\n};\r\n\r\nexport const createDataProvider = async (\r\n component: ComponentNodeController,\r\n container: Container\r\n) => {\r\n const { provider, settings = {} } = await getProvider(component, container);\r\n\r\n return {\r\n addResource: (resourceKey: string, resource: DataResource) => {\r\n return provider.addResource(resourceKey, resource);\r\n },\r\n getData: (resourceKey: string, input: Record<string, any>) => {\r\n return provider.getData(resourceKey, input, settings);\r\n },\r\n };\r\n};\r\n\r\nexport class DataProvider {\r\n private resources = new Map<string, DataResource>();\r\n private nodeConfiguration = new Map<string, DataProviderSettings>();\r\n\r\n constructor(public container: Container) {}\r\n\r\n async getData(\r\n resourceKey: string,\r\n input: Record<string, any>,\r\n providerSettings: Record<string, any>\r\n ) {\r\n const entityProvider = this.resources.get(resourceKey);\r\n\r\n if (!entityProvider) {\r\n throw new Error(`Unable to get EntityProvider for \"${resourceKey}\"`);\r\n }\r\n\r\n const response = await entityProvider.query(input, providerSettings);\r\n\r\n return response;\r\n }\r\n\r\n addResource(resourceKey: string, resource: DataResource) {\r\n this.resources.set(resourceKey, resource);\r\n }\r\n\r\n applyComponentNodeSettings(nodeId: string, value: DataProviderSettings) {\r\n this.nodeConfiguration.set(nodeId, value);\r\n }\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport { DataProvider } from '../data-provider';\r\n\r\ntype RawGuide = any;\r\n\r\nconst formatGuideToItem = (rawGuide: Record<string, RawGuide>) => {\r\n return {\r\n title: rawGuide.Title,\r\n id: rawGuide.Id.toString(),\r\n };\r\n};\r\n\r\nclass GuideProvider extends DataProvider {\r\n constructor(container: Container) {\r\n super(container);\r\n\r\n this.addResource('item', {\r\n query: async (input: Record<string, any>, providerSettings) => {\r\n const itemId = input.itemId;\r\n const client = '78aacc09-ae6f-5485-5ca3-9dacebb95825';\r\n const funnel = container.get('$widget').name;\r\n const projection = providerSettings.projection || '';\r\n\r\n const response = await fetch(\r\n `${projection}/guides/${itemId}?client=${client}&funnel=${funnel}&site=%2F%2Fdemo.humany.cc%2Fadmin%2Finterfaces&phrase=&connectionId=&p.LastGuideId=2857`\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return data ? formatGuideToItem(data) : null;\r\n },\r\n });\r\n\r\n this.addResource('items', {\r\n query: async (_input, providerSettings) => {\r\n const client = '';\r\n const funnel = container.get('$widget').name;\r\n const projection = providerSettings.projection || '';\r\n const site = '';\r\n const skip = '0';\r\n const take = '10';\r\n\r\n const response = await fetch(\r\n `${projection}/guides?client=${client}&funnel=${funnel}&site=${site}&phrase=&skip=${skip}&take=${take}&sorting.type=popularity&sorting.direction=descending`\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return {\r\n items: (data.Matches || []).map((item: RawGuide) => {\r\n return formatGuideToItem(item);\r\n }),\r\n totalItems: data?.TotalMatches || 0,\r\n };\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport const GuideProviderPlugin = async (container: Container) => {\r\n container.registerAsync('guideProvider', () => {\r\n return new GuideProvider(container);\r\n });\r\n};\r\n","import {\r\n ComponentResolver,\r\n extendComponent,\r\n ExtendComponentHandler,\r\n ExtendComponentOptions,\r\n} from '@telia-ace/widget-core';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\n/**\r\n * Registers a Lit component on the component platform.\r\n * @param container Container to register the component on.\r\n * @param type Type name to resolve the component from configuration.\r\n * @param component Promise resolving to the Lit component for rendering.\r\n * @param fn Handler for controlling the component.\r\n */\r\nconst createLitComponent = (\r\n container: Container,\r\n type: string,\r\n component: any, // e.g. import('./component.ts)\r\n fn?: ExtendComponentHandler,\r\n options?: ExtendComponentOptions\r\n) => {\r\n return container\r\n .getAsync('componentResolver')\r\n .then((componentResolver: ComponentResolver) => {\r\n componentResolver.registerComponent(type, component);\r\n return extendComponent(container, type, fn || (() => {}), type, options);\r\n });\r\n};\r\n\r\nexport default createLitComponent;\r\n","const mapValue = (value: any, cssVar: string, el: HTMLElement) => {\r\n if (value) {\r\n el.style.setProperty(cssVar, value);\r\n }\r\n};\r\n\r\nexport const mapBranding = (context: Record<string, any>, el: HTMLElement) => {\r\n mapValue(context.colors?.primary, '--primary-color', el);\r\n mapValue(context.colors?.secondary, '--secondary-color', el);\r\n mapValue(context.colors?.text, '--text-color', el);\r\n mapValue(context.colors?.link, '--link-color', el);\r\n mapValue(context.colors?.gray, '--gray-color', el);\r\n mapValue(context.colors?.grayDark, '--gray-dark-color', el);\r\n\r\n mapValue(context.spacing?.xs, '--spacing-xs', el);\r\n mapValue(context.spacing?.sm, '--spacing-sm', el);\r\n mapValue(context.spacing?.md, '--spacing-md', el);\r\n mapValue(context.spacing?.lg, '--spacing-lg', el);\r\n mapValue(context.spacing?.xl, '--spacing-xl', el);\r\n\r\n mapValue(context.boxShadow, '--box-shadow', el);\r\n mapValue(context.borderRadius, '--border-radius', el);\r\n mapValue(context.borderRadiusSm, '--border-radius-sm', el);\r\n mapValue(context.fontFamily, '--font-family', el);\r\n};\r\n","const filterCssProps = (props: Record<string, any>) => {\r\n const cssProps: { [key: string]: any } = {};\r\n\r\n Object.keys(props).forEach((key) => {\r\n if (key.indexOf('css-') > -1) {\r\n cssProps[key] = props[key];\r\n }\r\n });\r\n\r\n return cssProps;\r\n};\r\n\r\nexport const appendStyleFromProperties = (\r\n elem: HTMLElement,\r\n p: Record<string, any>\r\n) => {\r\n const props = filterCssProps(p);\r\n Object.entries(props).forEach(([key, value]) => {\r\n elem.style.setProperty(key.replace('css-', ''), value);\r\n });\r\n};\r\n\r\nexport default filterCssProps;\r\n","import { LitElement, css } from 'lit';\r\nimport { childrenContext } from '../context/children.context';\r\nimport { propertiesCtx } from '../context/properties.context';\r\nimport { contextCtx } from '../context/context.context';\r\nimport { layoutCtx } from '../context/layout.context';\r\nimport { ContextProvider, consume } from '@lit-labs/context';\r\nimport {\r\n Container,\r\n EventSubscriptionCancellation,\r\n} from '@webprovisions/platform';\r\nimport { containerContext } from '../context/container.context';\r\nimport { property, state } from 'lit/decorators.js';\r\nimport {\r\n ComponentDescriptor,\r\n ComponentPlatform,\r\n ComponentResolver,\r\n asDescriptor,\r\n} from '@telia-ace/widget-core';\r\nimport { descriptorContext } from '../context/component-node.context';\r\nimport { ActionsController } from '../controllers/actions-controller';\r\nimport { mapBranding } from '../ui/branding';\r\nimport { appendStyleFromProperties } from '../ui/get-css-props';\r\n\r\ntype Constructor<T = {}> = new (...args: any[]) => T;\r\n\r\nexport declare class WidgetComponentInterface {\r\n entry: string;\r\n descriptor?: ComponentDescriptor;\r\n component?: any;\r\n layout: Record<string, any>;\r\n context: Record<string, any>;\r\n properties: Record<string, any>;\r\n container?: Container;\r\n actions: ActionsController;\r\n _contextProvider: ContextProvider<typeof contextCtx>;\r\n _propertiesProvider: ContextProvider<typeof propertiesCtx>;\r\n _childrenProvider: ContextProvider<typeof childrenContext>;\r\n}\r\n\r\nexport const WidgetComponent = <T extends Constructor<LitElement>>(\r\n superClass: T\r\n) => {\r\n class WidgetComponentClass extends superClass {\r\n static styles = [\r\n (superClass as unknown as typeof LitElement).styles ?? [],\r\n css`\r\n :host {\r\n --font-family: TeliaSans, Helvetica, Arial, Lucida Grande, sans-serif;\r\n --spacing-xs: 0.2rem;\r\n --spacing-sm: 0.5rem;\r\n --spacing-md: 1rem;\r\n --spacing-lg: 1.2rem;\r\n --spacing-xl: 1.8rem;\r\n\r\n --primary-color: #29003e;\r\n --secondary-color: #00558f;\r\n --text-color: #222222;\r\n --link-color: #990ae3;\r\n --gray-color: #efefef;\r\n --gray-dark-color: #a6a6a6;\r\n\r\n --box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\r\n --border-radius: 1rem;\r\n --border-radius-sm: 0.3rem;\r\n\r\n font-family: var(--font-family);\r\n grid-column: span var(--width);\r\n max-width: 100%;\r\n overflow: hidden;\r\n box-sizing: border-box;\r\n display: block;\r\n }\r\n * {\r\n box-sizing: border-box;\r\n }\r\n `,\r\n ];\r\n\r\n @consume({ context: containerContext })\r\n @property({ attribute: false })\r\n public container?: Container;\r\n\r\n @property()\r\n entry: string = '';\r\n\r\n private _descriptorProvider = new ContextProvider(\r\n this,\r\n descriptorContext,\r\n undefined\r\n );\r\n _childrenProvider = new ContextProvider(this, childrenContext, []);\r\n _propertiesProvider = new ContextProvider(this, propertiesCtx, {});\r\n _contextProvider = new ContextProvider(this, contextCtx, {});\r\n private _layoutProvider = new ContextProvider(this, layoutCtx, {});\r\n\r\n private _propertyChangeListener?: EventSubscriptionCancellation;\r\n private _contextChangeListener?: EventSubscriptionCancellation;\r\n private _layoutChangeListener?: EventSubscriptionCancellation;\r\n private _unmountNode?: any;\r\n\r\n actions = new ActionsController(this);\r\n\r\n @state()\r\n descriptor?: ComponentDescriptor;\r\n\r\n @state()\r\n component?: any;\r\n\r\n @state()\r\n context: Record<string, any> = {};\r\n\r\n @state()\r\n layout: Record<string, any> = {};\r\n\r\n @state()\r\n properties: Record<string, any> = {};\r\n\r\n override connectedCallback() {\r\n super.connectedCallback();\r\n\r\n if (this.container) {\r\n this.actions.setContainer(this.container);\r\n ComponentPlatform.getInstance(this.container).then(\r\n async (componentPlatform) => {\r\n const componentNode = componentPlatform.nodes.get(this.entry);\r\n if (componentNode) {\r\n this._propertyChangeListener = componentPlatform.events.subscribe(\r\n 'components:properties-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setProperties(data.node.attributes.properties);\r\n }\r\n }\r\n );\r\n this._contextChangeListener = componentPlatform.events.subscribe(\r\n 'components:context-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setContext(data.node.attributes.context);\r\n }\r\n }\r\n );\r\n this._layoutChangeListener = componentPlatform.events.subscribe(\r\n 'components:layout-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setLayout(data.node.attributes.layout);\r\n }\r\n }\r\n );\r\n\r\n const branch = 'default'; // TODO:\r\n\r\n this._unmountNode = componentNode.mount(this.container!);\r\n\r\n this._setDescriptor(asDescriptor(componentNode, branch));\r\n this._setProperties(componentNode.attributes.properties);\r\n this._setContext(componentNode.attributes.context);\r\n this._setLayout(this.layout);\r\n\r\n const children = componentNode\r\n .getChildren(branch)\r\n .map((child) => asDescriptor(child));\r\n\r\n this._childrenProvider.setValue(children);\r\n\r\n const resolver: ComponentResolver =\r\n await this.container!.getAsync('componentResolver');\r\n\r\n const componentResolver = resolver.getComponent(\r\n this.descriptor?.type || ''\r\n );\r\n if (componentResolver.then) {\r\n componentResolver.then((componentModule: any) => {\r\n this.component = componentModule.default;\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n if (this._propertyChangeListener) {\r\n this._propertyChangeListener();\r\n }\r\n if (this._contextChangeListener) {\r\n this._contextChangeListener();\r\n }\r\n if (this._layoutChangeListener) {\r\n this._layoutChangeListener();\r\n }\r\n\r\n if (this._unmountNode) {\r\n this._unmountNode();\r\n }\r\n }\r\n\r\n override updated(changes: any) {\r\n if (this.container) {\r\n console.log('ccccontainer', this.container, changes); // TODO: remove\r\n this.actions.setContainer(this.container);\r\n }\r\n mapBranding(this.context, (this.renderRoot as any).host);\r\n\r\n (this.renderRoot as any).host.style.setProperty(\r\n '--width',\r\n this.layout.size === 'full'\r\n ? 'var(--columns, 1)'\r\n : `min(${this.layout.size || 'var(--columns)'}, var(--columns))`\r\n );\r\n\r\n appendStyleFromProperties((this.renderRoot as any).host, this.properties);\r\n }\r\n\r\n private _setProperties(value: Record<string, any>) {\r\n this._propertiesProvider.setValue(value);\r\n this.properties = value;\r\n }\r\n private _setContext(value: Record<string, any>) {\r\n this._contextProvider.setValue(value);\r\n this.context = value;\r\n }\r\n private _setLayout(value: Record<string, any>) {\r\n this._layoutProvider.setValue(value);\r\n this.layout = value;\r\n }\r\n private _setDescriptor(value: ComponentDescriptor) {\r\n this.descriptor = value;\r\n this._descriptorProvider.setValue(value);\r\n this.actions.setDescriptor(value);\r\n }\r\n }\r\n // Cast return type to your mixin's interface intersected with the superClass type\r\n return WidgetComponentClass as Constructor<WidgetComponentInterface> & T;\r\n};\r\n"],"names":["I","s","n","o","u","k","g","at","i","r","j","ct$3","l","ht","ct","m","y","x","v","ft","At$1","O","L","B","e","N","$","t","f","c","h","P","A","C","p","D","_","Z$3","b","Z","a","Q","R","lt","H","gt","dt","d","V","q","z","S","yt","tt","P$2","et","H$1","st","k$2","U","L$3","w","nt","it$1","ot$1","rt","T","pt$1","ot","it","ut","E","Ct","Et","Ot","pt","Nt","mt","warning","condition","format","args","len","key","argIndex","message","browser","invariant","error","isAbsolute","pathname","spliceOne","list","index","resolvePathname","to","from","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","last","up","part","result","addLeadingSlash","path","hasBasename","prefix","stripBasename","stripTrailingSlash","parsePath","search","hash","hashIndex","searchIndex","createPath","location","_extends","target","source","createLocation","state","currentLocation","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","listeners","appendListener","fn","isActive","listener","item","notifyListeners","_len","_key","canUseDOM","addEventListener","node","event","removeEventListener","getConfirmation","supportsHistory","ua","supportsPopStateOnHashChange","isExtraneousPopstateEvent","_typeof","obj","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","props","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","setState","nextState","history","handlePopState","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","initialLocation","createHref","push","href","prevIndex","nextKeys","replace","goBack","goForward","listenerCount","checkDOMListeners","isBlocked","block","unblock","listen","unlisten","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","canGo","G","W","re","se","X","ne","oe","Y","J","M","K","ee","te","k$1","de$1","ie","ae","F","ce$1","ce","Ft","Bt","kt","Rt","Jt","Zt","vt","Tt","At","Pt","_t","$t","he","ue","Ht","le","fe","de","Lt","Dt","pe","Mt","ye","me","ge","jt","ve","Pe","It","we","xe","be","Se","Ee","Oe","Re","wt","Te","xt","bt","Ae","Ut","qt","Wt","_e","$e","He","Le","De","Me","je","Ie","Kt","St","Ke","Qt","Xt","Vt","Yt","zt","Gt","triggerTabHandler","triggerDOMElement","toggleTabbing","element","tabbing","handleKeydown","handleClick","createTriggerElement","options","widgetName","label","ariaLabel","tooltip","setInactive","elements","title","setLoading","setActive","o$5","u$1","__async","__spreadProps","__spreadValues","i$1","TriggerComponent","LitElement","__superGet","symbol","importIcon","iconName","type","content","icon","html","nothing","classMap","css","__decorateClass","property","TriggerType","determineProvidedElements","widgetDOMElement","determineTriggerType","triggerDefinition","prepareDOMElements","name","providedWidgetElement","providedTriggerElement","waitWithReplace","_a","_b","providedElements","triggerType","cachedOriginals","output","triggerElement","widgetElement","trigger","MODALS_STORAGE_KEY","ViewOutlet","container","widget","widgetDOMElements","module","notifyDataLoaded","widgets","readStorage","StorageMedium","modals","modal","closedTooltip","openTooltip","triggerOptions","removeTriggerListeners","_c","_d","unsubscribe","STORAGE_KEY","convertSettingsToAttributes","settings","attributes","LocalStorageChangesetProvider","storageWriter","createStorageWriter","StorageCategory","lock","bag","keys","items","existingIndex","indexToRemove","platform","rules","ComponentQuery","createPlatform","localStorage","providers","ComponentPlatform","destructComponentModel","createComponentModel","_event","data","WidgetState","createRoutingService","RoutingService","HistoryMode","initialPath","mode","basePath","views","createStorageService","_container","StorageProvider","createActionResolver","ActionResolver","createComponentResolver","ComponentResolver","createComponentPlatform","index$2","SETTINGS_STORAGE_KEY","OPEN_STORAGE_KEY","STICKY_WIDGET_STORAGE_KEY","Widget","WidgetType","activationData","activate","supportBootstrapping","promises","cspSettings","actionResolver","router","components","_origin","value","switchViewNodes","routeName","viewNode","initialRoute","previous","next","prevData","nextData","notFoundView","acc","removeNullAndUndefinedValues","attachData","_0","uuid","withRenderState","outletOptions","swap","isReady","watcher","_mutations","observer","events","outlet","updatedTrigger","renderState","WidgetRenderState","input","renderData","write","override","updated","onWidgetUrl","readSessionOpen","readLocalOpen","routing","localOpen","_value","newState","invoke","writeSessionOpen","writeLocalOpen","previousRenderState","services","widgetSettings","visibleNodes","resolve","open","StorageScope","s$1","childrenContext","descriptorContext","containerContext","contextCtx","layoutCtx","propertiesCtx","ActionsController","host","descriptor","componentPlatform","query","getProvider","component","providerProperty","providerSettings","providerKey","provider","createDataProvider","resourceKey","resource","DataProvider","entityProvider","nodeId","formatGuideToItem","rawGuide","GuideProvider","itemId","client","funnel","projection","_input","GuideProviderPlugin","createLitComponent","componentResolver","extendComponent","mapValue","cssVar","el","mapBranding","context","_f","_g","_h","_i","_j","_k","filterCssProps","cssProps","appendStyleFromProperties","elem","WidgetComponent","superClass","WidgetComponentClass","ContextProvider","componentNode","branch","asDescriptor","children","child","componentModule","changes","consume"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37]}