@telia-ace/widget-runtime-flamingo 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +6 -0
- package/README.md +3 -0
- package/dist/area-65adc6a5.js +50 -0
- package/dist/area-65adc6a5.js.map +1 -0
- package/dist/component-platform-factory.d.ts +14 -0
- package/dist/component-platform-factory.d.ts.map +1 -0
- package/dist/components/area/area-component.d.ts +28 -0
- package/dist/components/area/area-component.d.ts.map +1 -0
- package/dist/components/area/area.d.ts +10 -0
- package/dist/components/area/area.d.ts.map +1 -0
- package/dist/components/copyright/copyright-component.d.ts +4 -0
- package/dist/components/copyright/copyright-component.d.ts.map +1 -0
- package/dist/components/copyright/copyright.d.ts +8 -0
- package/dist/components/copyright/copyright.d.ts.map +1 -0
- package/dist/components/widget-header/widget-header-component.d.ts +4 -0
- package/dist/components/widget-header/widget-header-component.d.ts.map +1 -0
- package/dist/components/widget-header/widget-header.d.ts +8 -0
- package/dist/components/widget-header/widget-header.d.ts.map +1 -0
- package/dist/context/children.context.d.ts +5 -0
- package/dist/context/children.context.d.ts.map +1 -0
- package/dist/context/component-node.context.d.ts +5 -0
- package/dist/context/component-node.context.d.ts.map +1 -0
- package/dist/context/container.context.d.ts +5 -0
- package/dist/context/container.context.d.ts.map +1 -0
- package/dist/context/context.context.d.ts +4 -0
- package/dist/context/context.context.d.ts.map +1 -0
- package/dist/context/layout.context.d.ts +4 -0
- package/dist/context/layout.context.d.ts.map +1 -0
- package/dist/context/properties.context.d.ts +4 -0
- package/dist/context/properties.context.d.ts.map +1 -0
- package/dist/controllers/actions-controller.d.ts +11 -0
- package/dist/controllers/actions-controller.d.ts.map +1 -0
- package/dist/copyright-ef48bb60.js +171 -0
- package/dist/copyright-ef48bb60.js.map +1 -0
- package/dist/core/create-lit-component.d.ts +12 -0
- package/dist/core/create-lit-component.d.ts.map +1 -0
- package/dist/core/lock.d.ts +10 -0
- package/dist/core/lock.d.ts.map +1 -0
- package/dist/index-d589d5e4.js +3834 -0
- package/dist/index-d589d5e4.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/query-assigned-elements-a9b1c83a.js +668 -0
- package/dist/query-assigned-elements-a9b1c83a.js.map +1 -0
- package/dist/render-8726e104.js +255 -0
- package/dist/render-8726e104.js.map +1 -0
- package/dist/services.d.ts +7 -0
- package/dist/services.d.ts.map +1 -0
- package/dist/ui/branding.d.ts +2 -0
- package/dist/ui/branding.d.ts.map +1 -0
- package/dist/ui/component.d.ts +22 -0
- package/dist/ui/component.d.ts.map +1 -0
- package/dist/ui/determine-slide-direction.d.ts +27 -0
- package/dist/ui/determine-slide-direction.d.ts.map +1 -0
- package/dist/ui/html-element-handlers.d.ts +19 -0
- package/dist/ui/html-element-handlers.d.ts.map +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/prepare-dom.d.ts +21 -0
- package/dist/ui/prepare-dom.d.ts.map +1 -0
- package/dist/ui/render.d.ts +5 -0
- package/dist/ui/render.d.ts.map +1 -0
- package/dist/ui/view-outlet.d.ts +33 -0
- package/dist/ui/view-outlet.d.ts.map +1 -0
- package/dist/ui/wrapper.d.ts +14 -0
- package/dist/ui/wrapper.d.ts.map +1 -0
- package/dist/widget-header-f222904a.js +55 -0
- package/dist/widget-header-f222904a.js.map +1 -0
- package/dist/widget.d.ts +55 -0
- package/dist/widget.d.ts.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-d589d5e4.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","../src/ui/prepare-dom.ts","../src/ui/view-outlet.ts","../src/component-platform-factory.ts","../src/services.ts","../src/widget.ts","../src/core/create-lit-component.ts","../src/components/area/area-component.ts","../src/components/widget-header/widget-header-component.ts","../src/components/copyright/copyright-component.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","../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/core/lock.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: /\\&+/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","// tslint:disable max-line-length\r\nexport const renderSymbol = (symbol?: { type: string; content: string }) => {\r\n if (symbol) {\r\n const { type, content } = symbol;\r\n switch (type) {\r\n case 'FontAwesome':\r\n return `<i class=\"humany-icon fa fa-${content}\"></i>`;\r\n case 'Uri':\r\n return `<i class=\"humany-icon humany-custom-icon\" style=\"background: url(${content}) no-repeat center center;background-size: contain;\"></i>`;\r\n default:\r\n return '';\r\n }\r\n }\r\n};\r\n\r\nconst 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('humany-tabbing');\r\n } else {\r\n element.classList.remove('humany-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('humany-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('humany-trigger') &&\r\n document.activeElement.classList.contains('humany-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('humany-trigger');\r\n element.classList.add(`humany_${widgetName}`);\r\n\r\n if (label.length) {\r\n element.classList.add('humany-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 const symbolHtml = renderSymbol(symbol) || '';\r\n element.innerHTML = `${symbolHtml}\r\n <span class=\"humany-close\">\r\n <svg width=\"18\" height=\"9\" viewBox=\"0 0 18 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path 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\" fill=\"white\"/>\r\n </svg>\r\n </span>\r\n <span class=\"humany-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 </svg>\r\n </span>\r\n ${label.length ? `<span>${label}</span>` : ''}`;\r\n\r\n setTimeout(\r\n () => element && (element as HTMLElement).classList.add('humany-rendered')\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('humany-active');\r\n elements.classList.remove('humany-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('humany-active');\r\n e.classList.remove('humany-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('humany-active');\r\n elements.classList.add('humany-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n e.classList.remove('humany-active');\r\n e.classList.add('humany-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('humany-active');\r\n elements.classList.remove('humany-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('humany-active');\r\n e.classList.remove('humany-loading');\r\n });\r\n }\r\n}\r\n","import { ViewOutletOptions } from './view-outlet';\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 (typeof triggerDefinition === 'object' && !Array.isArray(triggerDefinition)) {\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 = (\r\n name: string,\r\n providedWidgetElement?: HTMLElement,\r\n providedTriggerElement?: HTMLElement,\r\n triggerDefinition?: any,\r\n waitWithReplace: boolean = false\r\n): 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 ? providedWidgetElement.cloneNode(true) : 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 = 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 = providedWidgetElement || document.createElement('div');\r\n if (triggerType !== TriggerType.Inline) {\r\n const triggerElement = document.body.appendChild(document.createElement('a'));\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(document.createElement('div'));\r\n output.widgetDOMElement = widgetElement;\r\n if (triggerType !== TriggerType.Inline) {\r\n const triggerElement = document.body.appendChild(document.createElement('a'));\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 }\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('humany-widget');\r\n this.options.widgetDOMElement.classList.add(`humany_${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(({ 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 = 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","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","import { Container } from '@webprovisions/platform';\r\nimport createLitComponent from '../../core/create-lit-component';\r\n\r\ntype Symbol = {\r\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\r\n content: string;\r\n};\r\n\r\nexport enum AreaMode {\r\n Static = 'static',\r\n Drawer = 'drawer',\r\n Dropdown = 'dropdown',\r\n Modal = 'modal',\r\n}\r\n\r\nexport type AreaComponentProps = {\r\n mode: AreaMode;\r\n animation?: string;\r\n fullScreen?: boolean;\r\n columns?: number;\r\n scrollable?: boolean;\r\n header?: string;\r\n trigger?: {\r\n symbol?: Symbol;\r\n label?: string;\r\n size?: number;\r\n ariaLabel?: string;\r\n };\r\n};\r\n\r\nexport const AreaComponent = (container: Container) => {\r\n return createLitComponent(\r\n container,\r\n 'area',\r\n import('./area'),\r\n (_component) => {}\r\n );\r\n};\r\n\r\nexport default AreaComponent;\r\n","import { Container } from '@webprovisions/platform';\r\nimport createLitComponent from '../../core/create-lit-component';\r\n\r\nexport const WidgetHeaderComponent = (container: Container) => {\r\n return createLitComponent(\r\n container,\r\n 'widget-header',\r\n import('./widget-header'),\r\n (_component) => {}\r\n );\r\n};\r\n\r\nexport default WidgetHeaderComponent;\r\n","import { Container } from '@webprovisions/platform';\r\nimport createLitComponent from '../../core/create-lit-component';\r\n\r\nexport const CopyrightComponent = (container: Container) => {\r\n return createLitComponent(\r\n container,\r\n 'copyright',\r\n import('./copyright'),\r\n (_component) => {}\r\n );\r\n};\r\n\r\nexport default CopyrightComponent;\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","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 { ContextConsumer } from '@lit-labs/context';\r\nimport {\r\n ReactiveController,\r\n ReactiveControllerHost,\r\n ReactiveElement,\r\n} from 'lit';\r\nimport { containerContext } from '../context/container.context';\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 { descriptorContext } from '../context/component-node.context';\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 new ContextConsumer(\r\n host,\r\n containerContext,\r\n (value) => {\r\n this._container = value;\r\n\r\n this.host.requestUpdate();\r\n },\r\n true\r\n );\r\n\r\n new ContextConsumer(\r\n host,\r\n descriptorContext,\r\n (value) => {\r\n this._descriptor = value;\r\n\r\n this.host.requestUpdate();\r\n },\r\n true\r\n );\r\n }\r\n\r\n hostConnected() {}\r\n hostDisconnected() {}\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 { Logger } from './debug';\r\n\r\ntype Task = () => Promise<any> | any;\r\n\r\nclass Queue {\r\n tasks: {\r\n task: Task;\r\n resolve: (data?: any) => any;\r\n reject: (data?: any) => any;\r\n done: () => void;\r\n }[] = [];\r\n current: Promise<any> = Promise.resolve();\r\n\r\n constructor(\r\n private lockWarningTime: number,\r\n private lockErrorTime: number\r\n ) {\r\n this.next = this.next.bind(this);\r\n }\r\n\r\n add(\r\n task: Task,\r\n resolve: (data?: any) => any,\r\n reject: (data?: any) => any,\r\n done: () => void\r\n ): void {\r\n this.tasks.push({ task, resolve, reject, done });\r\n this.next();\r\n }\r\n\r\n next(): void {\r\n this.current = this.current.then(() => {\r\n const next = this.tasks.shift();\r\n if (next) {\r\n let errorTimeout: any; // NodeJS.Timeout\r\n const warningTimeout = setTimeout(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n // tslint:disable-next-line max-line-length\r\n // Logger.warn(\r\n // `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\r\n // next\r\n // );\r\n }\r\n errorTimeout = setTimeout(() => {\r\n next.reject('lock timeout exceeded');\r\n }, this.lockErrorTime);\r\n }, this.lockWarningTime);\r\n const taskPromise = Promise.resolve(next.task()).then((result) => {\r\n clearTimeout(warningTimeout);\r\n clearTimeout(errorTimeout);\r\n return result;\r\n });\r\n return Promise.resolve(taskPromise)\r\n .then(this.next)\r\n .then(() =>\r\n taskPromise.then((data) => {\r\n next.done();\r\n next.resolve(data);\r\n })\r\n )\r\n .catch((reason) => {\r\n next.done();\r\n next.reject(reason);\r\n return this.next();\r\n });\r\n }\r\n return Promise.resolve();\r\n });\r\n }\r\n}\r\n\r\nexport type AddTask = (task: Task) => Promise<any>;\r\n\r\nconst locks = new WeakMap();\r\n\r\n/**\r\n * Creates a lock for the specified owner that allows only one executing\r\n * task simultaneously.\r\n * @param key Lock owner.\r\n */\r\nexport default function lock(\r\n key: object,\r\n lockWarningTime = 5000,\r\n lockErrorTime = 1000\r\n): AddTask {\r\n if (!locks.has(key)) {\r\n locks.set(key, new Queue(lockWarningTime, lockErrorTime));\r\n }\r\n return (task: Task): Promise<any> => {\r\n return new Promise((resolve, reject) => {\r\n const queue: Queue = locks.get(key);\r\n queue.add(task, resolve, reject, () => {\r\n if (!queue.tasks.length) {\r\n locks.delete(key);\r\n }\r\n });\r\n });\r\n };\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$2","b","Z","a","Q","R","lt","H","gt","dt","d","V","q","z","S","yt","tt","P$1","et","st","k$1","U","L$2","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","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","renderSymbol","symbol","type","content","triggerTabHandler","triggerDOMElement","toggleTabbing","element","tabbing","handleKeydown","handleClick","createTriggerElement","options","widgetName","label","ariaLabel","tooltip","symbolHtml","setInactive","elements","title","setLoading","setActive","TriggerType","determineProvidedElements","widgetDOMElement","determineTriggerType","triggerDefinition","prepareDOMElements","name","providedWidgetElement","providedTriggerElement","waitWithReplace","_a","_b","providedElements","triggerType","cachedOriginals","output","triggerElement","widgetElement","MODALS_STORAGE_KEY","ViewOutlet","container","widget","widgetDOMElements","module","notifyDataLoaded","widgets","readStorage","StorageMedium","modals","modal","closedTooltip","openTooltip","triggerOptions","removeTriggerListeners","__async","_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","__spreadValues","supportBootstrapping","promises","cspSettings","actionResolver","router","components","_origin","value","switchViewNodes","routeName","viewNode","initialRoute","previous","next","prevData","nextData","notFoundView","acc","removeNullAndUndefinedValues","attachData","trigger","uuid","withRenderState","outletOptions","swap","isReady","watcher","_mutations","observer","events","outlet","updatedTrigger","renderState","WidgetRenderState","input","renderData","__spreadProps","write","override","updated","onWidgetUrl","readSessionOpen","readLocalOpen","routing","localOpen","_value","newState","invoke","writeSessionOpen","writeLocalOpen","previousRenderState","services","widgetSettings","visibleNodes","resolve","open","StorageScope","createLitComponent","component","componentResolver","extendComponent","AreaComponent","_component","WidgetHeaderComponent","CopyrightComponent","childrenContext","descriptorContext","containerContext","contextCtx","layoutCtx","propertiesCtx","ActionsController","host","ContextConsumer","componentPlatform","query","Queue","lockWarningTime","lockErrorTime","task","reject","done","errorTimeout","warningTimeout","taskPromise","reason","locks","queue"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,25,26,27]}
|