@fluid-topics/ft-i18n 0.3.58

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/README.md ADDED
@@ -0,0 +1,26 @@
1
+ Integrated component that displays internationalized label from a Fluid Topics portal.
2
+
3
+ ## Install
4
+
5
+ ```shell
6
+ npm install @fluid-topics/ft-i18n
7
+ yarn add @fluid-topics/ft-i18n
8
+ ```
9
+
10
+ ## Usage
11
+
12
+ ```typescript
13
+ import { html } from "lit"
14
+ import "@fluid-topics/ft-app-context"
15
+ import "@fluid-topics/ft-i18n"
16
+
17
+ function render() {
18
+ return html`
19
+ <ft-app-context
20
+ baseUrl="https://ft-tenant.com"
21
+ apiIntegrationIdentifier="my-ft-tenant-integration"
22
+ ></ft-app-context>
23
+ <ft-i18n context="i18Context" key="helloWorld"></ft-i18n>
24
+ `
25
+ }
26
+ ```
@@ -0,0 +1,5 @@
1
+ import { FtLitElement } from "@fluid-topics/ft-wc-utils";
2
+ import { FtLitElementWithI18nInterface } from "../lit/i18n";
3
+ import { I18nProperty } from "../generator/I18nMessageContext";
4
+ export declare const i18n: (init: I18nProperty) => (proto: FtLitElementWithI18nInterface & FtLitElement, name: string) => void;
5
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { i18nProperties } from "../lit/i18n";
2
+ export const i18n = (init) => {
3
+ return (proto, name) => {
4
+ var _a, _b;
5
+ proto.constructor.createProperty(name, { attribute: false, type: String });
6
+ const property = {
7
+ ...init,
8
+ key: (_a = init.key) !== null && _a !== void 0 ? _a : name
9
+ };
10
+ proto[i18nProperties] = (_b = proto[i18nProperties]) !== null && _b !== void 0 ? _b : new Map();
11
+ proto[i18nProperties].set(name, property);
12
+ };
13
+ };
14
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1,3 @@
1
+ export declare const FtI18nCssVariables: {};
2
+ export declare const styles: import("lit").CSSResult;
3
+ //# sourceMappingURL=ft-i18n.css.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { css } from "lit";
2
+ export const FtI18nCssVariables = {};
3
+ // language=CSS
4
+ export const styles = css `
5
+ `;
6
+ //# sourceMappingURL=ft-i18n.css.js.map
@@ -0,0 +1,15 @@
1
+ import { nothing, PropertyValues } from "lit";
2
+ import { ElementDefinitionsMap } from "@fluid-topics/ft-wc-utils";
3
+ import { FtI18nProperties } from "./ft-i18n.properties";
4
+ import { FtLitElementWithI18n } from "./lit/i18n";
5
+ export declare class FtI18n extends FtLitElementWithI18n implements FtI18nProperties {
6
+ static elementDefinitions: ElementDefinitionsMap;
7
+ static styles: import("lit").CSSResult;
8
+ context?: string;
9
+ key?: string;
10
+ args?: any[];
11
+ defaultMessage?: string;
12
+ protected render(): typeof nothing | import("lit-html").TemplateResult<1>;
13
+ protected update(props: PropertyValues): void;
14
+ }
15
+ //# sourceMappingURL=ft-i18n.d.ts.map
@@ -0,0 +1,42 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, nothing } from "lit";
8
+ import { property } from "lit/decorators.js";
9
+ import { jsonProperty } from "@fluid-topics/ft-wc-utils";
10
+ import { styles } from "./ft-i18n.css";
11
+ import { FtLitElementWithI18n } from "./lit/i18n";
12
+ export class FtI18n extends FtLitElementWithI18n {
13
+ render() {
14
+ if (!this.key || !this.context) {
15
+ return nothing;
16
+ }
17
+ return html `
18
+ <span class="ft-i18n">${this.i18n(this.context, this.key, ...(Array.isArray(this.args) ? this.args : []))}</span>
19
+ `;
20
+ }
21
+ update(props) {
22
+ super.update(props);
23
+ if (this.context && this.key && this.defaultMessage) {
24
+ this.addI18nMessages(this.context, { [this.key]: this.defaultMessage });
25
+ }
26
+ }
27
+ }
28
+ FtI18n.elementDefinitions = {};
29
+ FtI18n.styles = styles;
30
+ __decorate([
31
+ property()
32
+ ], FtI18n.prototype, "context", void 0);
33
+ __decorate([
34
+ property()
35
+ ], FtI18n.prototype, "key", void 0);
36
+ __decorate([
37
+ jsonProperty([])
38
+ ], FtI18n.prototype, "args", void 0);
39
+ __decorate([
40
+ property()
41
+ ], FtI18n.prototype, "defaultMessage", void 0);
42
+ //# sourceMappingURL=ft-i18n.js.map
@@ -0,0 +1,7 @@
1
+ !function(t,s,i,e){const n=i.css`
2
+ `,o=i.css`
3
+ `,r=s.FtReduxStore.get({name:"ft-app-info",reducers:{setBaseUrl:(t,s)=>{t.baseUrl=s.payload},setApiIntegrationIdentifier:(t,s)=>{t.apiIntegrationIdentifier=s.payload},setUiLocale:(t,s)=>{t.uiLocale=s.payload},setEditorMode:(t,s)=>{t.editorMode=s.payload},setNoCustom:(t,s)=>{t.noCustom=s.payload},setNoCustomComponent:(t,s)=>{t.noCustomComponent=s.payload},setSession:(t,s)=>{t.session=s.payload}},initialState:{uiLocale:document.documentElement.lang||"en-US",editorMode:!1,noCustom:!1,noCustomComponent:!1}});var h;const a=Symbol("clearAfterUnitTest");class l{constructor(t){this.apiProvider=t,this.defaultMessages={},this.cache=new s.CacheRegistry,this.listeners={},this.currentBaseUrl="",this.currentUiLocale="",this[h]=()=>{this.defaultMessages={},this.cache=new s.CacheRegistry,this.listeners={}},r.subscribe((()=>this.updateApi())),this.updateApi()}updateApi(){const{baseUrl:t,apiIntegrationIdentifier:s,uiLocale:i}=r.getState();t&&s?(this.api=this.apiProvider(t,s),(this.api&&this.currentBaseUrl!==t||this.currentUiLocale!==i)&&(this.currentBaseUrl=t,this.currentUiLocale=i,this.cache.clearAll(),this.notifyAll())):this.api=void 0}addContext(t){const s=t.name.toLowerCase();this.cache.setFinal(s,t),this.notify(s)}getAllContexts(){return this.cache.resolvedValues()}async prepareContext(t,i){var e;if(t=t.toLowerCase(),Object.keys(i).length>0){const n={...null!==(e=this.defaultMessages[t])&&void 0!==e?e:{},...i};s.deepEqual(this.defaultMessages[t],n)||(this.defaultMessages[t]=n,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,i,...e){var n,o,r;t=t.toLowerCase(),this.fetchContext(t);const h=null!==(o=null===(n=this.cache.getNow(t))||void 0===n?void 0:n.messages)&&void 0!==o?o:{};return new s.ParametrizedLabelResolver(null!==(r=this.defaultMessages[t])&&void 0!==r?r:{},h).resolve(i,...e)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(async()=>{var s;return await(null===(s=this.api)||void 0===s?void 0:s.getFluidTopicsMessageContext(this.currentUiLocale,t))})),await this.notify(t)}catch(t){console.error(t)}}subscribe(t,s){var i;return t=t.toLowerCase(),this.listeners[t]=null!==(i=this.listeners[t])&&void 0!==i?i:new Set,this.listeners[t].add(s),()=>{var i;return null===(i=this.listeners[t])||void 0===i?void 0:i.delete(s)}}async notifyAll(){await Promise.all(Object.keys(this.listeners).map((t=>this.notify(t))))}async notify(t){null!=this.listeners[t]&&await Promise.all([...this.listeners[t].values()].map((t=>s.delay(0).then((()=>t())).catch((()=>null)))))}}h=a,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new l(((t,s)=>window.fluidtopics?new window.fluidtopics.FluidTopicsApi(t,s,!0):void 0)));const d=window.FluidTopicsI18nService;var u=function(t,s,i,e){for(var n,o=arguments.length,r=o<3?s:null===e?e=Object.getOwnPropertyDescriptor(s,i):e,h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(s,i,r):n(s,i))||r);return o>3&&r&&Object.defineProperty(s,i,r),r};class c extends s.FtLitElement{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-integration",this.uiLocale="en-US",this.editorMode=!1,this.noCustom=!1,this.noCustomComponent=!1,this.withManualResources=!1,this.messageContexts=[],this.apiProvider=()=>window.fluidtopics&&this.baseUrl?new window.fluidtopics.FluidTopicsApi(this.baseUrl,this.apiIntegrationIdentifier,!0):void 0,this.cache=new s.CacheRegistry,this.cleanSessionDebouncer=new s.Debouncer}render(){return i.html`
4
+ <slot></slot>
5
+ `}updated(t){super.updated(t),t.has("baseUrl")&&r.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&r.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&r.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&r.actions.setNoCustom(this.noCustom),t.has("editorMode")&&r.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&r.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&r.actions.setSession(this.session),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>d.addContext(t))),setTimeout((()=>this.updateIfNeeded()))}async updateIfNeeded(){const t=this.apiProvider();!this.withManualResources&&t&&null==this.session&&(this.session=await this.cache.get("session",(async()=>{const s=await t.getCurrentSession();return s.idleTimeoutInMillis>0&&this.cleanSessionDebouncer.run((()=>{this.cache.clear("session"),this.session=void 0}),s.idleTimeoutInMillis),s})))}}c.elementDefinitions={},c.styles=o,u([e.property()],c.prototype,"baseUrl",void 0),u([e.property()],c.prototype,"apiIntegrationIdentifier",void 0),u([e.property()],c.prototype,"uiLocale",void 0),u([e.property({type:Boolean})],c.prototype,"editorMode",void 0),u([e.property({type:Boolean})],c.prototype,"noCustom",void 0),u([e.property({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],c.prototype,"noCustomComponent",void 0),u([e.property({type:Boolean})],c.prototype,"withManualResources",void 0),u([s.jsonProperty([])],c.prototype,"messageContexts",void 0),u([s.jsonProperty(void 0)],c.prototype,"session",void 0),u([e.property({type:Object})],c.prototype,"apiProvider",void 0),s.customElement("ft-app-context")(c);const v=Symbol("i18nProperties"),p=Symbol("i18nUnsubs");function w(t){var s;return s=p,class extends t{constructor(){super(...arguments),this[s]=new Map}i18n(t,s,...i){var e;if("string"==typeof t)return d.resolveMessage(t,s,...i);const n=null!==(e=t.args)&&void 0!==e?e:t.argsProvider?t.argsProvider(this):[];return d.resolveMessage(t.context,t.key,...n)}onI18nUpdate(t){var s;null===(s=this[v])||void 0===s||s.forEach(((s,i)=>{s.context.toLowerCase()===t.toLowerCase()&&(this[i]=this.i18n(s))})),setTimeout((()=>this.requestUpdate()),0)}updated(t){var s;super.updated(t),null===(s=this[v])||void 0===s||s.forEach(((t,s)=>{null!=t.argsProvider&&(this[s]=this.i18n(t))}))}connectedCallback(){super.connectedCallback(),null!=this[v]&&new Set([...this[v].values()].map((t=>t.context))).forEach((t=>this.addI18nMessages(t)))}addI18nMessages(t,s){t=t.toLowerCase(),this[p].has(t)||this[p].set(t,d.subscribe(t,(()=>this.onI18nUpdate(t)))),d.prepareContext(t,null!=s?s:{})}addI18nContext(t){this.addI18nMessages(t.name)}disconnectedCallback(){super.disconnectedCallback(),this[p].forEach((t=>t())),this[p].clear()}}}class f extends(w(s.FtLitElement)){}class y extends(w(s.FtLitElementRedux)){}var b=function(t,s,i,e){for(var n,o=arguments.length,r=o<3?s:null===e?e=Object.getOwnPropertyDescriptor(s,i):e,h=t.length-1;h>=0;h--)(n=t[h])&&(r=(o<3?n(r):o>3?n(s,i,r):n(s,i))||r);return o>3&&r&&Object.defineProperty(s,i,r),r};class m extends f{render(){return this.key&&this.context?i.html`
6
+ <span class="ft-i18n">${this.i18n(this.context,this.key,...Array.isArray(this.args)?this.args:[])}</span>
7
+ `:i.nothing}update(t){super.update(t),this.context&&this.key&&this.defaultMessage&&this.addI18nMessages(this.context,{[this.key]:this.defaultMessage})}}m.elementDefinitions={},m.styles=n,b([e.property()],m.prototype,"context",void 0),b([e.property()],m.prototype,"key",void 0),b([s.jsonProperty([])],m.prototype,"args",void 0),b([e.property()],m.prototype,"defaultMessage",void 0);class C{constructor(t){this.name=t,this.properties=new Proxy({},{get:(t,s)=>{const i=s;return t=>({context:this.name,key:i,args:"function"==typeof t?void 0:t,argsProvider:"function"==typeof t?t:void 0})}}),this.messages=new Proxy({},{get:(t,s)=>(...t)=>d.resolveMessage(this.name,s,...t)})}static build(t){return new C(t)}static fromGwt(t){return new C(t)}}s.customElement("ft-i18n")(m),t.FtI18n=m,t.FtI18nCssVariables={},t.FtLitElementReduxWithI18n=y,t.FtLitElementWithI18n=f,t.I18nMessageContext=C,t.i18n=t=>(s,i)=>{var e,n;s.constructor.createProperty(i,{attribute:!1,type:String});const o={...t,key:null!==(e=t.key)&&void 0!==e?e:i};s[v]=null!==(n=s[v])&&void 0!==n?n:new Map,s[v].set(i,o)},t.i18nProperties=v,t.i18nUnsubs=p,t.styles=n,t.withI18n=w,Object.defineProperty(t,"t",{value:!0})}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators);
@@ -0,0 +1,98 @@
1
+ !function(t){
2
+ /**
3
+ * @license
4
+ * Copyright (c) 2020 The Polymer Project Authors. All rights reserved.
5
+ * This code may only be used under the BSD style license found at
6
+ * http://polymer.github.io/LICENSE.txt
7
+ * The complete set of authors may be found at
8
+ * http://polymer.github.io/AUTHORS.txt
9
+ * The complete set of contributors may be found at
10
+ * http://polymer.github.io/CONTRIBUTORS.txt
11
+ * Code distributed by Google as part of the polymer project is also
12
+ * subject to an additional IP rights grant found at
13
+ * http://polymer.github.io/PATENTS.txt
14
+ *
15
+ * @see https://github.com/webcomponents/polyfills/tree/master/packages/scoped-custom-element-registry
16
+ */
17
+ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.customElements.define,n=window.customElements.get,i=window.customElements,r=new WeakMap,o=new WeakMap,s=new WeakMap,u=new WeakMap;let c;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,r){if(t=t.toLowerCase(),void 0!==this._getDefinition(t))throw new DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(void 0!==this._definitionsByClass.get(r))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const u=r.prototype.attributeChangedCallback,c=new Set(r.observedAttributes||[]);f(r,c,u);const a={elementClass:r,connectedCallback:r.prototype.connectedCallback,disconnectedCallback:r.prototype.disconnectedCallback,adoptedCallback:r.prototype.adoptedCallback,attributeChangedCallback:u,formAssociated:r.formAssociated,formAssociatedCallback:r.prototype.formAssociatedCallback,formDisabledCallback:r.prototype.formDisabledCallback,formResetCallback:r.prototype.formResetCallback,formStateRestoreCallback:r.prototype.formStateRestoreCallback,observedAttributes:c};this._definitionsByTag.set(t,a),this._definitionsByClass.set(r,a);let l=n.call(i,t);l||(l=h(t),e.call(i,t,l)),this===window.customElements&&(s.set(r,a),a.standInClass=l);const d=this._awaitingUpgrade.get(t);if(d){this._awaitingUpgrade.delete(t);for(const t of d)o.delete(t),v(t,a,!0)}const p=this._whenDefinedPromises.get(t);return void 0!==p&&(p.resolve(r),this._whenDefinedPromises.delete(t)),r}upgrade(){b.push(this),i.upgrade.apply(i,arguments),b.pop()}get(t){return this._definitionsByTag.get(t)?.elementClass}_getDefinition(t){return this._definitionsByTag.get(t)}whenDefined(t){const e=this._getDefinition(t);if(void 0!==e)return Promise.resolve(e.elementClass);let n=this._whenDefinedPromises.get(t);return void 0===n&&(n={},n.promise=new Promise((t=>n.resolve=t)),this._whenDefinedPromises.set(t,n)),n.promise}_upgradeWhenDefined(t,e,n){let i=this._awaitingUpgrade.get(e);i||this._awaitingUpgrade.set(e,i=new Set),n?i.add(t):i.delete(t)}},window.HTMLElement=function(){let e=c;if(e)return c=void 0,e;const n=s.get(this.constructor);if(!n)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return e=Reflect.construct(t,[],n.standInClass),Object.setPrototypeOf(e,this.constructor.prototype),r.set(e,n),e},window.HTMLElement.prototype=t.prototype;const a=t=>t===document||t instanceof ShadowRoot,l=t=>{let e=t.getRootNode();if(!a(e)){const t=b[b.length-1];if(t instanceof CustomElementRegistry)return t;e=t.getRootNode(),a(e)||(e=u.get(e)?.getRootNode()||document)}return e.customElements},h=e=>class{static get formAssociated(){return!0}constructor(){const n=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(n,HTMLElement.prototype);const i=l(n)||window.customElements,r=i._getDefinition(e);return r?v(n,r):o.set(n,i),n}connectedCallback(){const t=r.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!0)}disconnectedCallback(){const t=r.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):o.get(this)._upgradeWhenDefined(this,e,!1)}adoptedCallback(){r.get(this)?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=r.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=r.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=r.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=r.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},f=(t,e,n)=>{if(0===e.size||void 0===n)return;const i=t.prototype.setAttribute;i&&(t.prototype.setAttribute=function(t,r){const o=t.toLowerCase();if(e.has(o)){const t=this.getAttribute(o);i.call(this,o,r),n.call(this,o,t,r)}else i.call(this,o,r)});const r=t.prototype.removeAttribute;r&&(t.prototype.removeAttribute=function(t){const i=t.toLowerCase();if(e.has(i)){const t=this.getAttribute(i);r.call(this,i),n.call(this,i,t,null)}else r.call(this,i)})},d=e=>{const n=Object.getPrototypeOf(e);if(n!==window.HTMLElement)return n===t||"HTMLElement"===n?.prototype?.constructor?.name?Object.setPrototypeOf(e,window.HTMLElement):d(n)},v=(t,e,n=!1)=>{Object.setPrototypeOf(t,e.elementClass.prototype),r.set(t,e),c=t;try{new e.elementClass}catch(t){d(e.elementClass),new e.elementClass}e.observedAttributes.forEach((n=>{t.hasAttribute(n)&&e.attributeChangedCallback.call(t,n,null,t.getAttribute(n))})),n&&e.connectedCallback&&t.isConnected&&e.connectedCallback.call(t)},p=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){const e=p.apply(this,arguments);return t.customElements&&(e.customElements=t.customElements),e};let b=[document];const w=(t,e,n)=>{const i=(n?Object.getPrototypeOf(n):t.prototype)[e];t.prototype[e]=function(){b.push(this);const t=i.apply(n||this,arguments);return void 0!==t&&u.set(t,this),b.pop(),t}};w(ShadowRoot,"createElement",document),w(ShadowRoot,"importNode",document),w(Element,"insertAdjacentHTML");const y=(t,e)=>{const n=Object.getOwnPropertyDescriptor(t.prototype,e);Object.defineProperty(t.prototype,e,{...n,set(t){b.push(this),n.set.call(this,t),b.pop()}})};if(y(Element,"innerHTML"),y(ShadowRoot,"innerHTML"),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){const t=new WeakMap,e=HTMLElement.prototype.attachInternals,n=["setFormValue","setValidity","checkValidity","reportValidity"];HTMLElement.prototype.attachInternals=function(...n){const i=e.call(this,...n);return t.set(i,this),i},n.forEach((e=>{const n=window.ElementInternals.prototype,i=n[e];n[e]=function(...e){const n=t.get(this);if(!0!==r.get(n).formAssociated)throw new DOMException(`Failed to execute ${i} on 'ElementInternals': The target element is not a form-associated custom element.`);i?.call(this,...e)}}));class i extends Array{constructor(t){super(...t),this._elements=t}get value(){return this._elements.find((t=>!0===t.checked))?.value||""}}class o{constructor(t){const e=new Map;t.forEach(((t,n)=>{const i=t.getAttribute("name"),r=e.get(i)||[];this[+n]=t,r.push(t),e.set(i,r)})),this.length=t.length,e.forEach(((t,e)=>{t&&(1===t.length?this[e]=t[0]:this[e]=new i(t))}))}namedItem(t){return this[t]}}const s=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){const t=s.get.call(this,[]),e=[];for(const n of t){const t=r.get(n);t&&!0!==t.formAssociated||e.push(n)}return new o(e)}})}}try{window.customElements.define("custom-element",null)}catch(t){const e=window.customElements.define;window.customElements.define=(t,n,i)=>{try{e.bind(window.customElements)(t,n,i)}catch(e){console.info(t,n,i,e)}}}class e extends Promise{constructor(t){super(((e,n)=>t((t=>{this.isCanceled?n(new Error("Promise has been canceled")):e(t)}),(t=>{this.isCanceled?n(new Error("Promise has been canceled")):n(t)})))),this.isCanceled=!1}cancel(){this.isCanceled=!0}}class n{constructor(){this.loaders={},this.content={},this.finalContent=new Set}register(t,e){this.loaders[t]=e,this.finalContent.delete(t)}registerFinal(t,e){this.loaders[t]=e,this.finalContent.add(t)}clearAll(){for(let t in this.content)this.clear(t)}clear(t){this.finalContent.has(t)||this.forceClear(t)}forceClear(t){this.content[t]instanceof e&&this.content[t].cancel(),delete this.content[t]}set(t,e){this.forceClear(t),this.register(t,(async()=>e)),this.content[t]=e}setFinal(t,e){this.forceClear(t),this.registerFinal(t,(async()=>e)),this.content[t]=e}async get(t,n){if(void 0===this.content[t]){if(null==(n=null!=n?n:this.loaders[t]))throw new Error("Unknown cache key "+t);const r=(i=n(),new e(((t,e)=>i.then(t).catch(e))));return this.content[t]=r,r.then((e=>(this.content[t]=e,e)))}var i;if(this.content[t]instanceof Error)throw this.content[t];return this.content[t]}isResolvedValue(t){return!(null==t||t instanceof Promise||t instanceof Error)}getNow(t){if(this.isResolvedValue(this.content[t]))return this.content[t]}has(t){return null!=this.content[t]}resolvedKeys(){return Object.keys(this.content).filter((t=>this.isResolvedValue(this.content[t])))}resolvedValues(){return Object.values(this.content).filter((t=>this.isResolvedValue(t)))}keys(){return Object.keys(this.content)}values(){return Object.values(this.content)}}class i{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,e){return this.callbacks=[t],this.debounce(e)}queue(t,e){return this.callbacks.push(t),this.debounce(e)}cancel(){this.clearTimeout(),this.resolvePromise&&this.resolvePromise(!1),this.clearPromise()}debounce(t){return null==this.promise&&(this.promise=new Promise(((t,e)=>{this.resolvePromise=t,this.rejectPromise=e}))),this.clearTimeout(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout),this.promise}async runCallbacks(){var t,e;const n=[...this.callbacks];this.callbacks=[];const i=null!==(t=this.rejectPromise)&&void 0!==t?t:()=>null,r=null!==(e=this.resolvePromise)&&void 0!==e?e:()=>null;this.clearPromise();for(let t of n)try{await t()}catch(t){return void i(t)}r(!0)}clearTimeout(){null!=this._debounce&&window.clearTimeout(this._debounce)}clearPromise(){this.promise=void 0,this.resolvePromise=void 0,this.rejectPromise=void 0}}
18
+ /**
19
+ * @license
20
+ * Copyright 2017 Google LLC
21
+ * SPDX-License-Identifier: BSD-3-Clause
22
+ */const r=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,t)}};function o(t){return(e,n)=>void 0!==n?((t,e,n)=>{e.constructor.createProperty(n,t)})(t,e,n):r(t,e)
23
+ /**
24
+ * @license
25
+ * Copyright 2021 Google LLC
26
+ * SPDX-License-Identifier: BSD-3-Clause
27
+ */}var s;function u(t,e){try{return function(t,e){if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;var n,i,r;if(Array.isArray(t)){if((n=t.length)!=e.length)return!1;for(i=n;0!=i--;)if(!u(t[i],e[i]))return!1;return!0}if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(i of t.entries())if(!e.has(i[0]))return!1;for(i of t.entries())if(!u(i[1],e.get(i[0])))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(i of t.entries())if(!e.has(i[0]))return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if((n=(r=Object.keys(t)).length)!==Object.keys(e).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(e,r[i]))return!1;for(i=n;0!=i--;){var o=r[i];if(!u(t[o],e[o]))return!1}return!0}return t!=t&&e!=e}(t,e)}catch(t){return!1}}null===(s=window.HTMLSlotElement)||void 0===s||s.prototype.assignedElements;const c=t=>e=>{window.customElements.get(t)||window.customElements.define(t,e)};function a(t,e){const n=()=>JSON.parse(JSON.stringify(t));return o({type:Object,converter:{fromAttribute:t=>{if(null==t)return n();try{return JSON.parse(t)}catch{return n()}},toAttribute:t=>JSON.stringify(t)},hasChanged:(t,e)=>!u(t,e),...null!=e?e:{}})}const l=window,h=l.ShadowRoot&&(void 0===l.ShadyCSS||l.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,f=Symbol(),d=new WeakMap;
28
+ /**
29
+ * @license
30
+ * Copyright 2019 Google LLC
31
+ * SPDX-License-Identifier: BSD-3-Clause
32
+ */class v{constructor(t,e,n){if(this._$cssResult$=!0,n!==f)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(h&&void 0===t){const n=void 0!==e&&1===e.length;n&&(t=d.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&d.set(e,t))}return t}toString(){return this.cssText}}const p=t=>new v("string"==typeof t?t:t+"",void 0,f),b=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,n,i)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+t[i+1]),t[0]);return new v(n,t,f)},w=(t,e)=>{h?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const n=document.createElement("style"),i=l.litNonce;void 0!==i&&n.setAttribute("nonce",i),n.textContent=e.cssText,t.appendChild(n)}))},y=h?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const n of t.cssRules)e+=n.cssText;return p(e)})(t):t
33
+ /**
34
+ * @license
35
+ * Copyright 2017 Google LLC
36
+ * SPDX-License-Identifier: BSD-3-Clause
37
+ */;var m;const x=window,g=x.trustedTypes,O=g?g.emptyScript:"",j=x.reactiveElementPolyfillSupport,E={toAttribute(t,e){switch(e){case Boolean:t=t?O:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=null!==t;break;case Number:n=null===t?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch(t){n=null}}return n}},S=(t,e)=>e!==t&&(e==e||t==t),C={attribute:!0,type:String,converter:E,reflect:!1,hasChanged:S};class N extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;null!==(e=this.h)&&void 0!==e||(this.h=[]),this.h.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,n)=>{const i=this._$Ep(n,e);void 0!==i&&(this._$Ev.set(i,n),t.push(i))})),t}static createProperty(t,e=C){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const n="symbol"==typeof t?Symbol():"__"+t,i=this.getPropertyDescriptor(t,n,e);void 0!==i&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,e,n){return{get(){return this[e]},set(i){const r=this[t];this[e]=i,this.requestUpdate(t,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||C}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const n of e)this.createProperty(n,t[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const n=new Set(t.flat(1/0).reverse());for(const t of n)e.unshift(y(t))}else void 0!==t&&e.push(y(t));return e}static _$Ep(t,e){const n=e.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,n;(null!==(e=this._$ES)&&void 0!==e?e:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(n=t.hostConnected)||void 0===n||n.call(t))}removeController(t){var e;null===(e=this._$ES)||void 0===e||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return w(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,n){this._$AK(t,n)}_$EO(t,e,n=C){var i;const r=this.constructor._$Ep(t,n);if(void 0!==r&&!0===n.reflect){const o=(void 0!==(null===(i=n.converter)||void 0===i?void 0:i.toAttribute)?n.converter:E).toAttribute(e,n.type);this._$El=t,null==o?this.removeAttribute(r):this.setAttribute(r,o),this._$El=null}}_$AK(t,e){var n;const i=this.constructor,r=i._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=i.getPropertyOptions(r),o="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(n=t.converter)||void 0===n?void 0:n.fromAttribute)?t.converter:E;this._$El=r,this[r]=o.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,n){let i=!0;void 0!==t&&(((n=n||this.constructor.getPropertyOptions(t)).hasChanged||S)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===n.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,n))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,e)=>this[e]=t)),this._$Ei=void 0);let e=!1;const n=this._$AL;try{e=this.shouldUpdate(n),e?(this.willUpdate(n),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(n)):this._$Ek()}catch(t){throw e=!1,this._$Ek(),t}e&&this._$AE(n)}willUpdate(t){}_$AE(t){var e;null===(e=this._$ES)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$EO(e,this[e],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}
38
+ /**
39
+ * @license
40
+ * Copyright 2017 Google LLC
41
+ * SPDX-License-Identifier: BSD-3-Clause
42
+ */
43
+ var R;N.finalized=!0,N.elementProperties=new Map,N.elementStyles=[],N.shadowRootOptions={mode:"open"},null==j||j({ReactiveElement:N}),(null!==(m=x.reactiveElementVersions)&&void 0!==m?m:x.reactiveElementVersions=[]).push("1.4.1");const M=window,A=M.trustedTypes,U=A?A.createPolicy("lit-html",{createHTML:t=>t}):void 0,k=`lit$${(Math.random()+"").slice(9)}$`,$="?"+k,P=`<${$}>`,F=document,L=(t="")=>F.createComment(t),_=t=>null===t||"object"!=typeof t&&"function"!=typeof t,I=Array.isArray,T=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,B=/-->/g,W=/>/g,K=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),D=/'/g,H=/"/g,z=/^(?:script|style|textarea|title)$/i,V=(t=>(e,...n)=>({_$litType$:t,strings:e,values:n}))(1),J=Symbol.for("lit-noChange"),Z=Symbol.for("lit-nothing"),q=new WeakMap,X=F.createTreeWalker(F,129,null,!1);class G{constructor({strings:t,_$litType$:e},n){let i;this.parts=[];let r=0,o=0;const s=t.length-1,u=this.parts,[c,a]=((t,e)=>{const n=t.length-1,i=[];let r,o=2===e?"<svg>":"",s=T;for(let e=0;e<n;e++){const n=t[e];let u,c,a=-1,l=0;for(;l<n.length&&(s.lastIndex=l,c=s.exec(n),null!==c);)l=s.lastIndex,s===T?"!--"===c[1]?s=B:void 0!==c[1]?s=W:void 0!==c[2]?(z.test(c[2])&&(r=RegExp("</"+c[2],"g")),s=K):void 0!==c[3]&&(s=K):s===K?">"===c[0]?(s=null!=r?r:T,a=-1):void 0===c[1]?a=-2:(a=s.lastIndex-c[2].length,u=c[1],s=void 0===c[3]?K:'"'===c[3]?H:D):s===H||s===D?s=K:s===B||s===W?s=T:(s=K,r=void 0);const h=s===K&&t[e+1].startsWith("/>")?" ":"";o+=s===T?n+P:a>=0?(i.push(u),n.slice(0,a)+"$lit$"+n.slice(a)+k+h):n+k+(-2===a?(i.push(void 0),e):h)}const u=o+(t[n]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==U?U.createHTML(u):u,i]})(t,e);if(this.el=G.createElement(c,n),X.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(i=X.nextNode())&&u.length<s;){if(1===i.nodeType){if(i.hasAttributes()){const t=[];for(const e of i.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(k)){const n=a[o++];if(t.push(e),void 0!==n){const t=i.getAttribute(n.toLowerCase()+"$lit$").split(k),e=/([.?@])?(.*)/.exec(n);u.push({type:1,index:r,name:e[2],strings:t,ctor:"."===e[1]?nt:"?"===e[1]?rt:"@"===e[1]?ot:et})}else u.push({type:6,index:r})}for(const e of t)i.removeAttribute(e)}if(z.test(i.tagName)){const t=i.textContent.split(k),e=t.length-1;if(e>0){i.textContent=A?A.emptyScript:"";for(let n=0;n<e;n++)i.append(t[n],L()),X.nextNode(),u.push({type:2,index:++r});i.append(t[e],L())}}}else if(8===i.nodeType)if(i.data===$)u.push({type:2,index:r});else{let t=-1;for(;-1!==(t=i.data.indexOf(k,t+1));)u.push({type:7,index:r}),t+=k.length-1}r++}}static createElement(t,e){const n=F.createElement("template");return n.innerHTML=t,n}}function Q(t,e,n=t,i){var r,o,s,u;if(e===J)return e;let c=void 0!==i?null===(r=n._$Co)||void 0===r?void 0:r[i]:n._$Cl;const a=_(e)?void 0:e._$litDirective$;return(null==c?void 0:c.constructor)!==a&&(null===(o=null==c?void 0:c._$AO)||void 0===o||o.call(c,!1),void 0===a?c=void 0:(c=new a(t),c._$AT(t,n,i)),void 0!==i?(null!==(s=(u=n)._$Co)&&void 0!==s?s:u._$Co=[])[i]=c:n._$Cl=c),void 0!==c&&(e=Q(t,c._$AS(t,e.values),c,i)),e}class Y{constructor(t,e){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var e;const{el:{content:n},parts:i}=this._$AD,r=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:F).importNode(n,!0);X.currentNode=r;let o=X.nextNode(),s=0,u=0,c=i[0];for(;void 0!==c;){if(s===c.index){let e;2===c.type?e=new tt(o,o.nextSibling,this,t):1===c.type?e=new c.ctor(o,c.name,c.strings,this,t):6===c.type&&(e=new st(o,this,t)),this.u.push(e),c=i[++u]}s!==(null==c?void 0:c.index)&&(o=X.nextNode(),s++)}return r}p(t){let e=0;for(const n of this.u)void 0!==n&&(void 0!==n.strings?(n._$AI(t,n,e),e+=n.strings.length-2):n._$AI(t[e])),e++}}class tt{constructor(t,e,n,i){var r;this.type=2,this._$AH=Z,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=n,this.options=i,this._$Cm=null===(r=null==i?void 0:i.isConnected)||void 0===r||r}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cm}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Q(this,t,e),_(t)?t===Z||null==t||""===t?(this._$AH!==Z&&this._$AR(),this._$AH=Z):t!==this._$AH&&t!==J&&this.g(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>I(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]))(t)?this.k(t):this.g(t)}O(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==Z&&_(this._$AH)?this._$AA.nextSibling.data=t:this.T(F.createTextNode(t)),this._$AH=t}$(t){var e;const{values:n,_$litType$:i}=t,r="number"==typeof i?this._$AC(t):(void 0===i.el&&(i.el=G.createElement(i.h,this.options)),i);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===r)this._$AH.p(n);else{const t=new Y(r,this),e=t.v(this.options);t.p(n),this.T(e),this._$AH=t}}_$AC(t){let e=q.get(t.strings);return void 0===e&&q.set(t.strings,e=new G(t)),e}k(t){I(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let n,i=0;for(const r of t)i===e.length?e.push(n=new tt(this.O(L()),this.O(L()),this,this.options)):n=e[i],n._$AI(r),i++;i<e.length&&(this._$AR(n&&n._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){var n;for(null===(n=this._$AP)||void 0===n||n.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cm=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class et{constructor(t,e,n,i,r){this.type=1,this._$AH=Z,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=r,n.length>2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=Z}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,n,i){const r=this.strings;let o=!1;if(void 0===r)t=Q(this,t,e,0),o=!_(t)||t!==this._$AH&&t!==J,o&&(this._$AH=t);else{const i=t;let s,u;for(t=r[0],s=0;s<r.length-1;s++)u=Q(this,i[n+s],e,s),u===J&&(u=this._$AH[s]),o||(o=!_(u)||u!==this._$AH[s]),u===Z?t=Z:t!==Z&&(t+=(null!=u?u:"")+r[s+1]),this._$AH[s]=u}o&&!i&&this.j(t)}j(t){t===Z?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class nt extends et{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===Z?void 0:t}}const it=A?A.emptyScript:"";class rt extends et{constructor(){super(...arguments),this.type=4}j(t){t&&t!==Z?this.element.setAttribute(this.name,it):this.element.removeAttribute(this.name)}}class ot extends et{constructor(t,e,n,i,r){super(t,e,n,i,r),this.type=5}_$AI(t,e=this){var n;if((t=null!==(n=Q(this,t,e,0))&&void 0!==n?n:Z)===J)return;const i=this._$AH,r=t===Z&&i!==Z||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,o=t!==Z&&(i===Z||r);r&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,n;"function"==typeof this._$AH?this._$AH.call(null!==(n=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==n?n:this.element,t):this._$AH.handleEvent(t)}}class st{constructor(t,e,n){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(t){Q(this,t)}}const ut=M.litHtmlPolyfillSupport;null==ut||ut(G,tt),(null!==(R=M.litHtmlVersions)&&void 0!==R?R:M.litHtmlVersions=[]).push("2.4.0");
44
+ /**
45
+ * @license
46
+ * Copyright 2017 Google LLC
47
+ * SPDX-License-Identifier: BSD-3-Clause
48
+ */
49
+ var ct,at;class lt extends N{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const n=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=n.firstChild),n}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,n)=>{var i,r;const o=null!==(i=null==n?void 0:n.renderBefore)&&void 0!==i?i:e;let s=o._$litPart$;if(void 0===s){const t=null!==(r=null==n?void 0:n.renderBefore)&&void 0!==r?r:null;o._$litPart$=s=new tt(e.insertBefore(L(),t),t,void 0,null!=n?n:{})}return s._$AI(t),s})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return J}}lt.finalized=!0,lt._$litElement$=!0,null===(ct=globalThis.litElementHydrateSupport)||void 0===ct||ct.call(globalThis,{LitElement:lt});const ht=globalThis.litElementPolyfillSupport;null==ht||ht({LitElement:lt}),(null!==(at=globalThis.litElementVersions)&&void 0!==at?at:globalThis.litElementVersions=[]).push("3.2.2");class ft{static create(t,e,n){let i=t=>p(null!=t?t:n),r=b`var(${p(t)}, ${i(n)})`;return r.name=t,r.category=e,r.defaultValue=n,r.defaultCssValue=i,r.get=e=>b`var(${p(t)}, ${i(e)})`,r.breadcrumb=()=>[],r.lastResortDefaultValue=()=>n,r}static extend(t,e,n){let i=t=>e.get(null!=t?t:n),r=b`var(${p(t)}, ${i(n)})`;return r.name=t,r.category=e.category,r.fallbackVariable=e,r.defaultValue=n,r.defaultCssValue=i,r.get=e=>b`var(${p(t)}, ${i(e)})`,r.breadcrumb=()=>[e.name,...e.breadcrumb()],r.lastResortDefaultValue=()=>n,r}static external(t,e){let n=e=>t.fallbackVariable?t.fallbackVariable.get(null!=e?e:t.defaultValue):p(null!=e?e:t.defaultValue),i=b`var(${p(t.name)}, ${n(t.defaultValue)})`;return i.name=t.name,i.category=t.category,i.fallbackVariable=t.fallbackVariable,i.defaultValue=t.defaultValue,i.context=e,i.defaultCssValue=n,i.get=e=>b`var(${p(t.name)}, ${n(e)})`,i.breadcrumb=()=>t.fallbackVariable?[t.fallbackVariable.name,...t.fallbackVariable.breadcrumb()]:[],i.lastResortDefaultValue=()=>{var e,n;return null!==(e=t.defaultValue)&&void 0!==e?e:null===(n=t.fallbackVariable)||void 0===n?void 0:n.lastResortDefaultValue()},i}}ft.create("--ft-color-primary","COLOR","#2196F3"),ft.create("--ft-color-primary-variant","COLOR","#1976D2"),ft.create("--ft-color-secondary","COLOR","#FFCC80"),ft.create("--ft-color-secondary-variant","COLOR","#F57C00"),ft.create("--ft-color-surface","COLOR","#FFFFFF"),ft.create("--ft-color-content","COLOR","rgba(0, 0, 0, 0.87)"),ft.create("--ft-color-error","COLOR","#B00020"),ft.create("--ft-color-outline","COLOR","rgba(0, 0, 0, 0.14)"),ft.create("--ft-color-opacity-high","NUMBER","1"),ft.create("--ft-color-opacity-medium","NUMBER","0.74"),ft.create("--ft-color-opacity-disabled","NUMBER","0.38"),ft.create("--ft-color-on-primary","COLOR","#FFFFFF"),ft.create("--ft-color-on-primary-high","COLOR","#FFFFFF"),ft.create("--ft-color-on-primary-medium","COLOR","rgba(255, 255, 255, 0.74)"),ft.create("--ft-color-on-primary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),ft.create("--ft-color-on-secondary","COLOR","#FFFFFF"),ft.create("--ft-color-on-secondary-high","COLOR","#FFFFFF"),ft.create("--ft-color-on-secondary-medium","COLOR","rgba(255, 255, 255, 0.74)"),ft.create("--ft-color-on-secondary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),ft.create("--ft-color-on-surface","COLOR","rgba(0, 0, 0, 0.87)"),ft.create("--ft-color-on-surface-high","COLOR","rgba(0, 0, 0, 0.87)"),ft.create("--ft-color-on-surface-medium","COLOR","rgba(0, 0, 0, 0.60)"),ft.create("--ft-color-on-surface-disabled","COLOR","rgba(0, 0, 0, 0.38)"),ft.create("--ft-opacity-content-on-surface-disabled","NUMBER","0"),ft.create("--ft-opacity-content-on-surface-enable","NUMBER","0"),ft.create("--ft-opacity-content-on-surface-hover","NUMBER","0.04"),ft.create("--ft-opacity-content-on-surface-focused","NUMBER","0.12"),ft.create("--ft-opacity-content-on-surface-pressed","NUMBER","0.10"),ft.create("--ft-opacity-content-on-surface-selected","NUMBER","0.08"),ft.create("--ft-opacity-content-on-surface-dragged","NUMBER","0.08"),ft.create("--ft-opacity-primary-on-surface-disabled","NUMBER","0"),ft.create("--ft-opacity-primary-on-surface-enable","NUMBER","0"),ft.create("--ft-opacity-primary-on-surface-hover","NUMBER","0.04"),ft.create("--ft-opacity-primary-on-surface-focused","NUMBER","0.12"),ft.create("--ft-opacity-primary-on-surface-pressed","NUMBER","0.10"),ft.create("--ft-opacity-primary-on-surface-selected","NUMBER","0.08"),ft.create("--ft-opacity-primary-on-surface-dragged","NUMBER","0.08"),ft.create("--ft-opacity-surface-on-primary-disabled","NUMBER","0"),ft.create("--ft-opacity-surface-on-primary-enable","NUMBER","0"),ft.create("--ft-opacity-surface-on-primary-hover","NUMBER","0.04"),ft.create("--ft-opacity-surface-on-primary-focused","NUMBER","0.12"),ft.create("--ft-opacity-surface-on-primary-pressed","NUMBER","0.10"),ft.create("--ft-opacity-surface-on-primary-selected","NUMBER","0.08"),ft.create("--ft-opacity-surface-on-primary-dragged","NUMBER","0.08"),ft.create("--ft-elevation-00","UNKNOWN","0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0)"),ft.create("--ft-elevation-01","UNKNOWN","0px 1px 4px 0px rgba(0, 0, 0, 0.06), 0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-02","UNKNOWN","0px 4px 10px 0px rgba(0, 0, 0, 0.06), 0px 2px 5px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-03","UNKNOWN","0px 6px 13px 0px rgba(0, 0, 0, 0.06), 0px 3px 7px 0px rgba(0, 0, 0, 0.14), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-04","UNKNOWN","0px 8px 16px 0px rgba(0, 0, 0, 0.06), 0px 4px 9px 0px rgba(0, 0, 0, 0.14), 0px 2px 3px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-06","UNKNOWN","0px 12px 22px 0px rgba(0, 0, 0, 0.06), 0px 6px 13px 0px rgba(0, 0, 0, 0.14), 0px 4px 5px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-08","UNKNOWN","0px 16px 28px 0px rgba(0, 0, 0, 0.06), 0px 8px 17px 0px rgba(0, 0, 0, 0.14), 0px 6px 7px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-12","UNKNOWN","0px 22px 40px 0px rgba(0, 0, 0, 0.06), 0px 12px 23px 0px rgba(0, 0, 0, 0.14), 0px 10px 11px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-16","UNKNOWN","0px 28px 52px 0px rgba(0, 0, 0, 0.06), 0px 16px 29px 0px rgba(0, 0, 0, 0.14), 0px 14px 15px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-elevation-24","UNKNOWN","0px 40px 76px 0px rgba(0, 0, 0, 0.06), 0px 24px 41px 0px rgba(0, 0, 0, 0.14), 0px 22px 23px 0px rgba(0, 0, 0, 0.06)"),ft.create("--ft-border-radius-S","SIZE","4px"),ft.create("--ft-border-radius-M","SIZE","8px"),ft.create("--ft-border-radius-L","SIZE","12px"),ft.create("--ft-border-radius-XL","SIZE","16px"),ft.create("--ft-title-font","UNKNOWN","Ubuntu, system-ui, sans-serif"),ft.create("--ft-content-font","UNKNOWN","'Open Sans', system-ui, sans-serif"),ft.create("--ft-transition-duration","UNKNOWN","250ms"),ft.create("--ft-transition-timing-function","UNKNOWN","ease-in-out");var dt=function(t,e,n,i){for(var r,o=arguments.length,s=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i,u=t.length-1;u>=0;u--)(r=t[u])&&(s=(o<3?r(s):o>3?r(e,n,s):r(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};class vt extends(
50
+ /**
51
+ * @license
52
+ * Copyright 2021 Google LLC
53
+ * SPDX-License-Identifier: BSD-3-Clause
54
+ */
55
+ function(t){return class extends t{createRenderRoot(){const t=this.constructor,{registry:e,elementDefinitions:n,shadowRootOptions:i}=t;n&&!e&&(t.registry=new CustomElementRegistry,Object.entries(n).forEach((([e,n])=>t.registry.define(e,n))));const r=this.renderOptions.creationScope=this.attachShadow({...i,customElements:t.registry});return w(r,this.constructor.elementStyles),r}}}(lt)){constructor(){super(),this.exportpartsDebouncer=new i(5),this.constructorName=this.constructor.name,this.constructorPrototype=this.constructor.prototype}adoptedCallback(){this.constructor.name!==this.constructorName&&Object.setPrototypeOf(this,this.constructorPrototype)}getStyles(){return[]}getTemplate(){return null}render(){let t=this.getStyles();return Array.isArray(t)||(t=[t]),V`
56
+ ${t.map((t=>V`
57
+ <style>${t}</style>
58
+ `))}
59
+ ${this.getTemplate()}
60
+ `}updated(t){super.updated(t),setTimeout((()=>{this.contentAvailableCallback(t),this.scheduleExportpartsUpdate()}),0)}contentAvailableCallback(t){var e,n;if((null!==(n=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelectorAll(".ft-lit-element--custom-stylesheet"))&&void 0!==n?n:[]).forEach((t=>t.remove())),this.customStylesheet){const t=document.createElement("style");t.classList.add("ft-lit-element--custom-stylesheet"),t.innerHTML=this.customStylesheet,this.shadowRoot.append(t)}}scheduleExportpartsUpdate(){this.exportpartsDebouncer.run((()=>{var t;(null===(t=this.exportpartsPrefix)||void 0===t?void 0:t.trim())?this.setExportpartsAttribute([this.exportpartsPrefix]):null!=this.exportpartsPrefixes&&this.exportpartsPrefixes.length>0&&this.setExportpartsAttribute(this.exportpartsPrefixes)}))}setExportpartsAttribute(t){var e,n,i,r,o,s;const u=t=>null!=t&&t.trim().length>0,c=t.filter(u).map((t=>t.trim()));if(0===c.length)return void this.removeAttribute("exportparts");const a=new Set;for(let t of null!==(n=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelectorAll("[part],[exportparts]"))&&void 0!==n?n:[]){const e=null!==(r=null===(i=t.getAttribute("part"))||void 0===i?void 0:i.split(" "))&&void 0!==r?r:[],n=null!==(s=null===(o=t.getAttribute("exportparts"))||void 0===o?void 0:o.split(",").map((t=>t.split(":")[1])))&&void 0!==s?s:[];new Array(...e,...n).filter(u).map((t=>t.trim())).forEach((t=>a.add(t)))}if(0===a.size)return void this.removeAttribute("exportparts");const l=[...a.values()].flatMap((t=>c.map((e=>`${t}:${e}--${t}`))));this.setAttribute("exportparts",[...this.part,...l].join(", "))}}dt([o()],vt.prototype,"exportpartsPrefix",void 0),dt([a([])],vt.prototype,"exportpartsPrefixes",void 0),dt([o()],vt.prototype,"customStylesheet",void 0),b`
61
+ .ft-no-text-select {
62
+ -webkit-touch-callout: none;
63
+ -webkit-user-select: none;
64
+ -khtml-user-select: none;
65
+ -moz-user-select: none;
66
+ -ms-user-select: none;
67
+ user-select: none;
68
+ }
69
+ `,b`
70
+ .ft-word-wrap {
71
+ white-space: normal;
72
+ word-wrap: break-word;
73
+ -ms-word-break: break-all;
74
+ word-break: break-all;
75
+ word-break: break-word;
76
+ -ms-hyphens: auto;
77
+ -moz-hyphens: auto;
78
+ -webkit-hyphens: auto;
79
+ hyphens: auto
80
+ }
81
+ `,b`
82
+ .ft-safari-ellipsis-fix {
83
+ margin-right: 0;
84
+
85
+ }
86
+
87
+ .ft-safari-ellipsis-fix:after {
88
+ content: "\\0000a0";
89
+ display: inline-block;
90
+ width: 0;
91
+ }
92
+ `;class pt{constructor(t,e){this.defaultLabels=t,this.labels=e}resolve(t,...e){var n,i;t=this.resolvePluralKey(t,e);let r=null!==(i=null!==(n=this.labels[t])&&void 0!==n?n:this.defaultLabels[t])&&void 0!==i?i:t;return e.forEach(((t,e)=>r=r.replace(new RegExp(`\\{${e}([^}]*)\\}`,"g"),((e,n)=>this.formatValue(t,n))))),r}resolvePluralKey(t,e){for(let n of e)if("number"==typeof n){const e=`${t}[\\=${n}]`;if(e in this.labels||e in this.defaultLabels)return e}return t}formatValue(t,e){return t instanceof Date?this.formatDate(t,e):t}formatDate(t,e){const n=n=>(null==e?void 0:e.includes("date"))?t.toLocaleDateString(n):(null==e?void 0:e.includes("time"))?t.toLocaleTimeString(n):t.toLocaleString(n);try{return n(document.documentElement.lang)}catch(t){return n()}}}function bt(t){for(var e=arguments.length,n=Array(e>1?e-1:0),i=1;i<e;i++)n[i-1]=arguments[i];throw Error("[Immer] minified error nr: "+t+(n.length?" "+n.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function wt(t){return!!t&&!!t[ie]}function yt(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;var n=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===re}(t)||Array.isArray(t)||!!t[ne]||!!t.constructor[ne]||Et(t)||St(t))}function mt(t,e,n){void 0===n&&(n=!1),0===xt(t)?(n?Object.keys:oe)(t).forEach((function(i){n&&"symbol"==typeof i||e(i,t[i],t)})):t.forEach((function(n,i){return e(i,n,t)}))}function xt(t){var e=t[ie];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:Et(t)?2:St(t)?3:0}function gt(t,e){return 2===xt(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Ot(t,e,n){var i=xt(t);2===i?t.set(e,n):3===i?(t.delete(e),t.add(n)):t[e]=n}function jt(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function Et(t){return Qt&&t instanceof Map}function St(t){return Yt&&t instanceof Set}function Ct(t){return t.o||t.t}function Nt(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=se(t);delete e[ie];for(var n=oe(e),i=0;i<n.length;i++){var r=n[i],o=e[r];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[r]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[r]})}return Object.create(Object.getPrototypeOf(t),e)}function Rt(t,e){return void 0===e&&(e=!1),At(t)||wt(t)||!yt(t)||(xt(t)>1&&(t.set=t.add=t.clear=t.delete=Mt),Object.freeze(t),e&&mt(t,(function(t,e){return Rt(e,!0)}),!0)),t}function Mt(){bt(2)}function At(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function Ut(t){var e=ue[t];return e||bt(18,t),e}function kt(){return Xt}function $t(t,e){e&&(Ut("Patches"),t.u=[],t.s=[],t.v=e)}function Pt(t){Ft(t),t.p.forEach(_t),t.p=null}function Ft(t){t===Xt&&(Xt=t.l)}function Lt(t){return Xt={p:[],l:Xt,h:t,m:!0,_:0}}function _t(t){var e=t[ie];0===e.i||1===e.i?e.j():e.O=!0}function It(t,e){e._=e.p.length;var n=e.p[0],i=void 0!==t&&t!==n;return e.h.g||Ut("ES5").S(e,t,i),i?(n[ie].P&&(Pt(e),bt(4)),yt(t)&&(t=Tt(e,t),e.l||Wt(e,t)),e.u&&Ut("Patches").M(n[ie].t,t,e.u,e.s)):t=Tt(e,n,[]),Pt(e),e.u&&e.v(e.u,e.s),t!==ee?t:void 0}function Tt(t,e,n){if(At(e))return e;var i=e[ie];if(!i)return mt(e,(function(r,o){return Bt(t,i,e,r,o,n)}),!0),e;if(i.A!==t)return e;if(!i.P)return Wt(t,i.t,!0),i.t;if(!i.I){i.I=!0,i.A._--;var r=4===i.i||5===i.i?i.o=Nt(i.k):i.o;mt(3===i.i?new Set(r):r,(function(e,o){return Bt(t,i,r,e,o,n)})),Wt(t,r,!1),n&&t.u&&Ut("Patches").R(i,n,t.u,t.s)}return i.o}function Bt(t,e,n,i,r,o){if(wt(r)){var s=Tt(t,r,o&&e&&3!==e.i&&!gt(e.D,i)?o.concat(i):void 0);if(Ot(n,i,s),!wt(s))return;t.m=!1}if(yt(r)&&!At(r)){if(!t.h.F&&t._<1)return;Tt(t,r),e&&e.A.l||Wt(t,r)}}function Wt(t,e,n){void 0===n&&(n=!1),t.h.F&&t.m&&Rt(e,n)}function Kt(t,e){var n=t[ie];return(n?Ct(n):t)[e]}function Dt(t,e){if(e in t)for(var n=Object.getPrototypeOf(t);n;){var i=Object.getOwnPropertyDescriptor(n,e);if(i)return i;n=Object.getPrototypeOf(n)}}function Ht(t){t.P||(t.P=!0,t.l&&Ht(t.l))}function zt(t){t.o||(t.o=Nt(t.t))}function Vt(t,e,n){var i=Et(e)?Ut("MapSet").N(e,n):St(e)?Ut("MapSet").T(e,n):t.g?function(t,e){var n=Array.isArray(t),i={i:n?1:0,A:e?e.A:kt(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},r=i,o=ce;n&&(r=[i],o=ae);var s=Proxy.revocable(r,o),u=s.revoke,c=s.proxy;return i.k=c,i.j=u,c}(e,n):Ut("ES5").J(e,n);return(n?n.A:kt()).p.push(i),i}function Jt(t){return wt(t)||bt(22,t),function t(e){if(!yt(e))return e;var n,i=e[ie],r=xt(e);if(i){if(!i.P&&(i.i<4||!Ut("ES5").K(i)))return i.t;i.I=!0,n=Zt(e,r),i.I=!1}else n=Zt(e,r);return mt(n,(function(e,r){i&&function(t,e){return 2===xt(t)?t.get(e):t[e]}(i.t,e)===r||Ot(n,e,t(r))})),3===r?new Set(n):n}(t)}function Zt(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Nt(t)}var qt,Xt,Gt="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),Qt="undefined"!=typeof Map,Yt="undefined"!=typeof Set,te="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,ee=Gt?Symbol.for("immer-nothing"):((qt={})["immer-nothing"]=!0,qt),ne=Gt?Symbol.for("immer-draftable"):"__$immer_draftable",ie=Gt?Symbol.for("immer-state"):"__$immer_state",re=""+Object.prototype.constructor,oe="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,se=Object.getOwnPropertyDescriptors||function(t){var e={};return oe(t).forEach((function(n){e[n]=Object.getOwnPropertyDescriptor(t,n)})),e},ue={},ce={get:function(t,e){if(e===ie)return t;var n=Ct(t);if(!gt(n,e))return function(t,e,n){var i,r=Dt(e,n);return r?"value"in r?r.value:null===(i=r.get)||void 0===i?void 0:i.call(t.k):void 0}(t,n,e);var i=n[e];return t.I||!yt(i)?i:i===Kt(t.t,e)?(zt(t),t.o[e]=Vt(t.A.h,i,t)):i},has:function(t,e){return e in Ct(t)},ownKeys:function(t){return Reflect.ownKeys(Ct(t))},set:function(t,e,n){var i=Dt(Ct(t),e);if(null==i?void 0:i.set)return i.set.call(t.k,n),!0;if(!t.P){var r=Kt(Ct(t),e),o=null==r?void 0:r[ie];if(o&&o.t===n)return t.o[e]=n,t.D[e]=!1,!0;if(jt(n,r)&&(void 0!==n||gt(t.t,e)))return!0;zt(t),Ht(t)}return t.o[e]===n&&"number"!=typeof n&&(void 0!==n||e in t.o)||(t.o[e]=n,t.D[e]=!0,!0)},deleteProperty:function(t,e){return void 0!==Kt(t.t,e)||e in t.t?(t.D[e]=!1,zt(t),Ht(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var n=Ct(t),i=Reflect.getOwnPropertyDescriptor(n,e);return i?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:i.enumerable,value:n[e]}:i},defineProperty:function(){bt(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){bt(12)}},ae={};mt(ce,(function(t,e){ae[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),ae.deleteProperty=function(t,e){return ae.set.call(this,t,e,void 0)},ae.set=function(t,e,n){return ce.set.call(this,t[0],e,n,t[0])};var le=function(){function t(t){var e=this;this.g=te,this.F=!0,this.produce=function(t,n,i){if("function"==typeof t&&"function"!=typeof n){var r=n;n=t;var o=e;return function(t){var e=this;void 0===t&&(t=r);for(var i=arguments.length,s=Array(i>1?i-1:0),u=1;u<i;u++)s[u-1]=arguments[u];return o.produce(t,(function(t){var i;return(i=n).call.apply(i,[e,t].concat(s))}))}}var s;if("function"!=typeof n&&bt(6),void 0!==i&&"function"!=typeof i&&bt(7),yt(t)){var u=Lt(e),c=Vt(e,t,void 0),a=!0;try{s=n(c),a=!1}finally{a?Pt(u):Ft(u)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(t){return $t(u,i),It(t,u)}),(function(t){throw Pt(u),t})):($t(u,i),It(s,u))}if(!t||"object"!=typeof t){if(void 0===(s=n(t))&&(s=t),s===ee&&(s=void 0),e.F&&Rt(s,!0),i){var l=[],h=[];Ut("Patches").M(t,s,l,h),i(l,h)}return s}bt(21,t)},this.produceWithPatches=function(t,n){if("function"==typeof t)return function(n){for(var i=arguments.length,r=Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];return e.produceWithPatches(n,(function(e){return t.apply(void 0,[e].concat(r))}))};var i,r,o=e.produce(t,n,(function(t,e){i=t,r=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,i,r]})):[o,i,r]},"boolean"==typeof(null==t?void 0:t.useProxies)&&this.setUseProxies(t.useProxies),"boolean"==typeof(null==t?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze)}var e=t.prototype;return e.createDraft=function(t){yt(t)||bt(8),wt(t)&&(t=Jt(t));var e=Lt(this),n=Vt(this,t,void 0);return n[ie].C=!0,Ft(e),n},e.finishDraft=function(t,e){var n=(t&&t[ie]).A;return $t(n,e),It(void 0,n)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!te&&bt(20),this.g=t},e.applyPatches=function(t,e){var n;for(n=e.length-1;n>=0;n--){var i=e[n];if(0===i.path.length&&"replace"===i.op){t=i.value;break}}n>-1&&(e=e.slice(n+1));var r=Ut("Patches").$;return wt(t)?r(t,e):this.produce(t,(function(t){return r(t,e)}))},t}(),he=new le,fe=he.produce;he.produceWithPatches.bind(he),he.setAutoFreeze.bind(he),he.setUseProxies.bind(he),he.applyPatches.bind(he),he.createDraft.bind(he),he.finishDraft.bind(he);var de=fe;function ve(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function pe(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function be(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?pe(Object(n),!0).forEach((function(e){ve(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function we(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var ye="function"==typeof Symbol&&Symbol.observable||"@@observable",me=function(){return Math.random().toString(36).substring(7).split("").join(".")},xe={INIT:"@@redux/INIT"+me(),REPLACE:"@@redux/REPLACE"+me(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+me()}};function ge(t){if("object"!=typeof t||null===t)return!1;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Oe(t,e,n){var i;if("function"==typeof e&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(we(0));if("function"==typeof e&&void 0===n&&(n=e,e=void 0),void 0!==n){if("function"!=typeof n)throw new Error(we(1));return n(Oe)(t,e)}if("function"!=typeof t)throw new Error(we(2));var r=t,o=e,s=[],u=s,c=!1;function a(){u===s&&(u=s.slice())}function l(){if(c)throw new Error(we(3));return o}function h(t){if("function"!=typeof t)throw new Error(we(4));if(c)throw new Error(we(5));var e=!0;return a(),u.push(t),function(){if(e){if(c)throw new Error(we(6));e=!1,a();var n=u.indexOf(t);u.splice(n,1),s=null}}}function f(t){if(!ge(t))throw new Error(we(7));if(void 0===t.type)throw new Error(we(8));if(c)throw new Error(we(9));try{c=!0,o=r(o,t)}finally{c=!1}for(var e=s=u,n=0;n<e.length;n++){(0,e[n])()}return t}function d(t){if("function"!=typeof t)throw new Error(we(10));r=t,f({type:xe.REPLACE})}function v(){var t,e=h;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new Error(we(11));function n(){t.next&&t.next(l())}return n(),{unsubscribe:e(n)}}})[ye]=function(){return this},t}return f({type:xe.INIT}),(i={dispatch:f,subscribe:h,getState:l,replaceReducer:d})[ye]=v,i}function je(t){for(var e=Object.keys(t),n={},i=0;i<e.length;i++){var r=e[i];"function"==typeof t[r]&&(n[r]=t[r])}var o,s=Object.keys(n);try{!function(t){Object.keys(t).forEach((function(e){var n=t[e];if(void 0===n(void 0,{type:xe.INIT}))throw new Error(we(12));if(void 0===n(void 0,{type:xe.PROBE_UNKNOWN_ACTION()}))throw new Error(we(13))}))}(n)}catch(t){o=t}return function(t,e){if(void 0===t&&(t={}),o)throw o;for(var i=!1,r={},u=0;u<s.length;u++){var c=s[u],a=n[c],l=t[c],h=a(l,e);if(void 0===h)throw e&&e.type,new Error(we(14));r[c]=h,i=i||h!==l}return(i=i||s.length!==Object.keys(t).length)?r:t}}function Ee(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return 0===e.length?function(t){return t}:1===e.length?e[0]:e.reduce((function(t,e){return function(){return t(e.apply(void 0,arguments))}}))}function Se(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return function(){var n=t.apply(void 0,arguments),i=function(){throw new Error(we(15))},r={getState:n.getState,dispatch:function(){return i.apply(void 0,arguments)}},o=e.map((function(t){return t(r)}));return i=Ee.apply(void 0,o)(n.dispatch),be(be({},n),{},{dispatch:i})}}}function Ce(t){return function(e){var n=e.dispatch,i=e.getState;return function(e){return function(r){return"function"==typeof r?r(n,i,t):e(r)}}}}var Ne=Ce();Ne.withExtraArgument=Ce;var Re,Me=Ne,Ae=(Re=function(t,e){return Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},Re(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}Re(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),Ue=function(t,e){for(var n=0,i=e.length,r=t.length;n<i;n++,r++)t[r]=e[n];return t},ke=Object.defineProperty,$e=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Fe=Object.prototype.propertyIsEnumerable,Le=function(t,e,n){return e in t?ke(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},_e=function(t,e){for(var n in e||(e={}))Pe.call(e,n)&&Le(t,n,e[n]);if($e)for(var i=0,r=$e(e);i<r.length;i++){n=r[i];Fe.call(e,n)&&Le(t,n,e[n])}return t},Ie="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?Ee:Ee.apply(null,arguments)};var Te=function(t){function e(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=t.apply(this,n)||this;return Object.setPrototypeOf(r,e.prototype),r}return Ae(e,t),Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.prototype.concat.apply(this,e)},e.prototype.prepend=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return 1===t.length&&Array.isArray(t[0])?new(e.bind.apply(e,Ue([void 0],t[0].concat(this)))):new(e.bind.apply(e,Ue([void 0],t.concat(this))))},e}(Array);function Be(t){return yt(t)?de(t,(function(){})):t}function We(){return function(t){return function(t){void 0===t&&(t={});var e=t.thunk,n=void 0===e||e;t.immutableCheck,t.serializableCheck;var i=new Te;n&&(!function(t){return"boolean"==typeof t}(n)?i.push(Me.withExtraArgument(n.extraArgument)):i.push(Me));return i}(t)}}function Ke(t){var e,n=We(),i=t||{},r=i.reducer,o=void 0===r?void 0:r,s=i.middleware,u=void 0===s?n():s,c=i.devTools,a=void 0===c||c,l=i.preloadedState,h=void 0===l?void 0:l,f=i.enhancers,d=void 0===f?void 0:f;if("function"==typeof o)e=o;else{if(!function(t){if("object"!=typeof t||null===t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;for(var n=e;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return e===n}(o))throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');e=je(o)}var v=u;"function"==typeof v&&(v=v(n));var p=Se.apply(void 0,v),b=Ee;a&&(b=Ie(_e({trace:!1},"object"==typeof a&&a)));var w=[p];return Array.isArray(d)?w=Ue([p],d):"function"==typeof d&&(w=d(w)),Oe(e,h,b.apply(void 0,w))}function De(t,e){function n(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];if(e){var r=e.apply(void 0,n);if(!r)throw new Error("prepareAction did not return an object");return _e(_e({type:t,payload:r.payload},"meta"in r&&{meta:r.meta}),"error"in r&&{error:r.error})}return{type:t,payload:n[0]}}return n.toString=function(){return""+t},n.type=t,n.match=function(e){return e.type===t},n}function He(t){var e,n={},i=[],r={addCase:function(t,e){var i="string"==typeof t?t:t.type;if(i in n)throw new Error("addCase cannot be called with two reducers for the same action type");return n[i]=e,r},addMatcher:function(t,e){return i.push({matcher:t,reducer:e}),r},addDefaultCase:function(t){return e=t,r}};return t(r),[n,i,e]}function ze(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var n,i="function"==typeof t.initialState?t.initialState:Be(t.initialState),r=t.reducers||{},o=Object.keys(r),s={},u={},c={};function a(){var e="function"==typeof t.extraReducers?He(t.extraReducers):[t.extraReducers],n=e[0],r=void 0===n?{}:n,o=e[1],s=void 0===o?[]:o,c=e[2],a=void 0===c?void 0:c,l=_e(_e({},r),u);return function(t,e,n,i){void 0===n&&(n=[]);var r,o="function"==typeof e?He(e):[e,n,i],s=o[0],u=o[1],c=o[2];if(function(t){return"function"==typeof t}(t))r=function(){return Be(t())};else{var a=Be(t);r=function(){return a}}function l(t,e){void 0===t&&(t=r());var n=Ue([s[e.type]],u.filter((function(t){return(0,t.matcher)(e)})).map((function(t){return t.reducer})));return 0===n.filter((function(t){return!!t})).length&&(n=[c]),n.reduce((function(t,n){if(n){var i;if(wt(t))return void 0===(i=n(t,e))?t:i;if(yt(t))return de(t,(function(t){return n(t,e)}));if(void 0===(i=n(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return i}return t}),t)}return l.getInitialState=r,l}(i,l,s,a)}return o.forEach((function(t){var n,i,o=r[t],a=e+"/"+t;"reducer"in o?(n=o.reducer,i=o.prepare):n=o,s[t]=n,u[a]=n,c[t]=i?De(a,i):De(a)})),{name:e,reducer:function(t,e){return n||(n=a()),n(t,e)},actions:c,caseReducers:s,getInitialState:function(){return n||(n=a()),n.getInitialState()}}}var Ve,Je,Ze="listenerMiddleware";De(Ze+"/add"),De(Ze+"/removeAll"),De(Ze+"/remove"),function(){function t(t,e){var n=r[t];return n?n.enumerable=e:r[t]=n={configurable:!0,enumerable:e,get:function(){var e=this[ie];return ce.get(e,t)},set:function(e){var n=this[ie];ce.set(n,t,e)}},n}function e(t){for(var e=t.length-1;e>=0;e--){var r=t[e][ie];if(!r.P)switch(r.i){case 5:i(r)&&Ht(r);break;case 4:n(r)&&Ht(r)}}}function n(t){for(var e=t.t,n=t.k,i=oe(n),r=i.length-1;r>=0;r--){var o=i[r];if(o!==ie){var s=e[o];if(void 0===s&&!gt(e,o))return!0;var u=n[o],c=u&&u[ie];if(c?c.t!==s:!jt(u,s))return!0}}var a=!!e[ie];return i.length!==oe(e).length+(a?0:1)}function i(t){var e=t.k;if(e.length!==t.t.length)return!0;var n=Object.getOwnPropertyDescriptor(e,e.length-1);if(n&&!n.get)return!0;for(var i=0;i<e.length;i++)if(!e.hasOwnProperty(i))return!0;return!1}var r={};!function(t,e){ue[t]||(ue[t]=e)}("ES5",{J:function(e,n){var i=Array.isArray(e),r=function(e,n){if(e){for(var i=Array(n.length),r=0;r<n.length;r++)Object.defineProperty(i,""+r,t(r,!0));return i}var o=se(n);delete o[ie];for(var s=oe(o),u=0;u<s.length;u++){var c=s[u];o[c]=t(c,e||!!o[c].enumerable)}return Object.create(Object.getPrototypeOf(n),o)}(i,e),o={i:i?5:4,A:n?n.A:kt(),P:!1,I:!1,D:{},l:n,t:e,k:r,o:null,O:!1,C:!1};return Object.defineProperty(r,ie,{value:o,writable:!0}),r},S:function(t,n,r){r?wt(n)&&n[ie].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var n=e[ie];if(n){var r=n.t,o=n.k,s=n.D,u=n.i;if(4===u)mt(o,(function(e){e!==ie&&(void 0!==r[e]||gt(r,e)?s[e]||t(o[e]):(s[e]=!0,Ht(n)))})),mt(r,(function(t){void 0!==o[t]||gt(o,t)||(s[t]=!1,Ht(n))}));else if(5===u){if(i(n)&&(Ht(n),s.length=!0),o.length<r.length)for(var c=o.length;c<r.length;c++)s[c]=!1;else for(var a=r.length;a<o.length;a++)s[a]=!0;for(var l=Math.min(o.length,r.length),h=0;h<l;h++)o.hasOwnProperty(h)||(s[h]=!0),void 0===s[h]&&t(o[h])}}}}(t.p[0]),e(t.p))},K:function(t){return 4===t.i?n(t):i(t)}})}();class qe extends vt{constructor(){super(...arguments),this.internalStoresUnsubscribers=new Map,this.internalStores=new Map}getUnnamedStore(){if(this.internalStores.size>1)throw new Error("Cannot resolve unnamed store when multiple stores are configured.");return[...this.internalStores.values()][0]}get store(){return this.getUnnamedStore()}set store(t){this.unsubscribeFromStores(),this.internalStores.clear(),t&&this.addStore(t)}getStore(t){var e;return null==t?null!==(e=this.getUnnamedStore())&&void 0!==e?e:this.store:this.internalStores.get(t)}addStore(t,e){e=null!=e?e:Xe(t)?t.name:"ft-lit-element-redux-default-store",this.unsubscribeFromStore(e),this.setupStore(e,t)}removeStore(t){const e="string"==typeof t?t:Xe(t)?t.name:"ft-lit-element-redux-default-store";this.unsubscribeFromStore(e),this.internalStores.delete(e)}setupStore(t,e){this.internalStores.set(t,e),this.updateFromStores(),this.subscribeToStore(t,e)}setupStores(){this.unsubscribeFromStores(),0===this.internalStores.size&&null!=this.store?this.addStore(this.store):(this.updateFromStores(),this.internalStores.forEach(((t,e)=>this.subscribeToStore(e,t))))}updateFromStores(){this.reduxProperties&&this.reduxProperties.forEach(((t,e)=>{const n=this.constructor.getPropertyOptions(e);if(!(null==n?void 0:n.attribute)||!this.hasAttribute("string"==typeof(null==n?void 0:n.attribute)?n.attribute:e)){const n=this.getStore(t.store);n&&(this[e]=t.selector(n.getState(),this))}}))}subscribeToStore(t,e){this.internalStoresUnsubscribers.set(t,e.subscribe((()=>this.updateFromStores()))),this.onStoreAvailable(t)}unsubscribeFromStores(){Object.keys(this.internalStoresUnsubscribers).forEach((t=>this.unsubscribeFromStore(t)))}unsubscribeFromStore(t){this.internalStoresUnsubscribers.has(t)&&this.internalStoresUnsubscribers.get(t)(),this.internalStoresUnsubscribers.delete(t)}onStoreAvailable(t){}connectedCallback(){super.connectedCallback(),this.setupStores()}disconnectedCallback(){this.unsubscribeFromStores(),super.disconnectedCallback()}}function Xe(t){var e;return null===(e=t)||void 0===e?void 0:e.isFtReduxStore}class Ge{constructor(t,e){this.reduxSlice=t,this.reduxStore=e,this.isFtReduxStore=!0,this.actions=new Proxy(this.reduxSlice.actions,{get:(t,e,n)=>{const i=t[e];if(i)return(...t)=>{const e=i(...t);return this.reduxStore.dispatch(e),e}}})}static get(t){window.ftReduxStores||(window.ftReduxStores={});const e="string"==typeof t?t:t.name,n="string"==typeof t?void 0:t,i=window.ftReduxStores[e];if(Xe(i))return i;if(null==n)return;const r=ze(n);if(i)return new Ge(r,i);const o=Ke({reducer:r.reducer});return window.ftReduxStores[n.name]=new Ge(r,o)}get dispatch(){throw new Error("Don't use this method, actions are automatically dispatched when called.")}[Symbol.observable](){return this.reduxStore[Symbol.observable]()}getState(){return this.reduxStore.getState()}replaceReducer(t){throw new Error("Not implemented yet.")}subscribe(t){return this.reduxStore.subscribe(t)}get name(){return this.reduxSlice.name}get reducer(){return this.reduxSlice.reducer}get caseReducers(){return this.reduxSlice.caseReducers}getInitialState(){return this.reduxSlice.getInitialState()}}navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(Je=null===(Ve=window.safari)||void 0===Ve?void 0:Ve.pushNotification)||void 0===Je||Je.toString());const Qe=b`
93
+ `,Ye=b`
94
+ `,tn=Ge.get({name:"ft-app-info",reducers:{setBaseUrl:(t,e)=>{t.baseUrl=e.payload},setApiIntegrationIdentifier:(t,e)=>{t.apiIntegrationIdentifier=e.payload},setUiLocale:(t,e)=>{t.uiLocale=e.payload},setEditorMode:(t,e)=>{t.editorMode=e.payload},setNoCustom:(t,e)=>{t.noCustom=e.payload},setNoCustomComponent:(t,e)=>{t.noCustomComponent=e.payload},setSession:(t,e)=>{t.session=e.payload}},initialState:{uiLocale:document.documentElement.lang||"en-US",editorMode:!1,noCustom:!1,noCustomComponent:!1}});var en;const nn=Symbol("clearAfterUnitTest");class rn{constructor(t){this.apiProvider=t,this.defaultMessages={},this.cache=new n,this.listeners={},this.currentBaseUrl="",this.currentUiLocale="",this[en]=()=>{this.defaultMessages={},this.cache=new n,this.listeners={}},tn.subscribe((()=>this.updateApi())),this.updateApi()}updateApi(){const{baseUrl:t,apiIntegrationIdentifier:e,uiLocale:n}=tn.getState();t&&e?(this.api=this.apiProvider(t,e),(this.api&&this.currentBaseUrl!==t||this.currentUiLocale!==n)&&(this.currentBaseUrl=t,this.currentUiLocale=n,this.cache.clearAll(),this.notifyAll())):this.api=void 0}addContext(t){const e=t.name.toLowerCase();this.cache.setFinal(e,t),this.notify(e)}getAllContexts(){return this.cache.resolvedValues()}async prepareContext(t,e){var n;if(t=t.toLowerCase(),Object.keys(e).length>0){const i={...null!==(n=this.defaultMessages[t])&&void 0!==n?n:{},...e};u(this.defaultMessages[t],i)||(this.defaultMessages[t]=i,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,e,...n){var i,r,o;t=t.toLowerCase(),this.fetchContext(t);const s=null!==(r=null===(i=this.cache.getNow(t))||void 0===i?void 0:i.messages)&&void 0!==r?r:{};return new pt(null!==(o=this.defaultMessages[t])&&void 0!==o?o:{},s).resolve(e,...n)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(async()=>{var e;return await(null===(e=this.api)||void 0===e?void 0:e.getFluidTopicsMessageContext(this.currentUiLocale,t))})),await this.notify(t)}catch(t){console.error(t)}}subscribe(t,e){var n;return t=t.toLowerCase(),this.listeners[t]=null!==(n=this.listeners[t])&&void 0!==n?n:new Set,this.listeners[t].add(e),()=>{var n;return null===(n=this.listeners[t])||void 0===n?void 0:n.delete(e)}}async notifyAll(){await Promise.all(Object.keys(this.listeners).map((t=>this.notify(t))))}async notify(t){null!=this.listeners[t]&&await Promise.all([...this.listeners[t].values()].map((t=>{return(e=0,new Promise((t=>setTimeout(t,e)))).then((()=>t())).catch((()=>null));var e})))}}en=nn,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new rn(((t,e)=>window.fluidtopics?new window.fluidtopics.FluidTopicsApi(t,e,!0):void 0)));const on=window.FluidTopicsI18nService;var sn=function(t,e,n,i){for(var r,o=arguments.length,s=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i,u=t.length-1;u>=0;u--)(r=t[u])&&(s=(o<3?r(s):o>3?r(e,n,s):r(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};class un extends vt{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-integration",this.uiLocale="en-US",this.editorMode=!1,this.noCustom=!1,this.noCustomComponent=!1,this.withManualResources=!1,this.messageContexts=[],this.apiProvider=()=>window.fluidtopics&&this.baseUrl?new window.fluidtopics.FluidTopicsApi(this.baseUrl,this.apiIntegrationIdentifier,!0):void 0,this.cache=new n,this.cleanSessionDebouncer=new i}render(){return V`
95
+ <slot></slot>
96
+ `}updated(t){super.updated(t),t.has("baseUrl")&&tn.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&tn.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&tn.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&tn.actions.setNoCustom(this.noCustom),t.has("editorMode")&&tn.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&tn.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&tn.actions.setSession(this.session),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>on.addContext(t))),setTimeout((()=>this.updateIfNeeded()))}async updateIfNeeded(){const t=this.apiProvider();!this.withManualResources&&t&&null==this.session&&(this.session=await this.cache.get("session",(async()=>{const e=await t.getCurrentSession();return e.idleTimeoutInMillis>0&&this.cleanSessionDebouncer.run((()=>{this.cache.clear("session"),this.session=void 0}),e.idleTimeoutInMillis),e})))}}un.elementDefinitions={},un.styles=Ye,sn([o()],un.prototype,"baseUrl",void 0),sn([o()],un.prototype,"apiIntegrationIdentifier",void 0),sn([o()],un.prototype,"uiLocale",void 0),sn([o({type:Boolean})],un.prototype,"editorMode",void 0),sn([o({type:Boolean})],un.prototype,"noCustom",void 0),sn([o({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],un.prototype,"noCustomComponent",void 0),sn([o({type:Boolean})],un.prototype,"withManualResources",void 0),sn([a([])],un.prototype,"messageContexts",void 0),sn([a(void 0)],un.prototype,"session",void 0),sn([o({type:Object})],un.prototype,"apiProvider",void 0),c("ft-app-context")(un);const cn=Symbol("i18nProperties"),an=Symbol("i18nUnsubs");function ln(t){var e;return e=an,class extends t{constructor(){super(...arguments),this[e]=new Map}i18n(t,e,...n){var i;if("string"==typeof t)return on.resolveMessage(t,e,...n);const r=null!==(i=t.args)&&void 0!==i?i:t.argsProvider?t.argsProvider(this):[];return on.resolveMessage(t.context,t.key,...r)}onI18nUpdate(t){var e;null===(e=this[cn])||void 0===e||e.forEach(((e,n)=>{e.context.toLowerCase()===t.toLowerCase()&&(this[n]=this.i18n(e))})),setTimeout((()=>this.requestUpdate()),0)}updated(t){var e;super.updated(t),null===(e=this[cn])||void 0===e||e.forEach(((t,e)=>{null!=t.argsProvider&&(this[e]=this.i18n(t))}))}connectedCallback(){super.connectedCallback(),null!=this[cn]&&new Set([...this[cn].values()].map((t=>t.context))).forEach((t=>this.addI18nMessages(t)))}addI18nMessages(t,e){t=t.toLowerCase(),this[an].has(t)||this[an].set(t,on.subscribe(t,(()=>this.onI18nUpdate(t)))),on.prepareContext(t,null!=e?e:{})}addI18nContext(t){this.addI18nMessages(t.name)}disconnectedCallback(){super.disconnectedCallback(),this[an].forEach((t=>t())),this[an].clear()}}}class hn extends(ln(vt)){}class fn extends(ln(qe)){}var dn=function(t,e,n,i){for(var r,o=arguments.length,s=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i,u=t.length-1;u>=0;u--)(r=t[u])&&(s=(o<3?r(s):o>3?r(e,n,s):r(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s};class vn extends hn{render(){return this.key&&this.context?V`
97
+ <span class="ft-i18n">${this.i18n(this.context,this.key,...Array.isArray(this.args)?this.args:[])}</span>
98
+ `:Z}update(t){super.update(t),this.context&&this.key&&this.defaultMessage&&this.addI18nMessages(this.context,{[this.key]:this.defaultMessage})}}vn.elementDefinitions={},vn.styles=Qe,dn([o()],vn.prototype,"context",void 0),dn([o()],vn.prototype,"key",void 0),dn([a([])],vn.prototype,"args",void 0),dn([o()],vn.prototype,"defaultMessage",void 0);class pn{constructor(t){this.name=t,this.properties=new Proxy({},{get:(t,e)=>{const n=e;return t=>({context:this.name,key:n,args:"function"==typeof t?void 0:t,argsProvider:"function"==typeof t?t:void 0})}}),this.messages=new Proxy({},{get:(t,e)=>(...t)=>on.resolveMessage(this.name,e,...t)})}static build(t){return new pn(t)}static fromGwt(t){return new pn(t)}}c("ft-i18n")(vn),t.FtI18n=vn,t.FtI18nCssVariables={},t.FtLitElementReduxWithI18n=fn,t.FtLitElementWithI18n=hn,t.I18nMessageContext=pn,t.i18n=t=>(e,n)=>{var i,r;e.constructor.createProperty(n,{attribute:!1,type:String});const o={...t,key:null!==(i=t.key)&&void 0!==i?i:n};e[cn]=null!==(r=e[cn])&&void 0!==r?r:new Map,e[cn].set(n,o)},t.i18nProperties=cn,t.i18nUnsubs=an,t.styles=Qe,t.withI18n=ln,Object.defineProperty(t,"U",{value:!0})}({});
@@ -0,0 +1,7 @@
1
+ export interface FtI18nProperties {
2
+ context?: string;
3
+ key?: string;
4
+ args?: any[];
5
+ defaultMessage?: string;
6
+ }
7
+ //# sourceMappingURL=ft-i18n.properties.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ft-i18n.properties.js.map
@@ -0,0 +1,23 @@
1
+ import { FtLitElement } from "@fluid-topics/ft-wc-utils";
2
+ export interface I18nProperty<E extends FtLitElement = FtLitElement> {
3
+ context: string;
4
+ key: string;
5
+ args?: any[];
6
+ argsProvider?: (self: E) => any[];
7
+ }
8
+ export declare type I18nMessages = {
9
+ [key: string]: (...args: any[]) => string;
10
+ };
11
+ declare type I18nPropertyProviders<T extends I18nMessages> = {
12
+ [key in keyof T]: Parameters<T[key]> extends [] ? () => I18nProperty : ((argsOrArgsProvider: ((litElement: any) => Parameters<T[key]>) | Parameters<T[key]>) => I18nProperty);
13
+ };
14
+ export declare class I18nMessageContext<T extends I18nMessages> {
15
+ name: string;
16
+ static build<T extends I18nMessages>(name: string): I18nMessageContext<T>;
17
+ static fromGwt<T extends I18nMessages>(name: string): I18nMessageContext<T>;
18
+ readonly properties: I18nPropertyProviders<T>;
19
+ readonly messages: T;
20
+ private constructor();
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=I18nMessageContext.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { ftI18nService } from "@fluid-topics/ft-app-context";
2
+ export class I18nMessageContext {
3
+ constructor(name) {
4
+ this.name = name;
5
+ this.properties = new Proxy({}, {
6
+ get: (target, p) => {
7
+ const key = p;
8
+ return (argsOrArgsProvider) => ({
9
+ context: this.name,
10
+ key,
11
+ args: typeof argsOrArgsProvider === "function" ? undefined : argsOrArgsProvider,
12
+ argsProvider: typeof argsOrArgsProvider === "function" ? argsOrArgsProvider : undefined,
13
+ });
14
+ }
15
+ });
16
+ this.messages = new Proxy({}, {
17
+ get: (target, messageKey) => (...args) => ftI18nService.resolveMessage(this.name, messageKey, ...args)
18
+ });
19
+ }
20
+ static build(name) {
21
+ return new I18nMessageContext(name);
22
+ }
23
+ // Use this builder to get labels from an existing context while avoiding `i18n generate` pollution
24
+ static fromGwt(name) {
25
+ return new I18nMessageContext(name);
26
+ }
27
+ }
28
+ //# sourceMappingURL=I18nMessageContext.js.map
@@ -0,0 +1,7 @@
1
+ export * from "./generator/I18nMessageContext";
2
+ export * from "./lit/i18n";
3
+ export * from "./decorators/i18n";
4
+ export * from "./ft-i18n.css";
5
+ export * from "./ft-i18n.properties";
6
+ export * from "./ft-i18n";
7
+ //# sourceMappingURL=index.d.ts.map
package/build/index.js ADDED
@@ -0,0 +1,10 @@
1
+ import { customElement } from "@fluid-topics/ft-wc-utils";
2
+ import { FtI18n } from "./ft-i18n";
3
+ export * from "./generator/I18nMessageContext";
4
+ export * from "./lit/i18n";
5
+ export * from "./decorators/i18n";
6
+ export * from "./ft-i18n.css";
7
+ export * from "./ft-i18n.properties";
8
+ export * from "./ft-i18n";
9
+ customElement("ft-i18n")(FtI18n);
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,24 @@
1
+ import { FtLitElement, FtLitElementRedux } from "@fluid-topics/ft-wc-utils";
2
+ import { I18nMessageContext, I18nProperty } from "../generator/I18nMessageContext";
3
+ export declare const i18nProperties: unique symbol;
4
+ export declare const i18nUnsubs: unique symbol;
5
+ export declare type FtLitElementWithI18nInterface = {
6
+ [i18nProperties]?: Map<string, I18nProperty>;
7
+ [i18nUnsubs]: Map<string, Function>;
8
+ i18n(property: I18nProperty): string;
9
+ i18n(context: string, key: string, ...args: any[]): string;
10
+ addI18nMessages(name: string, defaultMessages?: Record<string, string>): void;
11
+ addI18nContext(context: I18nMessageContext<any>): void;
12
+ onI18nUpdate(context: string): void;
13
+ };
14
+ declare type Constructor<T> = new (...args: any[]) => T;
15
+ declare type FtLitElementWithI18nType<T extends Constructor<FtLitElement>> = T & Constructor<FtLitElementWithI18nInterface>;
16
+ export declare function withI18n<T extends Constructor<FtLitElement>>(Class: T): FtLitElementWithI18nType<T>;
17
+ declare const FtLitElementWithI18n_base: FtLitElementWithI18nType<typeof FtLitElement>;
18
+ export declare class FtLitElementWithI18n extends FtLitElementWithI18n_base {
19
+ }
20
+ declare const FtLitElementReduxWithI18n_base: FtLitElementWithI18nType<typeof FtLitElementRedux>;
21
+ export declare class FtLitElementReduxWithI18n extends FtLitElementReduxWithI18n_base {
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1,68 @@
1
+ import { FtLitElement, FtLitElementRedux } from "@fluid-topics/ft-wc-utils";
2
+ import { ftI18nService } from "@fluid-topics/ft-app-context";
3
+ export const i18nProperties = Symbol("i18nProperties");
4
+ export const i18nUnsubs = Symbol("i18nUnsubs");
5
+ export function withI18n(Class) {
6
+ var _a;
7
+ class FtLitElementWithI18nClass extends Class {
8
+ constructor() {
9
+ super(...arguments);
10
+ this[_a] = new Map();
11
+ }
12
+ i18n(contextOrProperty, key, ...args) {
13
+ var _b;
14
+ if (typeof contextOrProperty === "string") {
15
+ return ftI18nService.resolveMessage(contextOrProperty, key, ...args);
16
+ }
17
+ const resolvedArgs = (_b = contextOrProperty.args) !== null && _b !== void 0 ? _b : (contextOrProperty.argsProvider ? contextOrProperty.argsProvider(this) : []);
18
+ return ftI18nService.resolveMessage(contextOrProperty.context, contextOrProperty.key, ...resolvedArgs);
19
+ }
20
+ onI18nUpdate(context) {
21
+ var _b;
22
+ (_b = this[i18nProperties]) === null || _b === void 0 ? void 0 : _b.forEach((init, prop) => {
23
+ if (init.context.toLowerCase() === context.toLowerCase()) {
24
+ this[prop] = this.i18n(init);
25
+ }
26
+ });
27
+ setTimeout(() => this.requestUpdate(), 0);
28
+ }
29
+ updated(props) {
30
+ var _b;
31
+ super.updated(props);
32
+ (_b = this[i18nProperties]) === null || _b === void 0 ? void 0 : _b.forEach((init, prop) => {
33
+ if (init.argsProvider != null) {
34
+ this[prop] = this.i18n(init);
35
+ }
36
+ });
37
+ }
38
+ connectedCallback() {
39
+ super.connectedCallback();
40
+ if (this[i18nProperties] != null) {
41
+ new Set([...this[i18nProperties].values()].map(c => c.context))
42
+ .forEach((context) => this.addI18nMessages(context));
43
+ }
44
+ }
45
+ addI18nMessages(name, defaultMessages) {
46
+ name = name.toLowerCase();
47
+ if (!this[i18nUnsubs].has(name)) {
48
+ this[i18nUnsubs].set(name, ftI18nService.subscribe(name, () => this.onI18nUpdate(name)));
49
+ }
50
+ ftI18nService.prepareContext(name, defaultMessages !== null && defaultMessages !== void 0 ? defaultMessages : {});
51
+ }
52
+ addI18nContext(context) {
53
+ this.addI18nMessages(context.name);
54
+ }
55
+ disconnectedCallback() {
56
+ super.disconnectedCallback();
57
+ this[i18nUnsubs].forEach(unsub => unsub());
58
+ this[i18nUnsubs].clear();
59
+ }
60
+ }
61
+ _a = i18nUnsubs;
62
+ return FtLitElementWithI18nClass;
63
+ }
64
+ export class FtLitElementWithI18n extends withI18n(FtLitElement) {
65
+ }
66
+ export class FtLitElementReduxWithI18n extends withI18n(FtLitElementRedux) {
67
+ }
68
+ //# sourceMappingURL=i18n.js.map
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@fluid-topics/ft-i18n",
3
+ "version": "0.3.58",
4
+ "description": "Integrated component that displays internationalized label from a Fluid Topics portal.",
5
+ "keywords": [
6
+ "Lit"
7
+ ],
8
+ "author": "Fluid Topics <devtopics@antidot.net>",
9
+ "license": "ISC",
10
+ "main": "build/index.js",
11
+ "web": "build/ft-i18n.min.js",
12
+ "typings": "build/index",
13
+ "files": [
14
+ "build/**/*.js",
15
+ "build/**/*.ts"
16
+ ],
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
+ },
21
+ "dependencies": {
22
+ "@fluid-topics/ft-app-context": "0.3.58",
23
+ "@fluid-topics/ft-wc-utils": "0.3.58",
24
+ "lit": "2.2.8"
25
+ },
26
+ "gitHead": "c053ee1216238ba6b2c62e5add329343f735c77e"
27
+ }