@fluid-topics/ft-app-context 1.1.15 → 1.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PropertyValues } from "lit";
|
|
2
2
|
import { ElementDefinitionsMap, FtLitElement } from "@fluid-topics/ft-wc-utils";
|
|
3
3
|
import { FtAppContextProperties } from "./ft-app-context.properties";
|
|
4
|
-
import { FtMessageContext, FtSession, FtUiLocale } from "@fluid-topics/public-api";
|
|
4
|
+
import { FtMessageContext, FtSession, FtUiLocale, FtMetadataDescriptor } from "@fluid-topics/public-api";
|
|
5
5
|
export declare class FtAppContext extends FtLitElement implements FtAppContextProperties {
|
|
6
6
|
static elementDefinitions: ElementDefinitionsMap;
|
|
7
7
|
static styles: import("lit").CSSResult;
|
|
@@ -9,6 +9,7 @@ export declare class FtAppContext extends FtLitElement implements FtAppContextPr
|
|
|
9
9
|
apiIntegrationIdentifier: string;
|
|
10
10
|
uiLocale: string;
|
|
11
11
|
availableUiLocales: Array<FtUiLocale>;
|
|
12
|
+
metadataDescriptors: Array<FtMetadataDescriptor>;
|
|
12
13
|
editorMode: boolean;
|
|
13
14
|
noCustom: boolean;
|
|
14
15
|
noCustomComponent: boolean | string;
|
package/build/ft-app-context.js
CHANGED
|
@@ -17,6 +17,7 @@ class FtAppContext extends FtLitElement {
|
|
|
17
17
|
this.apiIntegrationIdentifier = "ft-integration";
|
|
18
18
|
this.uiLocale = "en-US";
|
|
19
19
|
this.availableUiLocales = [];
|
|
20
|
+
this.metadataDescriptors = [];
|
|
20
21
|
this.editorMode = false;
|
|
21
22
|
this.noCustom = false;
|
|
22
23
|
this.noCustomComponent = false;
|
|
@@ -42,6 +43,9 @@ class FtAppContext extends FtLitElement {
|
|
|
42
43
|
if (props.has("uiLocale")) {
|
|
43
44
|
ftAppInfoStore.actions.setUiLocale(this.uiLocale);
|
|
44
45
|
}
|
|
46
|
+
if (props.has("metadataDescriptors")) {
|
|
47
|
+
ftAppInfoStore.actions.setMetadataDescriptors(this.metadataDescriptors);
|
|
48
|
+
}
|
|
45
49
|
if (props.has("noCustom")) {
|
|
46
50
|
ftAppInfoStore.actions.setNoCustom(this.noCustom);
|
|
47
51
|
}
|
|
@@ -82,6 +86,9 @@ class FtAppContext extends FtLitElement {
|
|
|
82
86
|
if (this.availableUiLocales == null) {
|
|
83
87
|
this.availableUiLocales = await this.cache.get("availableUiLocales", () => api.getAvailableUiLocales());
|
|
84
88
|
}
|
|
89
|
+
if (this.metadataDescriptors == null) {
|
|
90
|
+
this.metadataDescriptors = await this.cache.get('metadataDescriptors', () => api.getMetadataDescriptors());
|
|
91
|
+
}
|
|
85
92
|
}
|
|
86
93
|
}
|
|
87
94
|
}
|
|
@@ -99,6 +106,9 @@ __decorate([
|
|
|
99
106
|
__decorate([
|
|
100
107
|
jsonProperty([])
|
|
101
108
|
], FtAppContext.prototype, "availableUiLocales", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
jsonProperty([])
|
|
111
|
+
], FtAppContext.prototype, "metadataDescriptors", void 0);
|
|
102
112
|
__decorate([
|
|
103
113
|
property({ type: Boolean })
|
|
104
114
|
], FtAppContext.prototype, "editorMode", void 0);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
!function(t,s,i,e){const o=i.css`
|
|
2
|
-
`,a="ft-app-info",n=s.FtReduxStore.get({name:a,reducers:{setBaseUrl:(t,s)=>{t.baseUrl=s.payload},setApiIntegrationIdentifier:(t,s)=>{t.apiIntegrationIdentifier=s.payload},setUiLocale:(t,s)=>{t.uiLocale=s.payload},setAvailableUiLocales:(t,s)=>{t.availableUiLocales=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",availableUiLocales:[],editorMode:!1,noCustom:!1,noCustomComponent:!1}});class
|
|
2
|
+
`,a="ft-app-info",n=s.FtReduxStore.get({name:a,reducers:{setBaseUrl:(t,s)=>{t.baseUrl=s.payload},setApiIntegrationIdentifier:(t,s)=>{t.apiIntegrationIdentifier=s.payload},setUiLocale:(t,s)=>{t.uiLocale=s.payload},setAvailableUiLocales:(t,s)=>{t.availableUiLocales=s.payload},setMetadataDescriptors:(t,s)=>{t.metadataDescriptors=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",availableUiLocales:[],metadataDescriptors:[],editorMode:!1,noCustom:!1,noCustomComponent:!1}});class r{static build(t){const{baseUrl:s,apiIntegrationIdentifier:i}=n.getState(),e=null!=t?t:i;if(s&&e&&window.fluidtopics)return new window.fluidtopics.FluidTopicsApi(s,e,!0)}static get(t){var s;return null!=t?r.build(t):null!==(s=r.API)&&void 0!==s?s:r.API=r.build()}static await(t){return new Promise((s=>{let i=r.get(t);if(i)s(i);else{const e=n.subscribe((()=>{i=r.get(t),i&&(e(),s(i))}))}}))}}var l;const h=Symbol("clearAfterUnitTest");class c{constructor(t){this.messageContextProvider=t,this.defaultMessages={},this.cache=new s.CacheRegistry,this.listeners={},this.currentUiLocale="",this[l]=()=>{this.defaultMessages={},this.cache=new s.CacheRegistry,this.listeners={}},this.currentUiLocale=n.getState().uiLocale,n.subscribe((()=>this.clearWhenUiLocaleChanges()))}clearWhenUiLocaleChanges(){const{uiLocale:t}=n.getState();this.currentUiLocale!==t&&(this.currentUiLocale=t,this.cache.clearAll(),this.notifyAll())}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 o={...null!==(e=this.defaultMessages[t])&&void 0!==e?e:{},...i};s.deepEqual(this.defaultMessages[t],o)||(this.defaultMessages[t]=o,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,i,...e){var o,a,n;t=t.toLowerCase(),this.fetchContext(t);const r=null!==(a=null===(o=this.cache.getNow(t))||void 0===o?void 0:o.messages)&&void 0!==a?a:{};return new s.ParametrizedLabelResolver(null!==(n=this.defaultMessages[t])&&void 0!==n?n:{},r).resolve(i,...e)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(()=>this.messageContextProvider(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)))))}}l=h,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new c((async(t,s)=>(await r.await()).getFluidTopicsMessageContext(t,s)))),null==window.FluidTopicsCustomI18nService&&(window.FluidTopicsCustomI18nService=new c((async(t,s)=>(await r.await()).getCustomMessageContext(t,s))));const d=window.FluidTopicsI18nService,u=window.FluidTopicsCustomI18nService;var v=function(t,s,i,e){for(var o,a=arguments.length,n=a<3?s:null===e?e=Object.getOwnPropertyDescriptor(s,i):e,r=t.length-1;r>=0;r--)(o=t[r])&&(n=(a<3?o(n):a>3?o(s,i,n):o(s,i))||n);return a>3&&n&&Object.defineProperty(s,i,n),n};class w extends s.FtLitElement{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-integration",this.uiLocale="en-US",this.availableUiLocales=[],this.metadataDescriptors=[],this.editorMode=!1,this.noCustom=!1,this.noCustomComponent=!1,this.withManualResources=!1,this.messageContexts=[],this.apiProvider=()=>r.get(),this.cache=new s.CacheRegistry,this.cleanSessionDebouncer=new s.Debouncer}render(){return i.html`
|
|
3
3
|
<slot></slot>
|
|
4
|
-
`}update(t){super.update(t),t.has("baseUrl")&&n.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&n.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&n.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&n.actions.setNoCustom(this.noCustom),t.has("editorMode")&&n.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&n.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&n.actions.setSession(this.session),t.has("availableUiLocales")&&n.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),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}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))))}}w.elementDefinitions={},w.styles=o,v([e.property()],w.prototype,"baseUrl",void 0),v([e.property()],w.prototype,"apiIntegrationIdentifier",void 0),v([e.property()],w.prototype,"uiLocale",void 0),v([s.jsonProperty([])],w.prototype,"availableUiLocales",void 0),v([e.property({type:Boolean})],w.prototype,"editorMode",void 0),v([e.property({type:Boolean})],w.prototype,"noCustom",void 0),v([e.property({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],w.prototype,"noCustomComponent",void 0),v([e.property({type:Boolean})],w.prototype,"withManualResources",void 0),v([s.jsonProperty([])],w.prototype,"messageContexts",void 0),v([s.jsonProperty(void 0)],w.prototype,"session",void 0),v([e.property({type:Object})],w.prototype,"apiProvider",void 0);class m{async listMySearches(){var t;return(null===(t=n.getState().session)||void 0===t?void 0:t.sessionAuthenticated)?(await
|
|
4
|
+
`}update(t){super.update(t),t.has("baseUrl")&&n.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&n.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&n.actions.setUiLocale(this.uiLocale),t.has("metadataDescriptors")&&n.actions.setMetadataDescriptors(this.metadataDescriptors),t.has("noCustom")&&n.actions.setNoCustom(this.noCustom),t.has("editorMode")&&n.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&n.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&n.actions.setSession(this.session),t.has("availableUiLocales")&&n.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),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}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))),null==this.metadataDescriptors&&(this.metadataDescriptors=await this.cache.get("metadataDescriptors",(()=>t.getMetadataDescriptors()))))}}w.elementDefinitions={},w.styles=o,v([e.property()],w.prototype,"baseUrl",void 0),v([e.property()],w.prototype,"apiIntegrationIdentifier",void 0),v([e.property()],w.prototype,"uiLocale",void 0),v([s.jsonProperty([])],w.prototype,"availableUiLocales",void 0),v([s.jsonProperty([])],w.prototype,"metadataDescriptors",void 0),v([e.property({type:Boolean})],w.prototype,"editorMode",void 0),v([e.property({type:Boolean})],w.prototype,"noCustom",void 0),v([e.property({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],w.prototype,"noCustomComponent",void 0),v([e.property({type:Boolean})],w.prototype,"withManualResources",void 0),v([s.jsonProperty([])],w.prototype,"messageContexts",void 0),v([s.jsonProperty(void 0)],w.prototype,"session",void 0),v([e.property({type:Object})],w.prototype,"apiProvider",void 0);class m{async listMySearches(){var t;return(null===(t=n.getState().session)||void 0===t?void 0:t.sessionAuthenticated)?(await r.await()).listMySearches(n.getState().session.profile.userId):[]}}const p=new s.CacheRegistry;class y{async listMyBookmarks(){return p.get("bookmarks",(async()=>(await r.await()).listMyBookmarks(n.getState().session.profile.userId)))}clearCache(){p.clear("bookmarks")}}const f="ft-user-assets",b=s.FtReduxStore.get({name:f,initialState:{savedSearches:void 0,bookmarks:void 0}});const C=new class{constructor(){this.currentSession=n.getState().session,this.bookmarksAreUsed=!1,this.bookmarksService=new y,n.subscribe((()=>this.reloadWhenUserSessionChanges()))}reloadWhenUserSessionChanges(){var t;const{session:i}=n.getState();s.deepEqual(null===(t=this.currentSession)||void 0===t?void 0:t.profile,null==i?void 0:i.profile)||(this.currentSession=i,this.clearMySearches(),this.reloadBookmarks())}clear(){this.clearMySearches(),this.clearMyBookmarks()}clearMySearches(){b.actions.savedSearches(void 0)}clearMyBookmarks(){b.actions.bookmarks(void 0)}async reloadMySearches(){const t=new m,s=await t.listMySearches();b.actions.savedSearches(s)}async reloadBookmarks(){this.bookmarksService.clearCache(),await this.updateBookmarksIfUsed()}async registerBookmarkComponent(){this.bookmarksAreUsed=!0,await this.updateBookmarksIfUsed()}async updateBookmarksIfUsed(){var t;if(this.bookmarksAreUsed){const s=(null===(t=this.currentSession)||void 0===t?void 0:t.sessionAuthenticated)?await this.bookmarksService.listMyBookmarks():void 0;b.actions.bookmarks(s)}}};s.customElement("ft-app-context")(w),t.FluidTopicsApiProvider=r,t.FtAppContext=w,t.FtAppContextCssVariables={},t.FtAppInfoStoreName=a,t.FtI18nServiceInternalClass=c,t.FtUserAssetsStoreName=f,t.clearAfterUnitTest=h,t.ftAppInfoStore=n,t.ftCustomI18nService=u,t.ftI18nService=d,t.ftUserAssetsStore=b,t.styles=o,t.userAssetsActions=C}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators);
|
|
@@ -99,6 +99,6 @@ const vo=window,No=vo.ShadowRoot&&(void 0===vo.ShadyCSS||vo.ShadyCSS.nativeShado
|
|
|
99
99
|
width: 0;
|
|
100
100
|
}
|
|
101
101
|
`;class Lo{constructor(t,o){this.defaultLabels=t,this.labels=o}resolve(t,...o){var e,r;t=this.resolvePluralKey(t,o);let n=null!==(r=null!==(e=this.labels[t])&&void 0!==e?e:this.defaultLabels[t])&&void 0!==r?r:"";return o.forEach(((t,o)=>n=n.replace(new RegExp(`\\{${o}([^}]*)\\}`,"g"),((o,e)=>this.formatValue(t,e))))),n}resolvePluralKey(t,o){for(let e of o)if("number"==typeof e){const o=`${String(t)}[\\=${e}]`;if(o in this.labels||o in this.defaultLabels)return o}return t}formatValue(t,o){return t instanceof Date?this.formatDate(t,o):null!=t?t:""}formatDate(t,o){const e=e=>(null==o?void 0:o.includes("date"))?t.toLocaleDateString(e):(null==o?void 0:o.includes("time"))?t.toLocaleTimeString(e):t.toLocaleString(e);try{return e(document.documentElement.lang)}catch(t){return e()}}}class Wo{constructor(){this.queue=[]}add(t,o=!1){o&&(this.queue=this.queue.filter((o=>o.type!==t.type))),this.queue.push(t)}consume(t){const o=this.queue.find((o=>o.type===t));return o&&(this.queue=this.queue.filter((t=>t!==o))),o}}function ko(t){var o;return null!==(o=null==t?void 0:t.isFtReduxStore)&&void 0!==o&&o}var Ko,Ao,jo;const Zo=Symbol("internalReduxEventsUnsubscribers"),Mo=Symbol("internalStoresUnsubscribers"),Fo=Symbol("internalStores");class $o extends Uo{constructor(){super(...arguments),this[Ko]=new Map,this[Ao]=new Map,this[jo]=[]}get reduxConstructor(){return this.constructor}update(t){super.update(t),[...this.reduxConstructor.reduxReactiveProperties].some((o=>t.has(o)))&&this.updateFromStores()}getUnnamedStore(){if(this[Fo].size>1)throw new Error("Cannot resolve unnamed store when multiple stores are configured.");return[...this[Fo].values()][0]}getStore(t){return null==t?this.getUnnamedStore():this[Fo].get(t)}addStore(t,o){var e;o=null!==(e=null!=o?o:ko(t)?t.name:void 0)&&void 0!==e?e:"default-store",this.unsubscribeFromStore(o),this.setupStore(o,t)}removeStore(t){const o="string"==typeof t?t:t.name;this.unsubscribeFromStore(o),this[Fo].delete(o)}setupStore(t,o){this[Fo].set(t,o),this.subscribeToStore(t,o),this.updateFromStores()}setupStores(){this.unsubscribeFromStores(),this[Fo].forEach(((t,o)=>this.subscribeToStore(o,t))),this.updateFromStores()}updateFromStores(){this.reduxConstructor.reduxProperties.forEach(((t,o)=>{const e=this.constructor.getPropertyOptions(o);if(!(null==e?void 0:e.attribute)||!this.hasAttribute("string"==typeof(null==e?void 0:e.attribute)?e.attribute:o)){const e=this.getStore(t.store);e&&(t.store?this[Mo].has(t.store):this[Mo].size>0)&&(this[o]=t.selector(e.getState(),this))}}))}subscribeToStore(t,o){var e;this[Mo].set(t,o.subscribe((()=>this.updateFromStores()))),ko(o)&&o.eventBus&&(null===(e=this.reduxConstructor.reduxEventListeners)||void 0===e||e.forEach(((t,e)=>{if("function"==typeof this[e]&&(!t.store||o.name===t.store)){const r=t=>this[e](t);o.eventBus.addEventListener(t.eventName,r),this[Zo].push((()=>o.eventBus.removeEventListener(t.eventName,r)))}}))),this.onStoreAvailable(t)}unsubscribeFromStores(){this[Mo].forEach(((t,o)=>this.unsubscribeFromStore(o))),this[Zo].forEach((t=>t())),this[Zo]=[]}unsubscribeFromStore(t){this[Mo].has(t)&&this[Mo].get(t)(),this[Mo].delete(t)}onStoreAvailable(t){}connectedCallback(){super.connectedCallback(),this.setupStores()}disconnectedCallback(){super.disconnectedCallback(),this.unsubscribeFromStores()}}function Po(t){for(var o=arguments.length,e=Array(o>1?o-1:0),r=1;r<o;r++)e[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+t+(e.length?" "+e.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function Bo(t){return!!t&&!!t[Re]}function _o(t){var o;return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var o=Object.getPrototypeOf(t);if(null===o)return!0;var e=Object.hasOwnProperty.call(o,"constructor")&&o.constructor;return e===Object||"function"==typeof e&&Function.toString.call(e)===Ue}(t)||Array.isArray(t)||!!t[xe]||!!(null===(o=t.constructor)||void 0===o?void 0:o[xe])||qo(t)||Yo(t))}function Do(t,o,e){void 0===e&&(e=!1),0===zo(t)?(e?Object.keys:Ie)(t).forEach((function(r){e&&"symbol"==typeof r||o(r,t[r],t)})):t.forEach((function(e,r){return o(r,e,t)}))}function zo(t){var o=t[Re];return o?o.i>3?o.i-4:o.i:Array.isArray(t)?1:qo(t)?2:Yo(t)?3:0}function To(t,o){return 2===zo(t)?t.has(o):Object.prototype.hasOwnProperty.call(t,o)}function Go(t,o,e){var r=zo(t);2===r?t.set(o,e):3===r?t.add(e):t[o]=e}function Ho(t,o){return t===o?0!==t||1/t==1/o:t!=t&&o!=o}function qo(t){return we&&t instanceof Map}function Yo(t){return Se&&t instanceof Set}function Vo(t){return t.o||t.t}function Jo(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var o=Le(t);delete o[Re];for(var e=Ie(o),r=0;r<e.length;r++){var n=e[r],i=o[n];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(o[n]={configurable:!0,writable:!0,enumerable:i.enumerable,value:t[n]})}return Object.create(Object.getPrototypeOf(t),o)}function Xo(t,o){return void 0===o&&(o=!1),te(t)||Bo(t)||!_o(t)||(zo(t)>1&&(t.set=t.add=t.clear=t.delete=Qo),Object.freeze(t),o&&Do(t,(function(t,o){return Xo(o,!0)}),!0)),t}function Qo(){Po(2)}function te(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function oe(t){var o=We[t];return o||Po(18,t),o}function ee(){return ve}function re(t,o){o&&(oe("Patches"),t.u=[],t.s=[],t.v=o)}function ne(t){ie(t),t.p.forEach(se),t.p=null}function ie(t){t===ve&&(ve=t.l)}function ae(t){return ve={p:[],l:ve,h:t,m:!0,_:0}}function se(t){var o=t[Re];0===o.i||1===o.i?o.j():o.g=!0}function ce(t,o){o._=o.p.length;var e=o.p[0],r=void 0!==t&&t!==e;return o.h.O||oe("ES5").S(o,t,r),r?(e[Re].P&&(ne(o),Po(4)),_o(t)&&(t=le(o,t),o.l||he(o,t)),o.u&&oe("Patches").M(e[Re].t,t,o.u,o.s)):t=le(o,e,[]),ne(o),o.u&&o.v(o.u,o.s),t!==Ee?t:void 0}function le(t,o,e){if(te(o))return o;var r=o[Re];if(!r)return Do(o,(function(n,i){return fe(t,r,o,n,i,e)}),!0),o;if(r.A!==t)return o;if(!r.P)return he(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var n=4===r.i||5===r.i?r.o=Jo(r.k):r.o,i=n,a=!1;3===r.i&&(i=new Set(n),n.clear(),a=!0),Do(i,(function(o,i){return fe(t,r,n,o,i,e,a)})),he(t,n,!1),e&&t.u&&oe("Patches").N(r,e,t.u,t.s)}return r.o}function fe(t,o,e,r,n,i,a){if(Bo(n)){var s=le(t,n,i&&o&&3!==o.i&&!To(o.R,r)?i.concat(r):void 0);if(Go(e,r,s),!Bo(s))return;t.m=!1}else a&&e.add(n);if(_o(n)&&!te(n)){if(!t.h.D&&t._<1)return;le(t,n),o&&o.A.l||he(t,n)}}function he(t,o,e){void 0===e&&(e=!1),!t.l&&t.h.D&&t.m&&Xo(o,e)}function ue(t,o){var e=t[Re];return(e?Vo(e):t)[o]}function de(t,o){if(o in t)for(var e=Object.getPrototypeOf(t);e;){var r=Object.getOwnPropertyDescriptor(e,o);if(r)return r;e=Object.getPrototypeOf(e)}}function pe(t){t.P||(t.P=!0,t.l&&pe(t.l))}function ye(t){t.o||(t.o=Jo(t.t))}function be(t,o,e){var r=qo(o)?oe("MapSet").F(o,e):Yo(o)?oe("MapSet").T(o,e):t.O?function(t,o){var e=Array.isArray(t),r={i:e?1:0,A:o?o.A:ee(),P:!1,I:!1,R:{},l:o,t,k:null,o:null,j:null,C:!1},n=r,i=ke;e&&(n=[r],i=Ke);var a=Proxy.revocable(n,i),s=a.revoke,c=a.proxy;return r.k=c,r.j=s,c}(o,e):oe("ES5").J(o,e);return(e?e.A:ee()).p.push(r),r}function ge(t){return Bo(t)||Po(22,t),function t(o){if(!_o(o))return o;var e,r=o[Re],n=zo(o);if(r){if(!r.P&&(r.i<4||!oe("ES5").K(r)))return r.t;r.I=!0,e=me(o,n),r.I=!1}else e=me(o,n);return Do(e,(function(o,n){r&&function(t,o){return 2===zo(t)?t.get(o):t[o]}(r.t,o)===n||Go(e,o,t(n))})),3===n?new Set(e):e}(t)}function me(t,o){switch(o){case 2:return new Map(t);case 3:return Array.from(t)}return Jo(t)}Ko=Mo,Ao=Fo,jo=Zo,$o.reduxProperties=new Map,$o.reduxReactiveProperties=new Set,$o.reduxEventListeners=new Map;var Oe,ve,Ne="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),we="undefined"!=typeof Map,Se="undefined"!=typeof Set,Ce="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,Ee=Ne?Symbol.for("immer-nothing"):((Oe={})["immer-nothing"]=!0,Oe),xe=Ne?Symbol.for("immer-draftable"):"__$immer_draftable",Re=Ne?Symbol.for("immer-state"):"__$immer_state",Ue=""+Object.prototype.constructor,Ie="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,Le=Object.getOwnPropertyDescriptors||function(t){var o={};return Ie(t).forEach((function(e){o[e]=Object.getOwnPropertyDescriptor(t,e)})),o},We={},ke={get:function(t,o){if(o===Re)return t;var e=Vo(t);if(!To(e,o))return function(t,o,e){var r,n=de(o,e);return n?"value"in n?n.value:null===(r=n.get)||void 0===r?void 0:r.call(t.k):void 0}(t,e,o);var r=e[o];return t.I||!_o(r)?r:r===ue(t.t,o)?(ye(t),t.o[o]=be(t.A.h,r,t)):r},has:function(t,o){return o in Vo(t)},ownKeys:function(t){return Reflect.ownKeys(Vo(t))},set:function(t,o,e){var r=de(Vo(t),o);if(null==r?void 0:r.set)return r.set.call(t.k,e),!0;if(!t.P){var n=ue(Vo(t),o),i=null==n?void 0:n[Re];if(i&&i.t===e)return t.o[o]=e,t.R[o]=!1,!0;if(Ho(e,n)&&(void 0!==e||To(t.t,o)))return!0;ye(t),pe(t)}return t.o[o]===e&&(void 0!==e||o in t.o)||Number.isNaN(e)&&Number.isNaN(t.o[o])||(t.o[o]=e,t.R[o]=!0),!0},deleteProperty:function(t,o){return void 0!==ue(t.t,o)||o in t.t?(t.R[o]=!1,ye(t),pe(t)):delete t.R[o],t.o&&delete t.o[o],!0},getOwnPropertyDescriptor:function(t,o){var e=Vo(t),r=Reflect.getOwnPropertyDescriptor(e,o);return r?{writable:!0,configurable:1!==t.i||"length"!==o,enumerable:r.enumerable,value:e[o]}:r},defineProperty:function(){Po(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){Po(12)}},Ke={};Do(ke,(function(t,o){Ke[t]=function(){return arguments[0]=arguments[0][0],o.apply(this,arguments)}})),Ke.deleteProperty=function(t,o){return Ke.set.call(this,t,o,void 0)},Ke.set=function(t,o,e){return ke.set.call(this,t[0],o,e,t[0])};var Ae=function(){function t(t){var o=this;this.O=Ce,this.D=!0,this.produce=function(t,e,r){if("function"==typeof t&&"function"!=typeof e){var n=e;e=t;var i=o;return function(t){var o=this;void 0===t&&(t=n);for(var r=arguments.length,a=Array(r>1?r-1:0),s=1;s<r;s++)a[s-1]=arguments[s];return i.produce(t,(function(t){var r;return(r=e).call.apply(r,[o,t].concat(a))}))}}var a;if("function"!=typeof e&&Po(6),void 0!==r&&"function"!=typeof r&&Po(7),_o(t)){var s=ae(o),c=be(o,t,void 0),l=!0;try{a=e(c),l=!1}finally{l?ne(s):ie(s)}return"undefined"!=typeof Promise&&a instanceof Promise?a.then((function(t){return re(s,r),ce(t,s)}),(function(t){throw ne(s),t})):(re(s,r),ce(a,s))}if(!t||"object"!=typeof t){if(void 0===(a=e(t))&&(a=t),a===Ee&&(a=void 0),o.D&&Xo(a,!0),r){var f=[],h=[];oe("Patches").M(t,a,f,h),r(f,h)}return a}Po(21,t)},this.produceWithPatches=function(t,e){if("function"==typeof t)return function(e){for(var r=arguments.length,n=Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];return o.produceWithPatches(e,(function(o){return t.apply(void 0,[o].concat(n))}))};var r,n,i=o.produce(t,e,(function(t,o){r=t,n=o}));return"undefined"!=typeof Promise&&i instanceof Promise?i.then((function(t){return[t,r,n]})):[i,r,n]},"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 o=t.prototype;return o.createDraft=function(t){_o(t)||Po(8),Bo(t)&&(t=ge(t));var o=ae(this),e=be(this,t,void 0);return e[Re].C=!0,ie(o),e},o.finishDraft=function(t,o){var e=(t&&t[Re]).A;return re(e,o),ce(void 0,e)},o.setAutoFreeze=function(t){this.D=t},o.setUseProxies=function(t){t&&!Ce&&Po(20),this.O=t},o.applyPatches=function(t,o){var e;for(e=o.length-1;e>=0;e--){var r=o[e];if(0===r.path.length&&"replace"===r.op){t=r.value;break}}e>-1&&(o=o.slice(e+1));var n=oe("Patches").$;return Bo(t)?n(t,o):this.produce(t,(function(t){return n(t,o)}))},t}(),je=new Ae,Ze=je.produce;function Me(t){return Me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Me(t)}function Fe(t){var o=function(t,o){if("object"!==Me(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,o||"default");if("object"!==Me(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===o?String:Number)(t)}(t,"string");return"symbol"===Me(o)?o:String(o)}function $e(t,o,e){return(o=Fe(o))in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}function Pe(t,o){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);o&&(r=r.filter((function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable}))),e.push.apply(e,r)}return e}function Be(t){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{};o%2?Pe(Object(e),!0).forEach((function(o){$e(t,o,e[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Pe(Object(e)).forEach((function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}))}return t}function _e(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. "}je.produceWithPatches.bind(je),je.setAutoFreeze.bind(je),je.setUseProxies.bind(je),je.applyPatches.bind(je),je.createDraft.bind(je),je.finishDraft.bind(je);var De="function"==typeof Symbol&&Symbol.observable||"@@observable",ze=function(){return Math.random().toString(36).substring(7).split("").join(".")},Te={INIT:"@@redux/INIT"+ze(),REPLACE:"@@redux/REPLACE"+ze(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+ze()}};function Ge(t,o,e){var r;if("function"==typeof o&&"function"==typeof e||"function"==typeof e&&"function"==typeof arguments[3])throw new Error(_e(0));if("function"==typeof o&&void 0===e&&(e=o,o=void 0),void 0!==e){if("function"!=typeof e)throw new Error(_e(1));return e(Ge)(t,o)}if("function"!=typeof t)throw new Error(_e(2));var n=t,i=o,a=[],s=a,c=!1;function l(){s===a&&(s=a.slice())}function f(){if(c)throw new Error(_e(3));return i}function h(t){if("function"!=typeof t)throw new Error(_e(4));if(c)throw new Error(_e(5));var o=!0;return l(),s.push(t),function(){if(o){if(c)throw new Error(_e(6));o=!1,l();var e=s.indexOf(t);s.splice(e,1),a=null}}}function u(t){if(!function(t){if("object"!=typeof t||null===t)return!1;for(var o=t;null!==Object.getPrototypeOf(o);)o=Object.getPrototypeOf(o);return Object.getPrototypeOf(t)===o}(t))throw new Error(_e(7));if(void 0===t.type)throw new Error(_e(8));if(c)throw new Error(_e(9));try{c=!0,i=n(i,t)}finally{c=!1}for(var o=a=s,e=0;e<o.length;e++){(0,o[e])()}return t}return u({type:Te.INIT}),(r={dispatch:u,subscribe:h,getState:f,replaceReducer:function(t){if("function"!=typeof t)throw new Error(_e(10));n=t,u({type:Te.REPLACE})}})[De]=function(){var t,o=h;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new Error(_e(11));function e(){t.next&&t.next(f())}return e(),{unsubscribe:o(e)}}})[De]=function(){return this},t},r}function He(t){for(var o=Object.keys(t),e={},r=0;r<o.length;r++){var n=o[r];"function"==typeof t[n]&&(e[n]=t[n])}var i,a=Object.keys(e);try{!function(t){Object.keys(t).forEach((function(o){var e=t[o];if(void 0===e(void 0,{type:Te.INIT}))throw new Error(_e(12));if(void 0===e(void 0,{type:Te.PROBE_UNKNOWN_ACTION()}))throw new Error(_e(13))}))}(e)}catch(t){i=t}return function(t,o){if(void 0===t&&(t={}),i)throw i;for(var r=!1,n={},s=0;s<a.length;s++){var c=a[s],l=e[c],f=t[c],h=l(f,o);if(void 0===h)throw o&&o.type,new Error(_e(14));n[c]=h,r=r||h!==f}return(r=r||a.length!==Object.keys(t).length)?n:t}}function qe(){for(var t=arguments.length,o=new Array(t),e=0;e<t;e++)o[e]=arguments[e];return 0===o.length?function(t){return t}:1===o.length?o[0]:o.reduce((function(t,o){return function(){return t(o.apply(void 0,arguments))}}))}function Ye(){for(var t=arguments.length,o=new Array(t),e=0;e<t;e++)o[e]=arguments[e];return function(t){return function(){var e=t.apply(void 0,arguments),r=function(){throw new Error(_e(15))},n={getState:e.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=o.map((function(t){return t(n)}));return r=qe.apply(void 0,i)(e.dispatch),Be(Be({},e),{},{dispatch:r})}}}function Ve(t){return function(o){var e=o.dispatch,r=o.getState;return function(o){return function(n){return"function"==typeof n?n(e,r,t):o(n)}}}}var Je=Ve();Je.withExtraArgument=Ve;var Xe,Qe=Je,tr=(Xe=function(t,o){return Xe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,o){t.__proto__=o}||function(t,o){for(var e in o)Object.prototype.hasOwnProperty.call(o,e)&&(t[e]=o[e])},Xe(t,o)},function(t,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function e(){this.constructor=t}Xe(t,o),t.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)}),or=function(t,o){var e,r,n,i,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(e)throw new TypeError("Generator is already executing.");for(;a;)try{if(e=1,r&&(n=2&i[0]?r.return:i[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,i[1])).done)return n;switch(r=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(n=a.trys,(n=n.length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){a.label=i[1];break}if(6===i[0]&&a.label<n[1]){a.label=n[1],n=i;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(i);break}n[2]&&a.ops.pop(),a.trys.pop();continue}i=o.call(t,a)}catch(t){i=[6,t],r=0}finally{e=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},er=function(t,o){for(var e=0,r=o.length,n=t.length;e<r;e++,n++)t[n]=o[e];return t},rr=Object.defineProperty,nr=Object.defineProperties,ir=Object.getOwnPropertyDescriptors,ar=Object.getOwnPropertySymbols,sr=Object.prototype.hasOwnProperty,cr=Object.prototype.propertyIsEnumerable,lr=function(t,o,e){return o in t?rr(t,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[o]=e},fr=function(t,o){for(var e in o||(o={}))sr.call(o,e)&&lr(t,e,o[e]);if(ar)for(var r=0,n=ar(o);r<n.length;r++){e=n[r];cr.call(o,e)&&lr(t,e,o[e])}return t},hr=function(t,o){return nr(t,ir(o))},ur="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?qe:qe.apply(null,arguments)};var dr=function(t){function o(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var n=t.apply(this,e)||this;return Object.setPrototypeOf(n,o.prototype),n}return tr(o,t),Object.defineProperty(o,Symbol.species,{get:function(){return o},enumerable:!1,configurable:!0}),o.prototype.concat=function(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return t.prototype.concat.apply(this,o)},o.prototype.prepend=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===t.length&&Array.isArray(t[0])?new(o.bind.apply(o,er([void 0],t[0].concat(this)))):new(o.bind.apply(o,er([void 0],t.concat(this))))},o}(Array),pr=function(t){function o(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];var n=t.apply(this,e)||this;return Object.setPrototypeOf(n,o.prototype),n}return tr(o,t),Object.defineProperty(o,Symbol.species,{get:function(){return o},enumerable:!1,configurable:!0}),o.prototype.concat=function(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return t.prototype.concat.apply(this,o)},o.prototype.prepend=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===t.length&&Array.isArray(t[0])?new(o.bind.apply(o,er([void 0],t[0].concat(this)))):new(o.bind.apply(o,er([void 0],t.concat(this))))},o}(Array);function yr(t){return _o(t)?Ze(t,(function(){})):t}function br(){return function(t){return function(t){void 0===t&&(t={});var o=t.thunk,e=void 0===o||o;t.immutableCheck,t.serializableCheck;var r=new dr;e&&(!function(t){return"boolean"==typeof t}(e)?r.push(Qe.withExtraArgument(e.extraArgument)):r.push(Qe));return r}(t)}}function gr(t){var o,e=br(),r=t||{},n=r.reducer,i=void 0===n?void 0:n,a=r.middleware,s=void 0===a?e():a,c=r.devTools,l=void 0===c||c,f=r.preloadedState,h=void 0===f?void 0:f,u=r.enhancers,d=void 0===u?void 0:u;if("function"==typeof i)o=i;else{if(!function(t){if("object"!=typeof t||null===t)return!1;var o=Object.getPrototypeOf(t);if(null===o)return!0;for(var e=o;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return o===e}(i))throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');o=He(i)}var p=s;"function"==typeof p&&(p=p(e));var y=Ye.apply(void 0,p),b=qe;l&&(b=ur(fr({trace:!1},"object"==typeof l&&l)));var g=new pr(y),m=g;return Array.isArray(d)?m=er([y],d):"function"==typeof d&&(m=d(g)),Ge(o,h,b.apply(void 0,m))}function mr(t,o){function e(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];if(o){var n=o.apply(void 0,e);if(!n)throw new Error("prepareAction did not return an object");return fr(fr({type:t,payload:n.payload},"meta"in n&&{meta:n.meta}),"error"in n&&{error:n.error})}return{type:t,payload:e[0]}}return e.toString=function(){return""+t},e.type=t,e.match=function(o){return o.type===t},e}function Or(t){var o,e={},r=[],n={addCase:function(t,o){var r="string"==typeof t?t:t.type;if(r in e)throw new Error("addCase cannot be called with two reducers for the same action type");return e[r]=o,n},addMatcher:function(t,o){return r.push({matcher:t,reducer:o}),n},addDefaultCase:function(t){return o=t,n}};return t(n),[e,r,o]}function vr(t){var o=t.name;if(!o)throw new Error("`name` is a required option for createSlice");var e,r="function"==typeof t.initialState?t.initialState:yr(t.initialState),n=t.reducers||{},i=Object.keys(n),a={},s={},c={};function l(){var o="function"==typeof t.extraReducers?Or(t.extraReducers):[t.extraReducers],e=o[0],n=void 0===e?{}:e,i=o[1],a=void 0===i?[]:i,c=o[2],l=void 0===c?void 0:c,f=fr(fr({},n),s);return function(t,o,e,r){void 0===e&&(e=[]);var n,i="function"==typeof o?Or(o):[o,e,r],a=i[0],s=i[1],c=i[2];if(function(t){return"function"==typeof t}(t))n=function(){return yr(t())};else{var l=yr(t);n=function(){return l}}function f(t,o){void 0===t&&(t=n());var e=er([a[o.type]],s.filter((function(t){return(0,t.matcher)(o)})).map((function(t){return t.reducer})));return 0===e.filter((function(t){return!!t})).length&&(e=[c]),e.reduce((function(t,e){if(e){var r;if(Bo(t))return void 0===(r=e(t,o))?t:r;if(_o(t))return Ze(t,(function(t){return e(t,o)}));if(void 0===(r=e(t,o))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return r}return t}),t)}return f.getInitialState=n,f}(r,(function(t){for(var o in f)t.addCase(o,f[o]);for(var e=0,r=a;e<r.length;e++){var n=r[e];t.addMatcher(n.matcher,n.reducer)}l&&t.addDefaultCase(l)}))}return i.forEach((function(t){var e,r,i=n[t],l=o+"/"+t;"reducer"in i?(e=i.reducer,r=i.prepare):e=i,a[t]=e,s[l]=e,c[t]=r?mr(l,r):mr(l)})),{name:o,reducer:function(t,o){return e||(e=l()),e(t,o)},actions:c,caseReducers:a,getInitialState:function(){return e||(e=l()),e.getInitialState()}}}var Nr=["name","message","stack","code"],wr=function(t,o){this.payload=t,this.meta=o},Sr=function(t,o){this.payload=t,this.meta=o},Cr=function(t){if("object"==typeof t&&null!==t){for(var o={},e=0,r=Nr;e<r.length;e++){var n=r[e];"string"==typeof t[n]&&(o[n]=t[n])}return o}return{message:String(t)}};function Er(t){if(t.meta&&t.meta.rejectedWithValue)throw t.payload;if(t.error)throw t.error;return t.payload}!function(){function t(t,o,e){var r=mr(t+"/fulfilled",(function(t,o,e,r){return{payload:t,meta:hr(fr({},r||{}),{arg:e,requestId:o,requestStatus:"fulfilled"})}})),n=mr(t+"/pending",(function(t,o,e){return{payload:void 0,meta:hr(fr({},e||{}),{arg:o,requestId:t,requestStatus:"pending"})}})),i=mr(t+"/rejected",(function(t,o,r,n,i){return{payload:n,error:(e&&e.serializeError||Cr)(t||"Rejected"),meta:hr(fr({},i||{}),{arg:r,requestId:o,rejectedWithValue:!!n,requestStatus:"rejected",aborted:"AbortError"===(null==t?void 0:t.name),condition:"ConditionError"===(null==t?void 0:t.name)})}})),a="undefined"!=typeof AbortController?AbortController:function(){function t(){this.signal={aborted:!1,addEventListener:function(){},dispatchEvent:function(){return!1},onabort:function(){},removeEventListener:function(){},reason:void 0,throwIfAborted:function(){}}}return t.prototype.abort=function(){},t}();return Object.assign((function(t){return function(s,c,l){var f,h=(null==e?void 0:e.idGenerator)?e.idGenerator(t):function(t){void 0===t&&(t=21);for(var o="",e=t;e--;)o+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return o}(),u=new a;function d(t){f=t,u.abort()}var p=function(){return a=this,p=null,y=function(){var a,p,y,b,g,m;return or(this,(function(O){switch(O.label){case 0:return O.trys.push([0,4,,5]),b=null==(a=null==e?void 0:e.condition)?void 0:a.call(e,t,{getState:c,extra:l}),null===(v=b)||"object"!=typeof v||"function"!=typeof v.then?[3,2]:[4,b];case 1:b=O.sent(),O.label=2;case 2:if(!1===b||u.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};return g=new Promise((function(t,o){return u.signal.addEventListener("abort",(function(){return o({name:"AbortError",message:f||"Aborted"})}))})),s(n(h,t,null==(p=null==e?void 0:e.getPendingMeta)?void 0:p.call(e,{requestId:h,arg:t},{getState:c,extra:l}))),[4,Promise.race([g,Promise.resolve(o(t,{dispatch:s,getState:c,extra:l,requestId:h,signal:u.signal,abort:d,rejectWithValue:function(t,o){return new wr(t,o)},fulfillWithValue:function(t,o){return new Sr(t,o)}})).then((function(o){if(o instanceof wr)throw o;return o instanceof Sr?r(o.payload,h,t,o.meta):r(o,h,t)}))])];case 3:return y=O.sent(),[3,5];case 4:return m=O.sent(),y=m instanceof wr?i(null,h,t,m.payload,m.meta):i(m,h,t),[3,5];case 5:return e&&!e.dispatchConditionRejection&&i.match(y)&&y.meta.condition||s(y),[2,y]}var v}))},new Promise((function(t,o){var e=function(t){try{n(y.next(t))}catch(t){o(t)}},r=function(t){try{n(y.throw(t))}catch(t){o(t)}},n=function(o){return o.done?t(o.value):Promise.resolve(o.value).then(e,r)};n((y=y.apply(a,p)).next())}));var a,p,y}();return Object.assign(p,{abort:d,requestId:h,arg:t,unwrap:function(){return p.then(Er)}})}}),{pending:n,rejected:i,fulfilled:r,typePrefix:t})}t.withTypes=function(){return t}}();var xr,Rr,Ur="listenerMiddleware";mr(Ur+"/add"),mr(Ur+"/removeAll"),mr(Ur+"/remove"),"function"==typeof queueMicrotask&&queueMicrotask.bind("undefined"!=typeof window?window:"undefined"!=typeof global?global:globalThis),function(){function t(t,o){var e=n[t];return e?e.enumerable=o:n[t]=e={configurable:!0,enumerable:o,get:function(){var o=this[Re];return ke.get(o,t)},set:function(o){var e=this[Re];ke.set(e,t,o)}},e}function o(t){for(var o=t.length-1;o>=0;o--){var n=t[o][Re];if(!n.P)switch(n.i){case 5:r(n)&&pe(n);break;case 4:e(n)&&pe(n)}}}function e(t){for(var o=t.t,e=t.k,r=Ie(e),n=r.length-1;n>=0;n--){var i=r[n];if(i!==Re){var a=o[i];if(void 0===a&&!To(o,i))return!0;var s=e[i],c=s&&s[Re];if(c?c.t!==a:!Ho(s,a))return!0}}var l=!!o[Re];return r.length!==Ie(o).length+(l?0:1)}function r(t){var o=t.k;if(o.length!==t.t.length)return!0;var e=Object.getOwnPropertyDescriptor(o,o.length-1);if(e&&!e.get)return!0;for(var r=0;r<o.length;r++)if(!o.hasOwnProperty(r))return!0;return!1}var n={};!function(t,o){We[t]||(We[t]=o)}("ES5",{J:function(o,e){var r=Array.isArray(o),n=function(o,e){if(o){for(var r=Array(e.length),n=0;n<e.length;n++)Object.defineProperty(r,""+n,t(n,!0));return r}var i=Le(e);delete i[Re];for(var a=Ie(i),s=0;s<a.length;s++){var c=a[s];i[c]=t(c,o||!!i[c].enumerable)}return Object.create(Object.getPrototypeOf(e),i)}(r,o),i={i:r?5:4,A:e?e.A:ee(),P:!1,I:!1,R:{},l:e,t:o,k:n,o:null,g:!1,C:!1};return Object.defineProperty(n,Re,{value:i,writable:!0}),n},S:function(t,e,n){n?Bo(e)&&e[Re].A===t&&o(t.p):(t.u&&function t(o){if(o&&"object"==typeof o){var e=o[Re];if(e){var n=e.t,i=e.k,a=e.R,s=e.i;if(4===s)Do(i,(function(o){o!==Re&&(void 0!==n[o]||To(n,o)?a[o]||t(i[o]):(a[o]=!0,pe(e)))})),Do(n,(function(t){void 0!==i[t]||To(i,t)||(a[t]=!1,pe(e))}));else if(5===s){if(r(e)&&(pe(e),a.length=!0),i.length<n.length)for(var c=i.length;c<n.length;c++)a[c]=!1;else for(var l=n.length;l<i.length;l++)a[l]=!0;for(var f=Math.min(i.length,n.length),h=0;h<f;h++)i.hasOwnProperty(h)||(a[h]=!0),void 0===a[h]&&t(i[h])}}}}(t.p[0]),o(t.p))},K:function(t){return 4===t.i?e(t):r(t)}})}(),window.ftReduxStores||(window.ftReduxStores={});class Ir{static get(t){var o;const e="string"==typeof t?t:t.name,r="string"==typeof t?void 0:t,n=window.ftReduxStores[e];if(ko(n))return n;if(null==r)return;const i=vr({...r,reducers:null!==(o=r.reducers)&&void 0!==o?o:{}}),a=gr({reducer:(t,o)=>{var e;switch(o.type){case"CLEAR_FT_REDUX_STORE":return i.getInitialState();case"DEFAULT_STATE_FIELDS_VALUES_SETTER":return{...t,...null!==(e=o.overwrites)&&void 0!==e?e:{}};default:return i.reducer(t,o)}}});return window.ftReduxStores[r.name]=new Ir(i,a)}constructor(t,o){this.reduxSlice=t,this.reduxStore=o,this.isFtReduxStore=!0,this.eventBus=document.createElement("event-bus"),this.commands=new Wo,this.actions=new Proxy(this.reduxSlice.actions,{get:(t,o,e)=>{const r=o,n=t[r];return n?(...t)=>{const o=n(...t);return this.reduxStore.dispatch(o),o}:t=>{this.setState({[r]:t})}}})}clear(){this.reduxStore.dispatch({type:"CLEAR_FT_REDUX_STORE"})}setState(t){this.reduxStore.dispatch({type:"DEFAULT_STATE_FIELDS_VALUES_SETTER",overwrites:t})}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===(Rr=null===(xr=window.safari)||void 0===xr?void 0:xr.pushNotification)||void 0===Rr||Rr.toString());const Lr=bt`
|
|
102
|
-
`,Wr="ft-app-info",kr=Ir.get({name:Wr,reducers:{setBaseUrl:(t,o)=>{t.baseUrl=o.payload},setApiIntegrationIdentifier:(t,o)=>{t.apiIntegrationIdentifier=o.payload},setUiLocale:(t,o)=>{t.uiLocale=o.payload},setAvailableUiLocales:(t,o)=>{t.availableUiLocales=o.payload},setEditorMode:(t,o)=>{t.editorMode=o.payload},setNoCustom:(t,o)=>{t.noCustom=o.payload},setNoCustomComponent:(t,o)=>{t.noCustomComponent=o.payload},setSession:(t,o)=>{t.session=o.payload}},initialState:{uiLocale:document.documentElement.lang||"en-US",availableUiLocales:[],editorMode:!1,noCustom:!1,noCustomComponent:!1}});class Kr{static build(t){const{baseUrl:o,apiIntegrationIdentifier:e}=kr.getState(),r=null!=t?t:e;if(o&&r&&window.fluidtopics)return new window.fluidtopics.FluidTopicsApi(o,r,!0)}static get(t){var o;return null!=t?Kr.build(t):null!==(o=Kr.API)&&void 0!==o?o:Kr.API=Kr.build()}static await(t){return new Promise((o=>{let e=Kr.get(t);if(e)o(e);else{const r=kr.subscribe((()=>{e=Kr.get(t),e&&(r(),o(e))}))}}))}}var Ar;const jr=Symbol("clearAfterUnitTest");class Zr{constructor(t){this.messageContextProvider=t,this.defaultMessages={},this.cache=new r,this.listeners={},this.currentUiLocale="",this[Ar]=()=>{this.defaultMessages={},this.cache=new r,this.listeners={}},this.currentUiLocale=kr.getState().uiLocale,kr.subscribe((()=>this.clearWhenUiLocaleChanges()))}clearWhenUiLocaleChanges(){const{uiLocale:t}=kr.getState();this.currentUiLocale!==t&&(this.currentUiLocale=t,this.cache.clearAll(),this.notifyAll())}addContext(t){const o=t.name.toLowerCase();this.cache.setFinal(o,t),this.notify(o)}getAllContexts(){return this.cache.resolvedValues()}async prepareContext(t,o){var e;if(t=t.toLowerCase(),Object.keys(o).length>0){const r={...null!==(e=this.defaultMessages[t])&&void 0!==e?e:{},...o};I(this.defaultMessages[t],r)||(this.defaultMessages[t]=r,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,o,...e){var r,n,i;t=t.toLowerCase(),this.fetchContext(t);const a=null!==(n=null===(r=this.cache.getNow(t))||void 0===r?void 0:r.messages)&&void 0!==n?n:{};return new Lo(null!==(i=this.defaultMessages[t])&&void 0!==i?i:{},a).resolve(o,...e)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(()=>this.messageContextProvider(this.currentUiLocale,t))),await this.notify(t)}catch(t){console.error(t)}}subscribe(t,o){var e;return t=t.toLowerCase(),this.listeners[t]=null!==(e=this.listeners[t])&&void 0!==e?e:new Set,this.listeners[t].add(o),()=>{var e;return null===(e=this.listeners[t])||void 0===e?void 0:e.delete(o)}}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(o=0,new Promise((t=>setTimeout(t,o)))).then((()=>t())).catch((()=>null));var o})))}}Ar=jr,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new Zr((async(t,o)=>(await Kr.await()).getFluidTopicsMessageContext(t,o)))),null==window.FluidTopicsCustomI18nService&&(window.FluidTopicsCustomI18nService=new Zr((async(t,o)=>(await Kr.await()).getCustomMessageContext(t,o))));const Mr=window.FluidTopicsI18nService,Fr=window.FluidTopicsCustomI18nService;var $r=function(t,o,e,r){for(var n,i=arguments.length,a=i<3?o:null===r?r=Object.getOwnPropertyDescriptor(o,e):r,s=t.length-1;s>=0;s--)(n=t[s])&&(a=(i<3?n(a):i>3?n(o,e,a):n(o,e))||a);return i>3&&a&&Object.defineProperty(o,e,a),a};class Pr extends Uo{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-integration",this.uiLocale="en-US",this.availableUiLocales=[],this.editorMode=!1,this.noCustom=!1,this.noCustomComponent=!1,this.withManualResources=!1,this.messageContexts=[],this.apiProvider=()=>Kr.get(),this.cache=new r,this.cleanSessionDebouncer=new n}render(){return Xt`
|
|
102
|
+
`,Wr="ft-app-info",kr=Ir.get({name:Wr,reducers:{setBaseUrl:(t,o)=>{t.baseUrl=o.payload},setApiIntegrationIdentifier:(t,o)=>{t.apiIntegrationIdentifier=o.payload},setUiLocale:(t,o)=>{t.uiLocale=o.payload},setAvailableUiLocales:(t,o)=>{t.availableUiLocales=o.payload},setMetadataDescriptors:(t,o)=>{t.metadataDescriptors=o.payload},setEditorMode:(t,o)=>{t.editorMode=o.payload},setNoCustom:(t,o)=>{t.noCustom=o.payload},setNoCustomComponent:(t,o)=>{t.noCustomComponent=o.payload},setSession:(t,o)=>{t.session=o.payload}},initialState:{uiLocale:document.documentElement.lang||"en-US",availableUiLocales:[],metadataDescriptors:[],editorMode:!1,noCustom:!1,noCustomComponent:!1}});class Kr{static build(t){const{baseUrl:o,apiIntegrationIdentifier:e}=kr.getState(),r=null!=t?t:e;if(o&&r&&window.fluidtopics)return new window.fluidtopics.FluidTopicsApi(o,r,!0)}static get(t){var o;return null!=t?Kr.build(t):null!==(o=Kr.API)&&void 0!==o?o:Kr.API=Kr.build()}static await(t){return new Promise((o=>{let e=Kr.get(t);if(e)o(e);else{const r=kr.subscribe((()=>{e=Kr.get(t),e&&(r(),o(e))}))}}))}}var Ar;const jr=Symbol("clearAfterUnitTest");class Zr{constructor(t){this.messageContextProvider=t,this.defaultMessages={},this.cache=new r,this.listeners={},this.currentUiLocale="",this[Ar]=()=>{this.defaultMessages={},this.cache=new r,this.listeners={}},this.currentUiLocale=kr.getState().uiLocale,kr.subscribe((()=>this.clearWhenUiLocaleChanges()))}clearWhenUiLocaleChanges(){const{uiLocale:t}=kr.getState();this.currentUiLocale!==t&&(this.currentUiLocale=t,this.cache.clearAll(),this.notifyAll())}addContext(t){const o=t.name.toLowerCase();this.cache.setFinal(o,t),this.notify(o)}getAllContexts(){return this.cache.resolvedValues()}async prepareContext(t,o){var e;if(t=t.toLowerCase(),Object.keys(o).length>0){const r={...null!==(e=this.defaultMessages[t])&&void 0!==e?e:{},...o};I(this.defaultMessages[t],r)||(this.defaultMessages[t]=r,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,o,...e){var r,n,i;t=t.toLowerCase(),this.fetchContext(t);const a=null!==(n=null===(r=this.cache.getNow(t))||void 0===r?void 0:r.messages)&&void 0!==n?n:{};return new Lo(null!==(i=this.defaultMessages[t])&&void 0!==i?i:{},a).resolve(o,...e)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(()=>this.messageContextProvider(this.currentUiLocale,t))),await this.notify(t)}catch(t){console.error(t)}}subscribe(t,o){var e;return t=t.toLowerCase(),this.listeners[t]=null!==(e=this.listeners[t])&&void 0!==e?e:new Set,this.listeners[t].add(o),()=>{var e;return null===(e=this.listeners[t])||void 0===e?void 0:e.delete(o)}}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(o=0,new Promise((t=>setTimeout(t,o)))).then((()=>t())).catch((()=>null));var o})))}}Ar=jr,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new Zr((async(t,o)=>(await Kr.await()).getFluidTopicsMessageContext(t,o)))),null==window.FluidTopicsCustomI18nService&&(window.FluidTopicsCustomI18nService=new Zr((async(t,o)=>(await Kr.await()).getCustomMessageContext(t,o))));const Mr=window.FluidTopicsI18nService,Fr=window.FluidTopicsCustomI18nService;var $r=function(t,o,e,r){for(var n,i=arguments.length,a=i<3?o:null===r?r=Object.getOwnPropertyDescriptor(o,e):r,s=t.length-1;s>=0;s--)(n=t[s])&&(a=(i<3?n(a):i>3?n(o,e,a):n(o,e))||a);return i>3&&a&&Object.defineProperty(o,e,a),a};class Pr extends Uo{constructor(){super(...arguments),this.apiIntegrationIdentifier="ft-integration",this.uiLocale="en-US",this.availableUiLocales=[],this.metadataDescriptors=[],this.editorMode=!1,this.noCustom=!1,this.noCustomComponent=!1,this.withManualResources=!1,this.messageContexts=[],this.apiProvider=()=>Kr.get(),this.cache=new r,this.cleanSessionDebouncer=new n}render(){return Xt`
|
|
103
103
|
<slot></slot>
|
|
104
|
-
`}update(t){super.update(t),t.has("baseUrl")&&kr.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&kr.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&kr.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&kr.actions.setNoCustom(this.noCustom),t.has("editorMode")&&kr.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&kr.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&kr.actions.setSession(this.session),t.has("availableUiLocales")&&kr.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>Mr.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 o=await t.getCurrentSession();return o.idleTimeoutInMillis>0&&this.cleanSessionDebouncer.run((()=>{this.cache.clear("session"),this.session=void 0}),o.idleTimeoutInMillis),o}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))))}}Pr.elementDefinitions={},Pr.styles=Lr,$r([U()],Pr.prototype,"baseUrl",void 0),$r([U()],Pr.prototype,"apiIntegrationIdentifier",void 0),$r([U()],Pr.prototype,"uiLocale",void 0),$r([L([])],Pr.prototype,"availableUiLocales",void 0),$r([U({type:Boolean})],Pr.prototype,"editorMode",void 0),$r([U({type:Boolean})],Pr.prototype,"noCustom",void 0),$r([U({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],Pr.prototype,"noCustomComponent",void 0),$r([U({type:Boolean})],Pr.prototype,"withManualResources",void 0),$r([L([])],Pr.prototype,"messageContexts",void 0),$r([L(void 0)],Pr.prototype,"session",void 0),$r([U({type:Object})],Pr.prototype,"apiProvider",void 0);class Br{async listMySearches(){var t;return(null===(t=kr.getState().session)||void 0===t?void 0:t.sessionAuthenticated)?(await Kr.await()).listMySearches(kr.getState().session.profile.userId):[]}}const _r=new r;class Dr{async listMyBookmarks(){return _r.get("bookmarks",(async()=>(await Kr.await()).listMyBookmarks(kr.getState().session.profile.userId)))}clearCache(){_r.clear("bookmarks")}}const zr="ft-user-assets",Tr=Ir.get({name:zr,initialState:{savedSearches:void 0,bookmarks:void 0}});const Gr=new class{constructor(){this.currentSession=kr.getState().session,this.bookmarksAreUsed=!1,this.bookmarksService=new Dr,kr.subscribe((()=>this.reloadWhenUserSessionChanges()))}reloadWhenUserSessionChanges(){var t;const{session:o}=kr.getState();I(null===(t=this.currentSession)||void 0===t?void 0:t.profile,null==o?void 0:o.profile)||(this.currentSession=o,this.clearMySearches(),this.reloadBookmarks())}clear(){this.clearMySearches(),this.clearMyBookmarks()}clearMySearches(){Tr.actions.savedSearches(void 0)}clearMyBookmarks(){Tr.actions.bookmarks(void 0)}async reloadMySearches(){const t=new Br,o=await t.listMySearches();Tr.actions.savedSearches(o)}async reloadBookmarks(){this.bookmarksService.clearCache(),await this.updateBookmarksIfUsed()}async registerBookmarkComponent(){this.bookmarksAreUsed=!0,await this.updateBookmarksIfUsed()}async updateBookmarksIfUsed(){var t;if(this.bookmarksAreUsed){const o=(null===(t=this.currentSession)||void 0===t?void 0:t.sessionAuthenticated)?await this.bookmarksService.listMyBookmarks():void 0;Tr.actions.bookmarks(o)}}};var Hr;(Hr="ft-app-context",t=>{window.customElements.get(Hr)||window.customElements.define(Hr,t)})(Pr),t.FluidTopicsApiProvider=Kr,t.FtAppContext=Pr,t.FtAppContextCssVariables={},t.FtAppInfoStoreName=Wr,t.FtI18nServiceInternalClass=Zr,t.FtUserAssetsStoreName=zr,t.clearAfterUnitTest=jr,t.ftAppInfoStore=kr,t.ftCustomI18nService=Fr,t.ftI18nService=Mr,t.ftUserAssetsStore=Tr,t.styles=Lr,t.userAssetsActions=Gr}({});
|
|
104
|
+
`}update(t){super.update(t),t.has("baseUrl")&&kr.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&kr.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&kr.actions.setUiLocale(this.uiLocale),t.has("metadataDescriptors")&&kr.actions.setMetadataDescriptors(this.metadataDescriptors),t.has("noCustom")&&kr.actions.setNoCustom(this.noCustom),t.has("editorMode")&&kr.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&kr.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&kr.actions.setSession(this.session),t.has("availableUiLocales")&&kr.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>Mr.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 o=await t.getCurrentSession();return o.idleTimeoutInMillis>0&&this.cleanSessionDebouncer.run((()=>{this.cache.clear("session"),this.session=void 0}),o.idleTimeoutInMillis),o}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))),null==this.metadataDescriptors&&(this.metadataDescriptors=await this.cache.get("metadataDescriptors",(()=>t.getMetadataDescriptors()))))}}Pr.elementDefinitions={},Pr.styles=Lr,$r([U()],Pr.prototype,"baseUrl",void 0),$r([U()],Pr.prototype,"apiIntegrationIdentifier",void 0),$r([U()],Pr.prototype,"uiLocale",void 0),$r([L([])],Pr.prototype,"availableUiLocales",void 0),$r([L([])],Pr.prototype,"metadataDescriptors",void 0),$r([U({type:Boolean})],Pr.prototype,"editorMode",void 0),$r([U({type:Boolean})],Pr.prototype,"noCustom",void 0),$r([U({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],Pr.prototype,"noCustomComponent",void 0),$r([U({type:Boolean})],Pr.prototype,"withManualResources",void 0),$r([L([])],Pr.prototype,"messageContexts",void 0),$r([L(void 0)],Pr.prototype,"session",void 0),$r([U({type:Object})],Pr.prototype,"apiProvider",void 0);class Br{async listMySearches(){var t;return(null===(t=kr.getState().session)||void 0===t?void 0:t.sessionAuthenticated)?(await Kr.await()).listMySearches(kr.getState().session.profile.userId):[]}}const _r=new r;class Dr{async listMyBookmarks(){return _r.get("bookmarks",(async()=>(await Kr.await()).listMyBookmarks(kr.getState().session.profile.userId)))}clearCache(){_r.clear("bookmarks")}}const zr="ft-user-assets",Tr=Ir.get({name:zr,initialState:{savedSearches:void 0,bookmarks:void 0}});const Gr=new class{constructor(){this.currentSession=kr.getState().session,this.bookmarksAreUsed=!1,this.bookmarksService=new Dr,kr.subscribe((()=>this.reloadWhenUserSessionChanges()))}reloadWhenUserSessionChanges(){var t;const{session:o}=kr.getState();I(null===(t=this.currentSession)||void 0===t?void 0:t.profile,null==o?void 0:o.profile)||(this.currentSession=o,this.clearMySearches(),this.reloadBookmarks())}clear(){this.clearMySearches(),this.clearMyBookmarks()}clearMySearches(){Tr.actions.savedSearches(void 0)}clearMyBookmarks(){Tr.actions.bookmarks(void 0)}async reloadMySearches(){const t=new Br,o=await t.listMySearches();Tr.actions.savedSearches(o)}async reloadBookmarks(){this.bookmarksService.clearCache(),await this.updateBookmarksIfUsed()}async registerBookmarkComponent(){this.bookmarksAreUsed=!0,await this.updateBookmarksIfUsed()}async updateBookmarksIfUsed(){var t;if(this.bookmarksAreUsed){const o=(null===(t=this.currentSession)||void 0===t?void 0:t.sessionAuthenticated)?await this.bookmarksService.listMyBookmarks():void 0;Tr.actions.bookmarks(o)}}};var Hr;(Hr="ft-app-context",t=>{window.customElements.get(Hr)||window.customElements.define(Hr,t)})(Pr),t.FluidTopicsApiProvider=Kr,t.FtAppContext=Pr,t.FtAppContextCssVariables={},t.FtAppInfoStoreName=Wr,t.FtI18nServiceInternalClass=Zr,t.FtUserAssetsStoreName=zr,t.clearAfterUnitTest=jr,t.ftAppInfoStore=kr,t.ftCustomI18nService=Fr,t.ftI18nService=Mr,t.ftUserAssetsStore=Tr,t.styles=Lr,t.userAssetsActions=Gr}({});
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { FtReduxStore } from "@fluid-topics/ft-wc-utils";
|
|
2
2
|
import { PayloadAction } from "@reduxjs/toolkit";
|
|
3
|
-
import { FtSession, FtUiLocale } from "@fluid-topics/public-api";
|
|
3
|
+
import { FtMetadataDescriptor, FtSession, FtUiLocale } from "@fluid-topics/public-api";
|
|
4
4
|
export declare const FtAppInfoStoreName = "ft-app-info";
|
|
5
5
|
export interface FtAppInfoState {
|
|
6
6
|
baseUrl?: string;
|
|
7
7
|
apiIntegrationIdentifier?: string;
|
|
8
8
|
uiLocale: string;
|
|
9
9
|
availableUiLocales: Array<FtUiLocale>;
|
|
10
|
+
metadataDescriptors: Array<FtMetadataDescriptor>;
|
|
10
11
|
editorMode: boolean;
|
|
11
12
|
noCustom: boolean;
|
|
12
13
|
noCustomComponent: boolean | string;
|
|
@@ -17,6 +18,7 @@ declare const reducers: {
|
|
|
17
18
|
setApiIntegrationIdentifier: (state: FtAppInfoState, action: PayloadAction<FtAppInfoState["apiIntegrationIdentifier"]>) => void;
|
|
18
19
|
setUiLocale: (state: FtAppInfoState, action: PayloadAction<FtAppInfoState["uiLocale"]>) => void;
|
|
19
20
|
setAvailableUiLocales: (state: FtAppInfoState, action: PayloadAction<FtAppInfoState["availableUiLocales"]>) => void;
|
|
21
|
+
setMetadataDescriptors: (state: FtAppInfoState, action: PayloadAction<FtAppInfoState["metadataDescriptors"]>) => void;
|
|
20
22
|
setEditorMode: (state: FtAppInfoState, action: PayloadAction<FtAppInfoState["editorMode"]>) => void;
|
|
21
23
|
setNoCustom: (state: FtAppInfoState, action: PayloadAction<FtAppInfoState["noCustom"]>) => void;
|
|
22
24
|
setNoCustomComponent: (state: FtAppInfoState, action: PayloadAction<FtAppInfoState["noCustomComponent"]>) => void;
|
|
@@ -13,6 +13,9 @@ const reducers = {
|
|
|
13
13
|
setAvailableUiLocales: (state, action) => {
|
|
14
14
|
state.availableUiLocales = action.payload;
|
|
15
15
|
},
|
|
16
|
+
setMetadataDescriptors: (state, action) => {
|
|
17
|
+
state.metadataDescriptors = action.payload;
|
|
18
|
+
},
|
|
16
19
|
setEditorMode: (state, action) => {
|
|
17
20
|
state.editorMode = action.payload;
|
|
18
21
|
},
|
|
@@ -32,6 +35,7 @@ export const ftAppInfoStore = FtReduxStore.get({
|
|
|
32
35
|
initialState: {
|
|
33
36
|
uiLocale: document.documentElement.lang || "en-US",
|
|
34
37
|
availableUiLocales: [],
|
|
38
|
+
metadataDescriptors: [],
|
|
35
39
|
editorMode: false,
|
|
36
40
|
noCustom: false,
|
|
37
41
|
noCustomComponent: false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-topics/ft-app-context",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.17",
|
|
4
4
|
"description": "Global application context for Fluid Topics integrations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Lit"
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
"url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@fluid-topics/ft-wc-utils": "1.1.
|
|
22
|
+
"@fluid-topics/ft-wc-utils": "1.1.17",
|
|
23
23
|
"lit": "3.1.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@fluid-topics/public-api": "1.0.
|
|
26
|
+
"@fluid-topics/public-api": "1.0.54"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "a8c1d6ed00e2cad51f1e81aa0486f251050db54d"
|
|
29
29
|
}
|