@fluid-topics/ft-reader-metadata 2.1.2 → 2.1.4

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.
@@ -908,7 +908,7 @@
908
908
  </ft-typography>
909
909
  </div>
910
910
  `}};me.elementDefinitions={"ft-typography":X};me.styles=jc;var Wc=m(S());var zc={"ft-floating-menu":D,"ft-floating-menu-item":nt,"ft-floating-menu-label":me};(0,Wc.customElements)(zc);var Vr=m(S());function Nd(e){var t;return((t=(0,Vr.accessResult)(e))===null||t===void 0?void 0:t.openMode)===Tn.EXTERNAL}function wo(e){return Nd(e)?(0,Vr.accessResult)(e).originUrl:(0,Vr.accessResultUrl)(e)}var tu=m(Gc());var Oo=Bn.build("designedReaderMapMetadata");var qc=m(L());var Yc=qc.css`
911
- `;var zr=m(L()),De=m(K()),Y=m(S());var dt=m(S());var Xc=m(S()),Dd={setTranslationDestinationLanguage:(e,t)=>{e.translation.destinationLanguage=t.payload},setTranslationSourceLanguage:(e,t)=>{e.translation.sourceLanguage=t.payload},setTranslationProfileId:(e,t)=>{e.translation.profileId=t.payload},setTranslationLoading:(e,t)=>{e.translation.isLoading=t.payload},setTranslationError:(e,t)=>{e.translation.isError=t.payload},setTopicsRating:(e,t)=>{for(let r in t.payload)e.topicsRating[r]=t.payload[r]}},Qc=e=>Xc.FtReduxStore.get({name:"ft-reader-"+e,initialState:{mapId:void 0,renderedTopics:[],visibleTopics:[],map:void 0,toc:void 0,pagesToc:void 0,paginationConfiguration:void 0,currentPage:void 0,scrollTarget:void 0,configuration:void 0,searchInDocumentQuery:void 0,relatives:void 0,mapRating:void 0,topicsRating:{},translation:{sourceLanguage:void 0,destinationLanguage:void 0,profileId:void 0,isLoading:!1,isError:!1},linkPreviewDialogId:void 0},reducers:Dd});var Ro=class{constructor(t,r){this.mapId=t,this.paginatedToc=r,this.nodeByTocId={},this.nodeByUrl={},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,nodeByUrl:this.nodeByUrl,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId,translationError:this.paginatedToc.translationError}}extractPagesToc(t,r,n){return t.flatMap(i=>{var o;return i.pageConfiguration&&this.registerPage(this.buildPage(i,n)),i.tocId==null?this.extractPagesToc(i.children,r,n):[{tocId:i.tocId,title:(o=i.title)!==null&&o!==void 0?o:"",untranslatedTitle:i.untranslatedTitle,depth:r,children:this.extractPagesToc(i.children,r+1,i.tocId)}]})}convertNodes(t,r,n){return t.flatMap(i=>{var o,s,a;if(i.tocId==null)return[...this.convertSectionNodes((o=i.pageToc)!==null&&o!==void 0?o:[],r,i.tocId),...this.convertNodes(i.children,r,i.tocId)];let l=(s=i.prettyUrl)===null||s===void 0?void 0:s.replace(/^\//,""),c={tocId:i.tocId,contentId:i.contentId,title:i.title,untranslatedTitle:i.untranslatedTitle,hasRating:i.hasRating,origin:i.origin,prettyUrl:l,depth:r,parentTocId:n,children:[]};this.register(c);let u=this.convertSectionNodes((a=i.pageToc)!==null&&a!==void 0?a:[],r+1,i.tocId),d=this.convertNodes(i.children,r+1,c.tocId);return c.children=[...u,...d],[c]})}convertSectionNodes(t,r,n){return t.flatMap(i=>{var o;let s=(o=i.prettyUrl)===null||o===void 0?void 0:o.replace(/^\//,""),a={...i,prettyUrl:s,depth:r,parentTocId:n,children:[]};return this.register(a),a.children=this.convertSectionNodes(i.children,r+1,i.tocId),[a]})}buildPage(t,r){var n,i,o,s,a,l,c,u;let d={number:this.pages.length+1,title:(n=t.title)!==null&&n!==void 0?n:"",untranslatedTitle:t.untranslatedTitle,rootTocId:(s=(i=t.tocId)!==null&&i!==void 0?i:(o=t.pageToc)===null||o===void 0?void 0:o[0].tocId)!==null&&s!==void 0?s:"root",toc:((a=t.pageToc)!==null&&a!==void 0?a:[]).map(h=>this.nodeByTocId[h.tocId]),topics:[],hiddenTopics:[],breadcrumb:r?this.buildBreadcrumb(this.nodeByTocId[r]):[]},p=(h,g)=>(g?d.topics:d.hiddenTopics).push(h),f=(c=(l=t.pageConfiguration)===null||l===void 0?void 0:l.parentsVisibility)!==null&&c!==void 0?c:[];return d.breadcrumb.forEach((h,g)=>{p(h,f[g])}),t.tocId&&p(t.tocId,t.pageConfiguration.isVisible),d.topics.push(...this.tocIds((u=t.pageToc)!==null&&u!==void 0?u:[])),d}registerPage(t){for(let r of[...t.topics,...t.hiddenTopics])this.pageByTocId[r]||(this.pageByTocId[r]=t);this.pages.push(t)}tocIds(t){return t.flatMap(r=>[r.tocId,...this.tocIds(r.children)])}buildBreadcrumb(t){let r=[t.tocId];for(;t?.parentTocId;)r.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return r}register(t){t.prettyUrl&&(this.nodeByUrl[t.prettyUrl]==null?this.nodeByUrl[t.prettyUrl]=t:this.duplicatedPrettyUrls.add(t.prettyUrl)),this.nodeByUrl[`${this.mapId}/${t.tocId}`]=t,this.nodeByTocId[t.tocId]=t}},Zn=class{convertPaginatedToc(t,r){return new Ro(t,r).build()}};var ti=class extends et{get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}constructor(t,r,n){super(!1,r),this.converter=t,this._mapId=n,this.initCache()}async withMapId(t){return this._mapId?t(this._mapId):void 0}initCache(){this.cache.register("configuration",()=>this.api.getReaderConfiguration()),this.cache.register("map",()=>this.withMapId(t=>this.fetchMap(t))),this.cache.register("enrichedToc",()=>this.withMapId(t=>this.fetchPages(t).then(r=>this.converter.convertPaginatedToc(t,r)))),this.cache.register("ratingSummary",()=>{var t,r;return Jt((r=(t=E.getState().session)===null||t===void 0?void 0:t.profile.roles)!==null&&r!==void 0?r:[],"RATING_USER")?this.withMapId(i=>this.fetchMapRating(i)):Promise.resolve()})}clear(){this.cache.clearMatching(t=>t!=="configuration")}makeCacheKey(t,r){return t+(r?"-destinationLanguage-"+r?.destinationLanguage:"")}getMap(t){return this.cache.get(this.makeCacheKey("map",t),()=>this.fetchMap(this.mapId,t))}getMapNow(t){return this.cache.getNow(this.makeCacheKey("map",t))}getConfiguration(){return this.cache.get("configuration")}clearConfiguration(){this.cache.clear("configuration")}getEnrichedToc(t){return this.cache.get(this.makeCacheKey("enrichedToc",t),()=>this.fetchPages(this.mapId,t).then(r=>this.converter.convertPaginatedToc(this.mapId,r)))}getEnrichedTocNow(t){return this.cache.getNow(this.makeCacheKey("enrichedToc",t))}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(t){return(await this.getEnrichedToc(t)).toc}async getPagesToc(t){return(await this.getEnrichedToc(t)).pagesToc}async getTranslationError(t){return(await this.getEnrichedToc(t)).translationError}async getTocNode(t,r){return(await this.getEnrichedToc(r)).nodeByTocId[t]}getTocNodeNow(t,r){var n;return(n=this.getEnrichedTocNow(r))===null||n===void 0?void 0:n.nodeByTocId[t]}getTocNodeNowByUrl(t,r){var n,i;let o=this.getMapNow(r);return o?.prettyUrl==t||`${o?.id}/root`===t?(n=this.getEnrichedTocNow(r))===null||n===void 0?void 0:n.toc[0]:(i=this.getEnrichedTocNow(r))===null||i===void 0?void 0:i.nodeByUrl[t]}async getPage(t,r){let n=await this.getEnrichedToc(r);return n.pages[t-1]||n.pages[0]}async getPageByTocId(t,r){let n=await this.getEnrichedToc(r);return n.pageByTocId[t]||n.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t.tocId,()=>this.fetchTopicMetadata(t))}getTopicContent(t){return this.cache.get("topic-content-"+t.tocId,()=>this.fetchTopicHTMLContent(t))}getTranslatedTopicContent(t,r){return this.cache.get(this.makeCacheKey("translated-topic-content-"+t.tocId,r),()=>this.fetchTranslatedTopicHTMLContent(t,r))}async getTopicMetadataValue(t,r){let n=this.getTocNodeNow(t);if(!n)return;let i=await this.getTopicInfo(n);return i?.metadata.find(o=>o.key==r)}getAttachments(){return this.cache.get("map-attachments",()=>this.fetchAttachments())}clearMapAttachments(){this.cache.clear("map-attachments")}getRelativesForDocument(t,r){return this.cache.get("document-relatives-"+t+"-"+r.join("-"),()=>this.fetchRelativesForDocument(t,r))}getRelativesForTopicInMap(t,r,n){return this.cache.get("topic-relatives-"+[t,r,...n].join("-"),()=>this.fetchRelativesForTopicInMap(t,r,n))}getAttachmentDownloadLink(t){return this.makeAbsolute(`${this.api.endpoints.khub.maps.mapId(this.mapId).attachments.attachmentId(t).content}?download=true&locationValue=reader`)}getLink(t,r,n){let i=this.getNavigationData(t,r,n),o=this.getReaderLinkPrefix()+(i.prettyUrl?i.prettyUrl:`${i.mapId}/${i.tocId}`),s=new URL(o,this.api.tenantBaseUrl);return i.page!=null&&s.searchParams.set("page",`${i.page}`),i.prettyUrlDuplicated&&s.searchParams.set("tocId",i.tocId),i.section!=null&&s.searchParams.set("section",i.section),s.href}getNavigationData(t,r,n,i){var o,s;t=t||"root";let a=this.getEnrichedTocNow(i),l=a?.pageByTocId[t],c=a?.nodeByTocId[t],u=c?.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:(o=c?.title)!==null&&o!==void 0?o:"",untranslatedTopicTitle:c?.untranslatedTitle,page:r&&l&&l.number!==r?r:void 0,prettyUrl:u?.replace(/^r\//,""),prettyUrlDuplicated:(s=a?.duplicatedPrettyUrls.has(u??""))!==null&&s!==void 0?s:!1,section:n}}async getAccurateNavigationData(t,r,n,i){return await this.getEnrichedToc(i),this.getNavigationData(t,r,n,i)}getRatingSummary(){return this.cache.get("ratingSummary")}reloadRating(){return this.cache.clear("ratingSummary"),this.getRatingSummary()}getMapRating(){return this.getRatingSummary().then(t=>t?.publication)}getTopicRating(t){return this.getRatingSummary().then(r=>{var n;return r?{type:r.topics.type,rating:(n=r.topics)===null||n===void 0?void 0:n.ratings.find(i=>i.tocId===t)}:void 0})}rateMap(t,r){return this.makeRateMapRequest(t,r).then(()=>this.clearRatingIfNecessary())}unrateMap(){return this.makeUnrateMapRequest().then(()=>this.clearRatingIfNecessary())}sendMapFeedback(t,r){return this.makeMapFeedbackRequest(t,r)}rateTopic(t,r,n){return this.makeRateTopicRequest(t,r,n).then(()=>this.clearRatingIfNecessary())}unrateTopic(t){return this.makeUnrateTopicRequest(t).then(()=>this.clearRatingIfNecessary())}async clearRatingIfNecessary(){let t=E.getState().session;t?.sessionAuthenticated&&this.cache.clear("ratingSummary")}sendTopicFeedback(t,r,n){return this.makeTopicFeedbackRequest(t,r,n)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}buildBreadcrumb(t,r){let n=this.getTocNodeNow(t,r),i=[{tocId:n.tocId,title:n.title,untranslatedTitle:n.untranslatedTitle}],o=this.getTocNodeNow(n.parentTocId,r);for(;o;)i.unshift({tocId:o.tocId,title:o.title,untranslatedTitle:o.untranslatedTitle}),o=this.getTocNodeNow(o.parentTocId,r);return i}isFeatureAccessible(t,{session:r}){var n;if(!this.isFeatureAvailable(t))return!1;switch(t){case Gt.FEEDBACK:return Jt(r??[],I.FEEDBACK_USER);case Gt.RATING:return Jt(r??[],I.RATING_USER);case Gt.PRINT:return Jt(r??[],I.PRINT_USER);case Gt.BOOKMARK:return!!r?.sessionAuthenticated;case Gt.COLLECTIONS:return Jt(r??[],I.COLLECTION_USER);case Gt.PERSONAL_BOOKS:return Jt(r??[],I.PERSONAL_BOOK_USER)&&!(!((n=this.getMapNow())===null||n===void 0)&&n.pbkConfidential);default:return!1}}makeAbsolute(t){return this.api.makeAbsolute(t)}};var ei=class e extends ti{static async build(t){return new e(new Zn,void 0,t)}clear(){super.clear(),this.fingerprint=void 0}async fetchMap(t,r){let n=await this.api.getMap(t,r);return this.fingerprint=n.fingerprint,n}fetchMapRating(t){return this.api.getMapRating(t)}async fetchPages(t,r){return await this.getMap(r),this.api.getPages(t,this.fingerprint,r)}fetchTopicHTMLContent(t){return this.api.getTopicHTMLContent(this.mapId,t.contentId,"DESIGNED_READER",this.fingerprint)}fetchTranslatedTopicHTMLContent(t,r){return this.api.getTranslatedTopicHTMLContent(this.mapId,t.contentId,"DESIGNED_READER",this.fingerprint,r)}fetchTopicMetadata(t){return this.api.getTopic(this.mapId,t.contentId,this.fingerprint)}fetchAttachments(){return this.api.getMapAttachments(this.mapId).catch(()=>[])}fetchRelativesForDocument(t,r){let n={query:"",paging:{page:1,perPage:-1},scope:"DOCUMENTS",metadataFilters:[{key:t,valueFilter:{negative:!1,values:r}}],sort:[],facets:[]};return this.api.search(n)}fetchRelativesForTopicInMap(t,r,n){let i={query:"",paging:{page:1,perPage:1},scope:"ALL_TOPICS",metadataFilters:[{key:r,valueFilter:{negative:!1,values:n}},{key:"ft:publicationId",valueFilter:{negative:!1,values:[t]}}],sort:[],facets:[]};return this.api.search(i)}makeMapFeedbackRequest(t,r){return this.api.sendMapFeedback(this.mapId,t,r)}makeRateMapRequest(t,r){return this.api.rateMap(this.mapId,t,r)}makeRateTopicRequest(t,r,n){return this.api.rateTopic(this.mapId,t,r,n)}makeTopicFeedbackRequest(t,r,n){return this.api.sendTopicFeedback(this.mapId,t,r,n)}makeUnrateMapRequest(){return this.api.unrateMap(this.mapId)}makeUnrateTopicRequest(t){return this.api.unrateTopic(this.mapId,t)}getReaderLinkPrefix(){return"r/"}isFeatureAvailable(t){return!0}};var kd="topicPivot";function ri(e,t){let r=new URL(e);return t?.values.forEach(n=>{r.searchParams.append(kd,n)}),r.href}var ni=class e{static build(t,r){return new e(Qc(t.trim()||"context"),r??ei.build)}loaded(){return(0,dt.waitUntil)(()=>this._loaded)}constructor(t,r,n,i){this.store=t,this.clusteringHelperProvider=n,this.metadataForSwitchToRelatives=new Set,this._loaded=!1,this.loadDebouncer=new dt.Debouncer(10),this.analyticsEventsService=i??new In,this.initService(r)}async initService(t){return this.service=await t(),this.service.mapId=this.store.getState().mapId,this.reload()}async setMapId(t){t!==this.store.getState().mapId&&(this.store.actions.mapId(t),this.service&&(this.service.mapId=t),await this.reload())}setRenderedTopics(t){this.store.actions.renderedTopics(t)}setVisibleTopics(t){this.store.actions.visibleTopics(t)}async awaitService(){return(0,dt.waitFor)(()=>this.service)}async navigateToTopic(t,r,n){await this.loaded();let i=await this.awaitService(),o=await(n!=null?i.getPage(n,this.getTranslationSettings()):i.getPageByTocId(t??"root",this.getTranslationSettings()));this.store.actions.currentPage(o);let s=this.resolveValidNonRootTocId(t,o);this.store.actions.scrollTarget({tocId:s,section:r}),this.store.getState().visibleTopics[0]!==s&&this.store.actions.visibleTopics([])}resolveValidNonRootTocId(t,r){var n,i,o;let s=(n=t==="root"?void 0:t)!==null&&n!==void 0?n:r.rootTocId;return r.topics.includes(s)?s:(t!="root"&&!r.hiddenTopics.includes(s)&&this.store.dispatchEvent(new CustomEvent(re.requestedTopicNotFound,{detail:{tocId:s}})),(o=(i=r.topics[0])!==null&&i!==void 0?i:r.hiddenTopics[0])!==null&&o!==void 0?o:"root")}async navigateToPage(t){await this.loaded();let n=await(await this.awaitService()).getPage(t,this.getTranslationSettings());this.store.actions.currentPage(n)}scrollDone(){this.store.actions.scrollTarget({})}async load(){var t;!((t=this.service)===null||t===void 0)&&t.mapId&&this.store.getState().map==null&&await this.loadDebouncer.run(()=>this.fetchData(this.getTranslationSettings()))}clear(){var t;this._loaded=!1,this.store.actions.configuration(void 0),this.store.actions.map(void 0),this.store.actions.toc(void 0),this.store.actions.pagesToc(void 0),this.store.actions.currentPage(void 0),this.store.actions.searchInDocumentQuery(""),this.store.actions.relatives(void 0),this.store.actions.renderedTopics([]),this.store.actions.visibleTopics([]),this.store.actions.translation({sourceLanguage:void 0,destinationLanguage:void 0,profileId:void 0,isLoading:!1,isError:!1}),this.store.actions.mapRating(void 0),(t=this.service)===null||t===void 0||t.clear(),this.clusteringHelper=void 0}reload(){return this.clear(),this.load()}async fetchData(t){var r,n,i,o,s;try{t&&this.setTranslationLoading(!0);let a=l=>{throw t&&this.setTranslationError(!0),l};await Promise.all([this.loadConfiguration(),(r=this.service)===null||r===void 0?void 0:r.getMap(t).then(l=>this.store.actions.map(l)).catch(a),(n=this.service)===null||n===void 0?void 0:n.getToc(t).then(l=>this.store.actions.toc(l)).catch(a),(i=this.service)===null||i===void 0?void 0:i.getPagesToc(t).then(l=>this.store.actions.pagesToc(l)).catch(a),(o=this.service)===null||o===void 0?void 0:o.getPaginationConfiguration().then(l=>this.store.actions.paginationConfiguration(l)).catch(a),(s=this.service)===null||s===void 0?void 0:s.getTranslationError(t).then(l=>this.setTranslationError(l))]),this.metadataForSwitchToRelatives.size>0&&this.fetchRelatives(),this._loaded=!0,t&&this.setTranslationLoading(!1)}catch(a){this.errorHandler&&!(a instanceof dt.CanceledPromiseError)&&this.errorHandler(a)}}loadConfiguration(){var t;return(t=this.service)===null||t===void 0?void 0:t.getConfiguration().then(r=>this.store.actions.configuration(r))}reloadConfiguration(){var t;return(t=this.service)===null||t===void 0||t.clearConfiguration(),this.loadConfiguration()}async fetchRelatives(){var t,r;let n=(t=this.store.getState().map)===null||t===void 0?void 0:t.metadata.filter(i=>{var o;return i.key==((o=this.store.getState().configuration)===null||o===void 0?void 0:o.relativePivotMetadata)}).flatMap(i=>i.values);if(n!==void 0&&n.length>0){let i=await((r=this.service)===null||r===void 0?void 0:r.getRelativesForDocument(this.store.getState().configuration.relativePivotMetadata,n)),o=i?.results.flatMap(s=>s.entries);this.store.actions.relatives(o)}this.updateClusteringHelper()}updateClusteringHelper(){this.clusteringHelper=this.createClusteringHelper(),this.clusteringHelper&&this.store.dispatchEvent(new Event(re.clusteringHelperCreated))}createClusteringHelper(){var t,r;if(this.clusteringHelperProvider)return this.clusteringHelperProvider();let n=this.store.getState().relatives;if(n){let i=n.find(s=>{var a;return((a=s.map)===null||a===void 0?void 0:a.mapId)==this.store.getState().mapId}),o=(r=(t=E.getState().metadataConfiguration)===null||t===void 0?void 0:t.descriptors)!==null&&r!==void 0?r:[];return new dt.ClusteringHelper(n,i,this.metadataForSwitchToRelatives,o)}}async navigateToRelativeTopicIfFound(t){var r,n,i;await this.loaded();let o=await(0,dt.waitFor)(()=>{var c;return(c=this.store.getState().configuration)===null||c===void 0?void 0:c.relativeTopicPivotMetadata}),s=this.store.getState().mapId,l=await(await this.awaitService()).getRelativesForTopicInMap(s,o,[t]);if(!((i=(n=(r=l?.results)===null||r===void 0?void 0:r[0])===null||n===void 0?void 0:n.entries)===null||i===void 0)&&i[0]){let c=l.results[0].entries[0].topic.tocId;return await this.navigateToTopic(c),!0}else return await this.navigateToTopic("root"),!1}setSearchInDocumentQuery(t){this.store.actions.searchInDocumentQuery(t)}async setTranslationDestinationLanguage(t){this.store.actions.setTranslationDestinationLanguage(t),t&&this.sendDocumentOnDemandTranslateEvent(t),await this.loadDebouncer.run(()=>this.fetchData(this.getTranslationSettings()))}async setTranslationSourceLanguage(t){this.store.actions.setTranslationSourceLanguage(t),await this.loadDebouncer.run(()=>this.fetchData(this.getTranslationSettings()))}async setTranslationProfileId(t){this.store.actions.setTranslationProfileId(t)}async setTranslationLoading(t){this.store.actions.setTranslationLoading(t)}async setTranslationError(t){this.store.actions.setTranslationError(t)}getTranslationSettings(){var t;let r=this.store.getState();return r.translation.profileId&&r.translation.destinationLanguage?{profileId:r.translation.profileId,destinationLanguage:r.translation.destinationLanguage.code,sourceLanguage:(t=r.map)===null||t===void 0?void 0:t.lang}:void 0}setLinkPreviewDialogId(t){this.store.actions.linkPreviewDialogId(t)}async fetchMapRating(){var t;this.store.actions.mapRating(await((t=this.service)===null||t===void 0?void 0:t.getMapRating()))}async fetchTopicRating(t){var r;let n=await((r=this.service)===null||r===void 0?void 0:r.getTopicRating(t));n&&this.store.actions.setTopicsRating({[t]:n})}registerMetadataForSwitchToRelatives(t){this.metadataForSwitchToRelatives.add(t),this.store.getState().relatives==null?this.fetchRelatives():this.updateClusteringHelper()}unregisterMetadataForSwitchToRelatives(t){this.metadataForSwitchToRelatives.delete(t),this.updateClusteringHelper()}getAccurateNavigationData(t,r,n){return this.service.getAccurateNavigationData(t,r?.number,n?.section,this.getTranslationSettings())}buildBreadcrumb(t){var r;return(r=this.service)===null||r===void 0?void 0:r.buildBreadcrumb(t,this.getTranslationSettings())}fetchTopicContent(t){var r,n;let i=this.getTranslationSettings();return i?(this.sendTopicAiTranslateEvent(i.destinationLanguage,t),(r=this.service)===null||r===void 0?void 0:r.getTranslatedTopicContent(t,i).then(o=>(o.isTranslationError&&this.setTranslationError(!0),o.content))):(n=this.service)===null||n===void 0?void 0:n.getTopicContent(t)}getTocNode(t){return this.service.getTocNode(t,this.getTranslationSettings())}getPage(t){return this.service.getPage(t,this.getTranslationSettings())}onMapAttachmentsUpdate(){var t;(t=this.service)===null||t===void 0||t.clearMapAttachments(),this.store.dispatchEvent(new Event(re.mapAttachmentsUpdate))}async getRelativeDocumentUrlForLocale(t){var r,n,i;this.store.getState().relatives==null&&await this.fetchRelatives();let o=dt.ClusteringHelper.findResultWithMetadataValue((r=this.store.getState().relatives)!==null&&r!==void 0?r:[],"ft:locale",t),s=(0,dt.accessResultUrl)(o);if(s){let a=this.store.getState().visibleTopics[0],l=(n=this.store.getState().configuration)===null||n===void 0?void 0:n.relativeTopicPivotMetadata;if(l&&a){let c=await((i=this.service)===null||i===void 0?void 0:i.getTopicMetadataValue(a,l));s=ri(s,c)}}return s}sendDocumentOnDemandTranslateEvent(t){var r;let{editorMode:n,apiIntegrationIdentifier:i,apiIntegrationAppVersion:o}=E.getState(),s=this.store.getState(),a=s.map,l=s.translation.profileId;if(!(n||!a||!i||!o||!l))try{let u={...this.analyticsEventsService.convertMapToAnalyticsDocument(a),title:(r=a.untranslatedTitle)!==null&&r!==void 0?r:a.title};this.analyticsEventsService.sendDocumentOnDemandTranslateEvent({name:"DOCUMENT__ON_DEMAND_TRANSLATE",offline:!1,appName:i,appVersion:o,sourceLanguage:this.parseLanguageToAnalyticsFormat(a.lang),destinationLanguage:this.parseLanguageToAnalyticsFormat(t.code),profileId:l,document:u,translationOrigin:Sn.AI})}catch(c){console.warn("Failed to send on-demand document translate event:",c)}}sendTopicAiTranslateEvent(t,r){var n;let{editorMode:i,apiIntegrationIdentifier:o,apiIntegrationAppVersion:s}=E.getState(),a=this.store.getState(),l=a.map,c=a.translation.profileId;if(!(i||!l||!o||!s||!c))try{let u=this.buildBreadcrumb(r.tocId);if(!u){console.warn("Failed to build breadcrumb for topic ai translate event");return}let p={...this.analyticsEventsService.convertMapToAnalyticsDocument(l),title:(n=l.untranslatedTitle)!==null&&n!==void 0?n:l.title};this.analyticsEventsService.sendTopicAiTranslateEvent({name:"TOPIC__AI_TRANSLATE",offline:!1,appName:o,appVersion:s,sourceLanguage:this.parseLanguageToAnalyticsFormat(l.lang),destinationLanguage:this.parseLanguageToAnalyticsFormat(t),breadcrumb:u.map(f=>{var h;return{tocId:f.tocId,title:(h=f.untranslatedTitle)!==null&&h!==void 0?h:f.title}}),document:p,profileId:c})}catch(u){console.warn("Failed to send topic ai translate event:",u)}}parseLanguageToAnalyticsFormat(t){if(!t)return;let r=t.split("-");return r.length===2?{languageCode:r[0],countryCode:r[1]}:{languageCode:r[0],countryCode:""}}};var ii=class extends CustomEvent{constructor(t,r){super("ft-reader-map-loaded",{detail:{map:t,toc:r}})}},oi=class extends CustomEvent{constructor(t,r){super("ft-reader-visible-topics-change",{detail:{visibleTopics:r}})}},si=class extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}},ai=class extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}},li=class extends Event{constructor(){super("ft-reader-map-not-found")}},ci=class extends Event{constructor(){super("ft-reader-map-unauthorized")}},ui=class extends Event{constructor(){super("ft-reader-map-forbidden")}},di=class extends Event{constructor(){super("ft-reader-topic-relative-not-found",{bubbles:!0,composed:!0})}};var pt=function(e,t,r,n){var i=arguments.length,o=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(i<3?s(o):i>3?s(t,r,o):s(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o},_o=class{constructor(t){this.stateManager=t}searchInDocument(t){this.stateManager.setSearchInDocumentQuery(t??"")}},q=class extends Y.FtLitElementRedux{constructor(){super(),this.visibleTopics=[],this.updateConfiguration=()=>{this.stateManager.reloadConfiguration()},this.scrollToTargetDebouncer=new Y.Debouncer(5),this.navigationDebouncer=new Y.Debouncer(10),this.mapLoadedEventDebouncer=new Y.Debouncer(50),this.addStore(E)}render(){return zr.html`
911
+ `;var zr=m(L()),De=m(K()),Y=m(S());var dt=m(S());var Xc=m(S()),Dd={setTranslationDestinationLanguage:(e,t)=>{e.translation.destinationLanguage=t.payload},setTranslationSourceLanguage:(e,t)=>{e.translation.sourceLanguage=t.payload},setTranslationProfileId:(e,t)=>{e.translation.profileId=t.payload},setTranslationLoading:(e,t)=>{e.translation.isLoading=t.payload},setTranslationError:(e,t)=>{e.translation.isError=t.payload},setTopicsRating:(e,t)=>{for(let r in t.payload)e.topicsRating[r]=t.payload[r]}},Qc=e=>Xc.FtReduxStore.get({name:"ft-reader-"+e,initialState:{mapId:void 0,renderedTopics:[],visibleTopics:[],map:void 0,toc:void 0,pagesToc:void 0,paginationConfiguration:void 0,currentPage:void 0,scrollTarget:void 0,configuration:void 0,searchInDocumentQuery:void 0,relatives:void 0,mapRating:void 0,topicsRating:{},translation:{sourceLanguage:void 0,destinationLanguage:void 0,profileId:void 0,isLoading:!1,isError:!1},linkPreviewDialogId:void 0},reducers:Dd});var Ro=class{constructor(t,r){this.mapId=t,this.paginatedToc=r,this.nodeByTocId={},this.nodeByUrl={},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,nodeByUrl:this.nodeByUrl,duplicatedPrettyUrls:this.duplicatedPrettyUrls,pages:this.pages,pageByTocId:this.pageByTocId,translationError:this.paginatedToc.translationError}}extractPagesToc(t,r,n){return t.flatMap(i=>{var o;return i.pageConfiguration&&this.registerPage(this.buildPage(i,n)),i.tocId==null?this.extractPagesToc(i.children,r,n):[{tocId:i.tocId,title:(o=i.title)!==null&&o!==void 0?o:"",untranslatedTitle:i.untranslatedTitle,depth:r,children:this.extractPagesToc(i.children,r+1,i.tocId)}]})}convertNodes(t,r,n){return t.flatMap(i=>{var o,s,a;if(i.tocId==null)return[...this.convertSectionNodes((o=i.pageToc)!==null&&o!==void 0?o:[],r,i.tocId),...this.convertNodes(i.children,r,i.tocId)];let l=(s=i.prettyUrl)===null||s===void 0?void 0:s.replace(/^\//,""),c={tocId:i.tocId,contentId:i.contentId,title:i.title,untranslatedTitle:i.untranslatedTitle,hasRating:i.hasRating,origin:i.origin,prettyUrl:l,depth:r,parentTocId:n,children:[]};this.register(c);let u=this.convertSectionNodes((a=i.pageToc)!==null&&a!==void 0?a:[],r+1,i.tocId),d=this.convertNodes(i.children,r+1,c.tocId);return c.children=[...u,...d],[c]})}convertSectionNodes(t,r,n){return t.flatMap(i=>{var o;let s=(o=i.prettyUrl)===null||o===void 0?void 0:o.replace(/^\//,""),a={...i,prettyUrl:s,depth:r,parentTocId:n,children:[]};return this.register(a),a.children=this.convertSectionNodes(i.children,r+1,i.tocId),[a]})}buildPage(t,r){var n,i,o,s,a,l,c,u;let d={number:this.pages.length+1,title:(n=t.title)!==null&&n!==void 0?n:"",untranslatedTitle:t.untranslatedTitle,rootTocId:(s=(i=t.tocId)!==null&&i!==void 0?i:(o=t.pageToc)===null||o===void 0?void 0:o[0].tocId)!==null&&s!==void 0?s:"root",toc:((a=t.pageToc)!==null&&a!==void 0?a:[]).map(g=>this.nodeByTocId[g.tocId]),topics:[],hiddenTopics:[],breadcrumb:r?this.buildBreadcrumb(this.nodeByTocId[r]):[]},p=(g,b)=>(b?d.topics:d.hiddenTopics).push(g),f=(c=(l=t.pageConfiguration)===null||l===void 0?void 0:l.parentsVisibility)!==null&&c!==void 0?c:[];d.breadcrumb.forEach((g,b)=>{p(g,f[b])}),t.tocId&&p(t.tocId,t.pageConfiguration.isVisible),d.topics.push(...this.tocIds((u=t.pageToc)!==null&&u!==void 0?u:[]));let h=this.resolveOverridenRootTocIdByParentForcedByPagination(d.breadcrumb,f);return d.rootTocId=h??d.rootTocId,d}resolveOverridenRootTocIdByParentForcedByPagination(t,r){for(let n=0;n<t.length;n++)if(r[n])return t[n]}registerPage(t){for(let r of[...t.topics,...t.hiddenTopics])this.pageByTocId[r]||(this.pageByTocId[r]=t);this.pages.push(t)}tocIds(t){return t.flatMap(r=>[r.tocId,...this.tocIds(r.children)])}buildBreadcrumb(t){let r=[t.tocId];for(;t?.parentTocId;)r.unshift(t.parentTocId),t=this.nodeByTocId[t.parentTocId];return r}register(t){t.prettyUrl&&(this.nodeByUrl[t.prettyUrl]==null?this.nodeByUrl[t.prettyUrl]=t:this.duplicatedPrettyUrls.add(t.prettyUrl)),this.nodeByUrl[`${this.mapId}/${t.tocId}`]=t,this.nodeByTocId[t.tocId]=t}},Zn=class{convertPaginatedToc(t,r){return new Ro(t,r).build()}};var ti=class extends et{get mapId(){return this._mapId}set mapId(t){t!==this._mapId&&this.clear(),this._mapId=t}constructor(t,r,n){super(!1,r),this.converter=t,this._mapId=n,this.initCache()}async withMapId(t){return this._mapId?t(this._mapId):void 0}initCache(){this.cache.register("configuration",()=>this.api.getReaderConfiguration()),this.cache.register("map",()=>this.withMapId(t=>this.fetchMap(t))),this.cache.register("enrichedToc",()=>this.withMapId(t=>this.fetchPages(t).then(r=>this.converter.convertPaginatedToc(t,r)))),this.cache.register("ratingSummary",()=>{var t,r;return Jt((r=(t=E.getState().session)===null||t===void 0?void 0:t.profile.roles)!==null&&r!==void 0?r:[],"RATING_USER")?this.withMapId(i=>this.fetchMapRating(i)):Promise.resolve()})}clear(){this.cache.clearMatching(t=>t!=="configuration")}makeCacheKey(t,r){return t+(r?"-destinationLanguage-"+r?.destinationLanguage:"")}getMap(t){return this.cache.get(this.makeCacheKey("map",t),()=>this.fetchMap(this.mapId,t))}getMapNow(t){return this.cache.getNow(this.makeCacheKey("map",t))}getConfiguration(){return this.cache.get("configuration")}clearConfiguration(){this.cache.clear("configuration")}getEnrichedToc(t){return this.cache.get(this.makeCacheKey("enrichedToc",t),()=>this.fetchPages(this.mapId,t).then(r=>this.converter.convertPaginatedToc(this.mapId,r)))}getEnrichedTocNow(t){return this.cache.getNow(this.makeCacheKey("enrichedToc",t))}async getPaginationConfiguration(){return(await this.getEnrichedToc()).paginationConfiguration}async getToc(t){return(await this.getEnrichedToc(t)).toc}async getPagesToc(t){return(await this.getEnrichedToc(t)).pagesToc}async getTranslationError(t){return(await this.getEnrichedToc(t)).translationError}async getTocNode(t,r){return(await this.getEnrichedToc(r)).nodeByTocId[t]}getTocNodeNow(t,r){var n;return(n=this.getEnrichedTocNow(r))===null||n===void 0?void 0:n.nodeByTocId[t]}getTocNodeNowByUrl(t,r){var n,i;let o=this.getMapNow(r);return o?.prettyUrl==t||`${o?.id}/root`===t?(n=this.getEnrichedTocNow(r))===null||n===void 0?void 0:n.toc[0]:(i=this.getEnrichedTocNow(r))===null||i===void 0?void 0:i.nodeByUrl[t]}async getPage(t,r){let n=await this.getEnrichedToc(r);return n.pages[t-1]||n.pages[0]}async getPageByTocId(t,r){let n=await this.getEnrichedToc(r);return n.pageByTocId[t]||n.pages[0]}getTopicInfo(t){return this.cache.get("topic-"+t.tocId,()=>this.fetchTopicMetadata(t))}getTopicContent(t){return this.cache.get("topic-content-"+t.tocId,()=>this.fetchTopicHTMLContent(t))}getTranslatedTopicContent(t,r){return this.cache.get(this.makeCacheKey("translated-topic-content-"+t.tocId,r),()=>this.fetchTranslatedTopicHTMLContent(t,r))}async getTopicMetadataValue(t,r){let n=this.getTocNodeNow(t);if(!n)return;let i=await this.getTopicInfo(n);return i?.metadata.find(o=>o.key==r)}getAttachments(){return this.cache.get("map-attachments",()=>this.fetchAttachments())}clearMapAttachments(){this.cache.clear("map-attachments")}getRelativesForDocument(t,r){return this.cache.get("document-relatives-"+t+"-"+r.join("-"),()=>this.fetchRelativesForDocument(t,r))}getRelativesForTopicInMap(t,r,n){return this.cache.get("topic-relatives-"+[t,r,...n].join("-"),()=>this.fetchRelativesForTopicInMap(t,r,n))}getAttachmentDownloadLink(t){return this.makeAbsolute(`${this.api.endpoints.khub.maps.mapId(this.mapId).attachments.attachmentId(t).content}?download=true&locationValue=reader`)}getLink(t,r,n){let i=this.getNavigationData(t,r,n),o=this.getReaderLinkPrefix()+(i.prettyUrl?i.prettyUrl:`${i.mapId}/${i.tocId}`),s=new URL(o,this.api.tenantBaseUrl);return i.page!=null&&s.searchParams.set("page",`${i.page}`),i.prettyUrlDuplicated&&s.searchParams.set("tocId",i.tocId),i.section!=null&&s.searchParams.set("section",i.section),s.href}getNavigationData(t,r,n,i){var o,s;t=t||"root";let a=this.getEnrichedTocNow(i),l=a?.pageByTocId[t],c=a?.nodeByTocId[t],u=c?.prettyUrl;return{mapId:this.mapId,tocId:t,topicTitle:(o=c?.title)!==null&&o!==void 0?o:"",untranslatedTopicTitle:c?.untranslatedTitle,page:r&&l&&l.number!==r?r:void 0,prettyUrl:u?.replace(/^r\//,""),prettyUrlDuplicated:(s=a?.duplicatedPrettyUrls.has(u??""))!==null&&s!==void 0?s:!1,section:n}}async getAccurateNavigationData(t,r,n,i){return await this.getEnrichedToc(i),this.getNavigationData(t,r,n,i)}getRatingSummary(){return this.cache.get("ratingSummary")}reloadRating(){return this.cache.clear("ratingSummary"),this.getRatingSummary()}getMapRating(){return this.getRatingSummary().then(t=>t?.publication)}getTopicRating(t){return this.getRatingSummary().then(r=>{var n;return r?{type:r.topics.type,rating:(n=r.topics)===null||n===void 0?void 0:n.ratings.find(i=>i.tocId===t)}:void 0})}rateMap(t,r){return this.makeRateMapRequest(t,r).then(()=>this.clearRatingIfNecessary())}unrateMap(){return this.makeUnrateMapRequest().then(()=>this.clearRatingIfNecessary())}sendMapFeedback(t,r){return this.makeMapFeedbackRequest(t,r)}rateTopic(t,r,n){return this.makeRateTopicRequest(t,r,n).then(()=>this.clearRatingIfNecessary())}unrateTopic(t){return this.makeUnrateTopicRequest(t).then(()=>this.clearRatingIfNecessary())}async clearRatingIfNecessary(){let t=E.getState().session;t?.sessionAuthenticated&&this.cache.clear("ratingSummary")}sendTopicFeedback(t,r,n){return this.makeTopicFeedbackRequest(t,r,n)}fontsStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.fonts)}themeStylesheet(){return this.api.makeAbsolute(this.api.endpoints.stylesheets.theme)}buildBreadcrumb(t,r){let n=this.getTocNodeNow(t,r),i=[{tocId:n.tocId,title:n.title,untranslatedTitle:n.untranslatedTitle}],o=this.getTocNodeNow(n.parentTocId,r);for(;o;)i.unshift({tocId:o.tocId,title:o.title,untranslatedTitle:o.untranslatedTitle}),o=this.getTocNodeNow(o.parentTocId,r);return i}isFeatureAccessible(t,{session:r}){var n;if(!this.isFeatureAvailable(t))return!1;switch(t){case Gt.FEEDBACK:return Jt(r??[],I.FEEDBACK_USER);case Gt.RATING:return Jt(r??[],I.RATING_USER);case Gt.PRINT:return Jt(r??[],I.PRINT_USER);case Gt.BOOKMARK:return!!r?.sessionAuthenticated;case Gt.COLLECTIONS:return Jt(r??[],I.COLLECTION_USER);case Gt.PERSONAL_BOOKS:return Jt(r??[],I.PERSONAL_BOOK_USER)&&!(!((n=this.getMapNow())===null||n===void 0)&&n.pbkConfidential);default:return!1}}makeAbsolute(t){return this.api.makeAbsolute(t)}};var ei=class e extends ti{static async build(t){return new e(new Zn,void 0,t)}clear(){super.clear(),this.fingerprint=void 0}async fetchMap(t,r){let n=await this.api.getMap(t,r);return this.fingerprint=n.fingerprint,n}fetchMapRating(t){return this.api.getMapRating(t)}async fetchPages(t,r){return await this.getMap(r),this.api.getPages(t,this.fingerprint,r)}fetchTopicHTMLContent(t){return this.api.getTopicHTMLContent(this.mapId,t.contentId,"DESIGNED_READER",this.fingerprint)}fetchTranslatedTopicHTMLContent(t,r){return this.api.getTranslatedTopicHTMLContent(this.mapId,t.contentId,"DESIGNED_READER",this.fingerprint,r)}fetchTopicMetadata(t){return this.api.getTopic(this.mapId,t.contentId,this.fingerprint)}fetchAttachments(){return this.api.getMapAttachments(this.mapId).catch(()=>[])}fetchRelativesForDocument(t,r){let n={query:"",paging:{page:1,perPage:-1},scope:"DOCUMENTS",metadataFilters:[{key:t,valueFilter:{negative:!1,values:r}}],sort:[],facets:[]};return this.api.search(n)}fetchRelativesForTopicInMap(t,r,n){let i={query:"",paging:{page:1,perPage:1},scope:"ALL_TOPICS",metadataFilters:[{key:r,valueFilter:{negative:!1,values:n}},{key:"ft:publicationId",valueFilter:{negative:!1,values:[t]}}],sort:[],facets:[]};return this.api.search(i)}makeMapFeedbackRequest(t,r){return this.api.sendMapFeedback(this.mapId,t,r)}makeRateMapRequest(t,r){return this.api.rateMap(this.mapId,t,r)}makeRateTopicRequest(t,r,n){return this.api.rateTopic(this.mapId,t,r,n)}makeTopicFeedbackRequest(t,r,n){return this.api.sendTopicFeedback(this.mapId,t,r,n)}makeUnrateMapRequest(){return this.api.unrateMap(this.mapId)}makeUnrateTopicRequest(t){return this.api.unrateTopic(this.mapId,t)}getReaderLinkPrefix(){return"r/"}isFeatureAvailable(t){return!0}};var kd="topicPivot";function ri(e,t){let r=new URL(e);return t?.values.forEach(n=>{r.searchParams.append(kd,n)}),r.href}var ni=class e{static build(t,r){return new e(Qc(t.trim()||"context"),r??ei.build)}loaded(){return(0,dt.waitUntil)(()=>this._loaded)}constructor(t,r,n,i){this.store=t,this.clusteringHelperProvider=n,this.metadataForSwitchToRelatives=new Set,this._loaded=!1,this.loadDebouncer=new dt.Debouncer(10),this.analyticsEventsService=i??new In,this.initService(r)}async initService(t){return this.service=await t(),this.service.mapId=this.store.getState().mapId,this.reload()}async setMapId(t){t!==this.store.getState().mapId&&(this.store.actions.mapId(t),this.service&&(this.service.mapId=t),await this.reload())}setRenderedTopics(t){this.store.actions.renderedTopics(t)}setVisibleTopics(t){this.store.actions.visibleTopics(t)}async awaitService(){return(0,dt.waitFor)(()=>this.service)}async navigateToTopic(t,r,n){await this.loaded();let i=await this.awaitService(),o=await(n!=null?i.getPage(n,this.getTranslationSettings()):i.getPageByTocId(t??"root",this.getTranslationSettings()));this.store.actions.currentPage(o);let s=this.resolveValidNonRootTocId(t,o);this.store.actions.scrollTarget({tocId:s,section:r}),this.store.getState().visibleTopics[0]!==s&&this.store.actions.visibleTopics([])}resolveValidNonRootTocId(t,r){var n,i,o;let s=(n=t==="root"?void 0:t)!==null&&n!==void 0?n:r.rootTocId;return r.topics.includes(s)?s:(t!="root"&&!r.hiddenTopics.includes(s)&&this.store.dispatchEvent(new CustomEvent(re.requestedTopicNotFound,{detail:{tocId:s}})),(o=(i=r.topics[0])!==null&&i!==void 0?i:r.hiddenTopics[0])!==null&&o!==void 0?o:"root")}async navigateToPage(t){await this.loaded();let n=await(await this.awaitService()).getPage(t,this.getTranslationSettings());this.store.actions.currentPage(n)}scrollDone(){this.store.actions.scrollTarget({})}async load(){var t;!((t=this.service)===null||t===void 0)&&t.mapId&&this.store.getState().map==null&&await this.loadDebouncer.run(()=>this.fetchData(this.getTranslationSettings()))}clear(){var t;this._loaded=!1,this.store.actions.configuration(void 0),this.store.actions.map(void 0),this.store.actions.toc(void 0),this.store.actions.pagesToc(void 0),this.store.actions.currentPage(void 0),this.store.actions.searchInDocumentQuery(""),this.store.actions.relatives(void 0),this.store.actions.renderedTopics([]),this.store.actions.visibleTopics([]),this.store.actions.translation({sourceLanguage:void 0,destinationLanguage:void 0,profileId:void 0,isLoading:!1,isError:!1}),this.store.actions.mapRating(void 0),(t=this.service)===null||t===void 0||t.clear(),this.clusteringHelper=void 0}reload(){return this.clear(),this.load()}async fetchData(t){var r,n,i,o,s;try{t&&this.setTranslationLoading(!0);let a=l=>{throw t&&this.setTranslationError(!0),l};await Promise.all([this.loadConfiguration(),(r=this.service)===null||r===void 0?void 0:r.getMap(t).then(l=>this.store.actions.map(l)).catch(a),(n=this.service)===null||n===void 0?void 0:n.getToc(t).then(l=>this.store.actions.toc(l)).catch(a),(i=this.service)===null||i===void 0?void 0:i.getPagesToc(t).then(l=>this.store.actions.pagesToc(l)).catch(a),(o=this.service)===null||o===void 0?void 0:o.getPaginationConfiguration().then(l=>this.store.actions.paginationConfiguration(l)).catch(a),(s=this.service)===null||s===void 0?void 0:s.getTranslationError(t).then(l=>this.setTranslationError(l))]),this.metadataForSwitchToRelatives.size>0&&this.fetchRelatives(),this._loaded=!0,t&&this.setTranslationLoading(!1)}catch(a){this.errorHandler&&!(a instanceof dt.CanceledPromiseError)&&this.errorHandler(a)}}loadConfiguration(){var t;return(t=this.service)===null||t===void 0?void 0:t.getConfiguration().then(r=>this.store.actions.configuration(r))}reloadConfiguration(){var t;return(t=this.service)===null||t===void 0||t.clearConfiguration(),this.loadConfiguration()}async fetchRelatives(){var t,r;let n=(t=this.store.getState().map)===null||t===void 0?void 0:t.metadata.filter(i=>{var o;return i.key==((o=this.store.getState().configuration)===null||o===void 0?void 0:o.relativePivotMetadata)}).flatMap(i=>i.values);if(n!==void 0&&n.length>0){let i=await((r=this.service)===null||r===void 0?void 0:r.getRelativesForDocument(this.store.getState().configuration.relativePivotMetadata,n)),o=i?.results.flatMap(s=>s.entries);this.store.actions.relatives(o)}this.updateClusteringHelper()}updateClusteringHelper(){this.clusteringHelper=this.createClusteringHelper(),this.clusteringHelper&&this.store.dispatchEvent(new Event(re.clusteringHelperCreated))}createClusteringHelper(){var t,r;if(this.clusteringHelperProvider)return this.clusteringHelperProvider();let n=this.store.getState().relatives;if(n){let i=n.find(s=>{var a;return((a=s.map)===null||a===void 0?void 0:a.mapId)==this.store.getState().mapId}),o=(r=(t=E.getState().metadataConfiguration)===null||t===void 0?void 0:t.descriptors)!==null&&r!==void 0?r:[];return new dt.ClusteringHelper(n,i,this.metadataForSwitchToRelatives,o)}}async navigateToRelativeTopicIfFound(t){var r,n,i;await this.loaded();let o=await(0,dt.waitFor)(()=>{var c;return(c=this.store.getState().configuration)===null||c===void 0?void 0:c.relativeTopicPivotMetadata}),s=this.store.getState().mapId,l=await(await this.awaitService()).getRelativesForTopicInMap(s,o,[t]);if(!((i=(n=(r=l?.results)===null||r===void 0?void 0:r[0])===null||n===void 0?void 0:n.entries)===null||i===void 0)&&i[0]){let c=l.results[0].entries[0].topic.tocId;return await this.navigateToTopic(c),!0}else return await this.navigateToTopic("root"),!1}setSearchInDocumentQuery(t){this.store.actions.searchInDocumentQuery(t)}async setTranslationDestinationLanguage(t){this.store.actions.setTranslationDestinationLanguage(t),t&&this.sendDocumentOnDemandTranslateEvent(t),await this.loadDebouncer.run(()=>this.fetchData(this.getTranslationSettings()))}async setTranslationSourceLanguage(t){this.store.actions.setTranslationSourceLanguage(t),await this.loadDebouncer.run(()=>this.fetchData(this.getTranslationSettings()))}async setTranslationProfileId(t){this.store.actions.setTranslationProfileId(t)}async setTranslationLoading(t){this.store.actions.setTranslationLoading(t)}async setTranslationError(t){this.store.actions.setTranslationError(t)}getTranslationSettings(){var t;let r=this.store.getState();return r.translation.profileId&&r.translation.destinationLanguage?{profileId:r.translation.profileId,destinationLanguage:r.translation.destinationLanguage.code,sourceLanguage:(t=r.map)===null||t===void 0?void 0:t.lang}:void 0}setLinkPreviewDialogId(t){this.store.actions.linkPreviewDialogId(t)}async fetchMapRating(){var t;this.store.actions.mapRating(await((t=this.service)===null||t===void 0?void 0:t.getMapRating()))}async fetchTopicRating(t){var r;let n=await((r=this.service)===null||r===void 0?void 0:r.getTopicRating(t));n&&this.store.actions.setTopicsRating({[t]:n})}registerMetadataForSwitchToRelatives(t){this.metadataForSwitchToRelatives.add(t),this.store.getState().relatives==null?this.fetchRelatives():this.updateClusteringHelper()}unregisterMetadataForSwitchToRelatives(t){this.metadataForSwitchToRelatives.delete(t),this.updateClusteringHelper()}getAccurateNavigationData(t,r,n){return this.service.getAccurateNavigationData(t,r?.number,n?.section,this.getTranslationSettings())}buildBreadcrumb(t){var r;return(r=this.service)===null||r===void 0?void 0:r.buildBreadcrumb(t,this.getTranslationSettings())}fetchTopicContent(t){var r,n;let i=this.getTranslationSettings();return i?(this.sendTopicAiTranslateEvent(i.destinationLanguage,t),(r=this.service)===null||r===void 0?void 0:r.getTranslatedTopicContent(t,i).then(o=>(o.isTranslationError&&this.setTranslationError(!0),o.content))):(n=this.service)===null||n===void 0?void 0:n.getTopicContent(t)}getTocNode(t){return this.service.getTocNode(t,this.getTranslationSettings())}getPage(t){return this.service.getPage(t,this.getTranslationSettings())}onMapAttachmentsUpdate(){var t;(t=this.service)===null||t===void 0||t.clearMapAttachments(),this.store.dispatchEvent(new Event(re.mapAttachmentsUpdate))}async getRelativeDocumentUrlForLocale(t){var r,n,i;this.store.getState().relatives==null&&await this.fetchRelatives();let o=dt.ClusteringHelper.findResultWithMetadataValue((r=this.store.getState().relatives)!==null&&r!==void 0?r:[],"ft:locale",t),s=(0,dt.accessResultUrl)(o);if(s){let a=this.store.getState().visibleTopics[0],l=(n=this.store.getState().configuration)===null||n===void 0?void 0:n.relativeTopicPivotMetadata;if(l&&a){let c=await((i=this.service)===null||i===void 0?void 0:i.getTopicMetadataValue(a,l));s=ri(s,c)}}return s}sendDocumentOnDemandTranslateEvent(t){var r;let{editorMode:n,apiIntegrationIdentifier:i,apiIntegrationAppVersion:o}=E.getState(),s=this.store.getState(),a=s.map,l=s.translation.profileId;if(!(n||!a||!i||!o||!l))try{let u={...this.analyticsEventsService.convertMapToAnalyticsDocument(a),title:(r=a.untranslatedTitle)!==null&&r!==void 0?r:a.title};this.analyticsEventsService.sendDocumentOnDemandTranslateEvent({name:"DOCUMENT__ON_DEMAND_TRANSLATE",offline:!1,appName:i,appVersion:o,sourceLanguage:this.parseLanguageToAnalyticsFormat(a.lang),destinationLanguage:this.parseLanguageToAnalyticsFormat(t.code),profileId:l,document:u,translationOrigin:Sn.AI})}catch(c){console.warn("Failed to send on-demand document translate event:",c)}}sendTopicAiTranslateEvent(t,r){var n;let{editorMode:i,apiIntegrationIdentifier:o,apiIntegrationAppVersion:s}=E.getState(),a=this.store.getState(),l=a.map,c=a.translation.profileId;if(!(i||!l||!o||!s||!c))try{let u=this.buildBreadcrumb(r.tocId);if(!u){console.warn("Failed to build breadcrumb for topic ai translate event");return}let p={...this.analyticsEventsService.convertMapToAnalyticsDocument(l),title:(n=l.untranslatedTitle)!==null&&n!==void 0?n:l.title};this.analyticsEventsService.sendTopicAiTranslateEvent({name:"TOPIC__AI_TRANSLATE",offline:!1,appName:o,appVersion:s,sourceLanguage:this.parseLanguageToAnalyticsFormat(l.lang),destinationLanguage:this.parseLanguageToAnalyticsFormat(t),breadcrumb:u.map(f=>{var h;return{tocId:f.tocId,title:(h=f.untranslatedTitle)!==null&&h!==void 0?h:f.title}}),document:p,profileId:c})}catch(u){console.warn("Failed to send topic ai translate event:",u)}}parseLanguageToAnalyticsFormat(t){if(!t)return;let r=t.split("-");return r.length===2?{languageCode:r[0],countryCode:r[1]}:{languageCode:r[0],countryCode:""}}};var ii=class extends CustomEvent{constructor(t,r){super("ft-reader-map-loaded",{detail:{map:t,toc:r}})}},oi=class extends CustomEvent{constructor(t,r){super("ft-reader-visible-topics-change",{detail:{visibleTopics:r}})}},si=class extends CustomEvent{constructor(t){super("ft-reader-navigation-done",{detail:t})}},ai=class extends CustomEvent{constructor(t){super("ft-reader-load-error",{detail:t})}},li=class extends Event{constructor(){super("ft-reader-map-not-found")}},ci=class extends Event{constructor(){super("ft-reader-map-unauthorized")}},ui=class extends Event{constructor(){super("ft-reader-map-forbidden")}},di=class extends Event{constructor(){super("ft-reader-topic-relative-not-found",{bubbles:!0,composed:!0})}};var pt=function(e,t,r,n){var i=arguments.length,o=i<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(i<3?s(o):i>3?s(t,r,o):s(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o},_o=class{constructor(t){this.stateManager=t}searchInDocument(t){this.stateManager.setSearchInDocumentQuery(t??"")}},q=class extends Y.FtLitElementRedux{constructor(){super(),this.visibleTopics=[],this.updateConfiguration=()=>{this.stateManager.reloadConfiguration()},this.scrollToTargetDebouncer=new Y.Debouncer(5),this.navigationDebouncer=new Y.Debouncer(10),this.mapLoadedEventDebouncer=new Y.Debouncer(50),this.addStore(E)}render(){return zr.html`
912
912
  ${this.importStyleIfNeeded()}
913
913
  <slot @register-ft-reader-component=${this.registerComponent}></slot>
914
914
  `}importStyleIfNeeded(){var t,r;let n=(t=this.stateManager.service)===null||t===void 0?void 0:t.themeStylesheet();return!n||window.location.href.startsWith((r=this.baseUrl)!==null&&r!==void 0?r:"")?zr.nothing:zr.html`