@fluid-topics/ft-reader-context 0.3.63 → 0.3.64

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
- !function(t,i,s,e){const n={setMapId:(t,i)=>{t.mapId=i.payload},setTocId:(t,i)=>{t.tocId=i.payload},setMap:(t,i)=>{t.map=i.payload},setToc:(t,i)=>{t.toc=i.payload},setPagesToc:(t,i)=>{t.pagesToc=i.payload},setPaginationConfiguration:(t,i)=>{t.paginationConfiguration=i.payload},setCurrentPage:(t,i)=>{t.currentPage=i.payload},setScrollTarget:(t,i)=>{t.scrollTarget=i.payload},setVisibleTopics:(t,i)=>{t.visibleTopics=i.payload},setConfiguration:(t,i)=>{t.configuration=i.payload}};class o{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,i,s){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,s)),null==t.tocId?this.extractPagesToc(t.children,i,s):[{tocId:t.tocId,title:t.title,depth:i,children:this.extractPagesToc(t.children,i+1,t.tocId)}])))}convertNodes(t,i,s){return t.flatMap((t=>{var e,n,o;if(null==t.tocId)return[...this.convertSectionNodes(null!==(e=t.pageToc)&&void 0!==e?e:[],i,t.tocId),...this.convertNodes(t.children,i,t.tocId)];let r=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const a={tocId:t.tocId,contentId:t.contentId,title:t.title,hasRating:t.hasRating,prettyUrl:r,depth:i,parentTocId:s,children:[]};this.register(a);const h=this.convertSectionNodes(null!==(o=t.pageToc)&&void 0!==o?o:[],i+1,t.tocId),l=this.convertNodes(t.children,i+1,a.tocId);return a.children=[...h,...l],[a]}))}convertSectionNodes(t,i,s){return t.flatMap((t=>{var e;let n=null===(e=t.prettyUrl)||void 0===e?void 0:e.replace(/^\//,"");const o={...t,prettyUrl:n,depth:i,parentTocId:s,children:[]};return this.register(o),o.children=this.convertSectionNodes(t.children,i+1,t.tocId),[o]}))}buildPage(t,i){var s,e,n,o,r,a;const h={number:this.pages.length+1,title:null!==(s=t.title)&&void 0!==s?s:"",rootTocId:null!==(e=t.tocId)&&void 0!==e?e:"root",toc:(null!==(n=t.pageToc)&&void 0!==n?n:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:i?this.buildBreadcrumb(this.nodeByTocId[i]):[]},l=(t,i)=>(i?h.topics:h.hiddenTopics).push(t),c=null!==(r=null===(o=t.pageConfiguration)||void 0===o?void 0:o.parentsVisibility)&&void 0!==r?r:[];return h.breadcrumb.forEach(((t,i)=>{l(t,c[i])})),t.tocId&&l(t.tocId,t.pageConfiguration.isVisible),h.topics.push(...this.tocIds(null!==(a=t.pageToc)&&void 0!==a?a:[])),h}registerPage(t){for(let i of[...t.topics,...t.hiddenTopics])this.pageByTocId[i]||(this.pageByTocId[i]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const i=[t.tocId];for(;null==t?void 0:t.parentTocId;)i.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return i}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class r{convertPaginatedToc(t){return new o(t).build()}}const a=s.css`
2
- `,h=i.FtReduxStore.get({name:"ft-app-info",reducers:{setBaseUrl:(t,i)=>{t.baseUrl=i.payload},setApiIntegrationIdentifier:(t,i)=>{t.apiIntegrationIdentifier=i.payload},setUiLocale:(t,i)=>{t.uiLocale=i.payload},setAvailableUiLocales:(t,i)=>{t.availableUiLocales=i.payload},setEditorMode:(t,i)=>{t.editorMode=i.payload},setNoCustom:(t,i)=>{t.noCustom=i.payload},setNoCustomComponent:(t,i)=>{t.noCustomComponent=i.payload},setSession:(t,i)=>{t.session=i.payload}},initialState:{uiLocale:document.documentElement.lang||"en-US",availableUiLocales:[],editorMode:!1,noCustom:!1,noCustomComponent:!1}});class l{static build(t){const{baseUrl:i,apiIntegrationIdentifier:s}=h.getState(),e=null!=t?t:s;if(i&&e&&window.fluidtopics)return new window.fluidtopics.FluidTopicsApi(i,e,!0)}static get(t){var i;return null!=t?l.build(t):null!==(i=l.API)&&void 0!==i?i:l.API=l.build()}static await(t){return new Promise((i=>{let s=l.get(t);if(s)i(s);else{const e=h.subscribe((()=>{s=l.get(t),s&&(e(),i(s))}))}}))}}var c;const d=Symbol("clearAfterUnitTest");class u{constructor(t){this.apiProvider=t,this.defaultMessages={},this.cache=new i.CacheRegistry,this.listeners={},this.currentUiLocale="",this[c]=()=>{this.defaultMessages={},this.cache=new i.CacheRegistry,this.listeners={}},this.currentUiLocale=h.getState().uiLocale,h.subscribe((()=>this.clearWhenUiLocaleChanges()))}clearWhenUiLocaleChanges(){const{uiLocale:t}=h.getState();this.currentUiLocale!==t&&(this.currentUiLocale=t,this.cache.clearAll(),this.notifyAll())}addContext(t){const i=t.name.toLowerCase();this.cache.setFinal(i,t),this.notify(i)}getAllContexts(){return this.cache.resolvedValues()}async prepareContext(t,s){var e;if(t=t.toLowerCase(),Object.keys(s).length>0){const n={...null!==(e=this.defaultMessages[t])&&void 0!==e?e:{},...s};i.deepEqual(this.defaultMessages[t],n)||(this.defaultMessages[t]=n,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,s,...e){var n,o,r;t=t.toLowerCase(),this.fetchContext(t);const a=null!==(o=null===(n=this.cache.getNow(t))||void 0===n?void 0:n.messages)&&void 0!==o?o:{};return new i.ParametrizedLabelResolver(null!==(r=this.defaultMessages[t])&&void 0!==r?r:{},a).resolve(s,...e)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(async()=>{var i;return await(null===(i=this.apiProvider())||void 0===i?void 0:i.getFluidTopicsMessageContext(this.currentUiLocale,t))})),await this.notify(t)}catch(t){console.error(t)}}subscribe(t,i){var s;return t=t.toLowerCase(),this.listeners[t]=null!==(s=this.listeners[t])&&void 0!==s?s:new Set,this.listeners[t].add(i),()=>{var s;return null===(s=this.listeners[t])||void 0===s?void 0:s.delete(i)}}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=>i.delay(0).then((()=>t())).catch((()=>null)))))}}c=d,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new u(l.get));const v=window.FluidTopicsI18nService;var p=function(t,i,s,e){for(var n,o=arguments.length,r=o<3?i:null===e?e=Object.getOwnPropertyDescriptor(i,s):e,a=t.length-1;a>=0;a--)(n=t[a])&&(r=(o<3?n(r):o>3?n(i,s,r):n(i,s))||r);return o>3&&r&&Object.defineProperty(i,s,r),r};class g extends i.FtLitElement{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=()=>l.get(),this.cache=new i.CacheRegistry,this.cleanSessionDebouncer=new i.Debouncer}render(){return s.html`
1
+ !function(t,i,s,e){const n={setMapId:(t,i)=>{t.mapId=i.payload},setTocId:(t,i)=>{t.tocId=i.payload},setMap:(t,i)=>{t.map=i.payload},setToc:(t,i)=>{t.toc=i.payload},setPagesToc:(t,i)=>{t.pagesToc=i.payload},setPaginationConfiguration:(t,i)=>{t.paginationConfiguration=i.payload},setCurrentPage:(t,i)=>{t.currentPage=i.payload},setScrollTarget:(t,i)=>{t.scrollTarget=i.payload},setVisibleTopics:(t,i)=>{t.visibleTopics=i.payload},setConfiguration:(t,i)=>{t.configuration=i.payload}};class o{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,i,s){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,s)),null==t.tocId?this.extractPagesToc(t.children,i,s):[{tocId:t.tocId,title:t.title,depth:i,children:this.extractPagesToc(t.children,i+1,t.tocId)}])))}convertNodes(t,i,s){return t.flatMap((t=>{var e,n,o;if(null==t.tocId)return[...this.convertSectionNodes(null!==(e=t.pageToc)&&void 0!==e?e:[],i,t.tocId),...this.convertNodes(t.children,i,t.tocId)];let r=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const a={tocId:t.tocId,contentId:t.contentId,title:t.title,hasRating:t.hasRating,prettyUrl:r,depth:i,parentTocId:s,children:[]};this.register(a);const h=this.convertSectionNodes(null!==(o=t.pageToc)&&void 0!==o?o:[],i+1,t.tocId),l=this.convertNodes(t.children,i+1,a.tocId);return a.children=[...h,...l],[a]}))}convertSectionNodes(t,i,s){return t.flatMap((t=>{var e;let n=null===(e=t.prettyUrl)||void 0===e?void 0:e.replace(/^\//,"");const o={...t,prettyUrl:n,depth:i,parentTocId:s,children:[]};return this.register(o),o.children=this.convertSectionNodes(t.children,i+1,t.tocId),[o]}))}buildPage(t,i){var s,e,n,o,r,a;const h={number:this.pages.length+1,title:null!==(s=t.title)&&void 0!==s?s:"",rootTocId:null!==(e=t.tocId)&&void 0!==e?e:"root",toc:(null!==(n=t.pageToc)&&void 0!==n?n:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:i?this.buildBreadcrumb(this.nodeByTocId[i]):[]},l=(t,i)=>(i?h.topics:h.hiddenTopics).push(t),d=null!==(r=null===(o=t.pageConfiguration)||void 0===o?void 0:o.parentsVisibility)&&void 0!==r?r:[];return h.breadcrumb.forEach(((t,i)=>{l(t,d[i])})),t.tocId&&l(t.tocId,t.pageConfiguration.isVisible),h.topics.push(...this.tocIds(null!==(a=t.pageToc)&&void 0!==a?a:[])),h}registerPage(t){for(let i of[...t.topics,...t.hiddenTopics])this.pageByTocId[i]||(this.pageByTocId[i]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const i=[t.tocId];for(;null==t?void 0:t.parentTocId;)i.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return i}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class r{convertPaginatedToc(t){return new o(t).build()}}const a=s.css`
2
+ `,h=i.FtReduxStore.get({name:"ft-app-info",reducers:{setBaseUrl:(t,i)=>{t.baseUrl=i.payload},setApiIntegrationIdentifier:(t,i)=>{t.apiIntegrationIdentifier=i.payload},setUiLocale:(t,i)=>{t.uiLocale=i.payload},setAvailableUiLocales:(t,i)=>{t.availableUiLocales=i.payload},setEditorMode:(t,i)=>{t.editorMode=i.payload},setNoCustom:(t,i)=>{t.noCustom=i.payload},setNoCustomComponent:(t,i)=>{t.noCustomComponent=i.payload},setSession:(t,i)=>{t.session=i.payload}},initialState:{uiLocale:document.documentElement.lang||"en-US",availableUiLocales:[],editorMode:!1,noCustom:!1,noCustomComponent:!1}});class l{static build(t){const{baseUrl:i,apiIntegrationIdentifier:s}=h.getState(),e=null!=t?t:s;if(i&&e&&window.fluidtopics)return new window.fluidtopics.FluidTopicsApi(i,e,!0)}static get(t){var i;return null!=t?l.build(t):null!==(i=l.API)&&void 0!==i?i:l.API=l.build()}static await(t){return new Promise((i=>{let s=l.get(t);if(s)i(s);else{const e=h.subscribe((()=>{s=l.get(t),s&&(e(),i(s))}))}}))}}var d;const c=Symbol("clearAfterUnitTest");class u{constructor(t){this.apiProvider=t,this.defaultMessages={},this.cache=new i.CacheRegistry,this.listeners={},this.currentUiLocale="",this[d]=()=>{this.defaultMessages={},this.cache=new i.CacheRegistry,this.listeners={}},this.currentUiLocale=h.getState().uiLocale,h.subscribe((()=>this.clearWhenUiLocaleChanges()))}clearWhenUiLocaleChanges(){const{uiLocale:t}=h.getState();this.currentUiLocale!==t&&(this.currentUiLocale=t,this.cache.clearAll(),this.notifyAll())}addContext(t){const i=t.name.toLowerCase();this.cache.setFinal(i,t),this.notify(i)}getAllContexts(){return this.cache.resolvedValues()}async prepareContext(t,s){var e;if(t=t.toLowerCase(),Object.keys(s).length>0){const n={...null!==(e=this.defaultMessages[t])&&void 0!==e?e:{},...s};i.deepEqual(this.defaultMessages[t],n)||(this.defaultMessages[t]=n,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,s,...e){var n,o,r;t=t.toLowerCase(),this.fetchContext(t);const a=null!==(o=null===(n=this.cache.getNow(t))||void 0===n?void 0:n.messages)&&void 0!==o?o:{};return new i.ParametrizedLabelResolver(null!==(r=this.defaultMessages[t])&&void 0!==r?r:{},a).resolve(s,...e)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(async()=>{var i;return await(null===(i=this.apiProvider())||void 0===i?void 0:i.getFluidTopicsMessageContext(this.currentUiLocale,t))})),await this.notify(t)}catch(t){console.error(t)}}subscribe(t,i){var s;return t=t.toLowerCase(),this.listeners[t]=null!==(s=this.listeners[t])&&void 0!==s?s:new Set,this.listeners[t].add(i),()=>{var s;return null===(s=this.listeners[t])||void 0===s?void 0:s.delete(i)}}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=>i.delay(0).then((()=>t())).catch((()=>null)))))}}d=c,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new u(l.get));const v=window.FluidTopicsI18nService;var p=function(t,i,s,e){for(var n,o=arguments.length,r=o<3?i:null===e?e=Object.getOwnPropertyDescriptor(i,s):e,a=t.length-1;a>=0;a--)(n=t[a])&&(r=(o<3?n(r):o>3?n(i,s,r):n(i,s))||r);return o>3&&r&&Object.defineProperty(i,s,r),r};class g extends i.FtLitElement{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=()=>l.get(),this.cache=new i.CacheRegistry,this.cleanSessionDebouncer=new i.Debouncer}render(){return s.html`
3
3
  <slot></slot>
4
- `}updated(t){super.updated(t),t.has("baseUrl")&&h.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&h.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&h.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&h.actions.setNoCustom(this.noCustom),t.has("editorMode")&&h.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&h.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&h.actions.setSession(this.session),t.has("availableUiLocales")&&h.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>v.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 i=await t.getCurrentSession();return i.idleTimeoutInMillis>0&&this.cleanSessionDebouncer.run((()=>{this.cache.clear("session"),this.session=void 0}),i.idleTimeoutInMillis),i}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))))}}g.elementDefinitions={},g.styles=a,p([e.property()],g.prototype,"baseUrl",void 0),p([e.property()],g.prototype,"apiIntegrationIdentifier",void 0),p([e.property()],g.prototype,"uiLocale",void 0),p([i.jsonProperty([])],g.prototype,"availableUiLocales",void 0),p([e.property({type:Boolean})],g.prototype,"editorMode",void 0),p([e.property({type:Boolean})],g.prototype,"noCustom",void 0),p([e.property({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],g.prototype,"noCustomComponent",void 0),p([e.property({type:Boolean})],g.prototype,"withManualResources",void 0),p([i.jsonProperty([])],g.prototype,"messageContexts",void 0),p([i.jsonProperty(void 0)],g.prototype,"session",void 0),p([e.property({type:Object})],g.prototype,"apiProvider",void 0),i.customElement("ft-app-context")(g);class w{constructor(t,i,s,e){this.converter=t,this.api=i,this.cache=s,this._mapId=e,this.initCache()}static async build(t){return new w(new r,await l.await(),new i.CacheRegistry,t)}get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}async withMapId(t){return this._mapId?t(this._mapId):void 0}initCache(){this.cache.registerFinal("configuration",(()=>this.api.getReaderConfiguration())),this.cache.register("map",(()=>this.withMapId((t=>this.api.getMap(t))))),this.cache.register("enrichedToc",(()=>this.withMapId((t=>this.api.getPages(t).then((t=>this.converter.convertPaginatedToc(t))))))),this.cache.register("ratingSummary",(()=>this.withMapId((t=>this.api.getMapRating(t)))))}clear(){this.cache.clearAll()}getMap(){return this.cache.get("map")}getConfiguration(){return this.cache.get("configuration")}getEnrichedToc(){return this.cache.get("enrichedToc")}get enrichedToc(){return this.cache.getNow("enrichedToc")}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var i;return null===(i=this.enrichedToc)||void 0===i?void 0:i.nodeByTocId[t]}async getPage(t){const i=await this.getEnrichedToc();return i.pages[t-1]||i.pages[0]}async getPageByTocId(t){const i=await this.getEnrichedToc();return i.pageByTocId[t]||i.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t,(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.cache.get("topic-content-"+t,(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,i,s){const e=this.getNavigationData(t,i,s),n="r/"+(e.prettyUrl?e.prettyUrl:`${e.mapId}/${e.tocId}`),o=new URL(n,this.api.tenantBaseUrl);return null!=e.page&&o.searchParams.set("page",`${e.page}`),e.prettyUrlDuplicated&&o.searchParams.set("tocId",e.tocId),null!=e.section&&o.searchParams.set("section",e.section),o.href}getNavigationData(t,i,s){var e,n;t=t||"root";const o=this.enrichedToc,r=null==o?void 0:o.pageByTocId[t],a=null==o?void 0:o.nodeByTocId[t],h=null==a?void 0:a.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(e=null==a?void 0:a.title)&&void 0!==e?e:"",page:i&&r&&r.number!==i?i:void 0,prettyUrl:null!=h?h.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(n=null==o?void 0:o.duplicatedPrettyUrls.has(null!=h?h:""))&&void 0!==n&&n,section:s}}async getAccurateNavigationData(t,i,s){return await this.getEnrichedToc(),this.getNavigationData(t,i,s)}getRatingSummary(){return this.cache.get("ratingSummary")}getMapRating(){return this.getRatingSummary().then((t=>t.publication))}getTopicRating(t){return this.getRatingSummary().then((i=>{var s;return{type:i.topics.type,rating:null===(s=i.topics)||void 0===s?void 0:s.ratings.find((i=>i.tocId===t))}}))}rateMap(t,i){return this.api.rateMap(this.mapId,t,i).then((()=>this.clearRatingIfNecessary()))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.clearRatingIfNecessary()))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,i,s){return this.api.rateTopic(this.mapId,t,i,s).then((()=>this.clearRatingIfNecessary()))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.clearRatingIfNecessary()))}async clearRatingIfNecessary(){const t=h.getState().session;(null==t?void 0:t.sessionAuthenticated)&&this.cache.clear("ratingSummary")}sendTopicFeedback(t,i){return this.api.sendTopicFeedback(this.mapId,t,i)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class m{constructor(t,s){this.store=t,this.reloadDebouncer=new i.Debouncer(10),this.initService(s)}static build(t){return new m((t=>i.FtReduxStore.get({name:"ft-reader-"+t,initialState:{mapId:void 0,visibleTopics:[]},reducers:n}))(t.trim()||"context"),w.build)}async initService(t){this.service=await t(),this.service.mapId=this.store.getState().mapId,this.reload()}setMapId(t){this.store.actions.setMapId(t),this.service&&(this.service.mapId=t),this.reload()}setVisibleTopics(t){this.store.actions.setVisibleTopics(t)}async awaitService(){for(;null==this.service;)await i.delay(5);return this.service}async navigateToTopic(t,i,s){const e=await this.awaitService();let n=await(null!=s?e.getPage(s):e.getPageByTocId(t));this.store.actions.setCurrentPage(n),this.store.actions.setScrollTarget({tocId:t,section:i})}async navigateToPage(t){const i=await this.awaitService();let s=await i.getPage(t);this.store.actions.setCurrentPage(s)}scrollDone(){this.store.actions.setScrollTarget({})}async reload(){var t;this.store.actions.setConfiguration(void 0),this.store.actions.setMap(void 0),this.store.actions.setToc(void 0),this.store.actions.setPagesToc(void 0),this.store.actions.setCurrentPage(void 0),(null===(t=this.service)||void 0===t?void 0:t.mapId)&&await this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,i,s,e,n;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getConfiguration().then((t=>this.store.actions.setConfiguration(t))),null===(i=this.service)||void 0===i?void 0:i.getMap().then((t=>this.store.actions.setMap(t))),null===(s=this.service)||void 0===s?void 0:s.getToc().then((t=>this.store.actions.setToc(t))),null===(e=this.service)||void 0===e?void 0:e.getPagesToc().then((t=>this.store.actions.setPagesToc(t))),null===(n=this.service)||void 0===n?void 0:n.getPaginationConfiguration().then((t=>this.store.actions.setPaginationConfiguration(t)))])}catch(t){this.errorHandler&&this.errorHandler(t)}}}const f=s.css`
4
+ `}updated(t){super.updated(t),t.has("baseUrl")&&h.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&h.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&h.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&h.actions.setNoCustom(this.noCustom),t.has("editorMode")&&h.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&h.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&h.actions.setSession(this.session),t.has("availableUiLocales")&&h.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>v.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 i=await t.getCurrentSession();return i.idleTimeoutInMillis>0&&this.cleanSessionDebouncer.run((()=>{this.cache.clear("session"),this.session=void 0}),i.idleTimeoutInMillis),i}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))))}}g.elementDefinitions={},g.styles=a,p([e.property()],g.prototype,"baseUrl",void 0),p([e.property()],g.prototype,"apiIntegrationIdentifier",void 0),p([e.property()],g.prototype,"uiLocale",void 0),p([i.jsonProperty([])],g.prototype,"availableUiLocales",void 0),p([e.property({type:Boolean})],g.prototype,"editorMode",void 0),p([e.property({type:Boolean})],g.prototype,"noCustom",void 0),p([e.property({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],g.prototype,"noCustomComponent",void 0),p([e.property({type:Boolean})],g.prototype,"withManualResources",void 0),p([i.jsonProperty([])],g.prototype,"messageContexts",void 0),p([i.jsonProperty(void 0)],g.prototype,"session",void 0),p([e.property({type:Object})],g.prototype,"apiProvider",void 0),i.customElement("ft-app-context")(g);class w{constructor(t,i,s,e){this.converter=t,this.api=i,this.cache=s,this._mapId=e,this.initCache()}static async build(t){return new w(new r,await l.await(),new i.CacheRegistry,t)}get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}async withMapId(t){return this._mapId?t(this._mapId):void 0}initCache(){this.cache.registerFinal("configuration",(()=>this.api.getReaderConfiguration())),this.cache.register("map",(()=>this.withMapId((t=>this.api.getMap(t))))),this.cache.register("enrichedToc",(()=>this.withMapId((t=>this.api.getPages(t).then((t=>this.converter.convertPaginatedToc(t))))))),this.cache.register("ratingSummary",(()=>{var t;return(null===(t=h.getState().session)||void 0===t?void 0:t.profile.roles.includes("RATING_USER"))?this.withMapId((t=>this.api.getMapRating(t))):Promise.resolve()}))}clear(){this.cache.clearAll()}getMap(){return this.cache.get("map")}getConfiguration(){return this.cache.get("configuration")}getEnrichedToc(){return this.cache.get("enrichedToc")}get enrichedToc(){return this.cache.getNow("enrichedToc")}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var i;return null===(i=this.enrichedToc)||void 0===i?void 0:i.nodeByTocId[t]}async getPage(t){const i=await this.getEnrichedToc();return i.pages[t-1]||i.pages[0]}async getPageByTocId(t){const i=await this.getEnrichedToc();return i.pageByTocId[t]||i.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t,(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.cache.get("topic-content-"+t,(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,i,s){const e=this.getNavigationData(t,i,s),n="r/"+(e.prettyUrl?e.prettyUrl:`${e.mapId}/${e.tocId}`),o=new URL(n,this.api.tenantBaseUrl);return null!=e.page&&o.searchParams.set("page",`${e.page}`),e.prettyUrlDuplicated&&o.searchParams.set("tocId",e.tocId),null!=e.section&&o.searchParams.set("section",e.section),o.href}getNavigationData(t,i,s){var e,n;t=t||"root";const o=this.enrichedToc,r=null==o?void 0:o.pageByTocId[t],a=null==o?void 0:o.nodeByTocId[t],h=null==a?void 0:a.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(e=null==a?void 0:a.title)&&void 0!==e?e:"",page:i&&r&&r.number!==i?i:void 0,prettyUrl:null!=h?h.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(n=null==o?void 0:o.duplicatedPrettyUrls.has(null!=h?h:""))&&void 0!==n&&n,section:s}}async getAccurateNavigationData(t,i,s){return await this.getEnrichedToc(),this.getNavigationData(t,i,s)}getRatingSummary(){return this.cache.get("ratingSummary")}getMapRating(){return this.getRatingSummary().then((t=>null==t?void 0:t.publication))}getTopicRating(t){return this.getRatingSummary().then((i=>{var s;return i?{type:i.topics.type,rating:null===(s=i.topics)||void 0===s?void 0:s.ratings.find((i=>i.tocId===t))}:void 0}))}rateMap(t,i){return this.api.rateMap(this.mapId,t,i).then((()=>this.clearRatingIfNecessary()))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.clearRatingIfNecessary()))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,i,s){return this.api.rateTopic(this.mapId,t,i,s).then((()=>this.clearRatingIfNecessary()))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.clearRatingIfNecessary()))}async clearRatingIfNecessary(){const t=h.getState().session;(null==t?void 0:t.sessionAuthenticated)&&this.cache.clear("ratingSummary")}sendTopicFeedback(t,i){return this.api.sendTopicFeedback(this.mapId,t,i)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class m{constructor(t,s){this.store=t,this.reloadDebouncer=new i.Debouncer(10),this.initService(s)}static build(t){return new m((t=>i.FtReduxStore.get({name:"ft-reader-"+t,initialState:{mapId:void 0,visibleTopics:[]},reducers:n}))(t.trim()||"context"),w.build)}async initService(t){this.service=await t(),this.service.mapId=this.store.getState().mapId,this.reload()}setMapId(t){this.store.actions.setMapId(t),this.service&&(this.service.mapId=t),this.reload()}setVisibleTopics(t){this.store.actions.setVisibleTopics(t)}async awaitService(){for(;null==this.service;)await i.delay(5);return this.service}async navigateToTopic(t,i,s){const e=await this.awaitService();let n=await(null!=s?e.getPage(s):e.getPageByTocId(t));this.store.actions.setCurrentPage(n),this.store.actions.setScrollTarget({tocId:t,section:i})}async navigateToPage(t){const i=await this.awaitService();let s=await i.getPage(t);this.store.actions.setCurrentPage(s)}scrollDone(){this.store.actions.setScrollTarget({})}async reload(){var t;this.store.actions.setConfiguration(void 0),this.store.actions.setMap(void 0),this.store.actions.setToc(void 0),this.store.actions.setPagesToc(void 0),this.store.actions.setCurrentPage(void 0),(null===(t=this.service)||void 0===t?void 0:t.mapId)&&await this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,i,s,e,n;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getConfiguration().then((t=>this.store.actions.setConfiguration(t))),null===(i=this.service)||void 0===i?void 0:i.getMap().then((t=>this.store.actions.setMap(t))),null===(s=this.service)||void 0===s?void 0:s.getToc().then((t=>this.store.actions.setToc(t))),null===(e=this.service)||void 0===e?void 0:e.getPagesToc().then((t=>this.store.actions.setPagesToc(t))),null===(n=this.service)||void 0===n?void 0:n.getPaginationConfiguration().then((t=>this.store.actions.setPaginationConfiguration(t)))])}catch(t){this.errorHandler&&this.errorHandler(t)}}}const f=s.css`
5
5
  `;var y=function(t,i,s,e){for(var n,o=arguments.length,r=o<3?i:null===e?e=Object.getOwnPropertyDescriptor(i,s):e,a=t.length-1;a>=0;a--)(n=t[a])&&(r=(o<3?n(r):o>3?n(i,s,r):n(i,s))||r);return o>3&&r&&Object.defineProperty(i,s,r),r};class b extends CustomEvent{constructor(t,i){super("ft-reader-map-loaded",{detail:{map:t,toc:i}})}}class I extends CustomEvent{constructor(t,i){super("ft-reader-visible-topics-change",{detail:{visibleTopics:i}})}}class T extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}class C extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}}class U extends Event{constructor(){super("ft-reader-map-not-found")}}class S extends Event{constructor(){super("ft-reader-map-unauthorized")}}class P extends i.FtLitElementRedux{constructor(){super(),this.apiIntegrationIdentifier="ft-reader",this.visibleTopics=[],this.navigationDebouncer=new i.Debouncer(5),this.addStore(h)}render(){return s.html`
6
6
  ${this.importStyleIfNeeded()}
7
7
  <slot @register-ft-reader-component=${this.registerComponent}></slot>
@@ -40,7 +40,7 @@ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.cust
40
40
  * Copyright 2017 Google LLC
41
41
  * SPDX-License-Identifier: BSD-3-Clause
42
42
  */
43
- var M;R.finalized=!0,R.elementProperties=new Map,R.elementStyles=[],R.shadowRootOptions={mode:"open"},null==S||S({ReactiveElement:R}),(null!==(g=x.reactiveElementVersions)&&void 0!==g?g:x.reactiveElementVersions=[]).push("1.4.1");const U=window,T=U.trustedTypes,A=T?T.createPolicy("lit-html",{createHTML:t=>t}):void 0,I=`lit$${(Math.random()+"").slice(9)}$`,$="?"+I,k=`<${$}>`,P=document,L=(t="")=>P.createComment(t),F=t=>null===t||"object"!=typeof t&&"function"!=typeof t,_=Array.isArray,B=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,D=/-->/g,W=/>/g,K=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),H=/'/g,z=/"/g,V=/^(?:script|style|textarea|title)$/i,J=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),Z=Symbol.for("lit-noChange"),q=Symbol.for("lit-nothing"),X=new WeakMap,G=P.createTreeWalker(P,129,null,!1);class Q{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const s=t.length-1,a=this.parts,[u,c]=((t,e)=>{const i=t.length-1,n=[];let r,o=2===e?"<svg>":"",s=B;for(let e=0;e<i;e++){const i=t[e];let a,u,c=-1,l=0;for(;l<i.length&&(s.lastIndex=l,u=s.exec(i),null!==u);)l=s.lastIndex,s===B?"!--"===u[1]?s=D:void 0!==u[1]?s=W:void 0!==u[2]?(V.test(u[2])&&(r=RegExp("</"+u[2],"g")),s=K):void 0!==u[3]&&(s=K):s===K?">"===u[0]?(s=null!=r?r:B,c=-1):void 0===u[1]?c=-2:(c=s.lastIndex-u[2].length,a=u[1],s=void 0===u[3]?K:'"'===u[3]?z:H):s===z||s===H?s=K:s===D||s===W?s=B:(s=K,r=void 0);const h=s===K&&t[e+1].startsWith("/>")?" ":"";o+=s===B?i+k:c>=0?(n.push(a),i.slice(0,c)+"$lit$"+i.slice(c)+I+h):i+I+(-2===c?(n.push(void 0),e):h)}const a=o+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==A?A.createHTML(a):a,n]})(t,e);if(this.el=Q.createElement(u,i),G.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=G.nextNode())&&a.length<s;){if(1===n.nodeType){if(n.hasAttributes()){const t=[];for(const e of n.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(I)){const i=c[o++];if(t.push(e),void 0!==i){const t=n.getAttribute(i.toLowerCase()+"$lit$").split(I),e=/([.?@])?(.*)/.exec(i);a.push({type:1,index:r,name:e[2],strings:t,ctor:"."===e[1]?nt:"?"===e[1]?ot:"@"===e[1]?st:it})}else a.push({type:6,index:r})}for(const e of t)n.removeAttribute(e)}if(V.test(n.tagName)){const t=n.textContent.split(I),e=t.length-1;if(e>0){n.textContent=T?T.emptyScript:"";for(let i=0;i<e;i++)n.append(t[i],L()),G.nextNode(),a.push({type:2,index:++r});n.append(t[e],L())}}}else if(8===n.nodeType)if(n.data===$)a.push({type:2,index:r});else{let t=-1;for(;-1!==(t=n.data.indexOf(I,t+1));)a.push({type:7,index:r}),t+=I.length-1}r++}}static createElement(t,e){const i=P.createElement("template");return i.innerHTML=t,i}}function Y(t,e,i=t,n){var r,o,s,a;if(e===Z)return e;let u=void 0!==n?null===(r=i._$Co)||void 0===r?void 0:r[n]:i._$Cl;const c=F(e)?void 0:e._$litDirective$;return(null==u?void 0:u.constructor)!==c&&(null===(o=null==u?void 0:u._$AO)||void 0===o||o.call(u,!1),void 0===c?u=void 0:(u=new c(t),u._$AT(t,i,n)),void 0!==n?(null!==(s=(a=i)._$Co)&&void 0!==s?s:a._$Co=[])[n]=u:i._$Cl=u),void 0!==u&&(e=Y(t,u._$AS(t,e.values),u,n)),e}class tt{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:i},parts:n}=this._$AD,r=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:P).importNode(i,!0);G.currentNode=r;let o=G.nextNode(),s=0,a=0,u=n[0];for(;void 0!==u;){if(s===u.index){let e;2===u.type?e=new et(o,o.nextSibling,this,t):1===u.type?e=new u.ctor(o,u.name,u.strings,this,t):6===u.type&&(e=new at(o,this,t)),this.u.push(e),u=n[++a]}s!==(null==u?void 0:u.index)&&(o=G.nextNode(),s++)}return r}p(t){let e=0;for(const i of this.u)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class et{constructor(t,e,i,n){var r;this.type=2,this._$AH=q,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=n,this._$Cm=null===(r=null==n?void 0:n.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=Y(this,t,e),F(t)?t===q||null==t||""===t?(this._$AH!==q&&this._$AR(),this._$AH=q):t!==this._$AH&&t!==Z&&this.g(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>_(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!==q&&F(this._$AH)?this._$AA.nextSibling.data=t:this.T(P.createTextNode(t)),this._$AH=t}$(t){var e;const{values:i,_$litType$:n}=t,r="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=Q.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===r)this._$AH.p(i);else{const t=new tt(r,this),e=t.v(this.options);t.p(i),this.T(e),this._$AH=t}}_$AC(t){let e=X.get(t.strings);return void 0===e&&X.set(t.strings,e=new Q(t)),e}k(t){_(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,n=0;for(const r of t)n===e.length?e.push(i=new et(this.O(L()),this.O(L()),this,this.options)):i=e[n],i._$AI(r),n++;n<e.length&&(this._$AR(i&&i._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.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 it{constructor(t,e,i,n,r){this.type=1,this._$AH=q,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=r,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=q}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(void 0===r)t=Y(this,t,e,0),o=!F(t)||t!==this._$AH&&t!==Z,o&&(this._$AH=t);else{const n=t;let s,a;for(t=r[0],s=0;s<r.length-1;s++)a=Y(this,n[i+s],e,s),a===Z&&(a=this._$AH[s]),o||(o=!F(a)||a!==this._$AH[s]),a===q?t=q:t!==q&&(t+=(null!=a?a:"")+r[s+1]),this._$AH[s]=a}o&&!n&&this.j(t)}j(t){t===q?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class nt extends it{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===q?void 0:t}}const rt=T?T.emptyScript:"";class ot extends it{constructor(){super(...arguments),this.type=4}j(t){t&&t!==q?this.element.setAttribute(this.name,rt):this.element.removeAttribute(this.name)}}class st extends it{constructor(t,e,i,n,r){super(t,e,i,n,r),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=Y(this,t,e,0))&&void 0!==i?i:q)===Z)return;const n=this._$AH,r=t===q&&n!==q||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,o=t!==q&&(n===q||r);r&&this.element.removeEventListener(this.name,this,n),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class at{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){Y(this,t)}}const ut=U.litHtmlPolyfillSupport;null==ut||ut(Q,et),(null!==(M=U.litHtmlVersions)&&void 0!==M?M:U.litHtmlVersions=[]).push("2.4.0");
43
+ var M;R.finalized=!0,R.elementProperties=new Map,R.elementStyles=[],R.shadowRootOptions={mode:"open"},null==S||S({ReactiveElement:R}),(null!==(g=x.reactiveElementVersions)&&void 0!==g?g:x.reactiveElementVersions=[]).push("1.4.1");const U=window,T=U.trustedTypes,A=T?T.createPolicy("lit-html",{createHTML:t=>t}):void 0,I=`lit$${(Math.random()+"").slice(9)}$`,$="?"+I,k=`<${$}>`,P=document,L=(t="")=>P.createComment(t),F=t=>null===t||"object"!=typeof t&&"function"!=typeof t,_=Array.isArray,B=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,D=/-->/g,W=/>/g,K=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),H=/'/g,z=/"/g,V=/^(?:script|style|textarea|title)$/i,J=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),Z=Symbol.for("lit-noChange"),q=Symbol.for("lit-nothing"),G=new WeakMap,X=P.createTreeWalker(P,129,null,!1);class Q{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const s=t.length-1,a=this.parts,[u,c]=((t,e)=>{const i=t.length-1,n=[];let r,o=2===e?"<svg>":"",s=B;for(let e=0;e<i;e++){const i=t[e];let a,u,c=-1,l=0;for(;l<i.length&&(s.lastIndex=l,u=s.exec(i),null!==u);)l=s.lastIndex,s===B?"!--"===u[1]?s=D:void 0!==u[1]?s=W:void 0!==u[2]?(V.test(u[2])&&(r=RegExp("</"+u[2],"g")),s=K):void 0!==u[3]&&(s=K):s===K?">"===u[0]?(s=null!=r?r:B,c=-1):void 0===u[1]?c=-2:(c=s.lastIndex-u[2].length,a=u[1],s=void 0===u[3]?K:'"'===u[3]?z:H):s===z||s===H?s=K:s===D||s===W?s=B:(s=K,r=void 0);const h=s===K&&t[e+1].startsWith("/>")?" ":"";o+=s===B?i+k:c>=0?(n.push(a),i.slice(0,c)+"$lit$"+i.slice(c)+I+h):i+I+(-2===c?(n.push(void 0),e):h)}const a=o+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==A?A.createHTML(a):a,n]})(t,e);if(this.el=Q.createElement(u,i),X.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=X.nextNode())&&a.length<s;){if(1===n.nodeType){if(n.hasAttributes()){const t=[];for(const e of n.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(I)){const i=c[o++];if(t.push(e),void 0!==i){const t=n.getAttribute(i.toLowerCase()+"$lit$").split(I),e=/([.?@])?(.*)/.exec(i);a.push({type:1,index:r,name:e[2],strings:t,ctor:"."===e[1]?nt:"?"===e[1]?ot:"@"===e[1]?st:it})}else a.push({type:6,index:r})}for(const e of t)n.removeAttribute(e)}if(V.test(n.tagName)){const t=n.textContent.split(I),e=t.length-1;if(e>0){n.textContent=T?T.emptyScript:"";for(let i=0;i<e;i++)n.append(t[i],L()),X.nextNode(),a.push({type:2,index:++r});n.append(t[e],L())}}}else if(8===n.nodeType)if(n.data===$)a.push({type:2,index:r});else{let t=-1;for(;-1!==(t=n.data.indexOf(I,t+1));)a.push({type:7,index:r}),t+=I.length-1}r++}}static createElement(t,e){const i=P.createElement("template");return i.innerHTML=t,i}}function Y(t,e,i=t,n){var r,o,s,a;if(e===Z)return e;let u=void 0!==n?null===(r=i._$Co)||void 0===r?void 0:r[n]:i._$Cl;const c=F(e)?void 0:e._$litDirective$;return(null==u?void 0:u.constructor)!==c&&(null===(o=null==u?void 0:u._$AO)||void 0===o||o.call(u,!1),void 0===c?u=void 0:(u=new c(t),u._$AT(t,i,n)),void 0!==n?(null!==(s=(a=i)._$Co)&&void 0!==s?s:a._$Co=[])[n]=u:i._$Cl=u),void 0!==u&&(e=Y(t,u._$AS(t,e.values),u,n)),e}class tt{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:i},parts:n}=this._$AD,r=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:P).importNode(i,!0);X.currentNode=r;let o=X.nextNode(),s=0,a=0,u=n[0];for(;void 0!==u;){if(s===u.index){let e;2===u.type?e=new et(o,o.nextSibling,this,t):1===u.type?e=new u.ctor(o,u.name,u.strings,this,t):6===u.type&&(e=new at(o,this,t)),this.u.push(e),u=n[++a]}s!==(null==u?void 0:u.index)&&(o=X.nextNode(),s++)}return r}p(t){let e=0;for(const i of this.u)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class et{constructor(t,e,i,n){var r;this.type=2,this._$AH=q,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=n,this._$Cm=null===(r=null==n?void 0:n.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=Y(this,t,e),F(t)?t===q||null==t||""===t?(this._$AH!==q&&this._$AR(),this._$AH=q):t!==this._$AH&&t!==Z&&this.g(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>_(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!==q&&F(this._$AH)?this._$AA.nextSibling.data=t:this.T(P.createTextNode(t)),this._$AH=t}$(t){var e;const{values:i,_$litType$:n}=t,r="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=Q.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===r)this._$AH.p(i);else{const t=new tt(r,this),e=t.v(this.options);t.p(i),this.T(e),this._$AH=t}}_$AC(t){let e=G.get(t.strings);return void 0===e&&G.set(t.strings,e=new Q(t)),e}k(t){_(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,n=0;for(const r of t)n===e.length?e.push(i=new et(this.O(L()),this.O(L()),this,this.options)):i=e[n],i._$AI(r),n++;n<e.length&&(this._$AR(i&&i._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.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 it{constructor(t,e,i,n,r){this.type=1,this._$AH=q,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=r,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=q}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(void 0===r)t=Y(this,t,e,0),o=!F(t)||t!==this._$AH&&t!==Z,o&&(this._$AH=t);else{const n=t;let s,a;for(t=r[0],s=0;s<r.length-1;s++)a=Y(this,n[i+s],e,s),a===Z&&(a=this._$AH[s]),o||(o=!F(a)||a!==this._$AH[s]),a===q?t=q:t!==q&&(t+=(null!=a?a:"")+r[s+1]),this._$AH[s]=a}o&&!n&&this.j(t)}j(t){t===q?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class nt extends it{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===q?void 0:t}}const rt=T?T.emptyScript:"";class ot extends it{constructor(){super(...arguments),this.type=4}j(t){t&&t!==q?this.element.setAttribute(this.name,rt):this.element.removeAttribute(this.name)}}class st extends it{constructor(t,e,i,n,r){super(t,e,i,n,r),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=Y(this,t,e,0))&&void 0!==i?i:q)===Z)return;const n=this._$AH,r=t===q&&n!==q||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,o=t!==q&&(n===q||r);r&&this.element.removeEventListener(this.name,this,n),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class at{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){Y(this,t)}}const ut=U.litHtmlPolyfillSupport;null==ut||ut(Q,et),(null!==(M=U.litHtmlVersions)&&void 0!==M?M:U.litHtmlVersions=[]).push("2.4.0");
44
44
  /**
45
45
  * @license
46
46
  * Copyright 2017 Google LLC
@@ -89,11 +89,11 @@ function(t){return class extends t{createRenderRoot(){const t=this.constructor,{
89
89
  display: inline-block;
90
90
  width: 0;
91
91
  }
92
- `;class bt{constructor(t,e){this.defaultLabels=t,this.labels=e}resolve(t,...e){var i,n;t=this.resolvePluralKey(t,e);let r=null!==(n=null!==(i=this.labels[t])&&void 0!==i?i:this.defaultLabels[t])&&void 0!==n?n:"";return e.forEach(((t,e)=>r=r.replace(new RegExp(`\\{${e}([^}]*)\\}`,"g"),((e,i)=>this.formatValue(t,i))))),r}resolvePluralKey(t,e){for(let i of e)if("number"==typeof i){const e=`${t}[\\=${i}]`;if(e in this.labels||e in this.defaultLabels)return e}return t}formatValue(t,e){return t instanceof Date?this.formatDate(t,e):null!=t?t:""}formatDate(t,e){const i=i=>(null==e?void 0:e.includes("date"))?t.toLocaleDateString(i):(null==e?void 0:e.includes("time"))?t.toLocaleTimeString(i):t.toLocaleString(i);try{return i(document.documentElement.lang)}catch(t){return i()}}}function yt(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+t+(i.length?" "+i.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function wt(t){return!!t&&!!t[re]}function mt(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;var i=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return i===Object||"function"==typeof i&&Function.toString.call(i)===oe}(t)||Array.isArray(t)||!!t[ne]||!!t.constructor[ne]||jt(t)||Ct(t))}function gt(t,e,i){void 0===i&&(i=!1),0===xt(t)?(i?Object.keys:se)(t).forEach((function(n){i&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach((function(i,n){return e(n,i,t)}))}function xt(t){var e=t[re];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:jt(t)?2:Ct(t)?3:0}function Ot(t,e){return 2===xt(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Et(t,e,i){var n=xt(t);2===n?t.set(e,i):3===n?(t.delete(e),t.add(i)):t[e]=i}function St(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function jt(t){return Yt&&t instanceof Map}function Ct(t){return te&&t instanceof Set}function Nt(t){return t.o||t.t}function Rt(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=ae(t);delete e[re];for(var i=se(e),n=0;n<i.length;n++){var r=i[n],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 Mt(t,e){return void 0===e&&(e=!1),Tt(t)||wt(t)||!mt(t)||(xt(t)>1&&(t.set=t.add=t.clear=t.delete=Ut),Object.freeze(t),e&&gt(t,(function(t,e){return Mt(e,!0)}),!0)),t}function Ut(){yt(2)}function Tt(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function At(t){var e=ue[t];return e||yt(18,t),e}function It(){return Gt}function $t(t,e){e&&(At("Patches"),t.u=[],t.s=[],t.v=e)}function kt(t){Pt(t),t.p.forEach(Ft),t.p=null}function Pt(t){t===Gt&&(Gt=t.l)}function Lt(t){return Gt={p:[],l:Gt,h:t,m:!0,_:0}}function Ft(t){var e=t[re];0===e.i||1===e.i?e.j():e.O=!0}function _t(t,e){e._=e.p.length;var i=e.p[0],n=void 0!==t&&t!==i;return e.h.g||At("ES5").S(e,t,n),n?(i[re].P&&(kt(e),yt(4)),mt(t)&&(t=Bt(e,t),e.l||Wt(e,t)),e.u&&At("Patches").M(i[re].t,t,e.u,e.s)):t=Bt(e,i,[]),kt(e),e.u&&e.v(e.u,e.s),t!==ie?t:void 0}function Bt(t,e,i){if(Tt(e))return e;var n=e[re];if(!n)return gt(e,(function(r,o){return Dt(t,n,e,r,o,i)}),!0),e;if(n.A!==t)return e;if(!n.P)return Wt(t,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var r=4===n.i||5===n.i?n.o=Rt(n.k):n.o;gt(3===n.i?new Set(r):r,(function(e,o){return Dt(t,n,r,e,o,i)})),Wt(t,r,!1),i&&t.u&&At("Patches").R(n,i,t.u,t.s)}return n.o}function Dt(t,e,i,n,r,o){if(wt(r)){var s=Bt(t,r,o&&e&&3!==e.i&&!Ot(e.D,n)?o.concat(n):void 0);if(Et(i,n,s),!wt(s))return;t.m=!1}if(mt(r)&&!Tt(r)){if(!t.h.F&&t._<1)return;Bt(t,r),e&&e.A.l||Wt(t,r)}}function Wt(t,e,i){void 0===i&&(i=!1),t.h.F&&t.m&&Mt(e,i)}function Kt(t,e){var i=t[re];return(i?Nt(i):t)[e]}function Ht(t,e){if(e in t)for(var i=Object.getPrototypeOf(t);i;){var n=Object.getOwnPropertyDescriptor(i,e);if(n)return n;i=Object.getPrototypeOf(i)}}function zt(t){t.P||(t.P=!0,t.l&&zt(t.l))}function Vt(t){t.o||(t.o=Rt(t.t))}function Jt(t,e,i){var n=jt(e)?At("MapSet").N(e,i):Ct(e)?At("MapSet").T(e,i):t.g?function(t,e){var i=Array.isArray(t),n={i:i?1:0,A:e?e.A:It(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},r=n,o=ce;i&&(r=[n],o=le);var s=Proxy.revocable(r,o),a=s.revoke,u=s.proxy;return n.k=u,n.j=a,u}(e,i):At("ES5").J(e,i);return(i?i.A:It()).p.push(n),n}function Zt(t){return wt(t)||yt(22,t),function t(e){if(!mt(e))return e;var i,n=e[re],r=xt(e);if(n){if(!n.P&&(n.i<4||!At("ES5").K(n)))return n.t;n.I=!0,i=qt(e,r),n.I=!1}else i=qt(e,r);return gt(i,(function(e,r){n&&function(t,e){return 2===xt(t)?t.get(e):t[e]}(n.t,e)===r||Et(i,e,t(r))})),3===r?new Set(i):i}(t)}function qt(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Rt(t)}var Xt,Gt,Qt="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),Yt="undefined"!=typeof Map,te="undefined"!=typeof Set,ee="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,ie=Qt?Symbol.for("immer-nothing"):((Xt={})["immer-nothing"]=!0,Xt),ne=Qt?Symbol.for("immer-draftable"):"__$immer_draftable",re=Qt?Symbol.for("immer-state"):"__$immer_state",oe=""+Object.prototype.constructor,se="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,ae=Object.getOwnPropertyDescriptors||function(t){var e={};return se(t).forEach((function(i){e[i]=Object.getOwnPropertyDescriptor(t,i)})),e},ue={},ce={get:function(t,e){if(e===re)return t;var i=Nt(t);if(!Ot(i,e))return function(t,e,i){var n,r=Ht(e,i);return r?"value"in r?r.value:null===(n=r.get)||void 0===n?void 0:n.call(t.k):void 0}(t,i,e);var n=i[e];return t.I||!mt(n)?n:n===Kt(t.t,e)?(Vt(t),t.o[e]=Jt(t.A.h,n,t)):n},has:function(t,e){return e in Nt(t)},ownKeys:function(t){return Reflect.ownKeys(Nt(t))},set:function(t,e,i){var n=Ht(Nt(t),e);if(null==n?void 0:n.set)return n.set.call(t.k,i),!0;if(!t.P){var r=Kt(Nt(t),e),o=null==r?void 0:r[re];if(o&&o.t===i)return t.o[e]=i,t.D[e]=!1,!0;if(St(i,r)&&(void 0!==i||Ot(t.t,e)))return!0;Vt(t),zt(t)}return t.o[e]===i&&"number"!=typeof i&&(void 0!==i||e in t.o)||(t.o[e]=i,t.D[e]=!0,!0)},deleteProperty:function(t,e){return void 0!==Kt(t.t,e)||e in t.t?(t.D[e]=!1,Vt(t),zt(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var i=Nt(t),n=Reflect.getOwnPropertyDescriptor(i,e);return n?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:n.enumerable,value:i[e]}:n},defineProperty:function(){yt(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){yt(12)}},le={};gt(ce,(function(t,e){le[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),le.deleteProperty=function(t,e){return le.set.call(this,t,e,void 0)},le.set=function(t,e,i){return ce.set.call(this,t[0],e,i,t[0])};var he=function(){function t(t){var e=this;this.g=ee,this.F=!0,this.produce=function(t,i,n){if("function"==typeof t&&"function"!=typeof i){var r=i;i=t;var o=e;return function(t){var e=this;void 0===t&&(t=r);for(var n=arguments.length,s=Array(n>1?n-1:0),a=1;a<n;a++)s[a-1]=arguments[a];return o.produce(t,(function(t){var n;return(n=i).call.apply(n,[e,t].concat(s))}))}}var s;if("function"!=typeof i&&yt(6),void 0!==n&&"function"!=typeof n&&yt(7),mt(t)){var a=Lt(e),u=Jt(e,t,void 0),c=!0;try{s=i(u),c=!1}finally{c?kt(a):Pt(a)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(t){return $t(a,n),_t(t,a)}),(function(t){throw kt(a),t})):($t(a,n),_t(s,a))}if(!t||"object"!=typeof t){if(void 0===(s=i(t))&&(s=t),s===ie&&(s=void 0),e.F&&Mt(s,!0),n){var l=[],h=[];At("Patches").M(t,s,l,h),n(l,h)}return s}yt(21,t)},this.produceWithPatches=function(t,i){if("function"==typeof t)return function(i){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return e.produceWithPatches(i,(function(e){return t.apply(void 0,[e].concat(r))}))};var n,r,o=e.produce(t,i,(function(t,e){n=t,r=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,n,r]})):[o,n,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){mt(t)||yt(8),wt(t)&&(t=Zt(t));var e=Lt(this),i=Jt(this,t,void 0);return i[re].C=!0,Pt(e),i},e.finishDraft=function(t,e){var i=(t&&t[re]).A;return $t(i,e),_t(void 0,i)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!ee&&yt(20),this.g=t},e.applyPatches=function(t,e){var i;for(i=e.length-1;i>=0;i--){var n=e[i];if(0===n.path.length&&"replace"===n.op){t=n.value;break}}i>-1&&(e=e.slice(i+1));var r=At("Patches").$;return wt(t)?r(t,e):this.produce(t,(function(t){return r(t,e)}))},t}(),de=new he,fe=de.produce;de.produceWithPatches.bind(de),de.setAutoFreeze.bind(de),de.setUseProxies.bind(de),de.applyPatches.bind(de),de.createDraft.bind(de),de.finishDraft.bind(de);var ve=fe;function pe(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function be(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function ye(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?be(Object(i),!0).forEach((function(e){pe(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):be(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,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 me="function"==typeof Symbol&&Symbol.observable||"@@observable",ge=function(){return Math.random().toString(36).substring(7).split("").join(".")},xe={INIT:"@@redux/INIT"+ge(),REPLACE:"@@redux/REPLACE"+ge(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+ge()}};function Oe(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 Ee(t,e,i){var n;if("function"==typeof e&&"function"==typeof i||"function"==typeof i&&"function"==typeof arguments[3])throw new Error(we(0));if("function"==typeof e&&void 0===i&&(i=e,e=void 0),void 0!==i){if("function"!=typeof i)throw new Error(we(1));return i(Ee)(t,e)}if("function"!=typeof t)throw new Error(we(2));var r=t,o=e,s=[],a=s,u=!1;function c(){a===s&&(a=s.slice())}function l(){if(u)throw new Error(we(3));return o}function h(t){if("function"!=typeof t)throw new Error(we(4));if(u)throw new Error(we(5));var e=!0;return c(),a.push(t),function(){if(e){if(u)throw new Error(we(6));e=!1,c();var i=a.indexOf(t);a.splice(i,1),s=null}}}function d(t){if(!Oe(t))throw new Error(we(7));if(void 0===t.type)throw new Error(we(8));if(u)throw new Error(we(9));try{u=!0,o=r(o,t)}finally{u=!1}for(var e=s=a,i=0;i<e.length;i++){(0,e[i])()}return t}function f(t){if("function"!=typeof t)throw new Error(we(10));r=t,d({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 i(){t.next&&t.next(l())}return i(),{unsubscribe:e(i)}}})[me]=function(){return this},t}return d({type:xe.INIT}),(n={dispatch:d,subscribe:h,getState:l,replaceReducer:f})[me]=v,n}function Se(t){for(var e=Object.keys(t),i={},n=0;n<e.length;n++){var r=e[n];"function"==typeof t[r]&&(i[r]=t[r])}var o,s=Object.keys(i);try{!function(t){Object.keys(t).forEach((function(e){var i=t[e];if(void 0===i(void 0,{type:xe.INIT}))throw new Error(we(12));if(void 0===i(void 0,{type:xe.PROBE_UNKNOWN_ACTION()}))throw new Error(we(13))}))}(i)}catch(t){o=t}return function(t,e){if(void 0===t&&(t={}),o)throw o;for(var n=!1,r={},a=0;a<s.length;a++){var u=s[a],c=i[u],l=t[u],h=c(l,e);if(void 0===h)throw e&&e.type,new Error(we(14));r[u]=h,n=n||h!==l}return(n=n||s.length!==Object.keys(t).length)?r:t}}function je(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];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 Ce(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return function(t){return function(){var i=t.apply(void 0,arguments),n=function(){throw new Error(we(15))},r={getState:i.getState,dispatch:function(){return n.apply(void 0,arguments)}},o=e.map((function(t){return t(r)}));return n=je.apply(void 0,o)(i.dispatch),ye(ye({},i),{},{dispatch:n})}}}function Ne(t){return function(e){var i=e.dispatch,n=e.getState;return function(e){return function(r){return"function"==typeof r?r(i,n,t):e(r)}}}}var Re=Ne();Re.withExtraArgument=Ne;var Me,Ue=Re,Te=(Me=function(t,e){return Me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},Me(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 i(){this.constructor=t}Me(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),Ae=function(t,e){for(var i=0,n=e.length,r=t.length;i<n;i++,r++)t[r]=e[i];return t},Ie=Object.defineProperty,$e=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,Le=function(t,e,i){return e in t?Ie(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i},Fe=function(t,e){for(var i in e||(e={}))ke.call(e,i)&&Le(t,i,e[i]);if($e)for(var n=0,r=$e(e);n<r.length;n++){i=r[n];Pe.call(e,i)&&Le(t,i,e[i])}return t},_e="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?je:je.apply(null,arguments)};var Be=function(t){function e(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];var r=t.apply(this,i)||this;return Object.setPrototypeOf(r,e.prototype),r}return Te(e,t),Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];return t.prototype.concat.apply(this,e)},e.prototype.prepend=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return 1===t.length&&Array.isArray(t[0])?new(e.bind.apply(e,Ae([void 0],t[0].concat(this)))):new(e.bind.apply(e,Ae([void 0],t.concat(this))))},e}(Array);function De(t){return mt(t)?ve(t,(function(){})):t}function We(){return function(t){return function(t){void 0===t&&(t={});var e=t.thunk,i=void 0===e||e;t.immutableCheck,t.serializableCheck;var n=new Be;i&&(!function(t){return"boolean"==typeof t}(i)?n.push(Ue.withExtraArgument(i.extraArgument)):n.push(Ue));return n}(t)}}function Ke(t){var e,i=We(),n=t||{},r=n.reducer,o=void 0===r?void 0:r,s=n.middleware,a=void 0===s?i():s,u=n.devTools,c=void 0===u||u,l=n.preloadedState,h=void 0===l?void 0:l,d=n.enhancers,f=void 0===d?void 0:d;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 i=e;null!==Object.getPrototypeOf(i);)i=Object.getPrototypeOf(i);return e===i}(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=Se(o)}var v=a;"function"==typeof v&&(v=v(i));var p=Ce.apply(void 0,v),b=je;c&&(b=_e(Fe({trace:!1},"object"==typeof c&&c)));var y=[p];return Array.isArray(f)?y=Ae([p],f):"function"==typeof f&&(y=f(y)),Ee(e,h,b.apply(void 0,y))}function He(t,e){function i(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];if(e){var r=e.apply(void 0,i);if(!r)throw new Error("prepareAction did not return an object");return Fe(Fe({type:t,payload:r.payload},"meta"in r&&{meta:r.meta}),"error"in r&&{error:r.error})}return{type:t,payload:i[0]}}return i.toString=function(){return""+t},i.type=t,i.match=function(e){return e.type===t},i}function ze(t){var e,i={},n=[],r={addCase:function(t,e){var n="string"==typeof t?t:t.type;if(n in i)throw new Error("addCase cannot be called with two reducers for the same action type");return i[n]=e,r},addMatcher:function(t,e){return n.push({matcher:t,reducer:e}),r},addDefaultCase:function(t){return e=t,r}};return t(r),[i,n,e]}function Ve(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var i,n="function"==typeof t.initialState?t.initialState:De(t.initialState),r=t.reducers||{},o=Object.keys(r),s={},a={},u={};function c(){var e="function"==typeof t.extraReducers?ze(t.extraReducers):[t.extraReducers],i=e[0],r=void 0===i?{}:i,o=e[1],s=void 0===o?[]:o,u=e[2],c=void 0===u?void 0:u,l=Fe(Fe({},r),a);return function(t,e,i,n){void 0===i&&(i=[]);var r,o="function"==typeof e?ze(e):[e,i,n],s=o[0],a=o[1],u=o[2];if(function(t){return"function"==typeof t}(t))r=function(){return De(t())};else{var c=De(t);r=function(){return c}}function l(t,e){void 0===t&&(t=r());var i=Ae([s[e.type]],a.filter((function(t){return(0,t.matcher)(e)})).map((function(t){return t.reducer})));return 0===i.filter((function(t){return!!t})).length&&(i=[u]),i.reduce((function(t,i){if(i){var n;if(wt(t))return void 0===(n=i(t,e))?t:n;if(mt(t))return ve(t,(function(t){return i(t,e)}));if(void 0===(n=i(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return n}return t}),t)}return l.getInitialState=r,l}(n,l,s,c)}return o.forEach((function(t){var i,n,o=r[t],c=e+"/"+t;"reducer"in o?(i=o.reducer,n=o.prepare):i=o,s[t]=i,a[c]=i,u[t]=n?He(c,n):He(c)})),{name:e,reducer:function(t,e){return i||(i=c()),i(t,e)},actions:u,caseReducers:s,getInitialState:function(){return i||(i=c()),i.getInitialState()}}}var Je="listenerMiddleware";He(Je+"/add"),He(Je+"/removeAll"),He(Je+"/remove"),function(){function t(t,e){var i=r[t];return i?i.enumerable=e:r[t]=i={configurable:!0,enumerable:e,get:function(){var e=this[re];return ce.get(e,t)},set:function(e){var i=this[re];ce.set(i,t,e)}},i}function e(t){for(var e=t.length-1;e>=0;e--){var r=t[e][re];if(!r.P)switch(r.i){case 5:n(r)&&zt(r);break;case 4:i(r)&&zt(r)}}}function i(t){for(var e=t.t,i=t.k,n=se(i),r=n.length-1;r>=0;r--){var o=n[r];if(o!==re){var s=e[o];if(void 0===s&&!Ot(e,o))return!0;var a=i[o],u=a&&a[re];if(u?u.t!==s:!St(a,s))return!0}}var c=!!e[re];return n.length!==se(e).length+(c?0:1)}function n(t){var e=t.k;if(e.length!==t.t.length)return!0;var i=Object.getOwnPropertyDescriptor(e,e.length-1);if(i&&!i.get)return!0;for(var n=0;n<e.length;n++)if(!e.hasOwnProperty(n))return!0;return!1}var r={};!function(t,e){ue[t]||(ue[t]=e)}("ES5",{J:function(e,i){var n=Array.isArray(e),r=function(e,i){if(e){for(var n=Array(i.length),r=0;r<i.length;r++)Object.defineProperty(n,""+r,t(r,!0));return n}var o=ae(i);delete o[re];for(var s=se(o),a=0;a<s.length;a++){var u=s[a];o[u]=t(u,e||!!o[u].enumerable)}return Object.create(Object.getPrototypeOf(i),o)}(n,e),o={i:n?5:4,A:i?i.A:It(),P:!1,I:!1,D:{},l:i,t:e,k:r,o:null,O:!1,C:!1};return Object.defineProperty(r,re,{value:o,writable:!0}),r},S:function(t,i,r){r?wt(i)&&i[re].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var i=e[re];if(i){var r=i.t,o=i.k,s=i.D,a=i.i;if(4===a)gt(o,(function(e){e!==re&&(void 0!==r[e]||Ot(r,e)?s[e]||t(o[e]):(s[e]=!0,zt(i)))})),gt(r,(function(t){void 0!==o[t]||Ot(o,t)||(s[t]=!1,zt(i))}));else if(5===a){if(n(i)&&(zt(i),s.length=!0),o.length<r.length)for(var u=o.length;u<r.length;u++)s[u]=!1;else for(var c=r.length;c<o.length;c++)s[c]=!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?i(t):n(t)}})}();const Ze=t=>"object"==typeof t&&(0===Object.keys(t).length||"string"==typeof t.store||null!=t.selector||"function"==typeof t.hasChanged||null!=t.attribute),qe=(t,e)=>{var i;const n=Ze(t)?t:{};return e=null!==(i=null!=e?e:n.hasChanged)&&void 0!==i?i:(t,e)=>!a(t,e),(i,r)=>{var o,s;i.constructor.createProperty(r,{hasChanged:e,attribute:null!==(o=n.attribute)&&void 0!==o&&o});const a=i;a.reduxProperties=a.reduxProperties||new Map;const u=null!==(s=Ze(t)?n.selector:t)&&void 0!==s?s:t=>t[r];a.reduxProperties.set(r,{selector:u,store:n.store})}};class Xe extends pt{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:Ge(t)?t.name:"ft-lit-element-redux-default-store",this.unsubscribeFromStore(e),this.setupStore(e,t)}removeStore(t){const e="string"==typeof t?t:Ge(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 i=this.constructor.getPropertyOptions(e);if(!(null==i?void 0:i.attribute)||!this.hasAttribute("string"==typeof(null==i?void 0:i.attribute)?i.attribute:e)){const i=this.getStore(t.store);i&&(this[e]=t.selector(i.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 Ge(t){var e;return null===(e=t)||void 0===e?void 0:e.isFtReduxStore}class Qe{constructor(t,e){this.reduxSlice=t,this.reduxStore=e,this.isFtReduxStore=!0,this.actions=new Proxy(this.reduxSlice.actions,{get:(t,e,i)=>{const n=t[e];if(n)return(...t)=>{const e=n(...t);return this.reduxStore.dispatch(e),e}}})}static get(t){window.ftReduxStores||(window.ftReduxStores={});const e="string"==typeof t?t:t.name,i="string"==typeof t?void 0:t,n=window.ftReduxStores[e];if(Ge(n))return n;if(null==i)return;const r=Ve(i);if(n)return new Qe(r,n);const o=Ke({reducer:r.reducer});return window.ftReduxStores[i.name]=new Qe(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()}}var Ye,ti;navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(ti=null===(Ye=window.safari)||void 0===Ye?void 0:Ye.pushNotification)||void 0===ti||ti.toString());const ei={setMapId:(t,e)=>{t.mapId=e.payload},setTocId:(t,e)=>{t.tocId=e.payload},setMap:(t,e)=>{t.map=e.payload},setToc:(t,e)=>{t.toc=e.payload},setPagesToc:(t,e)=>{t.pagesToc=e.payload},setPaginationConfiguration:(t,e)=>{t.paginationConfiguration=e.payload},setCurrentPage:(t,e)=>{t.currentPage=e.payload},setScrollTarget:(t,e)=>{t.scrollTarget=e.payload},setVisibleTopics:(t,e)=>{t.visibleTopics=e.payload},setConfiguration:(t,e)=>{t.configuration=e.payload}};class ii{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,e,i){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,i)),null==t.tocId?this.extractPagesToc(t.children,e,i):[{tocId:t.tocId,title:t.title,depth:e,children:this.extractPagesToc(t.children,e+1,t.tocId)}])))}convertNodes(t,e,i){return t.flatMap((t=>{var n,r,o;if(null==t.tocId)return[...this.convertSectionNodes(null!==(n=t.pageToc)&&void 0!==n?n:[],e,t.tocId),...this.convertNodes(t.children,e,t.tocId)];let s=null===(r=t.prettyUrl)||void 0===r?void 0:r.replace(/^\//,"");const a={tocId:t.tocId,contentId:t.contentId,title:t.title,hasRating:t.hasRating,prettyUrl:s,depth:e,parentTocId:i,children:[]};this.register(a);const u=this.convertSectionNodes(null!==(o=t.pageToc)&&void 0!==o?o:[],e+1,t.tocId),c=this.convertNodes(t.children,e+1,a.tocId);return a.children=[...u,...c],[a]}))}convertSectionNodes(t,e,i){return t.flatMap((t=>{var n;let r=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const o={...t,prettyUrl:r,depth:e,parentTocId:i,children:[]};return this.register(o),o.children=this.convertSectionNodes(t.children,e+1,t.tocId),[o]}))}buildPage(t,e){var i,n,r,o,s,a;const u={number:this.pages.length+1,title:null!==(i=t.title)&&void 0!==i?i:"",rootTocId:null!==(n=t.tocId)&&void 0!==n?n:"root",toc:(null!==(r=t.pageToc)&&void 0!==r?r:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:e?this.buildBreadcrumb(this.nodeByTocId[e]):[]},c=(t,e)=>(e?u.topics:u.hiddenTopics).push(t),l=null!==(s=null===(o=t.pageConfiguration)||void 0===o?void 0:o.parentsVisibility)&&void 0!==s?s:[];return u.breadcrumb.forEach(((t,e)=>{c(t,l[e])})),t.tocId&&c(t.tocId,t.pageConfiguration.isVisible),u.topics.push(...this.tocIds(null!==(a=t.pageToc)&&void 0!==a?a:[])),u}registerPage(t){for(let e of[...t.topics,...t.hiddenTopics])this.pageByTocId[e]||(this.pageByTocId[e]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const e=[t.tocId];for(;null==t?void 0:t.parentTocId;)e.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return e}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class ni{convertPaginatedToc(t){return new ii(t).build()}}const ri=y`
92
+ `;class bt{constructor(t,e){this.defaultLabels=t,this.labels=e}resolve(t,...e){var i,n;t=this.resolvePluralKey(t,e);let r=null!==(n=null!==(i=this.labels[t])&&void 0!==i?i:this.defaultLabels[t])&&void 0!==n?n:"";return e.forEach(((t,e)=>r=r.replace(new RegExp(`\\{${e}([^}]*)\\}`,"g"),((e,i)=>this.formatValue(t,i))))),r}resolvePluralKey(t,e){for(let i of e)if("number"==typeof i){const e=`${t}[\\=${i}]`;if(e in this.labels||e in this.defaultLabels)return e}return t}formatValue(t,e){return t instanceof Date?this.formatDate(t,e):null!=t?t:""}formatDate(t,e){const i=i=>(null==e?void 0:e.includes("date"))?t.toLocaleDateString(i):(null==e?void 0:e.includes("time"))?t.toLocaleTimeString(i):t.toLocaleString(i);try{return i(document.documentElement.lang)}catch(t){return i()}}}function yt(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];throw Error("[Immer] minified error nr: "+t+(i.length?" "+i.map((function(t){return"'"+t+"'"})).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function wt(t){return!!t&&!!t[re]}function mt(t){return!!t&&(function(t){if(!t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);if(null===e)return!0;var i=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return i===Object||"function"==typeof i&&Function.toString.call(i)===oe}(t)||Array.isArray(t)||!!t[ne]||!!t.constructor[ne]||jt(t)||Ct(t))}function gt(t,e,i){void 0===i&&(i=!1),0===xt(t)?(i?Object.keys:se)(t).forEach((function(n){i&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach((function(i,n){return e(n,i,t)}))}function xt(t){var e=t[re];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:jt(t)?2:Ct(t)?3:0}function Ot(t,e){return 2===xt(t)?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function Et(t,e,i){var n=xt(t);2===n?t.set(e,i):3===n?(t.delete(e),t.add(i)):t[e]=i}function St(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function jt(t){return Yt&&t instanceof Map}function Ct(t){return te&&t instanceof Set}function Nt(t){return t.o||t.t}function Rt(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=ae(t);delete e[re];for(var i=se(e),n=0;n<i.length;n++){var r=i[n],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 Mt(t,e){return void 0===e&&(e=!1),Tt(t)||wt(t)||!mt(t)||(xt(t)>1&&(t.set=t.add=t.clear=t.delete=Ut),Object.freeze(t),e&&gt(t,(function(t,e){return Mt(e,!0)}),!0)),t}function Ut(){yt(2)}function Tt(t){return null==t||"object"!=typeof t||Object.isFrozen(t)}function At(t){var e=ue[t];return e||yt(18,t),e}function It(){return Xt}function $t(t,e){e&&(At("Patches"),t.u=[],t.s=[],t.v=e)}function kt(t){Pt(t),t.p.forEach(Ft),t.p=null}function Pt(t){t===Xt&&(Xt=t.l)}function Lt(t){return Xt={p:[],l:Xt,h:t,m:!0,_:0}}function Ft(t){var e=t[re];0===e.i||1===e.i?e.j():e.O=!0}function _t(t,e){e._=e.p.length;var i=e.p[0],n=void 0!==t&&t!==i;return e.h.g||At("ES5").S(e,t,n),n?(i[re].P&&(kt(e),yt(4)),mt(t)&&(t=Bt(e,t),e.l||Wt(e,t)),e.u&&At("Patches").M(i[re].t,t,e.u,e.s)):t=Bt(e,i,[]),kt(e),e.u&&e.v(e.u,e.s),t!==ie?t:void 0}function Bt(t,e,i){if(Tt(e))return e;var n=e[re];if(!n)return gt(e,(function(r,o){return Dt(t,n,e,r,o,i)}),!0),e;if(n.A!==t)return e;if(!n.P)return Wt(t,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var r=4===n.i||5===n.i?n.o=Rt(n.k):n.o;gt(3===n.i?new Set(r):r,(function(e,o){return Dt(t,n,r,e,o,i)})),Wt(t,r,!1),i&&t.u&&At("Patches").R(n,i,t.u,t.s)}return n.o}function Dt(t,e,i,n,r,o){if(wt(r)){var s=Bt(t,r,o&&e&&3!==e.i&&!Ot(e.D,n)?o.concat(n):void 0);if(Et(i,n,s),!wt(s))return;t.m=!1}if(mt(r)&&!Tt(r)){if(!t.h.F&&t._<1)return;Bt(t,r),e&&e.A.l||Wt(t,r)}}function Wt(t,e,i){void 0===i&&(i=!1),t.h.F&&t.m&&Mt(e,i)}function Kt(t,e){var i=t[re];return(i?Nt(i):t)[e]}function Ht(t,e){if(e in t)for(var i=Object.getPrototypeOf(t);i;){var n=Object.getOwnPropertyDescriptor(i,e);if(n)return n;i=Object.getPrototypeOf(i)}}function zt(t){t.P||(t.P=!0,t.l&&zt(t.l))}function Vt(t){t.o||(t.o=Rt(t.t))}function Jt(t,e,i){var n=jt(e)?At("MapSet").N(e,i):Ct(e)?At("MapSet").T(e,i):t.g?function(t,e){var i=Array.isArray(t),n={i:i?1:0,A:e?e.A:It(),P:!1,I:!1,D:{},l:e,t,k:null,o:null,j:null,C:!1},r=n,o=ce;i&&(r=[n],o=le);var s=Proxy.revocable(r,o),a=s.revoke,u=s.proxy;return n.k=u,n.j=a,u}(e,i):At("ES5").J(e,i);return(i?i.A:It()).p.push(n),n}function Zt(t){return wt(t)||yt(22,t),function t(e){if(!mt(e))return e;var i,n=e[re],r=xt(e);if(n){if(!n.P&&(n.i<4||!At("ES5").K(n)))return n.t;n.I=!0,i=qt(e,r),n.I=!1}else i=qt(e,r);return gt(i,(function(e,r){n&&function(t,e){return 2===xt(t)?t.get(e):t[e]}(n.t,e)===r||Et(i,e,t(r))})),3===r?new Set(i):i}(t)}function qt(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Rt(t)}var Gt,Xt,Qt="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),Yt="undefined"!=typeof Map,te="undefined"!=typeof Set,ee="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,ie=Qt?Symbol.for("immer-nothing"):((Gt={})["immer-nothing"]=!0,Gt),ne=Qt?Symbol.for("immer-draftable"):"__$immer_draftable",re=Qt?Symbol.for("immer-state"):"__$immer_state",oe=""+Object.prototype.constructor,se="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,ae=Object.getOwnPropertyDescriptors||function(t){var e={};return se(t).forEach((function(i){e[i]=Object.getOwnPropertyDescriptor(t,i)})),e},ue={},ce={get:function(t,e){if(e===re)return t;var i=Nt(t);if(!Ot(i,e))return function(t,e,i){var n,r=Ht(e,i);return r?"value"in r?r.value:null===(n=r.get)||void 0===n?void 0:n.call(t.k):void 0}(t,i,e);var n=i[e];return t.I||!mt(n)?n:n===Kt(t.t,e)?(Vt(t),t.o[e]=Jt(t.A.h,n,t)):n},has:function(t,e){return e in Nt(t)},ownKeys:function(t){return Reflect.ownKeys(Nt(t))},set:function(t,e,i){var n=Ht(Nt(t),e);if(null==n?void 0:n.set)return n.set.call(t.k,i),!0;if(!t.P){var r=Kt(Nt(t),e),o=null==r?void 0:r[re];if(o&&o.t===i)return t.o[e]=i,t.D[e]=!1,!0;if(St(i,r)&&(void 0!==i||Ot(t.t,e)))return!0;Vt(t),zt(t)}return t.o[e]===i&&"number"!=typeof i&&(void 0!==i||e in t.o)||(t.o[e]=i,t.D[e]=!0,!0)},deleteProperty:function(t,e){return void 0!==Kt(t.t,e)||e in t.t?(t.D[e]=!1,Vt(t),zt(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var i=Nt(t),n=Reflect.getOwnPropertyDescriptor(i,e);return n?{writable:!0,configurable:1!==t.i||"length"!==e,enumerable:n.enumerable,value:i[e]}:n},defineProperty:function(){yt(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){yt(12)}},le={};gt(ce,(function(t,e){le[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}})),le.deleteProperty=function(t,e){return le.set.call(this,t,e,void 0)},le.set=function(t,e,i){return ce.set.call(this,t[0],e,i,t[0])};var he=function(){function t(t){var e=this;this.g=ee,this.F=!0,this.produce=function(t,i,n){if("function"==typeof t&&"function"!=typeof i){var r=i;i=t;var o=e;return function(t){var e=this;void 0===t&&(t=r);for(var n=arguments.length,s=Array(n>1?n-1:0),a=1;a<n;a++)s[a-1]=arguments[a];return o.produce(t,(function(t){var n;return(n=i).call.apply(n,[e,t].concat(s))}))}}var s;if("function"!=typeof i&&yt(6),void 0!==n&&"function"!=typeof n&&yt(7),mt(t)){var a=Lt(e),u=Jt(e,t,void 0),c=!0;try{s=i(u),c=!1}finally{c?kt(a):Pt(a)}return"undefined"!=typeof Promise&&s instanceof Promise?s.then((function(t){return $t(a,n),_t(t,a)}),(function(t){throw kt(a),t})):($t(a,n),_t(s,a))}if(!t||"object"!=typeof t){if(void 0===(s=i(t))&&(s=t),s===ie&&(s=void 0),e.F&&Mt(s,!0),n){var l=[],h=[];At("Patches").M(t,s,l,h),n(l,h)}return s}yt(21,t)},this.produceWithPatches=function(t,i){if("function"==typeof t)return function(i){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return e.produceWithPatches(i,(function(e){return t.apply(void 0,[e].concat(r))}))};var n,r,o=e.produce(t,i,(function(t,e){n=t,r=e}));return"undefined"!=typeof Promise&&o instanceof Promise?o.then((function(t){return[t,n,r]})):[o,n,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){mt(t)||yt(8),wt(t)&&(t=Zt(t));var e=Lt(this),i=Jt(this,t,void 0);return i[re].C=!0,Pt(e),i},e.finishDraft=function(t,e){var i=(t&&t[re]).A;return $t(i,e),_t(void 0,i)},e.setAutoFreeze=function(t){this.F=t},e.setUseProxies=function(t){t&&!ee&&yt(20),this.g=t},e.applyPatches=function(t,e){var i;for(i=e.length-1;i>=0;i--){var n=e[i];if(0===n.path.length&&"replace"===n.op){t=n.value;break}}i>-1&&(e=e.slice(i+1));var r=At("Patches").$;return wt(t)?r(t,e):this.produce(t,(function(t){return r(t,e)}))},t}(),de=new he,fe=de.produce;de.produceWithPatches.bind(de),de.setAutoFreeze.bind(de),de.setUseProxies.bind(de),de.applyPatches.bind(de),de.createDraft.bind(de),de.finishDraft.bind(de);var ve=fe;function pe(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function be(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function ye(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?be(Object(i),!0).forEach((function(e){pe(t,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):be(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,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 me="function"==typeof Symbol&&Symbol.observable||"@@observable",ge=function(){return Math.random().toString(36).substring(7).split("").join(".")},xe={INIT:"@@redux/INIT"+ge(),REPLACE:"@@redux/REPLACE"+ge(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+ge()}};function Oe(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 Ee(t,e,i){var n;if("function"==typeof e&&"function"==typeof i||"function"==typeof i&&"function"==typeof arguments[3])throw new Error(we(0));if("function"==typeof e&&void 0===i&&(i=e,e=void 0),void 0!==i){if("function"!=typeof i)throw new Error(we(1));return i(Ee)(t,e)}if("function"!=typeof t)throw new Error(we(2));var r=t,o=e,s=[],a=s,u=!1;function c(){a===s&&(a=s.slice())}function l(){if(u)throw new Error(we(3));return o}function h(t){if("function"!=typeof t)throw new Error(we(4));if(u)throw new Error(we(5));var e=!0;return c(),a.push(t),function(){if(e){if(u)throw new Error(we(6));e=!1,c();var i=a.indexOf(t);a.splice(i,1),s=null}}}function d(t){if(!Oe(t))throw new Error(we(7));if(void 0===t.type)throw new Error(we(8));if(u)throw new Error(we(9));try{u=!0,o=r(o,t)}finally{u=!1}for(var e=s=a,i=0;i<e.length;i++){(0,e[i])()}return t}function f(t){if("function"!=typeof t)throw new Error(we(10));r=t,d({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 i(){t.next&&t.next(l())}return i(),{unsubscribe:e(i)}}})[me]=function(){return this},t}return d({type:xe.INIT}),(n={dispatch:d,subscribe:h,getState:l,replaceReducer:f})[me]=v,n}function Se(t){for(var e=Object.keys(t),i={},n=0;n<e.length;n++){var r=e[n];"function"==typeof t[r]&&(i[r]=t[r])}var o,s=Object.keys(i);try{!function(t){Object.keys(t).forEach((function(e){var i=t[e];if(void 0===i(void 0,{type:xe.INIT}))throw new Error(we(12));if(void 0===i(void 0,{type:xe.PROBE_UNKNOWN_ACTION()}))throw new Error(we(13))}))}(i)}catch(t){o=t}return function(t,e){if(void 0===t&&(t={}),o)throw o;for(var n=!1,r={},a=0;a<s.length;a++){var u=s[a],c=i[u],l=t[u],h=c(l,e);if(void 0===h)throw e&&e.type,new Error(we(14));r[u]=h,n=n||h!==l}return(n=n||s.length!==Object.keys(t).length)?r:t}}function je(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];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 Ce(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return function(t){return function(){var i=t.apply(void 0,arguments),n=function(){throw new Error(we(15))},r={getState:i.getState,dispatch:function(){return n.apply(void 0,arguments)}},o=e.map((function(t){return t(r)}));return n=je.apply(void 0,o)(i.dispatch),ye(ye({},i),{},{dispatch:n})}}}function Ne(t){return function(e){var i=e.dispatch,n=e.getState;return function(e){return function(r){return"function"==typeof r?r(i,n,t):e(r)}}}}var Re=Ne();Re.withExtraArgument=Ne;var Me,Ue=Re,Te=(Me=function(t,e){return Me=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},Me(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 i(){this.constructor=t}Me(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),Ae=function(t,e){for(var i=0,n=e.length,r=t.length;i<n;i++,r++)t[r]=e[i];return t},Ie=Object.defineProperty,$e=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,Le=function(t,e,i){return e in t?Ie(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i},Fe=function(t,e){for(var i in e||(e={}))ke.call(e,i)&&Le(t,i,e[i]);if($e)for(var n=0,r=$e(e);n<r.length;n++){i=r[n];Pe.call(e,i)&&Le(t,i,e[i])}return t},_e="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?je:je.apply(null,arguments)};var Be=function(t){function e(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];var r=t.apply(this,i)||this;return Object.setPrototypeOf(r,e.prototype),r}return Te(e,t),Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];return t.prototype.concat.apply(this,e)},e.prototype.prepend=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return 1===t.length&&Array.isArray(t[0])?new(e.bind.apply(e,Ae([void 0],t[0].concat(this)))):new(e.bind.apply(e,Ae([void 0],t.concat(this))))},e}(Array);function De(t){return mt(t)?ve(t,(function(){})):t}function We(){return function(t){return function(t){void 0===t&&(t={});var e=t.thunk,i=void 0===e||e;t.immutableCheck,t.serializableCheck;var n=new Be;i&&(!function(t){return"boolean"==typeof t}(i)?n.push(Ue.withExtraArgument(i.extraArgument)):n.push(Ue));return n}(t)}}function Ke(t){var e,i=We(),n=t||{},r=n.reducer,o=void 0===r?void 0:r,s=n.middleware,a=void 0===s?i():s,u=n.devTools,c=void 0===u||u,l=n.preloadedState,h=void 0===l?void 0:l,d=n.enhancers,f=void 0===d?void 0:d;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 i=e;null!==Object.getPrototypeOf(i);)i=Object.getPrototypeOf(i);return e===i}(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=Se(o)}var v=a;"function"==typeof v&&(v=v(i));var p=Ce.apply(void 0,v),b=je;c&&(b=_e(Fe({trace:!1},"object"==typeof c&&c)));var y=[p];return Array.isArray(f)?y=Ae([p],f):"function"==typeof f&&(y=f(y)),Ee(e,h,b.apply(void 0,y))}function He(t,e){function i(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];if(e){var r=e.apply(void 0,i);if(!r)throw new Error("prepareAction did not return an object");return Fe(Fe({type:t,payload:r.payload},"meta"in r&&{meta:r.meta}),"error"in r&&{error:r.error})}return{type:t,payload:i[0]}}return i.toString=function(){return""+t},i.type=t,i.match=function(e){return e.type===t},i}function ze(t){var e,i={},n=[],r={addCase:function(t,e){var n="string"==typeof t?t:t.type;if(n in i)throw new Error("addCase cannot be called with two reducers for the same action type");return i[n]=e,r},addMatcher:function(t,e){return n.push({matcher:t,reducer:e}),r},addDefaultCase:function(t){return e=t,r}};return t(r),[i,n,e]}function Ve(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");var i,n="function"==typeof t.initialState?t.initialState:De(t.initialState),r=t.reducers||{},o=Object.keys(r),s={},a={},u={};function c(){var e="function"==typeof t.extraReducers?ze(t.extraReducers):[t.extraReducers],i=e[0],r=void 0===i?{}:i,o=e[1],s=void 0===o?[]:o,u=e[2],c=void 0===u?void 0:u,l=Fe(Fe({},r),a);return function(t,e,i,n){void 0===i&&(i=[]);var r,o="function"==typeof e?ze(e):[e,i,n],s=o[0],a=o[1],u=o[2];if(function(t){return"function"==typeof t}(t))r=function(){return De(t())};else{var c=De(t);r=function(){return c}}function l(t,e){void 0===t&&(t=r());var i=Ae([s[e.type]],a.filter((function(t){return(0,t.matcher)(e)})).map((function(t){return t.reducer})));return 0===i.filter((function(t){return!!t})).length&&(i=[u]),i.reduce((function(t,i){if(i){var n;if(wt(t))return void 0===(n=i(t,e))?t:n;if(mt(t))return ve(t,(function(t){return i(t,e)}));if(void 0===(n=i(t,e))){if(null===t)return t;throw Error("A case reducer on a non-draftable value must not return undefined")}return n}return t}),t)}return l.getInitialState=r,l}(n,l,s,c)}return o.forEach((function(t){var i,n,o=r[t],c=e+"/"+t;"reducer"in o?(i=o.reducer,n=o.prepare):i=o,s[t]=i,a[c]=i,u[t]=n?He(c,n):He(c)})),{name:e,reducer:function(t,e){return i||(i=c()),i(t,e)},actions:u,caseReducers:s,getInitialState:function(){return i||(i=c()),i.getInitialState()}}}var Je="listenerMiddleware";He(Je+"/add"),He(Je+"/removeAll"),He(Je+"/remove"),function(){function t(t,e){var i=r[t];return i?i.enumerable=e:r[t]=i={configurable:!0,enumerable:e,get:function(){var e=this[re];return ce.get(e,t)},set:function(e){var i=this[re];ce.set(i,t,e)}},i}function e(t){for(var e=t.length-1;e>=0;e--){var r=t[e][re];if(!r.P)switch(r.i){case 5:n(r)&&zt(r);break;case 4:i(r)&&zt(r)}}}function i(t){for(var e=t.t,i=t.k,n=se(i),r=n.length-1;r>=0;r--){var o=n[r];if(o!==re){var s=e[o];if(void 0===s&&!Ot(e,o))return!0;var a=i[o],u=a&&a[re];if(u?u.t!==s:!St(a,s))return!0}}var c=!!e[re];return n.length!==se(e).length+(c?0:1)}function n(t){var e=t.k;if(e.length!==t.t.length)return!0;var i=Object.getOwnPropertyDescriptor(e,e.length-1);if(i&&!i.get)return!0;for(var n=0;n<e.length;n++)if(!e.hasOwnProperty(n))return!0;return!1}var r={};!function(t,e){ue[t]||(ue[t]=e)}("ES5",{J:function(e,i){var n=Array.isArray(e),r=function(e,i){if(e){for(var n=Array(i.length),r=0;r<i.length;r++)Object.defineProperty(n,""+r,t(r,!0));return n}var o=ae(i);delete o[re];for(var s=se(o),a=0;a<s.length;a++){var u=s[a];o[u]=t(u,e||!!o[u].enumerable)}return Object.create(Object.getPrototypeOf(i),o)}(n,e),o={i:n?5:4,A:i?i.A:It(),P:!1,I:!1,D:{},l:i,t:e,k:r,o:null,O:!1,C:!1};return Object.defineProperty(r,re,{value:o,writable:!0}),r},S:function(t,i,r){r?wt(i)&&i[re].A===t&&e(t.p):(t.u&&function t(e){if(e&&"object"==typeof e){var i=e[re];if(i){var r=i.t,o=i.k,s=i.D,a=i.i;if(4===a)gt(o,(function(e){e!==re&&(void 0!==r[e]||Ot(r,e)?s[e]||t(o[e]):(s[e]=!0,zt(i)))})),gt(r,(function(t){void 0!==o[t]||Ot(o,t)||(s[t]=!1,zt(i))}));else if(5===a){if(n(i)&&(zt(i),s.length=!0),o.length<r.length)for(var u=o.length;u<r.length;u++)s[u]=!1;else for(var c=r.length;c<o.length;c++)s[c]=!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?i(t):n(t)}})}();const Ze=t=>"object"==typeof t&&(0===Object.keys(t).length||"string"==typeof t.store||null!=t.selector||"function"==typeof t.hasChanged||null!=t.attribute),qe=(t,e)=>{var i;const n=Ze(t)?t:{};return e=null!==(i=null!=e?e:n.hasChanged)&&void 0!==i?i:(t,e)=>!a(t,e),(i,r)=>{var o,s;i.constructor.createProperty(r,{hasChanged:e,attribute:null!==(o=n.attribute)&&void 0!==o&&o});const a=i;a.reduxProperties=a.reduxProperties||new Map;const u=null!==(s=Ze(t)?n.selector:t)&&void 0!==s?s:t=>t[r];a.reduxProperties.set(r,{selector:u,store:n.store})}};class Ge extends pt{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 i=this.constructor.getPropertyOptions(e);if(!(null==i?void 0:i.attribute)||!this.hasAttribute("string"==typeof(null==i?void 0:i.attribute)?i.attribute:e)){const i=this.getStore(t.store);i&&(this[e]=t.selector(i.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 Qe{constructor(t,e){this.reduxSlice=t,this.reduxStore=e,this.isFtReduxStore=!0,this.actions=new Proxy(this.reduxSlice.actions,{get:(t,e,i)=>{const n=t[e];if(n)return(...t)=>{const e=n(...t);return this.reduxStore.dispatch(e),e}}})}static get(t){window.ftReduxStores||(window.ftReduxStores={});const e="string"==typeof t?t:t.name,i="string"==typeof t?void 0:t,n=window.ftReduxStores[e];if(Xe(n))return n;if(null==i)return;const r=Ve(i);if(n)return new Qe(r,n);const o=Ke({reducer:r.reducer});return window.ftReduxStores[i.name]=new Qe(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()}}var Ye,ti;navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(ti=null===(Ye=window.safari)||void 0===Ye?void 0:Ye.pushNotification)||void 0===ti||ti.toString());const ei={setMapId:(t,e)=>{t.mapId=e.payload},setTocId:(t,e)=>{t.tocId=e.payload},setMap:(t,e)=>{t.map=e.payload},setToc:(t,e)=>{t.toc=e.payload},setPagesToc:(t,e)=>{t.pagesToc=e.payload},setPaginationConfiguration:(t,e)=>{t.paginationConfiguration=e.payload},setCurrentPage:(t,e)=>{t.currentPage=e.payload},setScrollTarget:(t,e)=>{t.scrollTarget=e.payload},setVisibleTopics:(t,e)=>{t.visibleTopics=e.payload},setConfiguration:(t,e)=>{t.configuration=e.payload}};class ii{constructor(t){this.paginatedToc=t,this.nodeByTocId={},this.knownPrettyUrls=new Set,this.duplicatedPrettyUrls=new Set,this.pages=[],this.pageByTocId={}}build(){return{paginationConfiguration:this.paginatedToc.configuration,toc:this.convertNodes(this.paginatedToc.paginatedToc,1),pagesToc:this.extractPagesToc(this.paginatedToc.paginatedToc,1),nodeByTocId:this.nodeByTocId,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId}}extractPagesToc(t,e,i){return t.flatMap((t=>(t.pageConfiguration&&this.registerPage(this.buildPage(t,i)),null==t.tocId?this.extractPagesToc(t.children,e,i):[{tocId:t.tocId,title:t.title,depth:e,children:this.extractPagesToc(t.children,e+1,t.tocId)}])))}convertNodes(t,e,i){return t.flatMap((t=>{var n,r,o;if(null==t.tocId)return[...this.convertSectionNodes(null!==(n=t.pageToc)&&void 0!==n?n:[],e,t.tocId),...this.convertNodes(t.children,e,t.tocId)];let s=null===(r=t.prettyUrl)||void 0===r?void 0:r.replace(/^\//,"");const a={tocId:t.tocId,contentId:t.contentId,title:t.title,hasRating:t.hasRating,prettyUrl:s,depth:e,parentTocId:i,children:[]};this.register(a);const u=this.convertSectionNodes(null!==(o=t.pageToc)&&void 0!==o?o:[],e+1,t.tocId),c=this.convertNodes(t.children,e+1,a.tocId);return a.children=[...u,...c],[a]}))}convertSectionNodes(t,e,i){return t.flatMap((t=>{var n;let r=null===(n=t.prettyUrl)||void 0===n?void 0:n.replace(/^\//,"");const o={...t,prettyUrl:r,depth:e,parentTocId:i,children:[]};return this.register(o),o.children=this.convertSectionNodes(t.children,e+1,t.tocId),[o]}))}buildPage(t,e){var i,n,r,o,s,a;const u={number:this.pages.length+1,title:null!==(i=t.title)&&void 0!==i?i:"",rootTocId:null!==(n=t.tocId)&&void 0!==n?n:"root",toc:(null!==(r=t.pageToc)&&void 0!==r?r:[]).map((t=>this.nodeByTocId[t.tocId])),topics:[],hiddenTopics:[],breadcrumb:e?this.buildBreadcrumb(this.nodeByTocId[e]):[]},c=(t,e)=>(e?u.topics:u.hiddenTopics).push(t),l=null!==(s=null===(o=t.pageConfiguration)||void 0===o?void 0:o.parentsVisibility)&&void 0!==s?s:[];return u.breadcrumb.forEach(((t,e)=>{c(t,l[e])})),t.tocId&&c(t.tocId,t.pageConfiguration.isVisible),u.topics.push(...this.tocIds(null!==(a=t.pageToc)&&void 0!==a?a:[])),u}registerPage(t){for(let e of[...t.topics,...t.hiddenTopics])this.pageByTocId[e]||(this.pageByTocId[e]=t);this.pages.push(t)}tocIds(t){return t.flatMap((t=>[t.tocId,...this.tocIds(t.children)]))}buildBreadcrumb(t){const e=[t.tocId];for(;null==t?void 0:t.parentTocId;)e.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return e}register(t){t.prettyUrl&&(this.knownPrettyUrls.has(t.prettyUrl)&&this.duplicatedPrettyUrls.add(t.prettyUrl),this.knownPrettyUrls.add(t.prettyUrl)),this.nodeByTocId[t.tocId]=t}}class ni{convertPaginatedToc(t){return new ii(t).build()}}const ri=y`
93
93
  `,oi=Qe.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},setAvailableUiLocales:(t,e)=>{t.availableUiLocales=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",availableUiLocales:[],editorMode:!1,noCustom:!1,noCustomComponent:!1}});class si{static build(t){const{baseUrl:e,apiIntegrationIdentifier:i}=oi.getState(),n=null!=t?t:i;if(e&&n&&window.fluidtopics)return new window.fluidtopics.FluidTopicsApi(e,n,!0)}static get(t){var e;return null!=t?si.build(t):null!==(e=si.API)&&void 0!==e?e:si.API=si.build()}static await(t){return new Promise((e=>{let i=si.get(t);if(i)e(i);else{const n=oi.subscribe((()=>{i=si.get(t),i&&(n(),e(i))}))}}))}}var ai;const ui=Symbol("clearAfterUnitTest");class ci{constructor(t){this.apiProvider=t,this.defaultMessages={},this.cache=new i,this.listeners={},this.currentUiLocale="",this[ai]=()=>{this.defaultMessages={},this.cache=new i,this.listeners={}},this.currentUiLocale=oi.getState().uiLocale,oi.subscribe((()=>this.clearWhenUiLocaleChanges()))}clearWhenUiLocaleChanges(){const{uiLocale:t}=oi.getState();this.currentUiLocale!==t&&(this.currentUiLocale=t,this.cache.clearAll(),this.notifyAll())}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 i;if(t=t.toLowerCase(),Object.keys(e).length>0){const n={...null!==(i=this.defaultMessages[t])&&void 0!==i?i:{},...e};a(this.defaultMessages[t],n)||(this.defaultMessages[t]=n,await this.notify(t))}await this.fetchContext(t)}resolveMessage(t,e,...i){var n,r,o;t=t.toLowerCase(),this.fetchContext(t);const s=null!==(r=null===(n=this.cache.getNow(t))||void 0===n?void 0:n.messages)&&void 0!==r?r:{};return new bt(null!==(o=this.defaultMessages[t])&&void 0!==o?o:{},s).resolve(e,...i)}async fetchContext(t){if(!this.cache.has(t))try{await this.cache.get(t,(async()=>{var e;return await(null===(e=this.apiProvider())||void 0===e?void 0:e.getFluidTopicsMessageContext(this.currentUiLocale,t))})),await this.notify(t)}catch(t){console.error(t)}}subscribe(t,e){var i;return t=t.toLowerCase(),this.listeners[t]=null!==(i=this.listeners[t])&&void 0!==i?i:new Set,this.listeners[t].add(e),()=>{var i;return null===(i=this.listeners[t])||void 0===i?void 0:i.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=>l(0).then((()=>t())).catch((()=>null)))))}}ai=ui,null==window.FluidTopicsI18nService&&(window.FluidTopicsI18nService=new ci(si.get));const li=window.FluidTopicsI18nService;var hi=function(t,e,i,n){for(var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,a=t.length-1;a>=0;a--)(r=t[a])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class di extends pt{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=()=>si.get(),this.cache=new i,this.cleanSessionDebouncer=new n}render(){return J`
94
94
  <slot></slot>
95
- `}updated(t){super.updated(t),t.has("baseUrl")&&oi.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&oi.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&oi.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&oi.actions.setNoCustom(this.noCustom),t.has("editorMode")&&oi.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&oi.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&oi.actions.setSession(this.session),t.has("availableUiLocales")&&oi.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>li.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}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))))}}di.elementDefinitions={},di.styles=ri,hi([o()],di.prototype,"baseUrl",void 0),hi([o()],di.prototype,"apiIntegrationIdentifier",void 0),hi([o()],di.prototype,"uiLocale",void 0),hi([c([])],di.prototype,"availableUiLocales",void 0),hi([o({type:Boolean})],di.prototype,"editorMode",void 0),hi([o({type:Boolean})],di.prototype,"noCustom",void 0),hi([o({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],di.prototype,"noCustomComponent",void 0),hi([o({type:Boolean})],di.prototype,"withManualResources",void 0),hi([c([])],di.prototype,"messageContexts",void 0),hi([c(void 0)],di.prototype,"session",void 0),hi([o({type:Object})],di.prototype,"apiProvider",void 0),u("ft-app-context")(di);class fi{constructor(t,e,i,n){this.converter=t,this.api=e,this.cache=i,this._mapId=n,this.initCache()}static async build(t){return new fi(new ni,await si.await(),new i,t)}get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}async withMapId(t){return this._mapId?t(this._mapId):void 0}initCache(){this.cache.registerFinal("configuration",(()=>this.api.getReaderConfiguration())),this.cache.register("map",(()=>this.withMapId((t=>this.api.getMap(t))))),this.cache.register("enrichedToc",(()=>this.withMapId((t=>this.api.getPages(t).then((t=>this.converter.convertPaginatedToc(t))))))),this.cache.register("ratingSummary",(()=>this.withMapId((t=>this.api.getMapRating(t)))))}clear(){this.cache.clearAll()}getMap(){return this.cache.get("map")}getConfiguration(){return this.cache.get("configuration")}getEnrichedToc(){return this.cache.get("enrichedToc")}get enrichedToc(){return this.cache.getNow("enrichedToc")}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var e;return null===(e=this.enrichedToc)||void 0===e?void 0:e.nodeByTocId[t]}async getPage(t){const e=await this.getEnrichedToc();return e.pages[t-1]||e.pages[0]}async getPageByTocId(t){const e=await this.getEnrichedToc();return e.pageByTocId[t]||e.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t,(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.cache.get("topic-content-"+t,(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,e,i){const n=this.getNavigationData(t,e,i),r="r/"+(n.prettyUrl?n.prettyUrl:`${n.mapId}/${n.tocId}`),o=new URL(r,this.api.tenantBaseUrl);return null!=n.page&&o.searchParams.set("page",`${n.page}`),n.prettyUrlDuplicated&&o.searchParams.set("tocId",n.tocId),null!=n.section&&o.searchParams.set("section",n.section),o.href}getNavigationData(t,e,i){var n,r;t=t||"root";const o=this.enrichedToc,s=null==o?void 0:o.pageByTocId[t],a=null==o?void 0:o.nodeByTocId[t],u=null==a?void 0:a.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(n=null==a?void 0:a.title)&&void 0!==n?n:"",page:e&&s&&s.number!==e?e:void 0,prettyUrl:null!=u?u.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(r=null==o?void 0:o.duplicatedPrettyUrls.has(null!=u?u:""))&&void 0!==r&&r,section:i}}async getAccurateNavigationData(t,e,i){return await this.getEnrichedToc(),this.getNavigationData(t,e,i)}getRatingSummary(){return this.cache.get("ratingSummary")}getMapRating(){return this.getRatingSummary().then((t=>t.publication))}getTopicRating(t){return this.getRatingSummary().then((e=>{var i;return{type:e.topics.type,rating:null===(i=e.topics)||void 0===i?void 0:i.ratings.find((e=>e.tocId===t))}}))}rateMap(t,e){return this.api.rateMap(this.mapId,t,e).then((()=>this.clearRatingIfNecessary()))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.clearRatingIfNecessary()))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,e,i){return this.api.rateTopic(this.mapId,t,e,i).then((()=>this.clearRatingIfNecessary()))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.clearRatingIfNecessary()))}async clearRatingIfNecessary(){const t=oi.getState().session;(null==t?void 0:t.sessionAuthenticated)&&this.cache.clear("ratingSummary")}sendTopicFeedback(t,e){return this.api.sendTopicFeedback(this.mapId,t,e)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class vi{constructor(t,e){this.store=t,this.reloadDebouncer=new n(10),this.initService(e)}static build(t){return new vi((t=>Qe.get({name:"ft-reader-"+t,initialState:{mapId:void 0,visibleTopics:[]},reducers:ei}))(t.trim()||"context"),fi.build)}async initService(t){this.service=await t(),this.service.mapId=this.store.getState().mapId,this.reload()}setMapId(t){this.store.actions.setMapId(t),this.service&&(this.service.mapId=t),this.reload()}setVisibleTopics(t){this.store.actions.setVisibleTopics(t)}async awaitService(){for(;null==this.service;)await l(5);return this.service}async navigateToTopic(t,e,i){const n=await this.awaitService();let r=await(null!=i?n.getPage(i):n.getPageByTocId(t));this.store.actions.setCurrentPage(r),this.store.actions.setScrollTarget({tocId:t,section:e})}async navigateToPage(t){const e=await this.awaitService();let i=await e.getPage(t);this.store.actions.setCurrentPage(i)}scrollDone(){this.store.actions.setScrollTarget({})}async reload(){var t;this.store.actions.setConfiguration(void 0),this.store.actions.setMap(void 0),this.store.actions.setToc(void 0),this.store.actions.setPagesToc(void 0),this.store.actions.setCurrentPage(void 0),(null===(t=this.service)||void 0===t?void 0:t.mapId)&&await this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,e,i,n,r;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getConfiguration().then((t=>this.store.actions.setConfiguration(t))),null===(e=this.service)||void 0===e?void 0:e.getMap().then((t=>this.store.actions.setMap(t))),null===(i=this.service)||void 0===i?void 0:i.getToc().then((t=>this.store.actions.setToc(t))),null===(n=this.service)||void 0===n?void 0:n.getPagesToc().then((t=>this.store.actions.setPagesToc(t))),null===(r=this.service)||void 0===r?void 0:r.getPaginationConfiguration().then((t=>this.store.actions.setPaginationConfiguration(t)))])}catch(t){this.errorHandler&&this.errorHandler(t)}}}const pi=y`
96
- `;var bi=function(t,e,i,n){for(var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,a=t.length-1;a>=0;a--)(r=t[a])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class yi extends CustomEvent{constructor(t,e){super("ft-reader-map-loaded",{detail:{map:t,toc:e}})}}class wi extends CustomEvent{constructor(t,e){super("ft-reader-visible-topics-change",{detail:{visibleTopics:e}})}}class mi extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}class gi extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}}class xi extends Event{constructor(){super("ft-reader-map-not-found")}}class Oi extends Event{constructor(){super("ft-reader-map-unauthorized")}}class Ei extends Xe{constructor(){super(),this.apiIntegrationIdentifier="ft-reader",this.visibleTopics=[],this.navigationDebouncer=new n(5),this.addStore(oi)}render(){return J`
95
+ `}updated(t){super.updated(t),t.has("baseUrl")&&oi.actions.setBaseUrl(this.baseUrl),t.has("apiIntegrationIdentifier")&&oi.actions.setApiIntegrationIdentifier(this.apiIntegrationIdentifier),t.has("uiLocale")&&oi.actions.setUiLocale(this.uiLocale),t.has("noCustom")&&oi.actions.setNoCustom(this.noCustom),t.has("editorMode")&&oi.actions.setEditorMode(this.editorMode),t.has("noCustomComponent")&&oi.actions.setNoCustomComponent(this.noCustomComponent),t.has("session")&&oi.actions.setSession(this.session),t.has("availableUiLocales")&&oi.actions.setAvailableUiLocales(Array.isArray(this.availableUiLocales)?this.availableUiLocales:[]),t.has("messageContexts")&&null!=this.messageContexts&&this.messageContexts.forEach((t=>li.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}))),null==this.availableUiLocales&&(this.availableUiLocales=await this.cache.get("availableUiLocales",(()=>t.getAvailableUiLocales()))))}}di.elementDefinitions={},di.styles=ri,hi([o()],di.prototype,"baseUrl",void 0),hi([o()],di.prototype,"apiIntegrationIdentifier",void 0),hi([o()],di.prototype,"uiLocale",void 0),hi([c([])],di.prototype,"availableUiLocales",void 0),hi([o({type:Boolean})],di.prototype,"editorMode",void 0),hi([o({type:Boolean})],di.prototype,"noCustom",void 0),hi([o({converter:{fromAttribute:t=>"false"!==t&&("true"===t||null!=t&&t)}})],di.prototype,"noCustomComponent",void 0),hi([o({type:Boolean})],di.prototype,"withManualResources",void 0),hi([c([])],di.prototype,"messageContexts",void 0),hi([c(void 0)],di.prototype,"session",void 0),hi([o({type:Object})],di.prototype,"apiProvider",void 0),u("ft-app-context")(di);class fi{constructor(t,e,i,n){this.converter=t,this.api=e,this.cache=i,this._mapId=n,this.initCache()}static async build(t){return new fi(new ni,await si.await(),new i,t)}get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}async withMapId(t){return this._mapId?t(this._mapId):void 0}initCache(){this.cache.registerFinal("configuration",(()=>this.api.getReaderConfiguration())),this.cache.register("map",(()=>this.withMapId((t=>this.api.getMap(t))))),this.cache.register("enrichedToc",(()=>this.withMapId((t=>this.api.getPages(t).then((t=>this.converter.convertPaginatedToc(t))))))),this.cache.register("ratingSummary",(()=>{var t;return(null===(t=oi.getState().session)||void 0===t?void 0:t.profile.roles.includes("RATING_USER"))?this.withMapId((t=>this.api.getMapRating(t))):Promise.resolve()}))}clear(){this.cache.clearAll()}getMap(){return this.cache.get("map")}getConfiguration(){return this.cache.get("configuration")}getEnrichedToc(){return this.cache.get("enrichedToc")}get enrichedToc(){return this.cache.getNow("enrichedToc")}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(){return(await this.getEnrichedToc()).toc}async getPagesToc(){return(await this.getEnrichedToc()).pagesToc}async getTocNode(t){return(await this.getEnrichedToc()).nodeByTocId[t]}getTocNodeNow(t){var e;return null===(e=this.enrichedToc)||void 0===e?void 0:e.nodeByTocId[t]}async getPage(t){const e=await this.getEnrichedToc();return e.pages[t-1]||e.pages[0]}async getPageByTocId(t){const e=await this.getEnrichedToc();return e.pageByTocId[t]||e.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t,(()=>this.api.getTopic(this.mapId,t)))}getTopicContent(t){return this.cache.get("topic-content-"+t,(()=>this.api.getTopicHTMLContent(this.mapId,t,"DESIGNED_READER")))}getLink(t,e,i){const n=this.getNavigationData(t,e,i),r="r/"+(n.prettyUrl?n.prettyUrl:`${n.mapId}/${n.tocId}`),o=new URL(r,this.api.tenantBaseUrl);return null!=n.page&&o.searchParams.set("page",`${n.page}`),n.prettyUrlDuplicated&&o.searchParams.set("tocId",n.tocId),null!=n.section&&o.searchParams.set("section",n.section),o.href}getNavigationData(t,e,i){var n,r;t=t||"root";const o=this.enrichedToc,s=null==o?void 0:o.pageByTocId[t],a=null==o?void 0:o.nodeByTocId[t],u=null==a?void 0:a.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:null!==(n=null==a?void 0:a.title)&&void 0!==n?n:"",page:e&&s&&s.number!==e?e:void 0,prettyUrl:null!=u?u.replace(/^r\//,""):void 0,prettyUrlDuplicated:null!==(r=null==o?void 0:o.duplicatedPrettyUrls.has(null!=u?u:""))&&void 0!==r&&r,section:i}}async getAccurateNavigationData(t,e,i){return await this.getEnrichedToc(),this.getNavigationData(t,e,i)}getRatingSummary(){return this.cache.get("ratingSummary")}getMapRating(){return this.getRatingSummary().then((t=>null==t?void 0:t.publication))}getTopicRating(t){return this.getRatingSummary().then((e=>{var i;return e?{type:e.topics.type,rating:null===(i=e.topics)||void 0===i?void 0:i.ratings.find((e=>e.tocId===t))}:void 0}))}rateMap(t,e){return this.api.rateMap(this.mapId,t,e).then((()=>this.clearRatingIfNecessary()))}unrateMap(){return this.api.unrateMap(this.mapId).then((()=>this.clearRatingIfNecessary()))}sendMapFeedback(t){return this.api.sendMapFeedback(this.mapId,t)}rateTopic(t,e,i){return this.api.rateTopic(this.mapId,t,e,i).then((()=>this.clearRatingIfNecessary()))}unrateTopic(t){return this.api.unrateTopic(this.mapId,t).then((()=>this.clearRatingIfNecessary()))}async clearRatingIfNecessary(){const t=oi.getState().session;(null==t?void 0:t.sessionAuthenticated)&&this.cache.clear("ratingSummary")}sendTopicFeedback(t,e){return this.api.sendTopicFeedback(this.mapId,t,e)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}}class vi{constructor(t,e){this.store=t,this.reloadDebouncer=new n(10),this.initService(e)}static build(t){return new vi((t=>Qe.get({name:"ft-reader-"+t,initialState:{mapId:void 0,visibleTopics:[]},reducers:ei}))(t.trim()||"context"),fi.build)}async initService(t){this.service=await t(),this.service.mapId=this.store.getState().mapId,this.reload()}setMapId(t){this.store.actions.setMapId(t),this.service&&(this.service.mapId=t),this.reload()}setVisibleTopics(t){this.store.actions.setVisibleTopics(t)}async awaitService(){for(;null==this.service;)await l(5);return this.service}async navigateToTopic(t,e,i){const n=await this.awaitService();let r=await(null!=i?n.getPage(i):n.getPageByTocId(t));this.store.actions.setCurrentPage(r),this.store.actions.setScrollTarget({tocId:t,section:e})}async navigateToPage(t){const e=await this.awaitService();let i=await e.getPage(t);this.store.actions.setCurrentPage(i)}scrollDone(){this.store.actions.setScrollTarget({})}async reload(){var t;this.store.actions.setConfiguration(void 0),this.store.actions.setMap(void 0),this.store.actions.setToc(void 0),this.store.actions.setPagesToc(void 0),this.store.actions.setCurrentPage(void 0),(null===(t=this.service)||void 0===t?void 0:t.mapId)&&await this.reloadDebouncer.run((()=>this.fetchData()))}async fetchData(){var t,e,i,n,r;try{await Promise.all([null===(t=this.service)||void 0===t?void 0:t.getConfiguration().then((t=>this.store.actions.setConfiguration(t))),null===(e=this.service)||void 0===e?void 0:e.getMap().then((t=>this.store.actions.setMap(t))),null===(i=this.service)||void 0===i?void 0:i.getToc().then((t=>this.store.actions.setToc(t))),null===(n=this.service)||void 0===n?void 0:n.getPagesToc().then((t=>this.store.actions.setPagesToc(t))),null===(r=this.service)||void 0===r?void 0:r.getPaginationConfiguration().then((t=>this.store.actions.setPaginationConfiguration(t)))])}catch(t){this.errorHandler&&this.errorHandler(t)}}}const pi=y`
96
+ `;var bi=function(t,e,i,n){for(var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n,a=t.length-1;a>=0;a--)(r=t[a])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};class yi extends CustomEvent{constructor(t,e){super("ft-reader-map-loaded",{detail:{map:t,toc:e}})}}class wi extends CustomEvent{constructor(t,e){super("ft-reader-visible-topics-change",{detail:{visibleTopics:e}})}}class mi extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}}class gi extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}}class xi extends Event{constructor(){super("ft-reader-map-not-found")}}class Oi extends Event{constructor(){super("ft-reader-map-unauthorized")}}class Ei extends Ge{constructor(){super(),this.apiIntegrationIdentifier="ft-reader",this.visibleTopics=[],this.navigationDebouncer=new n(5),this.addStore(oi)}render(){return J`
97
97
  ${this.importStyleIfNeeded()}
98
98
  <slot @register-ft-reader-component=${this.registerComponent}></slot>
99
99
  `}importStyleIfNeeded(){var t,e;return!this.stateManager.service||window.location.href.startsWith(null!==(t=this.baseUrl)&&void 0!==t?t:"")?q:J`
@@ -31,8 +31,8 @@ export declare class FtReaderService {
31
31
  getNavigationData(tocId?: string, pageNumber?: number, section?: string): FtReaderNavigationData;
32
32
  getAccurateNavigationData(tocId?: string, pageNumber?: number, section?: string): Promise<FtReaderNavigationData>;
33
33
  private getRatingSummary;
34
- getMapRating(): Promise<FtPublicationRatingSummary>;
35
- getTopicRating(tocId: string): Promise<FtTopicRatingSummary>;
34
+ getMapRating(): Promise<FtPublicationRatingSummary | undefined>;
35
+ getTopicRating(tocId: string): Promise<FtTopicRatingSummary | undefined>;
36
36
  rateMap(type: FtRatingType, value: number): Promise<void>;
37
37
  unrateMap(): Promise<void>;
38
38
  sendMapFeedback(message: string): Promise<void>;
@@ -1,6 +1,6 @@
1
1
  import { CacheRegistry } from "@fluid-topics/ft-wc-utils";
2
2
  import { FtReaderConverter } from "./FtReaderConverter";
3
- import { ftAppInfoStore, FluidTopicsApiProvider } from "@fluid-topics/ft-app-context";
3
+ import { FluidTopicsApiProvider, ftAppInfoStore } from "@fluid-topics/ft-app-context";
4
4
  export class FtReaderService {
5
5
  constructor(converter, api, cache, mapId) {
6
6
  this.converter = converter;
@@ -28,7 +28,11 @@ export class FtReaderService {
28
28
  this.cache.registerFinal("configuration", () => this.api.getReaderConfiguration());
29
29
  this.cache.register("map", () => this.withMapId(mapId => this.api.getMap(mapId)));
30
30
  this.cache.register("enrichedToc", () => this.withMapId(mapId => this.api.getPages(mapId).then(toc => this.converter.convertPaginatedToc(toc))));
31
- this.cache.register("ratingSummary", () => this.withMapId(mapId => this.api.getMapRating(mapId)));
31
+ this.cache.register("ratingSummary", () => {
32
+ var _a;
33
+ const userHaveRatingRole = (_a = ftAppInfoStore.getState().session) === null || _a === void 0 ? void 0 : _a.profile.roles.includes("RATING_USER");
34
+ return userHaveRatingRole ? this.withMapId(mapId => this.api.getMapRating(mapId)) : Promise.resolve();
35
+ });
32
36
  }
33
37
  clear() {
34
38
  this.cache.clearAll();
@@ -119,15 +123,15 @@ export class FtReaderService {
119
123
  return this.cache.get("ratingSummary");
120
124
  }
121
125
  getMapRating() {
122
- return this.getRatingSummary().then(rm => rm.publication);
126
+ return this.getRatingSummary().then(rm => rm === null || rm === void 0 ? void 0 : rm.publication);
123
127
  }
124
128
  getTopicRating(tocId) {
125
129
  return this.getRatingSummary().then(rm => {
126
130
  var _a;
127
- return ({
131
+ return rm ? {
128
132
  type: rm.topics.type,
129
133
  rating: (_a = rm.topics) === null || _a === void 0 ? void 0 : _a.ratings.find(t => t.tocId === tocId)
130
- });
134
+ } : undefined;
131
135
  });
132
136
  }
133
137
  rateMap(type, value) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-reader-context",
3
- "version": "0.3.63",
3
+ "version": "0.3.64",
4
4
  "description": "Context block for integrated reader components",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,8 +19,8 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-app-context": "0.3.63",
23
- "@fluid-topics/ft-wc-utils": "0.3.63",
22
+ "@fluid-topics/ft-app-context": "0.3.64",
23
+ "@fluid-topics/ft-wc-utils": "0.3.64",
24
24
  "@reduxjs/toolkit": "^1.6.2",
25
25
  "lit": "2.2.8"
26
26
  },
@@ -30,5 +30,5 @@
30
30
  "peerDependencies": {
31
31
  "@fluid-topics/public-api": "1.0.32"
32
32
  },
33
- "gitHead": "0f9703a51261fa203c190b1852718e829ae31b7c"
33
+ "gitHead": "4f42c34c49255250cddf729582cc01c17b334857"
34
34
  }