@embedpdf-editor/react-chapter-viewer 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/NOTICE +7 -0
- package/README.md +90 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +803 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9791 -0
- package/dist/index.js.map +1 -0
- package/package.json +76 -0
- package/src/vite.ts +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../editor-engine/dist/react/index.js","../../editor-engine/dist/index.js","../../chapter-viewer/dist/index.js","../../plugin-paragraph-bookmark/dist/index.js","../../chapter-core/dist/index.js","../../plugin-chapter-manager/dist/index.js","../../plugin-chapter-scroll/dist/index.js","../src/ChapterTreePanel.tsx"],"sourcesContent":["import{jsx as t,jsxs as e,Fragment as a}from\"react/jsx-runtime\";import{useRef as s,useState as i,useEffect as r,useMemo as o,useCallback as n}from\"react\";import{useCapability as h,useRegistry as l,EmbedPDF as d}from\"@embedpdf/core/react\";import{GlobalPointerProvider as c,PagePointerProvider as u}from\"@embedpdf/plugin-interaction-manager/react\";import{Rotate as p}from\"@embedpdf/plugin-rotate/react\";import{SelectionLayer as g}from\"@embedpdf/plugin-selection/react\";import{glyphAt as f,expandToLineBoundary as m,rectsWithinSlice as v,SelectionPlugin as b,SelectionPluginPackage as P}from\"@embedpdf/plugin-selection\";import{AnnotationLayer as w}from\"@embedpdf/plugin-annotation/react\";import{RedactionLayer as I}from\"@embedpdf/plugin-redaction/react\";import{DocumentManagerPlugin as y,DocumentManagerPluginPackage as C}from\"@embedpdf/plugin-document-manager\";import{BasePlugin as M,createBehaviorEmitter as S,createEmitter as x,createPluginRegistration as $}from\"@embedpdf/core\";import{PdfErrorCode as k,PdfAnnotationSubtype as L,uuidV4 as D,PdfBlendMode as z}from\"@embedpdf/models\";import{RenderLayer as T}from\"@embedpdf/plugin-render/react\";import\"@embedpdf/plugin-tiling/react\";import{LockModeType as G,AnnotationPlugin as A,ANNOTATION_PLUGIN_ID as O,AnnotationPluginPackage as N}from\"@embedpdf/plugin-annotation\";import{InteractionManagerPluginPackage as V}from\"@embedpdf/plugin-interaction-manager\";import{RenderPluginPackage as R}from\"@embedpdf/plugin-render\";import{RotatePluginPackage as E}from\"@embedpdf/plugin-rotate\";import{HistoryPluginPackage as U}from\"@embedpdf/plugin-history\";import{RedactionPluginPackage as _}from\"@embedpdf/plugin-redaction\";import{FormPluginPackage as F}from\"@embedpdf/plugin-form\";import{StampPluginPackage as q}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as W}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as H}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as B}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as j,UIPluginPackage as Y}from\"@embedpdf/plugin-ui\";const X={kind:\"first-wins\"};function K(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let Z=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function Q(t,e=X){const a=function(t,e=X){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,K(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new Z(r)}const J=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=X,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??X,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=Q(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};J.id=\"chapter-manager\";let tt=J;const et=class extends M{constructor(t,e){super(t,e),this.layoutChange$=S(),this.visibleChange$=S(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(tt.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),o=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&o.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==o.length?this.applyChapterPageSizes(t,o):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const r=[];let o=s,n=-1;for(let h=s;h<i;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,o=h)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=e;r<=s;r++){const t=this.virtualPageMap.atIndex(r);if(!t)continue;const e=this.getPageSize(r),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:r,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[r],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const o=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!o||!n)return void this.scrollToIndex(t,a);const h=o.height/n.size.height,l=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};et.id=\"chapter-scroll\";let at=et;function st({renderPage:e,renderPlaceholder:a,className:o,style:n,...l}){const{provides:d}=h(at.id),c=s(null),[u,p]=i(null);r(()=>{if(!d)return;const t=c.current;d.registerViewport(t);const e=d.onLayoutChange(t=>p(t));return()=>{e(),d.registerViewport(null)}},[d]);const g=(null==u?void 0:u.totalHeight)??0,f=(null==u?void 0:u.totalWidth)??0;/* @__PURE__ */\nreturn t(\"div\",{...l,ref:c,\"data-chapter-scroll-viewport\":\"\",className:o,style:{overflow:\"auto\",position:\"relative\",width:\"100%\",height:\"100%\",...n},children:/* @__PURE__ */t(\"div\",{style:{position:\"relative\",width:`${f}px`,height:`${g}px`,margin:\"0 auto\"},children:null==u?void 0:u.items.map(s=>/* @__PURE__ */t(\"div\",{\"data-global-page-index\":s.globalPageIndex,\"data-chapter-id\":s.chapterId,\"data-local-page-index\":s.localPageIndex,style:{position:\"absolute\",top:`${s.offsetTop}px`,left:\"50%\",transform:\"translateX(-50%)\",width:`${s.width}px`,height:`${s.height}px`,backgroundColor:s.isPlaceholder?\"#f3f4f6\":\"#fff\",boxShadow:\"0 1px 4px rgba(0,0,0,0.08)\"},children:s.isPlaceholder?(null==a?void 0:a(s))??/* @__PURE__ */t(\"div\",{style:{display:\"flex\",width:\"100%\",height:\"100%\",alignItems:\"center\",justifyContent:\"center\",color:\"#9ca3af\",fontSize:\"12px\"},children:\"Loading chapter…\"}):e(s)},s.globalPageIndex))})})}function it({chapterId:e,localPageIndex:a,scale:s,dpr:i,className:r}){return t(T,{documentId:e,pageIndex:a,scale:s,dpr:i,className:r,style:{pointerEvents:\"none\"}})}const rt={kind:\"first-wins\"};function ot(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let nt=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function ht(t,e=rt){const a=function(t,e=rt){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,ot(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new nt(r)}const lt=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=rt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??rt,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=ht(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};lt.id=\"chapter-manager\";let dt=lt;const ct={kind:\"first-wins\"};function ut(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let pt=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function gt(t,e=ct){const a=function(t,e=ct){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,ut(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new pt(r)}const ft=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=ct,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??ct,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=gt(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};ft.id=\"chapter-manager\";let mt=ft;const vt=class extends M{constructor(t,e){super(t,e),this.layoutChange$=S(),this.visibleChange$=S(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(mt.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),o=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&o.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==o.length?this.applyChapterPageSizes(t,o):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const r=[];let o=s,n=-1;for(let h=s;h<i;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,o=h)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=e;r<=s;r++){const t=this.virtualPageMap.atIndex(r);if(!t)continue;const e=this.getPageSize(r),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:r,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[r],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const o=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!o||!n)return void this.scrollToIndex(t,a);const h=o.height/n.size.height,l=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};vt.id=\"chapter-scroll\";let bt=vt;const Pt=class t extends M{constructor(t,e){super(t,e),this.notesChange$=S([]),this.noteActivated$=x(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(bt.id),this.chapterManager=this.registry.getPlugin(dt.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(e){if(this.config=e,e.callbacks.loadNotes)try{const t=await e.callbacks.loadNotes();for(const e of t)this.notes.set(e.noteId,e);this.notesChange$.emit(this.listAll())}catch(a){this.logger.error(t.id,\"LoadNotes\",\"Failed to load notes\",a)}}buildCapability(){return{createNoteFromSelection:t=>this.createNoteFromSelection(t),requestCreateFromSelection:t=>this.requestCreateFromSelection(t),registerNote:t=>this.registerNote(t),listNotesForPage:(t,e)=>this.listAll().filter(a=>a.chapterId===t&&a.localPageIndex===e),listAllNotes:()=>this.listAll(),getNote:t=>this.notes.get(t)??null,deleteNote:t=>this.deleteNote(t),updateNoteContent:(t,e)=>this.updateNoteContent(t,e),scrollToNote:t=>this.scrollToNote(t),onNotesChange:this.notesChange$.on,onNoteActivated:this.noteActivated$.on}}registerNote(t){this.notes.set(t.noteId,t),this.notesChange$.emit(this.listAll())}requestEdit(t){const e=this.notes.get(t);e&&(this.config.callbacks.onRequestEditNote?this.config.callbacks.onRequestEditNote(t,e):this.activateNote(t))}activateNote(t){var e,a;const s=this.notes.get(t);s&&(null==(a=(e=this.config.callbacks).onActivateNote)||a.call(e,t,s),this.noteActivated$.emit({noteId:t,anchor:s}))}listAll(){return Array.from(this.notes.values())}buildDraft(t){return{chapterId:t.chapterId,localPageIndex:t.localPageIndex,globalPageNumber:t.globalPageNumber,globalPageIndex:t.globalPageIndex,rectsPdfCoord:t.rectsPdfCoord,endAnchor:It(t.rectsPdfCoord),selectedText:t.selectedText,content:t.content}}async requestCreateFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const e=this.buildDraft(t),{onRequestCreateNote:a,onCreateNote:s}=this.config.callbacks;return a?(a({draft:e,complete:async t=>{const a={...e,noteId:t};this.registerNote(a)}}),null):this.createNoteFromSelection(t)}async createNoteFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const a=this.buildDraft(e),s=this.config.callbacks.onCreateNote;if(!s)return this.logger.error(t.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let i=null;try{i=await s(a)}catch(o){return this.logger.error(t.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!i)return null;const r={...a,noteId:i.noteId};return this.registerNote(r),r}async deleteNote(e){var a,s;if(this.notes.has(e)){try{await(null==(s=(a=this.config.callbacks).onDeleteNote)?void 0:s.call(a,e))}catch(i){return void this.logger.error(t.id,\"OnDeleteNote\",\"Callback failed\",i)}this.notes.delete(e),this.notesChange$.emit(this.listAll())}}async updateNoteContent(e,a){var s,i;const r=this.notes.get(e);if(!r)return;const o={...r,content:a};try{await(null==(i=(s=this.config.callbacks).onUpdateNote)?void 0:i.call(s,o))}catch(n){return void this.logger.error(t.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(e,o),this.notesChange$.emit(this.listAll())}async scrollToNote(t){var e;const a=this.notes.get(t);if(!a)return;const s=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(a.chapterId);(null==(e=this.documentManager.provides().getDocument(a.chapterId))?void 0:e.pages[a.localPageIndex])?(s.scrollToGlobalPageIndex(a.globalPageIndex),await this.waitForPageInLayout(a.globalPageIndex),s.scrollToGlobalPdfPoint(a.globalPageIndex,a.endAnchor.y,{marginTop:80})):s.scrollToGlobalPageIndex(a.globalPageIndex)}waitForPageInLayout(t){const e=this.chapterScroll.provides(),a=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const s=setTimeout(()=>{i(),a(null)},2500),i=e.onLayoutChange(e=>{const r=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);r&&(clearTimeout(s),i(),a(r))})})}};Pt.id=\"note\";let wt=Pt;function It(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}function yt({chapterId:a,localPageIndex:s,pdfPageWidth:o,pdfPageHeight:n,cssPageWidth:h,cssPageHeight:d,color:c=\"#f59e0b\",ui:u,className:p,style:g}){const{plugin:f}=(()=>{const{registry:t}=l();if(null===t)return{plugin:null,isLoading:!0,ready:new Promise(()=>{})};const e=t.getPlugin(wt.id);return{plugin:e,isLoading:!1,ready:(null==e?void 0:e.ready())??Promise.resolve()}})(),{provides:m}=(()=>{const{registry:t}=l();if(null===t)return{provides:null,isLoading:!0,ready:new Promise(()=>{})};const e=t.getPlugin(wt.id);return(null==e?void 0:e.provides)?{provides:e.provides(),isLoading:!1,ready:e.ready()}:{provides:null,isLoading:!1,ready:Promise.resolve()}})(),[v,b]=i([]),[P,w]=i(null),[I,y]=i(null);if(r(()=>{if(m)return m.onNotesChange(t=>{b(t.filter(t=>t.chapterId===a&&t.localPageIndex===s))})},[m,a,s]),r(()=>{if(!I)return;const t=t=>{var e;const a=t.target;(null==(e=a.closest)?void 0:e.call(a,`[data-note-marker-zone=\"${I}\"]`))||(y(null),w(null))};return document.addEventListener(\"mousedown\",t),()=>document.removeEventListener(\"mousedown\",t)},[I]),!m||0===v.length||!o||!n)return null;const C=h/o,M=d/n,S=(null==u?void 0:u.iconSize)??16,x=(null==u?void 0:u.highlightColor)??\"rgba(245, 158, 11, 0.08)\";/* @__PURE__ */\nreturn t(\"div\",{className:p,style:{position:\"absolute\",inset:0,pointerEvents:\"none\",zIndex:25,...g},children:v.map(a=>{const s=P===a.noteId,i=I===a.noteId,r=s||i,{left:o,top:n}=function(t){const{markerPdf:e,lineRects:a,sx:s,sy:i,cssPageWidth:r,iconSize:o,gapPx:n=6}=t,h=(null==a?void 0:a.length)?a[a.length-1]:void 0;let l,d;h?(l=(h.origin.x+h.size.width)*s+n,d=h.origin.y*i+(h.size.height*i-o)/2):(l=e.x*s-o/2,d=e.y*i-o-n);const c=Math.max(0,r-o-2);return l>c&&(l=c),d<0&&(d=0),{left:l,top:d}}({markerPdf:a.endAnchor,lineRects:a.rectsPdfCoord,sx:C,sy:M,cssPageWidth:h,iconSize:S}),l=function(t,e,a){let s=1/0,i=1/0,r=-1/0,o=-1/0;for(const n of t)s=Math.min(s,n.origin.x*e),i=Math.min(i,n.origin.y*a),r=Math.max(r,(n.origin.x+n.size.width)*e),o=Math.max(o,(n.origin.y+n.size.height)*a);return{left:s,top:i,width:r-s,height:o-i}}(a.rectsPdfCoord,C,M),d=i?72:0,p=Math.max(0,Math.min(l.left,o)-8),g=Math.max(0,Math.min(l.top,n)-8),v=Math.min(h,Math.max(l.left+l.width,o+S)+8)-p,b=Math.max(l.top+l.height,n+S+6+d)+8-g;/* @__PURE__ */\nreturn e(\"div\",{children:[a.rectsPdfCoord.map((e,s)=>/* @__PURE__ */t(\"div\",{style:{position:\"absolute\",left:e.origin.x*C+\"px\",top:e.origin.y*M+\"px\",width:e.size.width*C+\"px\",height:e.size.height*M+\"px\",background:x,borderRadius:\"2px\",pointerEvents:\"auto\",cursor:\"default\"},onMouseEnter:()=>w(a.noteId)},`${a.noteId}-bg-${s}`)),r&&/* @__PURE__ */e(\"div\",{\"data-note-marker-zone\":a.noteId,style:{position:\"absolute\",left:`${p}px`,top:`${g}px`,width:`${v}px`,height:`${b}px`,pointerEvents:\"auto\",zIndex:26},onMouseEnter:()=>w(a.noteId),onMouseLeave:()=>{I!==a.noteId&&w(null)},children:[(null==u?void 0:u.renderIcon)?/* @__PURE__ */t(\"div\",{role:\"button\",tabIndex:0,title:\"笔记\",\"aria-label\":\"笔记\",onMouseDown:t=>t.stopPropagation(),onClick:t=>{t.stopPropagation(),y(t=>t===a.noteId?null:a.noteId)},style:{position:\"absolute\",left:o-p+\"px\",top:n-g+\"px\",width:`${S}px`,height:`${S}px`,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\",border:\"none\",padding:0},children:u.renderIcon({note:a})}):/* @__PURE__ */t(\"button\",{type:\"button\",title:\"笔记\",onMouseDown:t=>t.stopPropagation(),onClick:t=>{t.stopPropagation(),y(t=>t===a.noteId?null:a.noteId)},style:{position:\"absolute\",left:o-p+\"px\",top:n-g+\"px\",width:`${S}px`,height:`${S}px`,border:\"none\",borderRadius:\"50%\",background:c,color:\"#fff\",cursor:\"pointer\",boxShadow:\"0 2px 6px rgba(0,0,0,0.2)\",padding:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:\"11px\",lineHeight:1},\"aria-label\":\"笔记\",children:\"💬\"}),i&&((null==u?void 0:u.renderMenuActions)?/* @__PURE__ */t(\"div\",{style:{position:\"absolute\",left:o-p+S/2+\"px\",top:`${n-g+S+6}px`,transform:\"translateX(-50%)\",zIndex:30,pointerEvents:\"auto\"},onMouseDown:t=>t.stopPropagation(),children:u.renderMenuActions({note:a,onEdit:()=>{y(null),w(null),null==f||f.requestEdit(a.noteId)},onDelete:()=>{y(null),w(null),m.deleteNote(a.noteId)}})}):/* @__PURE__ */e(\"div\",{style:{position:\"absolute\",left:o-p+S/2+\"px\",top:`${n-g+S+6}px`,transform:\"translateX(-50%)\",zIndex:30,pointerEvents:\"auto\",minWidth:\"80px\",padding:\"4px\",borderRadius:\"6px\",background:\"#fff\",border:\"1px solid #e5e7eb\",boxShadow:\"0 4px 12px rgba(0,0,0,0.12)\"},onMouseDown:t=>t.stopPropagation(),children:[\n/* @__PURE__ */t(\"button\",{type:\"button\",style:Ct,onClick:t=>{t.stopPropagation(),y(null),w(null),null==f||f.requestEdit(a.noteId)},children:\"编辑\"}),\n/* @__PURE__ */t(\"button\",{type:\"button\",style:{...Ct,color:\"#dc2626\"},onClick:t=>{t.stopPropagation(),y(null),w(null),m.deleteNote(a.noteId)},children:\"删除\"})]}))]})]},a.noteId)})})}const Ct={display:\"block\",width:\"100%\",padding:\"6px 10px\",fontSize:\"12px\",border:\"none\",borderRadius:\"4px\",background:\"transparent\",color:\"#334155\",cursor:\"pointer\",textAlign:\"left\"};const Mt={kind:\"first-wins\"};function St(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let xt=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function $t(t,e=Mt){const a=function(t,e=Mt){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,St(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new xt(r)}const kt=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=Mt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??Mt,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=$t(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};kt.id=\"chapter-manager\";let Lt=kt;const Dt={kind:\"first-wins\"};function zt(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let Tt=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function Gt(t,e=Dt){const a=function(t,e=Dt){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,zt(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new Tt(r)}const At=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=Dt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??Dt,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=Gt(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};At.id=\"chapter-manager\";let Ot=At;const Nt=class extends M{constructor(t,e){super(t,e),this.layoutChange$=S(),this.visibleChange$=S(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(Ot.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),o=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&o.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==o.length?this.applyChapterPageSizes(t,o):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const r=[];let o=s,n=-1;for(let h=s;h<i;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,o=h)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=e;r<=s;r++){const t=this.virtualPageMap.atIndex(r);if(!t)continue;const e=this.getPageSize(r),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:r,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[r],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const o=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!o||!n)return void this.scrollToIndex(t,a);const h=o.height/n.size.height,l=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};Nt.id=\"chapter-scroll\";let Vt=Nt;function Rt(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}function Et(t,e){const a=t.origin.y,s=t.origin.y+t.size.height,i=e.origin.y,r=e.origin.y+e.size.height,o=Math.max(s,r)-Math.min(a,i);if(o<=0)return 0;return Math.max(0,Math.min(s,r)-Math.max(a,i))/o}function Ut(t,e){var a,s;if(t.chapterId!==e.chapterId||t.localPageIndex!==e.localPageIndex)return!1;const i=(null==(a=t.rectsPdfCoord)?void 0:a.length)?t.rectsPdfCoord:[t.rectPdfCoord],r=(null==(s=e.rectsPdfCoord)?void 0:s.length)?e.rectsPdfCoord:[e.rectPdfCoord],o=t.markerAnchor??Rt(i),n=e.markerAnchor??Rt(r);if(Math.hypot(o.x-n.x,o.y-n.y)<=6)return!0;for(const h of i)for(const t of r){if(Et(h,t)<.5)continue;const e=Math.max(h.origin.x,t.origin.x);if(Math.min(h.origin.x+h.size.width,t.origin.x+t.size.width)-e>.25*Math.min(h.size.width,t.size.width))return!0}return!1}async function _t(t,e,a){t.scrollToGlobalPageIndex(e),await function(t,e,a=2500){const s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const i=setTimeout(()=>{r(),s(null)},a),r=t.onLayoutChange(t=>{const a=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);a&&(clearTimeout(i),r(),s(a))})})}(t,e),t.scrollToGlobalPdfPoint(e,a,{marginTop:80})}const Ft=class t extends M{constructor(t,e){super(t,e),this.change$=S([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(Vt.id),this.chapterManager=this.registry.getPlugin(Lt.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(e){var a;if(this.config=e,null==(a=e.callbacks)?void 0:a.load)try{const t=await e.callbacks.load();for(const e of t)this.entries.set(e.id,e);this.change$.emit(this.list())}catch(s){this.logger.error(t.id,\"Load\",\"Failed to load paragraph bookmarks\",s)}}buildCapability(){return{addBookmark:t=>this.addBookmark(t),removeBookmark:t=>this.removeBookmark(t),updateBookmark:(t,e)=>this.updateBookmark(t,e),listBookmarks:()=>this.list(),getBookmark:t=>this.entries.get(t)??null,scrollToBookmark:t=>this.scrollToBookmark(t),requestRemoveBookmark:t=>this.requestRemoveBookmark(t),onBookmarksChange:this.change$.on}}addBookmark(t){for(const s of this.entries.values())if(Ut(s.anchor,t.anchor))return s;const e=t.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,a={id:e,label:t.label,anchor:t.anchor,metadata:t.metadata,createdAt:Date.now()};return this.entries.set(e,a),this.notifyAndPersist(),a}removeBookmark(t){var e,a,s;this.entries.delete(t)&&(this.notifyAndPersist(),null==(s=null==(a=null==(e=this.config)?void 0:e.callbacks)?void 0:a.onRemoveSuccess)||s.call(a,t))}async requestRemoveBookmark(e){var a,s;const i=this.entries.get(e);if(!i)return!1;const r=null==(s=null==(a=this.config)?void 0:a.callbacks)?void 0:s.onRequestRemove;if(r)try{if(!(await r(i)))return!1}catch(o){return this.logger.error(t.id,\"RequestRemove\",\"callback failed\",o),!1}return this.removeBookmark(e),!0}updateBookmark(t,e){const a=this.entries.get(t);a&&(this.entries.set(t,{...a,...e}),this.notifyAndPersist())}list(){return Array.from(this.entries.values()).sort((t,e)=>t.createdAt-e.createdAt)}notifyAndPersist(){var e,a;const s=this.list();this.change$.emit(s),(null==(a=null==(e=this.config)?void 0:e.callbacks)?void 0:a.persist)&&Promise.resolve(this.config.callbacks.persist(s)).catch(e=>this.logger.error(t.id,\"Persist\",\"persist callback rejected\",e))}async scrollToBookmark(t){const e=this.entries.get(t);if(!e)return;const a=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(e.anchor.chapterId);let s=e.anchor.globalPageIndex;if(void 0===s){const t=this.chapterManager.provides().getVirtualPageMap().toGlobal(e.anchor.chapterId,e.anchor.localPageIndex);if(!t)return;s=t.globalPageIndex}const i=function(t){if(t.markerAnchor)return t.markerAnchor.y;const e=t.rectPdfCoord;return e.origin.y+e.size.height}(e.anchor);await _t(a,s,i)}};Ft.id=\"paragraph-bookmark\";let qt=Ft;function Wt({chapterId:a,localPageIndex:o,pdfPageWidth:n,pdfPageHeight:l,cssPageWidth:d,cssPageHeight:c,onBookmarkClick:u,ui:p,className:g,style:f}){const{provides:m}=h(qt.id),[v,b]=i([]),[P,w]=i(null),I=s(null);if(r(()=>{if(!m)return;const t=()=>{b(m.listBookmarks().filter(t=>t.anchor.chapterId===a&&t.anchor.localPageIndex===o))};return t(),m.onBookmarksChange(t)},[m,a,o]),r(()=>{if(!P)return;const t=t=>{var e;(null==(e=I.current)?void 0:e.contains(t.target))||w(null)};return document.addEventListener(\"mousedown\",t),()=>document.removeEventListener(\"mousedown\",t)},[P]),!m||0===v.length||!n||!l)return null;const y=d/n,C=c/l,M=(null==p?void 0:p.iconSize)??16;/* @__PURE__ */\nreturn t(\"div\",{className:g,style:{position:\"absolute\",inset:0,pointerEvents:\"none\",...f},children:v.map(a=>{var s;const i=(null==(s=a.anchor.rectsPdfCoord)?void 0:s.length)?a.anchor.rectsPdfCoord:[a.anchor.rectPdfCoord],r=a.anchor.markerAnchor??{x:a.anchor.rectPdfCoord.origin.x+a.anchor.rectPdfCoord.size.width,y:a.anchor.rectPdfCoord.origin.y+a.anchor.rectPdfCoord.size.height},{left:o,top:n}=function(t){const{markerPdf:e,lineRects:a,sx:s,sy:i,cssPageWidth:r,iconSize:o,gapPx:n=6}=t,h=(null==a?void 0:a.length)?a[a.length-1]:void 0;let l,d;h?(l=(h.origin.x+h.size.width)*s+n,d=h.origin.y*i+(h.size.height*i-o)/2):(l=e.x*s-o/2,d=e.y*i-o-n);const c=Math.max(0,r-o-2);return l>c&&(l=c),d<0&&(d=0),{left:l,top:d}}({markerPdf:r,lineRects:i,sx:y,sy:C,cssPageWidth:d,iconSize:M}),h=Math.max(0,o-6),l=Math.max(0,n-6);/* @__PURE__ */\nreturn e(\"div\",{style:{position:\"absolute\",left:`${h}px`,top:`${l}px`,width:`${M+12}px`,height:`${M+12}px`,pointerEvents:\"auto\",zIndex:20},onMouseDown:t=>t.stopPropagation(),children:[(null==p?void 0:p.renderIcon)?/* @__PURE__ */t(\"div\",{role:\"button\",tabIndex:0,title:a.label,\"aria-label\":`bookmark ${a.label}`,style:{position:\"absolute\",left:\"6px\",top:\"6px\",width:`${M}px`,height:`${M}px`,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\",border:\"none\",padding:0},onClick:t=>{t.stopPropagation(),w(t=>t===a.id?null:a.id),null==u||u(a)},children:p.renderIcon({bookmark:a})}):/* @__PURE__ */t(\"button\",{type:\"button\",title:a.label,onClick:t=>{t.stopPropagation(),w(t=>t===a.id?null:a.id),null==u||u(a)},style:{position:\"absolute\",left:\"6px\",top:\"6px\",width:`${M}px`,height:`${M}px`,border:\"none\",borderRadius:\"4px\",background:\"#3b82f6\",color:\"#fff\",cursor:\"pointer\",boxShadow:\"0 2px 6px rgba(37, 99, 235, 0.35)\",padding:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:\"11px\",lineHeight:1},\"aria-label\":`bookmark ${a.label}`,children:\"🔖\"}),P===a.id&&/* @__PURE__ */t(\"div\",{ref:I,style:{position:\"absolute\",left:\"6px\",top:\"-36px\",zIndex:30,pointerEvents:\"auto\",minWidth:\"88px\",padding:\"4px\",borderRadius:\"6px\",background:\"#fff\",border:\"1px solid #e5e7eb\",boxShadow:\"0 4px 12px rgba(0,0,0,0.12)\"},onClick:t=>t.stopPropagation(),children:/* @__PURE__ */t(\"button\",{type:\"button\",style:{width:\"100%\",padding:\"6px 8px\",fontSize:\"12px\",border:\"none\",borderRadius:\"4px\",background:\"transparent\",color:\"#dc2626\",cursor:\"pointer\",textAlign:\"left\"},onClick:()=>{m.requestRemoveBookmark(a.id).then(t=>{t&&w(null)})},children:\"删除书签\"})})]},a.id)})})}function Ht(t){return t.chapterId}function Bt(t,e){t.wait(e,()=>{})}function jt(t,e,a){return{chapterId:t.chapterId,localPageIndex:t.localPageIndex,globalPageIndex:t.globalPageIndex,globalPageNumber:t.globalPageNumber,rectsPdfCoord:e,selectedText:a}}const Yt=\"note\",Xt={id:Yt,name:\"Note Plugin\",version:\"0.1.0\",provides:[\"note\"],requires:[\"selection\",\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{callbacks:{onCreateNote:async()=>null,onActivateNote:()=>{}},markerSize:18}};const Kt={kind:\"first-wins\"};function Zt(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let Qt=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function Jt(t,e=Kt){const a=function(t,e=Kt){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,Zt(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new Qt(r)}const te=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=Kt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??Kt,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=Jt(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};te.id=\"chapter-manager\";let ee=te;const ae={kind:\"first-wins\"};function se(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let ie=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function re(t,e=ae){const a=function(t,e=ae){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,se(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new ie(r)}const oe=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=ae,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??ae,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=re(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};oe.id=\"chapter-manager\";let ne=oe;const he=class extends M{constructor(t,e){super(t,e),this.layoutChange$=S(),this.visibleChange$=S(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(ne.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),o=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&o.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==o.length?this.applyChapterPageSizes(t,o):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const r=[];let o=s,n=-1;for(let h=s;h<i;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,o=h)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=e;r<=s;r++){const t=this.virtualPageMap.atIndex(r);if(!t)continue;const e=this.getPageSize(r),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:r,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[r],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const o=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!o||!n)return void this.scrollToIndex(t,a);const h=o.height/n.size.height,l=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};he.id=\"chapter-scroll\";let le=he;const de=class t extends M{constructor(t,e){super(t,e),this.notesChange$=S([]),this.noteActivated$=x(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(le.id),this.chapterManager=this.registry.getPlugin(ee.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(e){if(this.config=e,e.callbacks.loadNotes)try{const t=await e.callbacks.loadNotes();for(const e of t)this.notes.set(e.noteId,e);this.notesChange$.emit(this.listAll())}catch(a){this.logger.error(t.id,\"LoadNotes\",\"Failed to load notes\",a)}}buildCapability(){return{createNoteFromSelection:t=>this.createNoteFromSelection(t),requestCreateFromSelection:t=>this.requestCreateFromSelection(t),registerNote:t=>this.registerNote(t),listNotesForPage:(t,e)=>this.listAll().filter(a=>a.chapterId===t&&a.localPageIndex===e),listAllNotes:()=>this.listAll(),getNote:t=>this.notes.get(t)??null,deleteNote:t=>this.deleteNote(t),updateNoteContent:(t,e)=>this.updateNoteContent(t,e),scrollToNote:t=>this.scrollToNote(t),onNotesChange:this.notesChange$.on,onNoteActivated:this.noteActivated$.on}}registerNote(t){this.notes.set(t.noteId,t),this.notesChange$.emit(this.listAll())}requestEdit(t){const e=this.notes.get(t);e&&(this.config.callbacks.onRequestEditNote?this.config.callbacks.onRequestEditNote(t,e):this.activateNote(t))}activateNote(t){var e,a;const s=this.notes.get(t);s&&(null==(a=(e=this.config.callbacks).onActivateNote)||a.call(e,t,s),this.noteActivated$.emit({noteId:t,anchor:s}))}listAll(){return Array.from(this.notes.values())}buildDraft(t){return{chapterId:t.chapterId,localPageIndex:t.localPageIndex,globalPageNumber:t.globalPageNumber,globalPageIndex:t.globalPageIndex,rectsPdfCoord:t.rectsPdfCoord,endAnchor:ue(t.rectsPdfCoord),selectedText:t.selectedText,content:t.content}}async requestCreateFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const e=this.buildDraft(t),{onRequestCreateNote:a,onCreateNote:s}=this.config.callbacks;return a?(a({draft:e,complete:async t=>{const a={...e,noteId:t};this.registerNote(a)}}),null):this.createNoteFromSelection(t)}async createNoteFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const a=this.buildDraft(e),s=this.config.callbacks.onCreateNote;if(!s)return this.logger.error(t.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let i=null;try{i=await s(a)}catch(o){return this.logger.error(t.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!i)return null;const r={...a,noteId:i.noteId};return this.registerNote(r),r}async deleteNote(e){var a,s;if(this.notes.has(e)){try{await(null==(s=(a=this.config.callbacks).onDeleteNote)?void 0:s.call(a,e))}catch(i){return void this.logger.error(t.id,\"OnDeleteNote\",\"Callback failed\",i)}this.notes.delete(e),this.notesChange$.emit(this.listAll())}}async updateNoteContent(e,a){var s,i;const r=this.notes.get(e);if(!r)return;const o={...r,content:a};try{await(null==(i=(s=this.config.callbacks).onUpdateNote)?void 0:i.call(s,o))}catch(n){return void this.logger.error(t.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(e,o),this.notesChange$.emit(this.listAll())}async scrollToNote(t){var e;const a=this.notes.get(t);if(!a)return;const s=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(a.chapterId);(null==(e=this.documentManager.provides().getDocument(a.chapterId))?void 0:e.pages[a.localPageIndex])?(s.scrollToGlobalPageIndex(a.globalPageIndex),await this.waitForPageInLayout(a.globalPageIndex),s.scrollToGlobalPdfPoint(a.globalPageIndex,a.endAnchor.y,{marginTop:80})):s.scrollToGlobalPageIndex(a.globalPageIndex)}waitForPageInLayout(t){const e=this.chapterScroll.provides(),a=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const s=setTimeout(()=>{i(),a(null)},2500),i=e.onLayoutChange(e=>{const r=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);r&&(clearTimeout(s),i(),a(r))})})}};de.id=\"note\";let ce=de;function ue(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}const pe={manifest:Xt,create:t=>new ce(Yt,t),reducer:t=>t,initialState:{}},ge=\"paragraph-bookmark\",fe={id:ge,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};const me={kind:\"first-wins\"};function ve(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let be=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function Pe(t,e=me){const a=function(t,e=me){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,ve(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new be(r)}const we=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=me,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??me,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=Pe(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};we.id=\"chapter-manager\";let Ie=we;const ye={kind:\"first-wins\"};function Ce(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}class Me{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}}function Se(t,e=ye){const a=function(t,e=ye){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,Ce(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new Me(r)}const xe=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=ye,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??ye,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=Se(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};xe.id=\"chapter-manager\";let $e=xe;const ke=class extends M{constructor(t,e){super(t,e),this.layoutChange$=S(),this.visibleChange$=S(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin($e.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),o=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&o.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==o.length?this.applyChapterPageSizes(t,o):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const r=[];let o=s,n=-1;for(let h=s;h<i;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,o=h)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=e;r<=s;r++){const t=this.virtualPageMap.atIndex(r);if(!t)continue;const e=this.getPageSize(r),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:r,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[r],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const o=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!o||!n)return void this.scrollToIndex(t,a);const h=o.height/n.size.height,l=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};ke.id=\"chapter-scroll\";let Le=ke;function De(t){if(0===t.length)throw new Error(\"unionRects: empty rects\");let e=1/0,a=1/0,s=-1/0,i=-1/0;for(const r of t)e=Math.min(e,r.origin.x),a=Math.min(a,r.origin.y),s=Math.max(s,r.origin.x+r.size.width),i=Math.max(i,r.origin.y+r.size.height);return{origin:{x:e,y:a},size:{width:s-e,height:i-a}}}function ze(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}function Te(t,e){const a=t.origin.y,s=t.origin.y+t.size.height,i=e.origin.y,r=e.origin.y+e.size.height,o=Math.max(s,r)-Math.min(a,i);if(o<=0)return 0;return Math.max(0,Math.min(s,r)-Math.max(a,i))/o}function Ge(t,e){var a,s;if(t.chapterId!==e.chapterId||t.localPageIndex!==e.localPageIndex)return!1;const i=(null==(a=t.rectsPdfCoord)?void 0:a.length)?t.rectsPdfCoord:[t.rectPdfCoord],r=(null==(s=e.rectsPdfCoord)?void 0:s.length)?e.rectsPdfCoord:[e.rectPdfCoord],o=t.markerAnchor??ze(i),n=e.markerAnchor??ze(r);if(Math.hypot(o.x-n.x,o.y-n.y)<=6)return!0;for(const h of i)for(const t of r){if(Te(h,t)<.5)continue;const e=Math.max(h.origin.x,t.origin.x);if(Math.min(h.origin.x+h.size.width,t.origin.x+t.size.width)-e>.25*Math.min(h.size.width,t.size.width))return!0}return!1}async function Ae(t,e,a){t.scrollToGlobalPageIndex(e),await function(t,e,a=2500){const s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const i=setTimeout(()=>{r(),s(null)},a),r=t.onLayoutChange(t=>{const a=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);a&&(clearTimeout(i),r(),s(a))})})}(t,e),t.scrollToGlobalPdfPoint(e,a,{marginTop:80})}const Oe=class t extends M{constructor(t,e){super(t,e),this.change$=S([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(Le.id),this.chapterManager=this.registry.getPlugin(Ie.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(e){var a;if(this.config=e,null==(a=e.callbacks)?void 0:a.load)try{const t=await e.callbacks.load();for(const e of t)this.entries.set(e.id,e);this.change$.emit(this.list())}catch(s){this.logger.error(t.id,\"Load\",\"Failed to load paragraph bookmarks\",s)}}buildCapability(){return{addBookmark:t=>this.addBookmark(t),removeBookmark:t=>this.removeBookmark(t),updateBookmark:(t,e)=>this.updateBookmark(t,e),listBookmarks:()=>this.list(),getBookmark:t=>this.entries.get(t)??null,scrollToBookmark:t=>this.scrollToBookmark(t),requestRemoveBookmark:t=>this.requestRemoveBookmark(t),onBookmarksChange:this.change$.on}}addBookmark(t){for(const s of this.entries.values())if(Ge(s.anchor,t.anchor))return s;const e=t.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,a={id:e,label:t.label,anchor:t.anchor,metadata:t.metadata,createdAt:Date.now()};return this.entries.set(e,a),this.notifyAndPersist(),a}removeBookmark(t){var e,a,s;this.entries.delete(t)&&(this.notifyAndPersist(),null==(s=null==(a=null==(e=this.config)?void 0:e.callbacks)?void 0:a.onRemoveSuccess)||s.call(a,t))}async requestRemoveBookmark(e){var a,s;const i=this.entries.get(e);if(!i)return!1;const r=null==(s=null==(a=this.config)?void 0:a.callbacks)?void 0:s.onRequestRemove;if(r)try{if(!(await r(i)))return!1}catch(o){return this.logger.error(t.id,\"RequestRemove\",\"callback failed\",o),!1}return this.removeBookmark(e),!0}updateBookmark(t,e){const a=this.entries.get(t);a&&(this.entries.set(t,{...a,...e}),this.notifyAndPersist())}list(){return Array.from(this.entries.values()).sort((t,e)=>t.createdAt-e.createdAt)}notifyAndPersist(){var e,a;const s=this.list();this.change$.emit(s),(null==(a=null==(e=this.config)?void 0:e.callbacks)?void 0:a.persist)&&Promise.resolve(this.config.callbacks.persist(s)).catch(e=>this.logger.error(t.id,\"Persist\",\"persist callback rejected\",e))}async scrollToBookmark(t){const e=this.entries.get(t);if(!e)return;const a=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(e.anchor.chapterId);let s=e.anchor.globalPageIndex;if(void 0===s){const t=this.chapterManager.provides().getVirtualPageMap().toGlobal(e.anchor.chapterId,e.anchor.localPageIndex);if(!t)return;s=t.globalPageIndex}const i=function(t){if(t.markerAnchor)return t.markerAnchor.y;const e=t.rectPdfCoord;return e.origin.y+e.size.height}(e.anchor);await Ae(a,s,i)}};Oe.id=\"paragraph-bookmark\";let Ne=Oe;const Ve={manifest:fe,create:t=>new Ne(ge,t),reducer:t=>t,initialState:{}};function Re(t){const{provides:e}=h(y.id);r(()=>{e&&t&&e.isDocumentOpen(t)&&e.setActiveDocument(t)},[e,t])}function Ee(){const{registry:t}=l();return!!t?.getPlugin(ce.id)}function Ue(){const{registry:t}=l();return!!t?.getPlugin(Ne.id)}function _e(){const{registry:t}=l();return o(()=>{const e=t?.getPlugin(ce.id)?.provides?.();return e?t=>e.createNoteFromSelection(t):null},[t])}function Fe({item:e,pdfPageWidth:a,pdfPageHeight:o,cssPageWidth:l,cssPageHeight:d,hoverUi:c}){const u=Ht(e),{provides:p}=h(b.id),{provides:g}=h(Ne.id),P=s(null),[w,I]=i(null),[y,C]=i(null),[M,S]=i(null),x=c?.iconSize??16;r(()=>{if(!p)return;const t=p.forDocument(u),a=()=>{const a=t.getState().geometry[e.localPageIndex];a&&I(a)},s=t.onSelectionChange(a);let i=!1;const r=()=>{if(!i){try{if(a(),t.getState().geometry[e.localPageIndex])return}catch{}requestAnimationFrame(r)}};return r(),()=>{i=!0,s()}},[p,u,e.localPageIndex]);const $=M??y;r(()=>{if(!w||!a)return;const t=t=>{if(M)return;if(p)try{if(p.forDocument(u).getState().selecting)return void C(null)}catch{}const e=P.current;if(!e)return;const s=e.getBoundingClientRect();if(t.clientX<s.left||t.clientX>s.right||t.clientY<s.top||t.clientY>s.bottom)return void C(null);const i=function(t,e){const a=f(t,e);if(a<0)return null;const s=m(t,a);if(!s)return null;const i=v(t,s.from,s.to);return 0===i.length?null:{lineRects:i,charFrom:s.from,charTo:s.to}}(w,{x:(t.clientX-s.left)/(l/a),y:(t.clientY-s.top)/(d/o)});C(i?.lineRects??null)};return document.addEventListener(\"mousemove\",t),()=>document.removeEventListener(\"mousemove\",t)},[w,a,o,l,d,p,u,M]);const k=$?.length?function(t,e,a,s){const i=a.length>0?a:[];if(0===i.length)throw new Error(\"buildParagraphBookmarkAnchor: no rects\");return{chapterId:t,localPageIndex:e,globalPageIndex:null==s?void 0:s.globalPageIndex,globalPageNumber:null==s?void 0:s.globalPageNumber,rectPdfCoord:De(i),rectsPdfCoord:i,markerAnchor:ze(i)}}(e.chapterId,e.localPageIndex,$,{globalPageIndex:e.globalPageIndex,globalPageNumber:e.globalPageNumber}):null,L=k&&g?.listBookmarks().some(t=>Ge(t.anchor,k)),D=n(()=>{g&&k&&!L&&(g.addBookmark({label:`书签 ${/* @__PURE__ */(new Date).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"})}`,anchor:k}),C(null),S(null))},[g,k,L]);if(!g||!a||!o)return null;const z=l/a,T=d/o,G=$?.[$.length-1],A=G?Math.min((G.origin.x+G.size.width)*z+6,Math.max(0,l-x-2)):0,O=G?G.origin.y*T+(G.size.height*T-x)/2:0,N=G?Math.max(0,(G.origin.x+G.size.width)*z-4):0,V=G?Math.max(0,G.origin.y*T-4):0;/* @__PURE__ */\nreturn t(\"div\",{ref:P,style:{position:\"absolute\",inset:0,zIndex:14,pointerEvents:\"none\"},children:$&&G&&!L&&/* @__PURE__ */t(\"div\",{style:{position:\"absolute\",left:`${N}px`,top:`${V}px`,width:`${x+20}px`,height:`${G.size.height*T+x+12}px`,pointerEvents:\"auto\"},onMouseEnter:()=>S($),onMouseLeave:()=>S(null),children:c?.renderAddIcon?/* @__PURE__ */t(\"div\",{role:\"button\",tabIndex:0,title:\"添加书签\",onClick:t=>{t.stopPropagation(),D()},style:{position:\"absolute\",left:A-N+\"px\",top:O-V+\"px\",width:x,height:x,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\",border:\"none\",padding:0},children:c.renderAddIcon()}):/* @__PURE__ */t(\"button\",{type:\"button\",title:\"添加书签\",onClick:t=>{t.stopPropagation(),D()},style:{position:\"absolute\",left:A-N+\"px\",top:O-V+\"px\",width:`${x}px`,height:`${x}px`,border:\"none\",borderRadius:\"4px\",background:\"#3b82f6\",color:\"#fff\",cursor:\"pointer\",boxShadow:\"0 2px 8px rgba(37, 99, 235, 0.45)\",fontSize:\"12px\",lineHeight:1,padding:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:\"🔖\"})})})}const qe={highlight:{offsetY:0},underline:{offsetY:2.5},squiggly:{offsetY:0},strikeout:{offsetY:0}},We={highlight:L.HIGHLIGHT,underline:L.UNDERLINE,squiggly:L.SQUIGGLY,strikeout:L.STRIKEOUT};function He(t,e){return 0===e?t:t.map(t=>({origin:{x:t.origin.x,y:t.origin.y+e},size:{...t.size}}))}function Be(t){let e=1/0,a=1/0,s=-1/0,i=-1/0;for(const r of t)e=Math.min(e,r.origin.x),a=Math.min(a,r.origin.y),s=Math.max(s,r.origin.x+r.size.width),i=Math.max(i,r.origin.y+r.size.height);return{origin:{x:e,y:a},size:{width:s-e,height:i-a}}}function je(t,e,a,s,i){const r=a.forDocument(t),o=s.forDocument(t);if(!r||!o)return!1;const n=\"highlight\"===e?\"highlight\":\"underline\"===e?\"underline\":\"squiggly\"===e?\"squiggly\":\"strikeout\",h=a.getTool(n);if(!h)return!1;const l=h.defaults,d=function(t,e){return{...qe[t],...null==e?void 0:e[t]}}(e,i),c=o.getFormattedSelection();if(0===c.length)return!1;r.setLocked({type:G.Exclude,categories:[\"markup\",\"shape\"]});for(const u of c){const t=D(),a=d.color??l.color??l.strokeColor,s=d.opacity??l.opacity,i=d.thickness??l.strokeWidth,o=d.offsetY??0,n=\"underline\"===e||\"squiggly\"===e||\"strikeout\"===e?He(u.segmentRects,o):u.segmentRects,h=\"underline\"===e||\"squiggly\"===e||\"strikeout\"===e?Be(n):u.rect;r.createAnnotation(u.pageIndex,{id:t,created:/* @__PURE__ */new Date,flags:[\"print\"],type:We[e],...\"highlight\"===e?{blendMode:z.Multiply}:{},strokeColor:a,opacity:s,...null!=i?{strokeWidth:i}:{},pageIndex:u.pageIndex,rect:h,segmentRects:n})}return o.clear(),!0}const Ye=[{id:\"highlight\",label:\"高亮背景\",icon:/* @__PURE__ */t(Qe,{})},{id:\"underline\",label:\"下划线\",icon:/* @__PURE__ */t(Je,{})},{id:\"squiggly\",label:\"波浪线\",icon:/* @__PURE__ */t(ta,{})},{id:\"strikeout\",label:\"删除线\",icon:/* @__PURE__ */t(ea,{})},{id:\"note\",label:\"添加笔记\",icon:/* @__PURE__ */t(aa,{})}];function Xe({placementAbove:s,anchorHeight:i,onAction:r,hiddenBuiltinActions:o=[],extraActions:n=[]}){const h=new Set(o),l=Ye.filter(t=>\"note\"!==t.id&&!h.has(t.id)),d=Ye.find(t=>\"note\"===t.id),c=d&&!h.has(\"note\"),u=[...n].sort((t,e)=>(t.order??0)-(e.order??0));/* @__PURE__ */\nreturn e(\"div\",{style:{position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:s?void 0:i+10,bottom:s?i+10:void 0,display:\"flex\",alignItems:\"center\",gap:2,padding:\"6px 8px\",borderRadius:10,background:\"#ffffff\",border:\"1px solid rgba(15, 23, 42, 0.08)\",boxShadow:\"0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 10px 24px -4px rgba(15, 23, 42, 0.12)\"},role:\"toolbar\",\"aria-label\":\"选区工具\",children:[l.map(e=>/* @__PURE__ */t(Ke,{label:e.label,onClick:()=>r(e.id),children:e.icon},e.id)),u.map(e=>/* @__PURE__ */t(Ke,{label:e.label,onClick:()=>r(e.id),children:/* @__PURE__ */t(\"span\",{style:{fontSize:11,fontWeight:600},children:e.label.slice(0,2)})},e.id)),c&&/* @__PURE__ */e(a,{children:[\n/* @__PURE__ */t(\"span\",{style:{width:1,height:28,margin:\"0 4px\",background:\"#e2e8f0\",flexShrink:0},\"aria-hidden\":!0}),\n/* @__PURE__ */t(Ke,{label:d.label,onClick:()=>r(\"note\"),accent:!0,children:d.icon})]})]})}function Ke({label:e,onClick:a,accent:s,children:i}){/* @__PURE__ */\nreturn t(\"button\",{type:\"button\",title:e,\"aria-label\":e,onClick:a,style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:36,height:36,padding:0,border:\"none\",borderRadius:8,background:\"transparent\",color:s?\"#b45309\":\"#334155\",cursor:\"pointer\"},onMouseEnter:t=>{t.currentTarget.style.background=s?\"#fffbeb\":\"#f1f5f9\"},onMouseLeave:t=>{t.currentTarget.style.background=\"transparent\"},children:i})}function Ze({behind:a,mark:s}){/* @__PURE__ */\nreturn e(\"svg\",{width:\"28\",height:\"28\",viewBox:\"0 0 28 28\",fill:\"none\",\"aria-hidden\":!0,children:[a,\n/* @__PURE__ */t(\"text\",{x:\"14\",y:\"19\",textAnchor:\"middle\",fontSize:\"15\",fontWeight:\"700\",fontFamily:\"system-ui, sans-serif\",fill:\"#0f172a\",children:\"A\"}),s]})}function Qe(){/* @__PURE__ */\nreturn t(Ze,{behind:/* @__PURE__ */t(\"rect\",{x:\"5\",y:\"4\",width:\"18\",height:\"20\",rx:\"3\",fill:\"#facc15\"})})}function Je(){/* @__PURE__ */\nreturn t(Ze,{mark:/* @__PURE__ */t(\"path\",{d:\"M6 22h16\",stroke:\"#dc2626\",strokeWidth:\"2.2\",strokeLinecap:\"round\"})})}function ta(){/* @__PURE__ */\nreturn t(Ze,{mark:/* @__PURE__ */t(\"path\",{d:\"M6 22c2-2 3-2 5 0s3 2 5 0 3-2 5 0\",stroke:\"#dc2626\",strokeWidth:\"2\",strokeLinecap:\"round\",fill:\"none\"})})}function ea(){/* @__PURE__ */\nreturn t(Ze,{mark:/* @__PURE__ */t(\"path\",{d:\"M5 14h18\",stroke:\"#dc2626\",strokeWidth:\"2.2\",strokeLinecap:\"round\"})})}function aa(){/* @__PURE__ */\nreturn e(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":!0,children:[\n/* @__PURE__ */t(\"path\",{d:\"M8 3h8l4 4v14H8V3z\",fill:\"#fef3c7\",stroke:\"#d97706\",strokeWidth:\"1.2\",strokeLinejoin:\"round\"}),\n/* @__PURE__ */t(\"path\",{d:\"M16 3v4h4\",stroke:\"#d97706\",strokeWidth:\"1.2\"}),\n/* @__PURE__ */t(\"path\",{d:\"M10 12h6M10 16h4\",stroke:\"#92400e\",strokeWidth:\"1.2\",strokeLinecap:\"round\"})]})}const sa={highlight:\"highlight\",underline:\"underline\",squiggly:\"squiggly\",strikeout:\"strikeout\"};function ia(e,a){const s=e?.selectionToolbar,i=!1!==e?.markup?.enabled,r=!1!==e?.notes?.enabled;if(!1===s?.enabled)return;if(!i&&!r&&!s?.extraActions?.length)return;const{provides:n}=h(b.id),{provides:l}=h(A.id),{provides:d}=h(ce.id);return o(()=>o=>{const h=Ht(o.item);return c=>/* @__PURE__ */t(\"div\",{...c.menuWrapperProps,children:/* @__PURE__ */t(Xe,{placementAbove:!!c.placement?.suggestTop,anchorHeight:c.rect.size.height,onAction:t=>{if(\"highlight\"!==t&&\"underline\"!==t&&\"squiggly\"!==t&&\"strikeout\"!==t){if(\"note\"===t){if(!n||!d||!r)return;const t=n.getHighlightRectsForPage(o.item.localPageIndex,h);return void Bt(n.getSelectedText(h),e=>{d.requestCreateFromSelection({chapterId:o.item.chapterId,localPageIndex:o.item.localPageIndex,globalPageIndex:o.item.globalPageIndex,globalPageNumber:o.item.globalPageNumber,rectsPdfCoord:t,selectedText:e.join(\"\\n\")})})}a?.onExtraAction?.(t,o)}else{if(!n||!l||!i)return;je(h,sa[t],l,n,e?.markup?.styles)}},hiddenBuiltinActions:s?.hiddenBuiltinActions,extraActions:s?.extraActions})})},[l,e?.markup?.styles,a?.onExtraAction,i,d,r,n,s?.extraActions,s?.hiddenBuiltinActions])}function ra({className:s,buildSelectionMenu:i,annotationSelectionMenu:r,redactionSelectionMenu:n,showNoteMarkers:h=!0,showBookmarkMarkers:l=!0,showRedactionLayer:d=!1,renderPageOverlay:c,features:u,onExtraSelectionAction:p,children:g}){const f=_e(),m=Ee(),v=Ue(),b=h&&m&&!1!==u?.notes?.enabled,P=l&&v&&!1!==u?.bookmarks?.enabled,w=v&&!1!==u?.bookmarks?.enabled,I=ia(u,{onExtraAction:p}),y=o(()=>{if(i||I)return t=>{const e=I?I(t):t.defaultMenu;return i?i({...t,defaultMenu:e}):e}},[i,I]),C=o(()=>c||w?s=>/* @__PURE__ */e(a,{children:[w&&/* @__PURE__ */t(oa,{item:s,hoverUi:u?.bookmarks?.hover}),c?.(s)]}):c,[u?.bookmarks?.hover,w,c]);/* @__PURE__ */\nreturn e(\"div\",{className:s??\"relative h-full w-full\",children:[\n/* @__PURE__ */t(st,{renderPage:e=>/* @__PURE__ */t(na,{item:e,showNoteMarkers:b,showBookmarkMarkers:P,noteMarkerUi:u?.notes?.marker,bookmarkMarkerUi:u?.bookmarks?.marker,renderPageOverlay:C,buildSelectionMenu:y,createNote:f,annotationSelectionMenu:r,redactionSelectionMenu:n,showRedactionLayer:d})}),g]})}function oa({item:e,hoverUi:a}){const{provides:s}=h(y.id),i=Ht(e),r=o(()=>s?.getDocument(i)?.pages[e.localPageIndex],[s,i,e.localPageIndex]);return e.isPlaceholder||!r?null:/* @__PURE__ */t(Fe,{item:e,pdfPageWidth:r.size.width,pdfPageHeight:r.size.height,cssPageWidth:e.width,cssPageHeight:e.height,hoverUi:a})}function na({item:a,showNoteMarkers:s,showBookmarkMarkers:i,noteMarkerUi:r,bookmarkMarkerUi:n,renderPageOverlay:l,createNote:d,buildSelectionMenu:f,annotationSelectionMenu:m,redactionSelectionMenu:v,showRedactionLayer:P=!1}){const C=Ht(a);Re(C);const{provides:M}=h(y.id),S=o(()=>{const t=M?.getDocument(C);return t?.pages[a.localPageIndex]},[M,C,a.localPageIndex]),x=function(e,a){const{provides:s}=h(b.id),i=Ht(e);return o(()=>{if(a)return r=>{const o={position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:r.placement?.suggestTop?-40:r.rect.size.height+8};/* @__PURE__ */\nreturn t(\"div\",{...r.menuWrapperProps,children:/* @__PURE__ */t(\"div\",{style:o,children:/* @__PURE__ */t(\"button\",{type:\"button\",onClick:()=>{if(!s)return;const t=s.getHighlightRectsForPage(e.localPageIndex,i);Bt(s.getSelectedText(i),s=>{const i=s.join(\"\\n\"),r=jt(e,t,i);a(r)})},style:{padding:\"6px 10px\",fontSize:\"12px\",border:\"1px solid #e5e7eb\",borderRadius:\"6px\",background:\"#fff\",cursor:\"pointer\",boxShadow:\"0 2px 8px rgba(0,0,0,0.08)\"},children:\"添加附注\"})})})}},[a,i,e,s])}(a,d),$=void 0!==f?f({item:a,defaultMenu:x,createNote:d}):x;return a.isPlaceholder?null:/* @__PURE__ */t(c,{documentId:C,children:/* @__PURE__ */t(p,{documentId:C,pageIndex:a.localPageIndex,style:{backgroundColor:\"#fff\"},children:/* @__PURE__ */e(u,{documentId:C,pageIndex:a.localPageIndex,children:[\n/* @__PURE__ */t(it,{chapterId:C,localPageIndex:a.localPageIndex}),\n/* @__PURE__ */t(g,{documentId:C,pageIndex:a.localPageIndex,selectionMenu:$}),P&&/* @__PURE__ */t(I,{documentId:C,pageIndex:a.localPageIndex,selectionMenu:v}),\n/* @__PURE__ */t(w,{documentId:C,pageIndex:a.localPageIndex,selectionMenu:m}),i&&S&&/* @__PURE__ */t(Wt,{chapterId:C,localPageIndex:a.localPageIndex,pdfPageWidth:S.size.width,pdfPageHeight:S.size.height,cssPageWidth:a.width,cssPageHeight:a.height,ui:n}),l?.(a),s&&S&&/* @__PURE__ */t(yt,{chapterId:C,localPageIndex:a.localPageIndex,pdfPageWidth:S.size.width,pdfPageHeight:S.size.height,cssPageWidth:a.width,cssPageHeight:a.height,ui:r})]})})})}const ha=\"chapter-manager\",la={id:ha,name:\"Chapter Manager Plugin\",version:\"0.1.0\",provides:[\"chapter-manager\"],requires:[\"document-manager\"],optional:[],defaultConfig:{manifest:{chapters:[]},prefetchChapters:1,unloadTimeoutMs:6e4,autoActivateOnLoad:!0}};const da={kind:\"first-wins\"};function ca(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let ua=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function pa(t,e=da){const a=function(t,e=da){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,ca(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new ua(r)}const ga=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=da,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??da,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=pa(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};ga.id=\"chapter-manager\";let fa=ga;const ma={manifest:la,create:t=>new fa(ha,t),reducer:t=>t,initialState:{}},va=\"chapter-scroll\",ba={id:va,name:\"Chapter Scroll Plugin\",version:\"0.1.0\",provides:[\"chapter-scroll\"],requires:[\"chapter-manager\"],optional:[],defaultConfig:{placeholderPageHeight:1200,placeholderPageWidth:900,bufferSize:2,pageGap:20}};const Pa={kind:\"first-wins\"};function wa(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}class Ia{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}}function ya(t,e=Pa){const a=function(t,e=Pa){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,r]of a)s.set(i,wa(i,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let o=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,l=h+(n-i);r.push({globalPageIndex:o++,globalPageNumber:n,chapterId:t,localPageIndex:l})}return new Ia(r)}const Ca=class t extends M{constructor(t,e){super(t,e),this.statusChange$=S(),this.manifestChange$=x(),this.overlapStrategy=Pa,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??Pa,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(e){const a=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[r,o]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),r>o&&e.push(`${s.chapterId}: invalid localPageRange [${r},${o}]`),i-t!==o-r&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${o-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(e);a.length>0&&this.logger.warn(t.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(e.chapters.map(t=>t.chapterId));for(const t of s)i.has(t)||(this.closeChapter(t),this.chapterStatus.delete(t));for(const t of e.chapters)this.chapterStatus.has(t.chapterId)||this.chapterStatus.set(t.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=ya(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&r.add(e)}const o=/* @__PURE__ */new Set;for(const n of r)o.add(i[n]);for(const n of o){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),r=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>r.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(e,a,s){if(a!==k.Password)return void this.updateStatus(e,\"error\");if(!this.passwordProvider)return void this.updateStatus(e,\"password-required\");const i=this.findChapter(e);if(!i)return;const r=(this.passwordAttempts.get(e)??0)+1;this.passwordAttempts.set(e,r);let o=null;try{o=await this.passwordProvider.resolvePassword(i,r-1)}catch(n){this.logger.error(t.id,\"PasswordProvider\",`Provider rejected for ${e}`,n)}if(!o)return void this.updateStatus(e,\"password-required\");this.updateStatus(e,\"loading\");this.documentManager.provides().retryDocument(e,{password:o}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};Ca.id=\"chapter-manager\";let Ma=Ca;const Sa=class extends M{constructor(t,e){super(t,e),this.layoutChange$=S(),this.visibleChange$=S(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(Ma.id),this.documentManager=this.registry.getPlugin(y.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),o=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&o.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==o.length?this.applyChapterPageSizes(t,o):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const r=[];let o=s,n=-1;for(let h=s;h<i;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,o=h)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=e;r<=s;r++){const t=this.virtualPageMap.atIndex(r);if(!t)continue;const e=this.getPageSize(r),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:r,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[r],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const o=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!o||!n)return void this.scrollToIndex(t,a);const h=o.height/n.size.height,l=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};Sa.id=\"chapter-scroll\";let xa=Sa;const $a={manifest:ba,create:t=>new xa(va,t),reducer:t=>t,initialState:{}},ka={\"annotation-toolbar\":{id:\"annotation-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},responsive:{breakpoints:{sm:{maxWidth:640,hide:[\"add-text\",\"add-ink\",\"add-ink-highlighter\",\"add-insert-text\",\"add-replace-text\",\"add-comment\",\"add-callout\"],show:[\"overflow-annotation-tools\"]},md:{minWidth:640,hide:[\"overflow-annotation-tools\"],show:[\"add-text\",\"add-ink\",\"add-ink-highlighter\",\"add-insert-text\",\"add-replace-text\",\"add-comment\",\"add-callout\"]}}},permanent:!1,categories:[\"annotation\"],items:[{type:\"spacer\",id:\"spacer-3\",flex:!0},{type:\"group\",id:\"annotation-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-highlight\",commandId:\"annotation:add-highlight\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-highlight\"]},{type:\"command-button\",id:\"add-strikeout\",commandId:\"annotation:add-strikeout\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-strikeout\"]},{type:\"command-button\",id:\"add-underline\",commandId:\"annotation:add-underline\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-underline\"]},{type:\"command-button\",id:\"add-squiggly\",commandId:\"annotation:add-squiggly\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-squiggly\"]},{type:\"command-button\",id:\"add-ink\",commandId:\"annotation:add-ink\",variant:\"icon\",categories:[\"annotation\",\"annotation-ink\"]},{type:\"command-button\",id:\"add-ink-highlighter\",commandId:\"annotation:add-ink-highlighter\",variant:\"icon\",categories:[\"annotation\",\"annotation-ink\"]},{type:\"command-button\",id:\"add-text\",commandId:\"annotation:add-text\",variant:\"icon\",categories:[\"annotation\",\"annotation-text\"]},{type:\"command-button\",id:\"add-insert-text\",commandId:\"annotation:add-insert-text\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-insert-text\"]},{type:\"command-button\",id:\"add-replace-text\",commandId:\"annotation:add-replace-text\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-replace-text\"]},{type:\"command-button\",id:\"add-comment\",commandId:\"annotation:add-comment\",variant:\"icon\",categories:[\"annotation\",\"annotation-comment-tool\"]},{type:\"command-button\",id:\"add-callout\",commandId:\"annotation:add-callout\",variant:\"icon\",categories:[\"annotation\",\"annotation-text\"]},{type:\"command-button\",id:\"overflow-annotation-tools\",commandId:\"annotation:overflow-tools\",variant:\"icon\",categories:[\"annotation\",\"annotation-overflow\"]},{type:\"divider\",id:\"annotation-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"annotation-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-4\",flex:!0}]},\"shapes-toolbar\":{id:\"shapes-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},responsive:{breakpoints:{sm:{maxWidth:640,hide:[\"add-polygon\",\"add-polyline\"],show:[\"overflow-shapes-tools\"]},md:{minWidth:640,hide:[\"overflow-shapes-tools\"],show:[\"add-polygon\",\"add-polyline\"]}}},permanent:!1,categories:[\"annotation\",\"annotation-shape\"],items:[{type:\"spacer\",id:\"spacer-5\",flex:!0},{type:\"group\",id:\"shapes-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-rectangle\",commandId:\"annotation:add-rectangle\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-rectangle\"]},{type:\"command-button\",id:\"add-circle\",commandId:\"annotation:add-circle\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-circle\"]},{type:\"command-button\",id:\"add-line\",commandId:\"annotation:add-line\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-line\"]},{type:\"command-button\",id:\"add-arrow\",commandId:\"annotation:add-arrow\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-arrow\"]},{type:\"command-button\",id:\"add-polygon\",commandId:\"annotation:add-polygon\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-polygon\"]},{type:\"command-button\",id:\"add-polyline\",commandId:\"annotation:add-polyline\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-polyline\"]},{type:\"command-button\",id:\"overflow-shapes-tools\",commandId:\"annotation:overflow-shapes\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-overflow\"]},{type:\"divider\",id:\"shapes-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"shapes-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-6\",flex:!0}]},\"form-toolbar\":{id:\"form-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},responsive:{breakpoints:{sm:{maxWidth:640,hide:[\"add-form-select\",\"add-form-listbox\"],show:[\"overflow-forms-tools\"]},md:{minWidth:640,hide:[\"overflow-forms-tools\"],show:[\"add-form-select\",\"add-form-listbox\"]}}},permanent:!1,categories:[\"form\"],items:[{type:\"spacer\",id:\"spacer-form-1\",flex:!0},{type:\"group\",id:\"form-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-form-textfield\",commandId:\"form:add-textfield\",variant:\"icon\",categories:[\"form\",\"form-textfield\"]},{type:\"command-button\",id:\"add-form-checkbox\",commandId:\"form:add-checkbox\",variant:\"icon\",categories:[\"form\",\"form-checkbox\"]},{type:\"command-button\",id:\"add-form-radio\",commandId:\"form:add-radio\",variant:\"icon\",categories:[\"form\",\"form-radio\"]},{type:\"command-button\",id:\"add-form-select\",commandId:\"form:add-select\",variant:\"icon\",categories:[\"form\",\"form-select\"]},{type:\"command-button\",id:\"add-form-listbox\",commandId:\"form:add-listbox\",variant:\"icon\",categories:[\"form\",\"form-listbox\"]},{type:\"command-button\",id:\"overflow-forms-tools\",commandId:\"form:overflow-tools\",variant:\"icon\",categories:[\"form\",\"form-overflow\"]},{type:\"divider\",id:\"form-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"command-button\",id:\"toggle-form-fill-mode\",commandId:\"form:toggle-fill-mode\",variant:\"icon\",categories:[\"form\",\"form-fill-mode\"]},{type:\"divider\",id:\"form-tools-divider-2\",orientation:\"vertical\"},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-form-2\",flex:!0}]},\"insert-toolbar\":{id:\"insert-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},permanent:!1,categories:[\"insert\"],items:[{type:\"spacer\",id:\"spacer-insert-1\",flex:!0},{type:\"group\",id:\"insert-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-rubber-stamp\",commandId:\"insert:add-rubber-stamp\",variant:\"icon\",categories:[\"insert\",\"insert-rubber-stamp\"]},{type:\"command-button\",id:\"add-signature\",commandId:\"insert:add-signature\",variant:\"icon\",categories:[\"insert\",\"insert-signature\"]},{type:\"command-button\",id:\"add-image\",commandId:\"insert:add-image\",variant:\"icon\",categories:[\"insert\",\"insert-image\"]},{type:\"divider\",id:\"insert-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"insert-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-insert-2\",flex:!0}]},\"redaction-toolbar\":{id:\"redaction-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},permanent:!1,categories:[\"redaction\"],items:[{type:\"spacer\",id:\"spacer-7\",flex:!0},{type:\"group\",id:\"redaction-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"redact\",commandId:\"redaction:redact\",variant:\"icon\",categories:[\"redaction\",\"redaction-combined\"]},{type:\"divider\",id:\"redaction-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-redaction-panel\",commandId:\"panel:toggle-redaction\",variant:\"icon\",categories:[\"panel\",\"panel-redaction\"]},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"redaction-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-8\",flex:!0}]}};class La{constructor(){this.specs=[]}register(t){if(this.specs.some(e=>e.id===t.id))throw new Error(`OperationRegistry: duplicate operation id \"${t.id}\"`);this.specs.push(t)}registerAll(t){for(const e of t)e&&this.register(e)}list(){return this.specs}buildToolbars(){const t=structuredClone(ka);for(const e of this.specs){const a=t[e.toolbarSlot];if(!a)continue;const s={type:\"command-button\",id:e.id,commandId:e.commandId,variant:\"icon\",...e.icon?{icon:e.icon}:{},...e.i18nKey?{labelKey:e.i18nKey}:{},...e.label?{label:e.label}:{},categories:e.categories??[]};a.items=Da(a.items,s,e.position)}return t}}function Da(t,e,a){return(null==a?void 0:a.after)||(null==a?void 0:a.before)?function(t,e,a){const s=t=>{const i=[];for(const r of t)\"group\"!==r.type?a.before&&r.id===a.before?i.push(e,r):(i.push(r),a.after&&r.id===a.after&&i.push(e)):i.push({...r,items:s(r.items)});return i};return s(t)}(t,e,a):function(t,e){return t.map(t=>\"group\"===t.type?{...t,items:[...t.items,e]}:t)}(t,e)}const za={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function Ta(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides(),s=t.getPlugin(\"interaction-manager\")?.provides();a&&s&&(s.forDocument(e)?.activateDefaultMode(),a.forDocument(e).closeToolbarSlot(\"top\",\"secondary\"),t.getPlugin(O)?.provides().forDocument(e).setLocked((t=>t.getPluginConfig(O).locked??{type:G.None})(t)))},active:({state:t,documentId:e})=>!j(t.plugins,e,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",e),t.getPlugin(O)?.provides().forDocument(e).setLocked({type:G.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>j(t.plugins,e,\"top\",\"secondary\",\"annotation-toolbar\")},\"mode:shapes\":{id:\"mode:shapes\",label:\"Shapes\",categories:[\"mode\",\"mode-shapes\",\"annotation\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",e),t.getPlugin(O)?.provides().forDocument(e).setLocked({type:G.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>j(t.plugins,e,\"top\",\"secondary\",\"shapes-toolbar\")},\"mode:insert\":{id:\"mode:insert\",label:\"Insert\",categories:[\"mode\",\"mode-insert\",\"insert\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",e),t.getPlugin(O)?.provides().forDocument(e).setLocked({type:G.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>j(t.plugins,e,\"top\",\"secondary\",\"insert-toolbar\")},\"mode:form\":{id:\"mode:form\",label:\"Form\",categories:[\"mode\",\"mode-form\",\"form\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",e),t.getPlugin(O)?.provides().forDocument(e).setLocked({type:G.None}))},active:({state:t,documentId:e})=>j(t.plugins,e,\"top\",\"secondary\",\"form-toolbar\")},\"mode:redact\":{id:\"mode:redact\",label:\"Redact\",categories:[\"mode\",\"mode-redact\",\"redaction\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",e),t.getPlugin(O)?.provides().forDocument(e).setLocked({type:G.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>j(t.plugins,e,\"top\",\"secondary\",\"redaction-toolbar\")}}}function Ga(t){const e=t.toolbar??{},a=e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],s=a.length>0,{schema:i,operationRegistry:r}=function(t={}){var e,a,s,i,r,o;const n=new Set(t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),h=new La;(null==(e=t.customOperations)?void 0:e.length)&&h.registerAll(t.customOperations);const l=h.buildToolbars(),d={};for(const u of n){if(\"view\"===u)continue;const t=za[u];l[t]&&(d[t]=l[t])}const c=function(t){if(0===t.size)return null;const e=(t,e,a)=>({type:\"command-button\",id:`${t}-mode`,commandId:a,variant:\"text\",label:e,categories:[\"mode\",t]});return{id:\"chapter-editor-main-toolbar\",position:{placement:\"top\",slot:\"main\",order:0},permanent:!0,items:[{type:\"spacer\",id:\"main-spacer-left\",flex:!0},{type:\"group\",id:\"mode-group\",alignment:\"start\",gap:2,items:[...t.has(\"view\")?[e(\"view\",\"View\",\"mode:view\")]:[],...t.has(\"annotate\")?[e(\"annotate\",\"Annotate\",\"mode:annotate\")]:[],...t.has(\"shapes\")?[e(\"shapes\",\"Shapes\",\"mode:shapes\")]:[],...t.has(\"insert\")?[e(\"insert\",\"Insert\",\"mode:insert\")]:[],...t.has(\"form\")?[e(\"form\",\"Form\",\"mode:form\")]:[],...t.has(\"redact\")?[e(\"redact\",\"Redact\",\"mode:redact\")]:[]]},{type:\"spacer\",id:\"main-spacer-right\",flex:!0}]}}(n);return c&&(d[\"chapter-editor-main-toolbar\"]=c),(null==(a=t.extend)?void 0:a.toolbars)&&Object.assign(d,t.extend.toolbars),{schema:{id:\"chapter-pdf-editor-ui\",version:\"1.0.0\",toolbars:d,menus:(null==(s=t.extend)?void 0:s.menus)??{},sidebars:(null==(i=t.extend)?void 0:i.sidebars)??{},modals:(null==(r=t.extend)?void 0:r.modals)??{},selectionMenus:(null==(o=t.extend)?void 0:o.selectionMenus)??{}},operationRegistry:h}}({...e,enabledModes:a}),o={...s?Ta():{},...s?Aa(r.list()):{},...t.commands??{}},n=[$(C,{initialDocuments:[]}),$(ma,{manifest:t.manifest,overlapStrategy:t.overlapStrategy,passwordProvider:t.passwordProvider,chapterPdfLoader:t.chapterPdfLoader,prefetchChapters:t.prefetchChapters,unloadTimeoutMs:t.unloadTimeoutMs}),$($a,{placeholderPageHeight:t.placeholderPageHeight,placeholderPageWidth:t.placeholderPageWidth}),$(V),$(R),$(E),$(P,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),$(U),$(N),$(_),$(F),$(q,!1===t.loadDefaultStampLibrary?{manifests:[]}:void 0),$(W),...Object.keys(o).length>0?[$(H,{commands:o})]:[],...s?[$(B),$(Y,{schema:i})]:[]];return t.notes&&n.push($(pe,{callbacks:t.notes.callbacks,ui:t.features?.notes?.marker})),t.bookmarks&&n.push($(Ve,{callbacks:t.bookmarks.callbacks,ui:t.features?.bookmarks?.marker,hover:t.features?.bookmarks?.hover})),{plugins:n,uiSchema:i,operationRegistry:r}}function Aa(t){const e={};for(const a of t)a.handler&&(e[a.commandId]={id:a.commandId,labelKey:a.i18nKey,label:a.label,icon:a.icon,categories:a.categories,action:({documentId:t})=>{a.handler?.({documentId:t,chapterId:t})}});return e}const Oa={markup:{enabled:!0},bookmarks:{enabled:!0},notes:{enabled:!0},selectionToolbar:{enabled:!0},zoom:{enabled:!0,min:.5,max:3,initial:1}};function Na(t){return Ga({...t,toolbar:t.toolbar??{enabledModes:[]},features:{...Oa,...t.features,markup:{...Oa.markup,...t.features?.markup},bookmarks:{...Oa.bookmarks,...t.features?.bookmarks},notes:{...Oa.notes,...t.features?.notes},selectionToolbar:{...Oa.selectionToolbar,...t.features?.selectionToolbar},zoom:{...Oa.zoom,...t.features?.zoom}}})}function Va(t,e,a){return Math.min(a,Math.max(e,t))}function Ra({engine:a,editorOptions:n,features:h,className:l,viewportClassName:c,buildSelectionMenu:u,onExtraSelectionAction:p,renderPageOverlay:g,children:f}){const m=o(()=>({...Oa,...h}),[h]),v=o(()=>Na({...n,features:m}),[n,m]),b=!1!==m.zoom?.enabled,[P,w]=i(m.zoom?.initial??1),I=s(null);return r(()=>{if(!b)return;const t=I.current;if(!t)return;const e=t.querySelector(\"[data-chapter-scroll-viewport]\");return e?function({container:t,getScale:e,setScale:a,minZoom:s=.5,maxZoom:i=3}){let r=0,o=1,n=null,h=1,l=1;const d=t=>{(t.ctrlKey||t.metaKey)&&(t.preventDefault(),null===n?(l=e(),h=1):clearTimeout(n),h*=1-.01*t.deltaY,h=Va(h,.1,10),a(Va(l*h,s,i)),n=setTimeout(()=>{n=null},120))},c=/* @__PURE__ */new Map,u=t=>{if(c.set(t.pointerId,{x:t.clientX,y:t.clientY}),2===c.size){const[t,a]=[...c.values()];r=Math.hypot(a.x-t.x,a.y-t.y),o=e()}},p=t=>{if(c.has(t.pointerId)&&(c.set(t.pointerId,{x:t.clientX,y:t.clientY}),2===c.size&&r>0)){t.preventDefault();const[e,n]=[...c.values()],h=Math.hypot(n.x-e.x,n.y-e.y);a(Va(o*(h/r),s,i))}},g=t=>{c.delete(t.pointerId),c.size<2&&(r=0)};return t.addEventListener(\"wheel\",d,{passive:!1}),t.addEventListener(\"pointerdown\",u),t.addEventListener(\"pointermove\",p,{passive:!1}),t.addEventListener(\"pointerup\",g),t.addEventListener(\"pointercancel\",g),()=>{t.removeEventListener(\"wheel\",d),t.removeEventListener(\"pointerdown\",u),t.removeEventListener(\"pointermove\",p),t.removeEventListener(\"pointerup\",g),t.removeEventListener(\"pointercancel\",g),n&&clearTimeout(n)}}({container:e,getScale:()=>P,setScale:w,minZoom:m.zoom?.min??.5,maxZoom:m.zoom?.max??3}):void 0},[m.zoom?.max,m.zoom?.min,P,b]),/* @__PURE__ */t(\"div\",{ref:I,className:l??\"relative h-full w-full\",children:/* @__PURE__ */t(d,{engine:a,plugins:v.plugins,children:({pluginsReady:a})=>a?/* @__PURE__ */e(\"div\",{className:\"h-full w-full\",style:b?{transform:`scale(${P})`,transformOrigin:\"top center\"}:void 0,children:[\n/* @__PURE__ */t(ra,{className:c,features:m,buildSelectionMenu:u,onExtraSelectionAction:p,renderPageOverlay:g}),f]}):null})})}export{Ra as ChapterPdfViewer,Oa as DEFAULT_CHAPTER_VIEWER_FEATURES,Fe as HoverBookmarkLayer,ra as PdfChapterViewport,Xe as SelectionToolbarCard,jt as buildChapterSelectionSnapshot,Ht as chapterDocumentIdForPage,Na as createChapterViewerEditor,Ga as createPdfChapterEditor,ia as useChapterFeaturesSelectionMenu,_e as useCreateNoteFromChapterSelection,Re as useEnsureChapterActiveDocument,Ee as useIsNotePluginRegistered,Ue as useIsParagraphBookmarkPluginRegistered,Bt as waitSelectedText};\n//# sourceMappingURL=index.js.map\n","import{BasePlugin as t,createBehaviorEmitter as e,createEmitter as a,createPluginRegistration as s}from\"@embedpdf/core\";import{DocumentManagerPlugin as i,DocumentManagerPluginPackage as o}from\"@embedpdf/plugin-document-manager\";import{InteractionManagerPluginPackage as r}from\"@embedpdf/plugin-interaction-manager\";import{RenderPluginPackage as n}from\"@embedpdf/plugin-render\";import{RotatePluginPackage as h}from\"@embedpdf/plugin-rotate\";import{SelectionPluginPackage as d}from\"@embedpdf/plugin-selection\";import{ANNOTATION_PLUGIN_ID as l,LockModeType as c,AnnotationPluginPackage as u}from\"@embedpdf/plugin-annotation\";import{HistoryPluginPackage as p}from\"@embedpdf/plugin-history\";import{RedactionPluginPackage as g}from\"@embedpdf/plugin-redaction\";import{FormPluginPackage as f}from\"@embedpdf/plugin-form\";import{StampPluginPackage as m}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as v}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as b}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as P}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as w,UIPluginPackage as y}from\"@embedpdf/plugin-ui\";import{PdfErrorCode as I}from\"@embedpdf/models\";const C=\"chapter-manager\",M={id:C,name:\"Chapter Manager Plugin\",version:\"0.1.0\",provides:[\"chapter-manager\"],requires:[\"document-manager\"],optional:[],defaultConfig:{manifest:{chapters:[]},prefetchChapters:1,unloadTimeoutMs:6e4,autoActivateOnLoad:!0}};const S={kind:\"first-wins\"};function x(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let $=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function L(t,e=S){const a=function(t,e=S){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,x(i,o,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),o=[];let r=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new $(o)}const D=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=S,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??S,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const e=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[o,r]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),o>r&&e.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-t!==r-o&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(t);e.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${e.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)i.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=L(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&o.add(e)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>o.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(t,e,a){if(e!==I.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const i=this.findChapter(t);if(!i)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let r=null;try{r=await this.passwordProvider.resolvePassword(i,o-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!r)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:r}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};D.id=\"chapter-manager\";let T=D;const k={manifest:M,create:t=>new T(C,t),reducer:t=>t,initialState:{}},z=\"chapter-scroll\",G={id:z,name:\"Chapter Scroll Plugin\",version:\"0.1.0\",provides:[\"chapter-scroll\"],requires:[\"chapter-manager\"],optional:[],defaultConfig:{placeholderPageHeight:1200,placeholderPageWidth:900,bufferSize:2,pageGap:20}};const O={kind:\"first-wins\"};function A(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}class N{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}}function V(t,e=O){const a=function(t,e=O){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,A(i,o,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),o=[];let r=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new N(o)}const R=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=O,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??O,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const e=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[o,r]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),o>r&&e.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-t!==r-o&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(t);e.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${e.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)i.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=V(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&o.add(e)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>o.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(t,e,a){if(e!==I.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const i=this.findChapter(t);if(!i)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let r=null;try{r=await this.passwordProvider.resolvePassword(i,o-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!r)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:r}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};R.id=\"chapter-manager\";let _=R;const U=class extends t{constructor(t,a){super(t,a),this.layoutChange$=e(),this.visibleChange$=e(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(_.id),this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const o=this.getChapterDocumentScale(t),r=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&r.push({localPageIndex:n.localPageIndex,width:t.size.width*o,height:t.size.height*o})}0!==r.length?this.applyChapterPageSizes(t,r):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const o=[];let r=s,n=-1;for(let h=s;h<i;h++){o.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,r=h)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=e;o<=s;o++){const t=this.virtualPageMap.atIndex(o);if(!t)continue;const e=this.getPageSize(o),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:o,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(t);if(!o)return void this.scrollToIndex(t,a);const r=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(t,a);const h=r.height/n.size.height,d=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};U.id=\"chapter-scroll\";let E=U;const F={manifest:G,create:t=>new E(z,t),reducer:t=>t,initialState:{}},q=\"note\",W={id:q,name:\"Note Plugin\",version:\"0.1.0\",provides:[\"note\"],requires:[\"selection\",\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{callbacks:{onCreateNote:async()=>null,onActivateNote:()=>{}},markerSize:18}};const H={kind:\"first-wins\"};function B(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let j=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function K(t,e=H){const a=function(t,e=H){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,B(i,o,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),o=[];let r=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new j(o)}const J=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=H,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??H,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const e=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[o,r]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),o>r&&e.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-t!==r-o&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(t);e.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${e.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)i.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=K(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&o.add(e)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>o.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(t,e,a){if(e!==I.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const i=this.findChapter(t);if(!i)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let r=null;try{r=await this.passwordProvider.resolvePassword(i,o-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!r)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:r}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};J.id=\"chapter-manager\";let Q=J;const X={kind:\"first-wins\"};function Y(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let Z=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function tt(t,e=X){const a=function(t,e=X){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,Y(i,o,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),o=[];let r=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new Z(o)}const et=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=X,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??X,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const e=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[o,r]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),o>r&&e.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-t!==r-o&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(t);e.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${e.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)i.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=tt(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&o.add(e)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>o.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(t,e,a){if(e!==I.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const i=this.findChapter(t);if(!i)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let r=null;try{r=await this.passwordProvider.resolvePassword(i,o-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!r)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:r}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};et.id=\"chapter-manager\";let at=et;const st=class extends t{constructor(t,a){super(t,a),this.layoutChange$=e(),this.visibleChange$=e(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(at.id),this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const o=this.getChapterDocumentScale(t),r=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&r.push({localPageIndex:n.localPageIndex,width:t.size.width*o,height:t.size.height*o})}0!==r.length?this.applyChapterPageSizes(t,r):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const o=[];let r=s,n=-1;for(let h=s;h<i;h++){o.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,r=h)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=e;o<=s;o++){const t=this.virtualPageMap.atIndex(o);if(!t)continue;const e=this.getPageSize(o),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:o,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(t);if(!o)return void this.scrollToIndex(t,a);const r=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(t,a);const h=r.height/n.size.height,d=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};st.id=\"chapter-scroll\";let it=st;const ot=class s extends t{constructor(t,s){super(t,s),this.notesChange$=e([]),this.noteActivated$=a(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(it.id),this.chapterManager=this.registry.getPlugin(Q.id),this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){if(this.config=t,t.callbacks.loadNotes)try{const e=await t.callbacks.loadNotes();for(const t of e)this.notes.set(t.noteId,t);this.notesChange$.emit(this.listAll())}catch(e){this.logger.error(s.id,\"LoadNotes\",\"Failed to load notes\",e)}}buildCapability(){return{createNoteFromSelection:t=>this.createNoteFromSelection(t),requestCreateFromSelection:t=>this.requestCreateFromSelection(t),registerNote:t=>this.registerNote(t),listNotesForPage:(t,e)=>this.listAll().filter(a=>a.chapterId===t&&a.localPageIndex===e),listAllNotes:()=>this.listAll(),getNote:t=>this.notes.get(t)??null,deleteNote:t=>this.deleteNote(t),updateNoteContent:(t,e)=>this.updateNoteContent(t,e),scrollToNote:t=>this.scrollToNote(t),onNotesChange:this.notesChange$.on,onNoteActivated:this.noteActivated$.on}}registerNote(t){this.notes.set(t.noteId,t),this.notesChange$.emit(this.listAll())}requestEdit(t){const e=this.notes.get(t);e&&(this.config.callbacks.onRequestEditNote?this.config.callbacks.onRequestEditNote(t,e):this.activateNote(t))}activateNote(t){var e,a;const s=this.notes.get(t);s&&(null==(a=(e=this.config.callbacks).onActivateNote)||a.call(e,t,s),this.noteActivated$.emit({noteId:t,anchor:s}))}listAll(){return Array.from(this.notes.values())}buildDraft(t){return{chapterId:t.chapterId,localPageIndex:t.localPageIndex,globalPageNumber:t.globalPageNumber,globalPageIndex:t.globalPageIndex,rectsPdfCoord:t.rectsPdfCoord,endAnchor:nt(t.rectsPdfCoord),selectedText:t.selectedText,content:t.content}}async requestCreateFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const e=this.buildDraft(t),{onRequestCreateNote:a,onCreateNote:s}=this.config.callbacks;return a?(a({draft:e,complete:async t=>{const a={...e,noteId:t};this.registerNote(a)}}),null):this.createNoteFromSelection(t)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const e=this.buildDraft(t),a=this.config.callbacks.onCreateNote;if(!a)return this.logger.error(s.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let i=null;try{i=await a(e)}catch(r){return this.logger.error(s.id,\"OnCreateNote\",\"Callback failed\",r),null}if(!i)return null;const o={...e,noteId:i.noteId};return this.registerNote(o),o}async deleteNote(t){var e,a;if(this.notes.has(t)){try{await(null==(a=(e=this.config.callbacks).onDeleteNote)?void 0:a.call(e,t))}catch(i){return void this.logger.error(s.id,\"OnDeleteNote\",\"Callback failed\",i)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,e){var a,i;const o=this.notes.get(t);if(!o)return;const r={...o,content:e};try{await(null==(i=(a=this.config.callbacks).onUpdateNote)?void 0:i.call(a,r))}catch(n){return void this.logger.error(s.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(t,r),this.notesChange$.emit(this.listAll())}async scrollToNote(t){var e;const a=this.notes.get(t);if(!a)return;const s=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(a.chapterId);(null==(e=this.documentManager.provides().getDocument(a.chapterId))?void 0:e.pages[a.localPageIndex])?(s.scrollToGlobalPageIndex(a.globalPageIndex),await this.waitForPageInLayout(a.globalPageIndex),s.scrollToGlobalPdfPoint(a.globalPageIndex,a.endAnchor.y,{marginTop:80})):s.scrollToGlobalPageIndex(a.globalPageIndex)}waitForPageInLayout(t){const e=this.chapterScroll.provides(),a=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const s=setTimeout(()=>{i(),a(null)},2500),i=e.onLayoutChange(e=>{const o=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);o&&(clearTimeout(s),i(),a(o))})})}};ot.id=\"note\";let rt=ot;function nt(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}const ht={manifest:W,create:t=>new rt(q,t),reducer:t=>t,initialState:{}},dt=\"paragraph-bookmark\",lt={id:dt,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};const ct={kind:\"first-wins\"};function ut(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}let pt=class{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}};function gt(t,e=ct){const a=function(t,e=ct){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,ut(i,o,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),o=[];let r=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new pt(o)}const ft=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=ct,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??ct,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const e=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[o,r]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),o>r&&e.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-t!==r-o&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(t);e.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${e.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)i.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=gt(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&o.add(e)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>o.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(t,e,a){if(e!==I.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const i=this.findChapter(t);if(!i)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let r=null;try{r=await this.passwordProvider.resolvePassword(i,o-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!r)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:r}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};ft.id=\"chapter-manager\";let mt=ft;const vt={kind:\"first-wins\"};function bt(t,e,a){if(1===e.length)return e[0].chapterId;switch(a.kind){case\"first-wins\":return e[0].chapterId;case\"last-wins\":return e[e.length-1].chapterId;case\"explicit\":{const a=e.find(e=>{var a;return null==(a=e.ownedGlobalPages)?void 0:a.includes(t)});return a?a.chapterId:e[0].chapterId}case\"custom\":return a.resolve(t,e)}}class Pt{constructor(t){this._pages=t,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const e of t){this._byGlobalNumber.set(e.globalPageNumber,e);let t=this._byChapter.get(e.chapterId);t||(t=[],this._byChapter.set(e.chapterId,t)),t.push(e)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(t){return this._pages[t]??null}byGlobalNumber(t){return this._byGlobalNumber.get(t)??null}toGlobal(t,e){const a=this._byChapter.get(t);return a?a.find(t=>t.localPageIndex===e)??null:null}pagesOfChapter(t){return this._byChapter.get(t)??[]}firstIndexOfChapter(t){var e;const a=null==(e=this._byChapter.get(t))?void 0:e[0];return a?this._pages.indexOf(a):-1}}function wt(t,e=vt){const a=function(t,e=vt){const a=/* @__PURE__ */new Map;for(const i of t.chapters){const[t,e]=i.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,bt(i,o,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((t,e)=>t-e),o=[];let r=0;for(const n of i){const t=a.get(n),e=s.get(t);if(!e)continue;const[i]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new Pt(o)}const yt=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=vt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??vt,this.setManifestInternal(t.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(t=>{this.isOwnedChapter(t.id)&&(this.passwordAttempts.delete(t.id),this.updateStatus(t.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(t=>{this.isOwnedChapter(t)&&this.updateStatus(t,\"closed\")}),this.documentManager.provides().onDocumentError(t=>{this.isOwnedChapter(t.documentId)&&this.handleDocumentError(t.documentId,t.code,t.message)})),t.unloadTimeoutMs&&t.unloadTimeoutMs>0){const e=Math.max(5e3,Math.floor(t.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),e)}}buildCapability(){return{setManifest:(t,e)=>{e&&(this.overlapStrategy=e),this.setManifestInternal(t)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:t=>this.handleVisibleChange(t),ensureChapterLoaded:t=>this.ensureChapterLoaded(t),getChapterStatus:t=>this.chapterStatus.get(t)??\"idle\",getChapter:t=>this.findChapter(t),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const t of this.documentManagerUnsubs)t();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const e=function(t){const e=[],a=/* @__PURE__ */new Set;for(const s of t.chapters){a.has(s.chapterId)&&e.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[t,i]=s.globalPageRange,[o,r]=s.localPageRange;if(t>i&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${i}]`),o>r&&e.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-t!==r-o&&e.push(`${s.chapterId}: page-count mismatch (global ${i-t+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>i)&&e.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return e}(t);e.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${e.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)i.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=wt(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const t=this.config.prefetchChapters??0;if(t<=0||0===this.manifest.chapters.length)return;const e=Date.now(),a=Math.min(t,this.manifest.chapters.length);for(let s=0;s<a;s++){const t=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(t,e);const a=this.chapterStatus.get(t)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(t)}}findChapter(t){return this.manifest.chapters.find(e=>e.chapterId===t)??null}isOwnedChapter(t){return!!this.findChapter(t)}handleVisibleChange(t){if(!this.virtualPageMap)return;const e=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of t){const t=this.virtualPageMap.atIndex(n);t&&s.add(t.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(t=>t.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const t=i.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<i.length&&o.add(e)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,e);const t=this.chapterStatus.get(n)??\"idle\";\"idle\"!==t&&\"closed\"!==t&&\"error\"!==t||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const t=i.find(t=>s.has(t));if(t&&this.documentManager.provides().isDocumentOpen(t)){this.documentManager.provides().getActiveDocumentId()!==t&&this.documentManager.provides().setActiveDocument(t)}}}collectIdleChapters(){const t=this.config.unloadTimeoutMs??6e4;if(t<=0)return;const e=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;e-(this.chapterLastUsed.get(a)??0)>t&&this.closeChapter(a)}}ensureChapterLoaded(t){const e=this.pendingLoadPromises.get(t);if(e)return e;const a=this.findChapter(t);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(t);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,i),i}async resolvePdfPayload(t){const e=t.source;if(e){if(\"url\"in e)return{url:e.url};if(\"buffer\"in e)return{buffer:e.buffer};if(\"load\"in e)return e.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(t);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var e;this.updateStatus(t.chapterId,\"loading\"),this.chapterLastUsed.set(t.chapterId,Date.now());const a=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(t.chapterId):null,s=await this.resolvePdfPayload(t),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:t.chapterId,url:s.url,name:t.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:t.chapterId,buffer:s.buffer,name:t.title,password:a??void 0,autoActivate:!1});return await new Promise(t=>o.wait(()=>t(),()=>t())),this.waitForTerminalStatus(t.chapterId)}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>{\"loaded\"!==t&&\"error\"!==t&&\"password-required\"!==t&&\"closed\"!==t||(s(),e(t))},s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)});a(this.chapterStatus.get(t)??\"idle\")})}async handleDocumentError(t,e,a){if(e!==I.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const i=this.findChapter(t);if(!i)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let r=null;try{r=await this.passwordProvider.resolvePassword(i,o-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!r)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:r}).wait(()=>{},()=>{})}closeChapter(t){const e=this.documentManager.provides();if(e.isDocumentOpen(t)){e.closeDocument(t).wait(()=>this.updateStatus(t,\"closed\"),()=>this.updateStatus(t,\"closed\"))}else this.updateStatus(t,\"closed\")}updateStatus(t,e,a){this.chapterStatus.get(t)!==e&&(this.chapterStatus.set(t,e),this.statusChange$.emit({chapterId:t,status:e,...\"error\"===e&&a?{error:{message:a}}:{}}))}};yt.id=\"chapter-manager\";let It=yt;const Ct=class extends t{constructor(t,a){super(t,a),this.layoutChange$=e(),this.visibleChange$=e(),this.virtualPageMap=null,this.pageSizes=/* @__PURE__ */new Map,this.offsets=[],this.totalHeight=0,this.totalWidth=0,this.viewportEl=null,this.viewportObservers=null,this.currentVisible=[],this.currentGlobalPageIndex=0,this.chapterManagerUnsubs=[],this.chapterManager=this.registry.getPlugin(It.id),this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){this.config={placeholderPageHeight:t.placeholderPageHeight??1200,placeholderPageWidth:t.placeholderPageWidth??900,bufferSize:t.bufferSize??2,pageGap:t.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:t})=>{this.virtualPageMap=t,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){if(!this.chapterManager.provides().getChapter(t))return!1;const e=this.documentManager.provides().getDocumentState(t);return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(t.chapterId)&&this.harvestChapterSizes(t.chapterId);this.refreshLayout()}onDocumentLoaded(t){if(!this.chapterManager.provides().getChapter(t))return;const e=this.documentManager.provides();e.getActiveDocumentId()||e.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){this.chapterManager.provides().getChapter(t)&&(this.dropChapterSizes(t),this.refreshLayout())}buildCapability(){return{registerViewport:t=>this.bindViewport(t),reportChapterPageSizes:(t,e)=>this.applyChapterPageSizes(t,e),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(t,e)=>this.scrollToIndex(t,e),scrollToChapter:(t,e)=>this.scrollToChapter(t,e),scrollToGlobalPageNumber:(t,e)=>this.scrollToGlobalNumber(t,e),scrollToGlobalPdfPoint:(t,e,a)=>this.scrollToGlobalPdfPoint(t,e,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var t;super.destroy();for(const e of this.chapterManagerUnsubs)e();this.chapterManagerUnsubs=[],null==(t=this.viewportObservers)||t.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(t){return this.pageSizes.get(t)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const t=this.virtualPageMap.totalPages;this.offsets=new Array(t);let e=0,a=0;for(let s=0;s<t;s++){const{width:t,height:i}=this.getPageSize(s);this.offsets[s]=e,e+=i+this.config.pageGap,t>a&&(a=t)}this.totalHeight=t>0?e-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(t,e){if(!this.virtualPageMap)return;let a=!1;for(const s of e){const e=this.virtualPageMap.toGlobal(t,s.localPageIndex);if(!e)continue;const i=this.pageSizes.get(e.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(e.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const t=this.currentGlobalPageIndex,e=this.offsets[t]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[t]??0)-e;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(t){var e;return(null==(e=this.coreState.core.documents[t])?void 0:e.scale)??1}harvestChapterSizes(t,e=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(t),i=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const o=this.getChapterDocumentScale(t),r=[];for(const n of i){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&r.push({localPageIndex:n.localPageIndex,width:t.size.width*o,height:t.size.height*o})}0!==r.length?this.applyChapterPageSizes(t,r):e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1))}onScaleChanged(t){const e=this.coreState.core.documents[t];e&&\"loaded\"===e.status&&this.chapterManager.provides().getChapter(t)&&this.harvestChapterSizes(t)}dropChapterSizes(t){if(!this.virtualPageMap)return;let e=!1;for(const a of this.virtualPageMap.pagesOfChapter(t))this.pageSizes.delete(a.globalPageIndex)&&(e=!0);e&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(t){var e;if(null==(e=this.viewportObservers)||e.unbind(),this.viewportEl=t,this.viewportObservers=null,!t)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());t.addEventListener(\"scroll\",a,{passive:!0}),s.observe(t),this.viewportObservers={unbind:()=>{t.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===t.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const t=this.virtualPageMap.totalPages;if(0===t)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const e=this.viewportEl.scrollTop,a=e+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(e);let i=s;for(;i<t;){const t=this.getPageSize(i),e=this.offsets[i];if(t.height,e>=a)break;i++}const o=[];let r=s,n=-1;for(let h=s;h<i;h++){o.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,i=Math.max(0,Math.min(s,a)-Math.max(t,e));i>n&&(n=i,r=h)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(t){let e=0,a=this.offsets.length-1,s=0;for(;e<=a;){const i=e+a>>1;this.offsets[i]<=t?(s=i,e=i+1):a=i-1}return s}computeLayout(){const t=this.config.bufferSize,e=Math.max(0,(this.currentVisible[0]??0)-t),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+t),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=e;o<=s;o++){const t=this.virtualPageMap.atIndex(o);if(!t)continue;const e=this.getPageSize(o),a=!this.isChapterDocumentReady(t.chapterId);i.push({globalPageIndex:o,globalPageNumber:t.globalPageNumber,chapterId:t.chapterId,localPageIndex:t.localPageIndex,width:e.width,height:e.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(t,e){if(!this.viewportEl||t<0||t>=this.offsets.length)return;const a=(this.offsets[t]??0)-((null==e?void 0:e.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==e?void 0:e.behavior)??\"auto\"})}scrollToGlobalPdfPoint(t,e,a){var s;if(!this.viewportEl||t<0||t>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(t);if(!o)return void this.scrollToIndex(t,a);const r=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(t,a);const h=r.height/n.size.height,d=(this.offsets[t]??0)+e*h-i;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(t);a<0||(this.chapterManager.provides().ensureChapterLoaded(t),this.scrollToIndex(a,e))}scrollToGlobalNumber(t,e){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(t);a&&this.scrollToIndex(a.globalPageIndex,e)}};Ct.id=\"chapter-scroll\";let Mt=Ct;function St(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}function xt(t,e){const a=t.origin.y,s=t.origin.y+t.size.height,i=e.origin.y,o=e.origin.y+e.size.height,r=Math.max(s,o)-Math.min(a,i);if(r<=0)return 0;return Math.max(0,Math.min(s,o)-Math.max(a,i))/r}function $t(t,e){var a,s;if(t.chapterId!==e.chapterId||t.localPageIndex!==e.localPageIndex)return!1;const i=(null==(a=t.rectsPdfCoord)?void 0:a.length)?t.rectsPdfCoord:[t.rectPdfCoord],o=(null==(s=e.rectsPdfCoord)?void 0:s.length)?e.rectsPdfCoord:[e.rectPdfCoord],r=t.markerAnchor??St(i),n=e.markerAnchor??St(o);if(Math.hypot(r.x-n.x,r.y-n.y)<=6)return!0;for(const h of i)for(const t of o){if(xt(h,t)<.5)continue;const e=Math.max(h.origin.x,t.origin.x);if(Math.min(h.origin.x+h.size.width,t.origin.x+t.size.width)-e>.25*Math.min(h.size.width,t.size.width))return!0}return!1}async function Lt(t,e,a){t.scrollToGlobalPageIndex(e),await function(t,e,a=2500){const s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const i=setTimeout(()=>{o(),s(null)},a),o=t.onLayoutChange(t=>{const a=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);a&&(clearTimeout(i),o(),s(a))})})}(t,e),t.scrollToGlobalPdfPoint(e,a,{marginTop:80})}const Dt=class a extends t{constructor(t,a){super(t,a),this.change$=e([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(Mt.id),this.chapterManager=this.registry.getPlugin(mt.id),this.documentManager=this.registry.getPlugin(i.id)}async initialize(t){var e;if(this.config=t,null==(e=t.callbacks)?void 0:e.load)try{const e=await t.callbacks.load();for(const t of e)this.entries.set(t.id,t);this.change$.emit(this.list())}catch(s){this.logger.error(a.id,\"Load\",\"Failed to load paragraph bookmarks\",s)}}buildCapability(){return{addBookmark:t=>this.addBookmark(t),removeBookmark:t=>this.removeBookmark(t),updateBookmark:(t,e)=>this.updateBookmark(t,e),listBookmarks:()=>this.list(),getBookmark:t=>this.entries.get(t)??null,scrollToBookmark:t=>this.scrollToBookmark(t),requestRemoveBookmark:t=>this.requestRemoveBookmark(t),onBookmarksChange:this.change$.on}}addBookmark(t){for(const s of this.entries.values())if($t(s.anchor,t.anchor))return s;const e=t.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,a={id:e,label:t.label,anchor:t.anchor,metadata:t.metadata,createdAt:Date.now()};return this.entries.set(e,a),this.notifyAndPersist(),a}removeBookmark(t){var e,a,s;this.entries.delete(t)&&(this.notifyAndPersist(),null==(s=null==(a=null==(e=this.config)?void 0:e.callbacks)?void 0:a.onRemoveSuccess)||s.call(a,t))}async requestRemoveBookmark(t){var e,s;const i=this.entries.get(t);if(!i)return!1;const o=null==(s=null==(e=this.config)?void 0:e.callbacks)?void 0:s.onRequestRemove;if(o)try{if(!(await o(i)))return!1}catch(r){return this.logger.error(a.id,\"RequestRemove\",\"callback failed\",r),!1}return this.removeBookmark(t),!0}updateBookmark(t,e){const a=this.entries.get(t);a&&(this.entries.set(t,{...a,...e}),this.notifyAndPersist())}list(){return Array.from(this.entries.values()).sort((t,e)=>t.createdAt-e.createdAt)}notifyAndPersist(){var t,e;const s=this.list();this.change$.emit(s),(null==(e=null==(t=this.config)?void 0:t.callbacks)?void 0:e.persist)&&Promise.resolve(this.config.callbacks.persist(s)).catch(t=>this.logger.error(a.id,\"Persist\",\"persist callback rejected\",t))}async scrollToBookmark(t){const e=this.entries.get(t);if(!e)return;const a=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(e.anchor.chapterId);let s=e.anchor.globalPageIndex;if(void 0===s){const t=this.chapterManager.provides().getVirtualPageMap().toGlobal(e.anchor.chapterId,e.anchor.localPageIndex);if(!t)return;s=t.globalPageIndex}const i=function(t){if(t.markerAnchor)return t.markerAnchor.y;const e=t.rectPdfCoord;return e.origin.y+e.size.height}(e.anchor);await Lt(a,s,i)}};Dt.id=\"paragraph-bookmark\";let Tt=Dt;const kt={manifest:lt,create:t=>new Tt(dt,t),reducer:t=>t,initialState:{}},zt={\"annotation-toolbar\":{id:\"annotation-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},responsive:{breakpoints:{sm:{maxWidth:640,hide:[\"add-text\",\"add-ink\",\"add-ink-highlighter\",\"add-insert-text\",\"add-replace-text\",\"add-comment\",\"add-callout\"],show:[\"overflow-annotation-tools\"]},md:{minWidth:640,hide:[\"overflow-annotation-tools\"],show:[\"add-text\",\"add-ink\",\"add-ink-highlighter\",\"add-insert-text\",\"add-replace-text\",\"add-comment\",\"add-callout\"]}}},permanent:!1,categories:[\"annotation\"],items:[{type:\"spacer\",id:\"spacer-3\",flex:!0},{type:\"group\",id:\"annotation-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-highlight\",commandId:\"annotation:add-highlight\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-highlight\"]},{type:\"command-button\",id:\"add-strikeout\",commandId:\"annotation:add-strikeout\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-strikeout\"]},{type:\"command-button\",id:\"add-underline\",commandId:\"annotation:add-underline\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-underline\"]},{type:\"command-button\",id:\"add-squiggly\",commandId:\"annotation:add-squiggly\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-squiggly\"]},{type:\"command-button\",id:\"add-ink\",commandId:\"annotation:add-ink\",variant:\"icon\",categories:[\"annotation\",\"annotation-ink\"]},{type:\"command-button\",id:\"add-ink-highlighter\",commandId:\"annotation:add-ink-highlighter\",variant:\"icon\",categories:[\"annotation\",\"annotation-ink\"]},{type:\"command-button\",id:\"add-text\",commandId:\"annotation:add-text\",variant:\"icon\",categories:[\"annotation\",\"annotation-text\"]},{type:\"command-button\",id:\"add-insert-text\",commandId:\"annotation:add-insert-text\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-insert-text\"]},{type:\"command-button\",id:\"add-replace-text\",commandId:\"annotation:add-replace-text\",variant:\"icon\",categories:[\"annotation\",\"annotation-markup\",\"annotation-replace-text\"]},{type:\"command-button\",id:\"add-comment\",commandId:\"annotation:add-comment\",variant:\"icon\",categories:[\"annotation\",\"annotation-comment-tool\"]},{type:\"command-button\",id:\"add-callout\",commandId:\"annotation:add-callout\",variant:\"icon\",categories:[\"annotation\",\"annotation-text\"]},{type:\"command-button\",id:\"overflow-annotation-tools\",commandId:\"annotation:overflow-tools\",variant:\"icon\",categories:[\"annotation\",\"annotation-overflow\"]},{type:\"divider\",id:\"annotation-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"annotation-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-4\",flex:!0}]},\"shapes-toolbar\":{id:\"shapes-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},responsive:{breakpoints:{sm:{maxWidth:640,hide:[\"add-polygon\",\"add-polyline\"],show:[\"overflow-shapes-tools\"]},md:{minWidth:640,hide:[\"overflow-shapes-tools\"],show:[\"add-polygon\",\"add-polyline\"]}}},permanent:!1,categories:[\"annotation\",\"annotation-shape\"],items:[{type:\"spacer\",id:\"spacer-5\",flex:!0},{type:\"group\",id:\"shapes-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-rectangle\",commandId:\"annotation:add-rectangle\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-rectangle\"]},{type:\"command-button\",id:\"add-circle\",commandId:\"annotation:add-circle\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-circle\"]},{type:\"command-button\",id:\"add-line\",commandId:\"annotation:add-line\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-line\"]},{type:\"command-button\",id:\"add-arrow\",commandId:\"annotation:add-arrow\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-arrow\"]},{type:\"command-button\",id:\"add-polygon\",commandId:\"annotation:add-polygon\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-polygon\"]},{type:\"command-button\",id:\"add-polyline\",commandId:\"annotation:add-polyline\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-polyline\"]},{type:\"command-button\",id:\"overflow-shapes-tools\",commandId:\"annotation:overflow-shapes\",variant:\"icon\",categories:[\"annotation\",\"annotation-shape\",\"annotation-overflow\"]},{type:\"divider\",id:\"shapes-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"shapes-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-6\",flex:!0}]},\"form-toolbar\":{id:\"form-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},responsive:{breakpoints:{sm:{maxWidth:640,hide:[\"add-form-select\",\"add-form-listbox\"],show:[\"overflow-forms-tools\"]},md:{minWidth:640,hide:[\"overflow-forms-tools\"],show:[\"add-form-select\",\"add-form-listbox\"]}}},permanent:!1,categories:[\"form\"],items:[{type:\"spacer\",id:\"spacer-form-1\",flex:!0},{type:\"group\",id:\"form-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-form-textfield\",commandId:\"form:add-textfield\",variant:\"icon\",categories:[\"form\",\"form-textfield\"]},{type:\"command-button\",id:\"add-form-checkbox\",commandId:\"form:add-checkbox\",variant:\"icon\",categories:[\"form\",\"form-checkbox\"]},{type:\"command-button\",id:\"add-form-radio\",commandId:\"form:add-radio\",variant:\"icon\",categories:[\"form\",\"form-radio\"]},{type:\"command-button\",id:\"add-form-select\",commandId:\"form:add-select\",variant:\"icon\",categories:[\"form\",\"form-select\"]},{type:\"command-button\",id:\"add-form-listbox\",commandId:\"form:add-listbox\",variant:\"icon\",categories:[\"form\",\"form-listbox\"]},{type:\"command-button\",id:\"overflow-forms-tools\",commandId:\"form:overflow-tools\",variant:\"icon\",categories:[\"form\",\"form-overflow\"]},{type:\"divider\",id:\"form-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"command-button\",id:\"toggle-form-fill-mode\",commandId:\"form:toggle-fill-mode\",variant:\"icon\",categories:[\"form\",\"form-fill-mode\"]},{type:\"divider\",id:\"form-tools-divider-2\",orientation:\"vertical\"},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-form-2\",flex:!0}]},\"insert-toolbar\":{id:\"insert-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},permanent:!1,categories:[\"insert\"],items:[{type:\"spacer\",id:\"spacer-insert-1\",flex:!0},{type:\"group\",id:\"insert-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"add-rubber-stamp\",commandId:\"insert:add-rubber-stamp\",variant:\"icon\",categories:[\"insert\",\"insert-rubber-stamp\"]},{type:\"command-button\",id:\"add-signature\",commandId:\"insert:add-signature\",variant:\"icon\",categories:[\"insert\",\"insert-signature\"]},{type:\"command-button\",id:\"add-image\",commandId:\"insert:add-image\",variant:\"icon\",categories:[\"insert\",\"insert-image\"]},{type:\"divider\",id:\"insert-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"insert-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-insert-2\",flex:!0}]},\"redaction-toolbar\":{id:\"redaction-toolbar\",position:{placement:\"top\",slot:\"secondary\",order:0},permanent:!1,categories:[\"redaction\"],items:[{type:\"spacer\",id:\"spacer-7\",flex:!0},{type:\"group\",id:\"redaction-tools\",alignment:\"start\",gap:2,items:[{type:\"command-button\",id:\"redact\",commandId:\"redaction:redact\",variant:\"icon\",categories:[\"redaction\",\"redaction-combined\"]},{type:\"divider\",id:\"redaction-tools-divider-1\",orientation:\"vertical\"},{type:\"command-button\",id:\"toggle-redaction-panel\",commandId:\"panel:toggle-redaction\",variant:\"icon\",categories:[\"panel\",\"panel-redaction\"]},{type:\"command-button\",id:\"toggle-annotation-style\",commandId:\"panel:toggle-annotation-style\",variant:\"icon\",categories:[\"panel\",\"panel-annotation-style\"]},{type:\"divider\",id:\"redaction-tools-divider-2\",orientation:\"vertical\",visibilityDependsOn:{itemIds:[\"toggle-annotation-style\"]}},{type:\"command-button\",id:\"undo-button\",commandId:\"history:undo\",variant:\"icon\",categories:[\"history\",\"history-undo\"]},{type:\"command-button\",id:\"redo-button\",commandId:\"history:redo\",variant:\"icon\",categories:[\"history\",\"history-redo\"]}]},{type:\"spacer\",id:\"spacer-8\",flex:!0}]}};class Gt{constructor(){this.specs=[]}register(t){if(this.specs.some(e=>e.id===t.id))throw new Error(`OperationRegistry: duplicate operation id \"${t.id}\"`);this.specs.push(t)}registerAll(t){for(const e of t)e&&this.register(e)}list(){return this.specs}buildToolbars(){const t=structuredClone(zt);for(const e of this.specs){const a=t[e.toolbarSlot];if(!a)continue;const s={type:\"command-button\",id:e.id,commandId:e.commandId,variant:\"icon\",...e.icon?{icon:e.icon}:{},...e.i18nKey?{labelKey:e.i18nKey}:{},...e.label?{label:e.label}:{},categories:e.categories??[]};a.items=Ot(a.items,s,e.position)}return t}}function Ot(t,e,a){return(null==a?void 0:a.after)||(null==a?void 0:a.before)?function(t,e,a){const s=t=>{const i=[];for(const o of t)\"group\"!==o.type?a.before&&o.id===a.before?i.push(e,o):(i.push(o),a.after&&o.id===a.after&&i.push(e)):i.push({...o,items:s(o.items)});return i};return s(t)}(t,e,a):function(t,e){return t.map(t=>\"group\"===t.type?{...t,items:[...t.items,e]}:t)}(t,e)}const At={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function Nt(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides(),s=t.getPlugin(\"interaction-manager\")?.provides();a&&s&&(s.forDocument(e)?.activateDefaultMode(),a.forDocument(e).closeToolbarSlot(\"top\",\"secondary\"),t.getPlugin(l)?.provides().forDocument(e).setLocked((t=>t.getPluginConfig(l).locked??{type:c.None})(t)))},active:({state:t,documentId:e})=>!w(t.plugins,e,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",e),t.getPlugin(l)?.provides().forDocument(e).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>w(t.plugins,e,\"top\",\"secondary\",\"annotation-toolbar\")},\"mode:shapes\":{id:\"mode:shapes\",label:\"Shapes\",categories:[\"mode\",\"mode-shapes\",\"annotation\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",e),t.getPlugin(l)?.provides().forDocument(e).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>w(t.plugins,e,\"top\",\"secondary\",\"shapes-toolbar\")},\"mode:insert\":{id:\"mode:insert\",label:\"Insert\",categories:[\"mode\",\"mode-insert\",\"insert\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",e),t.getPlugin(l)?.provides().forDocument(e).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>w(t.plugins,e,\"top\",\"secondary\",\"insert-toolbar\")},\"mode:form\":{id:\"mode:form\",label:\"Form\",categories:[\"mode\",\"mode-form\",\"form\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",e),t.getPlugin(l)?.provides().forDocument(e).setLocked({type:c.None}))},active:({state:t,documentId:e})=>w(t.plugins,e,\"top\",\"secondary\",\"form-toolbar\")},\"mode:redact\":{id:\"mode:redact\",label:\"Redact\",categories:[\"mode\",\"mode-redact\",\"redaction\"],action:({registry:t,documentId:e})=>{const a=t.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",e),t.getPlugin(l)?.provides().forDocument(e).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:t,documentId:e})=>w(t.plugins,e,\"top\",\"secondary\",\"redaction-toolbar\")}}}function Vt(t){const e=t.toolbar??{},a=e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],i=a.length>0,{schema:l,operationRegistry:c}=function(t={}){var e,a,s,i,o,r;const n=new Set(t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),h=new Gt;(null==(e=t.customOperations)?void 0:e.length)&&h.registerAll(t.customOperations);const d=h.buildToolbars(),l={};for(const u of n){if(\"view\"===u)continue;const t=At[u];d[t]&&(l[t]=d[t])}const c=function(t){if(0===t.size)return null;const e=(t,e,a)=>({type:\"command-button\",id:`${t}-mode`,commandId:a,variant:\"text\",label:e,categories:[\"mode\",t]});return{id:\"chapter-editor-main-toolbar\",position:{placement:\"top\",slot:\"main\",order:0},permanent:!0,items:[{type:\"spacer\",id:\"main-spacer-left\",flex:!0},{type:\"group\",id:\"mode-group\",alignment:\"start\",gap:2,items:[...t.has(\"view\")?[e(\"view\",\"View\",\"mode:view\")]:[],...t.has(\"annotate\")?[e(\"annotate\",\"Annotate\",\"mode:annotate\")]:[],...t.has(\"shapes\")?[e(\"shapes\",\"Shapes\",\"mode:shapes\")]:[],...t.has(\"insert\")?[e(\"insert\",\"Insert\",\"mode:insert\")]:[],...t.has(\"form\")?[e(\"form\",\"Form\",\"mode:form\")]:[],...t.has(\"redact\")?[e(\"redact\",\"Redact\",\"mode:redact\")]:[]]},{type:\"spacer\",id:\"main-spacer-right\",flex:!0}]}}(n);return c&&(l[\"chapter-editor-main-toolbar\"]=c),(null==(a=t.extend)?void 0:a.toolbars)&&Object.assign(l,t.extend.toolbars),{schema:{id:\"chapter-pdf-editor-ui\",version:\"1.0.0\",toolbars:l,menus:(null==(s=t.extend)?void 0:s.menus)??{},sidebars:(null==(i=t.extend)?void 0:i.sidebars)??{},modals:(null==(o=t.extend)?void 0:o.modals)??{},selectionMenus:(null==(r=t.extend)?void 0:r.selectionMenus)??{}},operationRegistry:h}}({...e,enabledModes:a}),w={...i?Nt():{},...i?Rt(c.list()):{},...t.commands??{}},I=[s(o,{initialDocuments:[]}),s(k,{manifest:t.manifest,overlapStrategy:t.overlapStrategy,passwordProvider:t.passwordProvider,chapterPdfLoader:t.chapterPdfLoader,prefetchChapters:t.prefetchChapters,unloadTimeoutMs:t.unloadTimeoutMs}),s(F,{placeholderPageHeight:t.placeholderPageHeight,placeholderPageWidth:t.placeholderPageWidth}),s(r),s(n),s(h),s(d,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),s(p),s(u),s(g),s(f),s(m,!1===t.loadDefaultStampLibrary?{manifests:[]}:void 0),s(v),...Object.keys(w).length>0?[s(b,{commands:w})]:[],...i?[s(P),s(y,{schema:l})]:[]];return t.notes&&I.push(s(ht,{callbacks:t.notes.callbacks,ui:t.features?.notes?.marker})),t.bookmarks&&I.push(s(kt,{callbacks:t.bookmarks.callbacks,ui:t.features?.bookmarks?.marker,hover:t.features?.bookmarks?.hover})),{plugins:I,uiSchema:l,operationRegistry:c}}function Rt(t){const e={};for(const a of t)a.handler&&(e[a.commandId]={id:a.commandId,labelKey:a.i18nKey,label:a.label,icon:a.icon,categories:a.categories,action:({documentId:t})=>{a.handler?.({documentId:t,chapterId:t})}});return e}const _t={markup:{enabled:!0},bookmarks:{enabled:!0},notes:{enabled:!0},selectionToolbar:{enabled:!0},zoom:{enabled:!0,min:.5,max:3,initial:1}};function Ut(t){return Vt({...t,toolbar:t.toolbar??{enabledModes:[]},features:{..._t,...t.features,markup:{..._t.markup,...t.features?.markup},bookmarks:{..._t.bookmarks,...t.features?.bookmarks},notes:{..._t.notes,...t.features?.notes},selectionToolbar:{..._t.selectionToolbar,...t.features?.selectionToolbar},zoom:{..._t.zoom,...t.features?.zoom}}})}class Et{constructor(t){this.cb=t}resolvePassword(t,e){return this.cb(t,e)}}function Ft(t){return{manifest:t.manifest,chapterPdfLoader:t.chapterPdfLoader,overlapStrategy:{kind:\"first-wins\"},passwordProvider:new Et(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]},bookmarks:t.bookmarks,notes:t.notes}}function qt(t){return t.chapterId}function Wt(t,e){t.wait(e,()=>{})}function Ht(t,e,a){return{chapterId:t.chapterId,localPageIndex:t.localPageIndex,globalPageIndex:t.globalPageIndex,globalPageNumber:t.globalPageNumber,rectsPdfCoord:e,selectedText:a}}export{_t as DEFAULT_CHAPTER_VIEWER_FEATURES,Ht as buildChapterSelectionSnapshot,qt as chapterDocumentIdForPage,Nt as createChapterEditorModeCommands,Ut as createChapterViewerEditor,Ft as createChapterViewerEditorOptions,Vt as createPdfChapterEditor,Wt as waitSelectedText};\n//# sourceMappingURL=index.js.map\n","import { LockModeType } from \"@embedpdf/plugin-annotation\";\nimport { PdfAnnotationSubtype, uuidV4, PdfBlendMode } from \"@embedpdf/models\";\nconst DEFAULT_STYLES = {\n highlight: { offsetY: 0 },\n underline: { offsetY: 2.5 },\n squiggly: { offsetY: 0 },\n strikeout: { offsetY: 0 }\n};\nconst SUBTYPE = {\n highlight: PdfAnnotationSubtype.HIGHLIGHT,\n underline: PdfAnnotationSubtype.UNDERLINE,\n squiggly: PdfAnnotationSubtype.SQUIGGLY,\n strikeout: PdfAnnotationSubtype.STRIKEOUT\n};\nfunction offsetRectsDown(rects, dy) {\n if (dy === 0) return rects;\n return rects.map((r) => ({\n origin: { x: r.origin.x, y: r.origin.y + dy },\n size: { ...r.size }\n }));\n}\nfunction unionRects(rects) {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const r of rects) {\n minX = Math.min(minX, r.origin.x);\n minY = Math.min(minY, r.origin.y);\n maxX = Math.max(maxX, r.origin.x + r.size.width);\n maxY = Math.max(maxY, r.origin.y + r.size.height);\n }\n return {\n origin: { x: minX, y: minY },\n size: { width: maxX - minX, height: maxY - minY }\n };\n}\nfunction resolveStyle(kind, styles) {\n return {\n ...DEFAULT_STYLES[kind],\n ...styles == null ? void 0 : styles[kind]\n };\n}\nfunction applySelectionMarkup(documentId, kind, annotation, selection, styles) {\n const annotationScope = annotation.forDocument(documentId);\n const selectionScope = selection.forDocument(documentId);\n if (!annotationScope || !selectionScope) return false;\n const toolId = kind === \"highlight\" ? \"highlight\" : kind === \"underline\" ? \"underline\" : kind === \"squiggly\" ? \"squiggly\" : \"strikeout\";\n const tool = annotation.getTool(toolId);\n if (!tool) return false;\n const defaults = tool.defaults;\n const style = resolveStyle(kind, styles);\n const formatted = selectionScope.getFormattedSelection();\n if (formatted.length === 0) return false;\n annotationScope.setLocked({ type: LockModeType.Exclude, categories: [\"markup\", \"shape\"] });\n for (const sel of formatted) {\n const id = uuidV4();\n const strokeColor = style.color ?? defaults.color ?? defaults.strokeColor;\n const opacity = style.opacity ?? defaults.opacity;\n const strokeWidth = style.thickness ?? defaults.strokeWidth;\n const offsetY = style.offsetY ?? 0;\n const needsOffset = kind === \"underline\" || kind === \"squiggly\" || kind === \"strikeout\";\n const segmentRects = needsOffset ? offsetRectsDown(sel.segmentRects, offsetY) : sel.segmentRects;\n const rect = kind === \"underline\" || kind === \"squiggly\" || kind === \"strikeout\" ? unionRects(segmentRects) : sel.rect;\n annotationScope.createAnnotation(sel.pageIndex, {\n id,\n created: /* @__PURE__ */ new Date(),\n flags: [\"print\"],\n type: SUBTYPE[kind],\n ...kind === \"highlight\" ? { blendMode: PdfBlendMode.Multiply } : {},\n strokeColor,\n opacity,\n ...strokeWidth != null ? { strokeWidth } : {},\n pageIndex: sel.pageIndex,\n rect,\n segmentRects\n });\n }\n selectionScope.clear();\n return true;\n}\nexport {\n applySelectionMarkup\n};\n//# sourceMappingURL=index.js.map\n","import { BasePlugin, createBehaviorEmitter, createEmitter } from \"@embedpdf/core\";\nimport { DocumentManagerPlugin } from \"@embedpdf/plugin-document-manager\";\nimport { PdfErrorCode } from \"@embedpdf/models\";\nconst PARAGRAPH_BOOKMARK_PLUGIN_ID = \"paragraph-bookmark\";\nconst manifest = {\n id: PARAGRAPH_BOOKMARK_PLUGIN_ID,\n name: \"Paragraph Bookmark Plugin\",\n version: \"0.1.0\",\n // 注意:provides 不叫 'bookmark',避免和 @embedpdf/plugin-bookmark(PDF outline)冲突\n provides: [\"paragraph-bookmark\"],\n requires: [\"chapter-scroll\", \"chapter-manager\"],\n optional: [],\n defaultConfig: {}\n};\nfunction e$1(e2) {\n const t2 = [], s2 = /* @__PURE__ */ new Set();\n for (const a2 of e2.chapters) {\n s2.has(a2.chapterId) && t2.push(`Duplicate chapterId: ${a2.chapterId}`), s2.add(a2.chapterId);\n const [e3, n22] = a2.globalPageRange, [r2, o] = a2.localPageRange;\n if (e3 > n22 && t2.push(`${a2.chapterId}: invalid globalPageRange [${e3},${n22}]`), r2 > o && t2.push(`${a2.chapterId}: invalid localPageRange [${r2},${o}]`), n22 - e3 !== o - r2 && t2.push(`${a2.chapterId}: page-count mismatch (global ${n22 - e3 + 1} vs local ${o - r2 + 1})`), a2.ownedGlobalPages) for (const s3 of a2.ownedGlobalPages) (s3 < e3 || s3 > n22) && t2.push(`${a2.chapterId}: ownedGlobalPages contains ${s3} outside range`);\n }\n return t2;\n}\nconst t$1 = { kind: \"first-wins\" };\nfunction s$1(e2, s2 = t$1) {\n const n22 = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) {\n const [e3, s3] = t2.globalPageRange;\n for (let a2 = e3; a2 <= s3; a2++) {\n const e4 = n22.get(a2);\n e4 ? e4.push(t2) : n22.set(a2, [t2]);\n }\n }\n const r2 = /* @__PURE__ */ new Map();\n for (const [t2, o] of n22) r2.set(t2, a$1(t2, o, s2));\n return r2;\n}\nfunction a$1(e2, t2, s2) {\n if (1 === t2.length) return t2[0].chapterId;\n switch (s2.kind) {\n case \"first-wins\":\n return t2[0].chapterId;\n case \"last-wins\":\n return t2[t2.length - 1].chapterId;\n case \"explicit\": {\n const s3 = t2.find((t3) => {\n var _a;\n return (_a = t3.ownedGlobalPages) == null ? void 0 : _a.includes(e2);\n });\n return s3 ? s3.chapterId : t2[0].chapterId;\n }\n case \"custom\":\n return s2.resolve(e2, t2);\n }\n}\nlet n$1 = class n {\n constructor(e2) {\n this._pages = e2, this._byChapter = /* @__PURE__ */ new Map(), this._byGlobalNumber = /* @__PURE__ */ new Map();\n for (const t2 of e2) {\n this._byGlobalNumber.set(t2.globalPageNumber, t2);\n let e3 = this._byChapter.get(t2.chapterId);\n e3 || (e3 = [], this._byChapter.set(t2.chapterId, e3)), e3.push(t2);\n }\n }\n get totalPages() {\n return this._pages.length;\n }\n list() {\n return this._pages;\n }\n atIndex(e2) {\n return this._pages[e2] ?? null;\n }\n byGlobalNumber(e2) {\n return this._byGlobalNumber.get(e2) ?? null;\n }\n toGlobal(e2, t2) {\n const s2 = this._byChapter.get(e2);\n return s2 ? s2.find((e3) => e3.localPageIndex === t2) ?? null : null;\n }\n pagesOfChapter(e2) {\n return this._byChapter.get(e2) ?? [];\n }\n firstIndexOfChapter(e2) {\n var _a;\n const t2 = (_a = this._byChapter.get(e2)) == null ? void 0 : _a[0];\n return t2 ? this._pages.indexOf(t2) : -1;\n }\n};\nfunction r$1(e2, a2 = t$1) {\n const r2 = s$1(e2, a2), o = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) o.set(t2.chapterId, t2);\n const l = Array.from(r2.keys()).sort((e3, t2) => e3 - t2), c = [];\n let h = 0;\n for (const t2 of l) {\n const e3 = r2.get(t2), s2 = o.get(e3);\n if (!s2) continue;\n const [a3] = s2.globalPageRange, [n22] = s2.localPageRange, l2 = n22 + (t2 - a3);\n c.push({ globalPageIndex: h++, globalPageNumber: t2, chapterId: e3, localPageIndex: l2 });\n }\n return new n$1(c);\n}\nconst _ChapterManagerPlugin$1 = class _ChapterManagerPlugin extends BasePlugin {\n constructor(id, registry) {\n super(id, registry);\n this.statusChange$ = createBehaviorEmitter();\n this.manifestChange$ = createEmitter();\n this.overlapStrategy = t$1;\n this.chapterStatus = /* @__PURE__ */ new Map();\n this.chapterLastUsed = /* @__PURE__ */ new Map();\n this.passwordAttempts = /* @__PURE__ */ new Map();\n this.pendingLoadPromises = /* @__PURE__ */ new Map();\n this.unloadTimer = null;\n this.documentManagerUnsubs = [];\n this.documentManager = this.registry.getPlugin(DocumentManagerPlugin.id);\n }\n async initialize(config) {\n this.config = config;\n this.passwordProvider = config.passwordProvider;\n this.overlapStrategy = config.overlapStrategy ?? t$1;\n this.setManifestInternal(config.manifest);\n this.documentManagerUnsubs.push(\n this.documentManager.provides().onDocumentOpened((docState) => {\n if (!this.isOwnedChapter(docState.id)) return;\n this.passwordAttempts.delete(docState.id);\n this.updateStatus(docState.id, \"loaded\");\n }),\n this.documentManager.provides().onDocumentClosed((documentId) => {\n if (!this.isOwnedChapter(documentId)) return;\n this.updateStatus(documentId, \"closed\");\n }),\n this.documentManager.provides().onDocumentError((evt) => {\n if (!this.isOwnedChapter(evt.documentId)) return;\n this.handleDocumentError(evt.documentId, evt.code, evt.message);\n })\n );\n if (config.unloadTimeoutMs && config.unloadTimeoutMs > 0) {\n const tick = Math.max(5e3, Math.floor(config.unloadTimeoutMs / 4));\n this.unloadTimer = setInterval(() => this.collectIdleChapters(), tick);\n }\n }\n buildCapability() {\n return {\n setManifest: (m, s2) => {\n if (s2) this.overlapStrategy = s2;\n this.setManifestInternal(m);\n },\n getManifest: () => this.manifest,\n getVirtualPageMap: () => this.virtualPageMap,\n setVisibleGlobalPages: (visible) => this.handleVisibleChange(visible),\n ensureChapterLoaded: (chapterId) => this.ensureChapterLoaded(chapterId),\n getChapterStatus: (chapterId) => this.chapterStatus.get(chapterId) ?? \"idle\",\n getChapter: (chapterId) => this.findChapter(chapterId),\n onChapterStatusChange: this.statusChange$.on,\n onManifestChange: this.manifestChange$.on\n };\n }\n destroy() {\n super.destroy();\n for (const u of this.documentManagerUnsubs) u();\n this.documentManagerUnsubs = [];\n if (this.unloadTimer) clearInterval(this.unloadTimer);\n this.unloadTimer = null;\n this.statusChange$.clear();\n this.manifestChange$.clear();\n }\n /* ───────────────── manifest ───────────────── */\n setManifestInternal(manifest2) {\n const issues = e$1(manifest2);\n if (issues.length > 0) {\n this.logger.warn(\n _ChapterManagerPlugin.id,\n \"ManifestValidation\",\n `Chapter manifest has issues: ${issues.join(\"; \")}`\n );\n }\n const prevIds = new Set(this.chapterStatus.keys());\n const nextIds = new Set(manifest2.chapters.map((c) => c.chapterId));\n for (const oldId of prevIds) {\n if (!nextIds.has(oldId)) {\n this.closeChapter(oldId);\n this.chapterStatus.delete(oldId);\n }\n }\n for (const c of manifest2.chapters) {\n if (!this.chapterStatus.has(c.chapterId)) {\n this.chapterStatus.set(c.chapterId, \"idle\");\n }\n }\n this.manifest = manifest2;\n this.virtualPageMap = r$1(manifest2, this.overlapStrategy);\n this.manifestChange$.emit({ manifest: manifest2, map: this.virtualPageMap });\n this.eagerPrefetchFromManifest();\n }\n /** manifest 就绪后预取前 N 章(不依赖滚动视口是否已算出可见页) */\n eagerPrefetchFromManifest() {\n const prefetch = this.config.prefetchChapters ?? 0;\n if (prefetch <= 0 || this.manifest.chapters.length === 0) return;\n const now = Date.now();\n const count = Math.min(prefetch, this.manifest.chapters.length);\n for (let i = 0; i < count; i++) {\n const chapterId = this.manifest.chapters[i].chapterId;\n this.chapterLastUsed.set(chapterId, now);\n const st = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(chapterId);\n }\n }\n }\n findChapter(chapterId) {\n return this.manifest.chapters.find((c) => c.chapterId === chapterId) ?? null;\n }\n isOwnedChapter(documentId) {\n return !!this.findChapter(documentId);\n }\n /* ───────────────── 可见 → needed → load/unload ───────────────── */\n handleVisibleChange(visibleGlobalPageIndices) {\n if (!this.virtualPageMap) return;\n const now = Date.now();\n const prefetch = this.config.prefetchChapters ?? 1;\n const visibleChapters = /* @__PURE__ */ new Set();\n for (const idx of visibleGlobalPageIndices) {\n const loc = this.virtualPageMap.atIndex(idx);\n if (loc) visibleChapters.add(loc.chapterId);\n }\n if (visibleChapters.size === 0) return;\n const orderedIds = this.manifest.chapters.map((c) => c.chapterId);\n const neededIdx = /* @__PURE__ */ new Set();\n for (const cid of visibleChapters) {\n const i = orderedIds.indexOf(cid);\n if (i === -1) continue;\n for (let k = i - prefetch; k <= i + prefetch; k++) {\n if (k >= 0 && k < orderedIds.length) neededIdx.add(k);\n }\n }\n const needed = /* @__PURE__ */ new Set();\n for (const i of neededIdx) needed.add(orderedIds[i]);\n for (const cid of needed) {\n this.chapterLastUsed.set(cid, now);\n const st = this.chapterStatus.get(cid) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(cid);\n }\n }\n if (this.config.autoActivateOnLoad ?? true) {\n const firstVisible = orderedIds.find((id) => visibleChapters.has(id));\n if (firstVisible && this.documentManager.provides().isDocumentOpen(firstVisible)) {\n const currentActive = this.documentManager.provides().getActiveDocumentId();\n if (currentActive !== firstVisible) {\n this.documentManager.provides().setActiveDocument(firstVisible);\n }\n }\n }\n }\n collectIdleChapters() {\n const timeout = this.config.unloadTimeoutMs ?? 6e4;\n if (timeout <= 0) return;\n const now = Date.now();\n for (const [cid, st] of this.chapterStatus) {\n if (st !== \"loaded\") continue;\n const last = this.chapterLastUsed.get(cid) ?? 0;\n if (now - last > timeout) {\n this.closeChapter(cid);\n }\n }\n }\n /* ───────────────── load / retry / close ───────────────── */\n ensureChapterLoaded(chapterId) {\n const existing = this.pendingLoadPromises.get(chapterId);\n if (existing) return existing;\n const chapter = this.findChapter(chapterId);\n if (!chapter) return Promise.resolve(\"error\");\n const currentStatus = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (currentStatus === \"loaded\") {\n this.chapterLastUsed.set(chapterId, Date.now());\n return Promise.resolve(\"loaded\");\n }\n if (currentStatus === \"loading\") {\n return this.waitForTerminalStatus(chapterId);\n }\n const promise = this.startLoad(chapter).finally(() => {\n this.pendingLoadPromises.delete(chapterId);\n });\n this.pendingLoadPromises.set(chapterId, promise);\n return promise;\n }\n async resolvePdfPayload(chapter) {\n const src = chapter.source;\n if (src) {\n if (\"url\" in src) return { url: src.url };\n if (\"buffer\" in src) return { buffer: src.buffer };\n if (\"load\" in src) return src.load();\n }\n const loader = this.config.chapterPdfLoader;\n if (loader) return loader.loadPdf(chapter);\n throw new Error(\n `Chapter \"${chapter.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`\n );\n }\n async startLoad(chapter) {\n var _a;\n this.updateStatus(chapter.chapterId, \"loading\");\n this.chapterLastUsed.set(chapter.chapterId, Date.now());\n const cachedPwd = chapter.encrypted && ((_a = this.passwordProvider) == null ? void 0 : _a.getCachedPassword) ? this.passwordProvider.getCachedPassword(chapter.chapterId) : null;\n const payload = await this.resolvePdfPayload(chapter);\n const cap = this.documentManager.provides();\n const openTask = \"url\" in payload ? cap.openDocumentUrl({\n documentId: chapter.chapterId,\n url: payload.url,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n // 由 handleVisibleChange 决定 active\n }) : cap.openDocumentBuffer({\n documentId: chapter.chapterId,\n buffer: payload.buffer,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n });\n await new Promise((resolve) => openTask.wait(() => resolve(), () => resolve()));\n return this.waitForTerminalStatus(chapter.chapterId);\n }\n /** 阻塞等待该章节状态进入 loaded / error / password-required / closed */\n waitForTerminalStatus(chapterId) {\n return new Promise((resolve) => {\n const check = (st) => {\n if (st === \"loaded\" || st === \"error\" || st === \"password-required\" || st === \"closed\") {\n unsub();\n resolve(st);\n }\n };\n const unsub = this.statusChange$.on((evt) => {\n if (evt.chapterId === chapterId) check(evt.status);\n });\n check(this.chapterStatus.get(chapterId) ?? \"idle\");\n });\n }\n async handleDocumentError(chapterId, code, _message) {\n if (code !== PdfErrorCode.Password) {\n this.updateStatus(chapterId, \"error\");\n return;\n }\n if (!this.passwordProvider) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n const chapter = this.findChapter(chapterId);\n if (!chapter) return;\n const attempt = (this.passwordAttempts.get(chapterId) ?? 0) + 1;\n this.passwordAttempts.set(chapterId, attempt);\n let password = null;\n try {\n password = await this.passwordProvider.resolvePassword(chapter, attempt - 1);\n } catch (err) {\n this.logger.error(\n _ChapterManagerPlugin.id,\n \"PasswordProvider\",\n `Provider rejected for ${chapterId}`,\n err\n );\n }\n if (!password) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n this.updateStatus(chapterId, \"loading\");\n const retryTask = this.documentManager.provides().retryDocument(chapterId, { password });\n retryTask.wait(\n () => {\n },\n () => {\n }\n );\n }\n closeChapter(chapterId) {\n const cap = this.documentManager.provides();\n if (cap.isDocumentOpen(chapterId)) {\n const task = cap.closeDocument(chapterId);\n task.wait(\n () => this.updateStatus(chapterId, \"closed\"),\n () => this.updateStatus(chapterId, \"closed\")\n );\n } else {\n this.updateStatus(chapterId, \"closed\");\n }\n }\n updateStatus(chapterId, status, errorMsg) {\n const prev = this.chapterStatus.get(chapterId);\n if (prev === status) return;\n this.chapterStatus.set(chapterId, status);\n this.statusChange$.emit({\n chapterId,\n status,\n ...status === \"error\" && errorMsg ? { error: { message: errorMsg } } : {}\n });\n }\n};\n_ChapterManagerPlugin$1.id = \"chapter-manager\";\nlet ChapterManagerPlugin$1 = _ChapterManagerPlugin$1;\nfunction e(e2) {\n const t2 = [], s2 = /* @__PURE__ */ new Set();\n for (const a2 of e2.chapters) {\n s2.has(a2.chapterId) && t2.push(`Duplicate chapterId: ${a2.chapterId}`), s2.add(a2.chapterId);\n const [e3, n22] = a2.globalPageRange, [r2, o] = a2.localPageRange;\n if (e3 > n22 && t2.push(`${a2.chapterId}: invalid globalPageRange [${e3},${n22}]`), r2 > o && t2.push(`${a2.chapterId}: invalid localPageRange [${r2},${o}]`), n22 - e3 !== o - r2 && t2.push(`${a2.chapterId}: page-count mismatch (global ${n22 - e3 + 1} vs local ${o - r2 + 1})`), a2.ownedGlobalPages) for (const s3 of a2.ownedGlobalPages) (s3 < e3 || s3 > n22) && t2.push(`${a2.chapterId}: ownedGlobalPages contains ${s3} outside range`);\n }\n return t2;\n}\nconst t = { kind: \"first-wins\" };\nfunction s(e2, s2 = t) {\n const n22 = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) {\n const [e3, s3] = t2.globalPageRange;\n for (let a2 = e3; a2 <= s3; a2++) {\n const e4 = n22.get(a2);\n e4 ? e4.push(t2) : n22.set(a2, [t2]);\n }\n }\n const r2 = /* @__PURE__ */ new Map();\n for (const [t2, o] of n22) r2.set(t2, a(t2, o, s2));\n return r2;\n}\nfunction a(e2, t2, s2) {\n if (1 === t2.length) return t2[0].chapterId;\n switch (s2.kind) {\n case \"first-wins\":\n return t2[0].chapterId;\n case \"last-wins\":\n return t2[t2.length - 1].chapterId;\n case \"explicit\": {\n const s3 = t2.find((t3) => {\n var _a;\n return (_a = t3.ownedGlobalPages) == null ? void 0 : _a.includes(e2);\n });\n return s3 ? s3.chapterId : t2[0].chapterId;\n }\n case \"custom\":\n return s2.resolve(e2, t2);\n }\n}\nclass n2 {\n constructor(e2) {\n this._pages = e2, this._byChapter = /* @__PURE__ */ new Map(), this._byGlobalNumber = /* @__PURE__ */ new Map();\n for (const t2 of e2) {\n this._byGlobalNumber.set(t2.globalPageNumber, t2);\n let e3 = this._byChapter.get(t2.chapterId);\n e3 || (e3 = [], this._byChapter.set(t2.chapterId, e3)), e3.push(t2);\n }\n }\n get totalPages() {\n return this._pages.length;\n }\n list() {\n return this._pages;\n }\n atIndex(e2) {\n return this._pages[e2] ?? null;\n }\n byGlobalNumber(e2) {\n return this._byGlobalNumber.get(e2) ?? null;\n }\n toGlobal(e2, t2) {\n const s2 = this._byChapter.get(e2);\n return s2 ? s2.find((e3) => e3.localPageIndex === t2) ?? null : null;\n }\n pagesOfChapter(e2) {\n return this._byChapter.get(e2) ?? [];\n }\n firstIndexOfChapter(e2) {\n var _a;\n const t2 = (_a = this._byChapter.get(e2)) == null ? void 0 : _a[0];\n return t2 ? this._pages.indexOf(t2) : -1;\n }\n}\nfunction r(e2, a2 = t) {\n const r2 = s(e2, a2), o = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) o.set(t2.chapterId, t2);\n const l = Array.from(r2.keys()).sort((e3, t2) => e3 - t2), c = [];\n let h = 0;\n for (const t2 of l) {\n const e3 = r2.get(t2), s2 = o.get(e3);\n if (!s2) continue;\n const [a3] = s2.globalPageRange, [n22] = s2.localPageRange, l2 = n22 + (t2 - a3);\n c.push({ globalPageIndex: h++, globalPageNumber: t2, chapterId: e3, localPageIndex: l2 });\n }\n return new n2(c);\n}\nconst _ChapterManagerPlugin2 = class _ChapterManagerPlugin22 extends BasePlugin {\n constructor(id, registry) {\n super(id, registry);\n this.statusChange$ = createBehaviorEmitter();\n this.manifestChange$ = createEmitter();\n this.overlapStrategy = t;\n this.chapterStatus = /* @__PURE__ */ new Map();\n this.chapterLastUsed = /* @__PURE__ */ new Map();\n this.passwordAttempts = /* @__PURE__ */ new Map();\n this.pendingLoadPromises = /* @__PURE__ */ new Map();\n this.unloadTimer = null;\n this.documentManagerUnsubs = [];\n this.documentManager = this.registry.getPlugin(DocumentManagerPlugin.id);\n }\n async initialize(config) {\n this.config = config;\n this.passwordProvider = config.passwordProvider;\n this.overlapStrategy = config.overlapStrategy ?? t;\n this.setManifestInternal(config.manifest);\n this.documentManagerUnsubs.push(\n this.documentManager.provides().onDocumentOpened((docState) => {\n if (!this.isOwnedChapter(docState.id)) return;\n this.passwordAttempts.delete(docState.id);\n this.updateStatus(docState.id, \"loaded\");\n }),\n this.documentManager.provides().onDocumentClosed((documentId) => {\n if (!this.isOwnedChapter(documentId)) return;\n this.updateStatus(documentId, \"closed\");\n }),\n this.documentManager.provides().onDocumentError((evt) => {\n if (!this.isOwnedChapter(evt.documentId)) return;\n this.handleDocumentError(evt.documentId, evt.code, evt.message);\n })\n );\n if (config.unloadTimeoutMs && config.unloadTimeoutMs > 0) {\n const tick = Math.max(5e3, Math.floor(config.unloadTimeoutMs / 4));\n this.unloadTimer = setInterval(() => this.collectIdleChapters(), tick);\n }\n }\n buildCapability() {\n return {\n setManifest: (m, s2) => {\n if (s2) this.overlapStrategy = s2;\n this.setManifestInternal(m);\n },\n getManifest: () => this.manifest,\n getVirtualPageMap: () => this.virtualPageMap,\n setVisibleGlobalPages: (visible) => this.handleVisibleChange(visible),\n ensureChapterLoaded: (chapterId) => this.ensureChapterLoaded(chapterId),\n getChapterStatus: (chapterId) => this.chapterStatus.get(chapterId) ?? \"idle\",\n getChapter: (chapterId) => this.findChapter(chapterId),\n onChapterStatusChange: this.statusChange$.on,\n onManifestChange: this.manifestChange$.on\n };\n }\n destroy() {\n super.destroy();\n for (const u of this.documentManagerUnsubs) u();\n this.documentManagerUnsubs = [];\n if (this.unloadTimer) clearInterval(this.unloadTimer);\n this.unloadTimer = null;\n this.statusChange$.clear();\n this.manifestChange$.clear();\n }\n /* ───────────────── manifest ───────────────── */\n setManifestInternal(manifest2) {\n const issues = e(manifest2);\n if (issues.length > 0) {\n this.logger.warn(\n _ChapterManagerPlugin22.id,\n \"ManifestValidation\",\n `Chapter manifest has issues: ${issues.join(\"; \")}`\n );\n }\n const prevIds = new Set(this.chapterStatus.keys());\n const nextIds = new Set(manifest2.chapters.map((c) => c.chapterId));\n for (const oldId of prevIds) {\n if (!nextIds.has(oldId)) {\n this.closeChapter(oldId);\n this.chapterStatus.delete(oldId);\n }\n }\n for (const c of manifest2.chapters) {\n if (!this.chapterStatus.has(c.chapterId)) {\n this.chapterStatus.set(c.chapterId, \"idle\");\n }\n }\n this.manifest = manifest2;\n this.virtualPageMap = r(manifest2, this.overlapStrategy);\n this.manifestChange$.emit({ manifest: manifest2, map: this.virtualPageMap });\n this.eagerPrefetchFromManifest();\n }\n /** manifest 就绪后预取前 N 章(不依赖滚动视口是否已算出可见页) */\n eagerPrefetchFromManifest() {\n const prefetch = this.config.prefetchChapters ?? 0;\n if (prefetch <= 0 || this.manifest.chapters.length === 0) return;\n const now = Date.now();\n const count = Math.min(prefetch, this.manifest.chapters.length);\n for (let i = 0; i < count; i++) {\n const chapterId = this.manifest.chapters[i].chapterId;\n this.chapterLastUsed.set(chapterId, now);\n const st = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(chapterId);\n }\n }\n }\n findChapter(chapterId) {\n return this.manifest.chapters.find((c) => c.chapterId === chapterId) ?? null;\n }\n isOwnedChapter(documentId) {\n return !!this.findChapter(documentId);\n }\n /* ───────────────── 可见 → needed → load/unload ───────────────── */\n handleVisibleChange(visibleGlobalPageIndices) {\n if (!this.virtualPageMap) return;\n const now = Date.now();\n const prefetch = this.config.prefetchChapters ?? 1;\n const visibleChapters = /* @__PURE__ */ new Set();\n for (const idx of visibleGlobalPageIndices) {\n const loc = this.virtualPageMap.atIndex(idx);\n if (loc) visibleChapters.add(loc.chapterId);\n }\n if (visibleChapters.size === 0) return;\n const orderedIds = this.manifest.chapters.map((c) => c.chapterId);\n const neededIdx = /* @__PURE__ */ new Set();\n for (const cid of visibleChapters) {\n const i = orderedIds.indexOf(cid);\n if (i === -1) continue;\n for (let k = i - prefetch; k <= i + prefetch; k++) {\n if (k >= 0 && k < orderedIds.length) neededIdx.add(k);\n }\n }\n const needed = /* @__PURE__ */ new Set();\n for (const i of neededIdx) needed.add(orderedIds[i]);\n for (const cid of needed) {\n this.chapterLastUsed.set(cid, now);\n const st = this.chapterStatus.get(cid) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(cid);\n }\n }\n if (this.config.autoActivateOnLoad ?? true) {\n const firstVisible = orderedIds.find((id) => visibleChapters.has(id));\n if (firstVisible && this.documentManager.provides().isDocumentOpen(firstVisible)) {\n const currentActive = this.documentManager.provides().getActiveDocumentId();\n if (currentActive !== firstVisible) {\n this.documentManager.provides().setActiveDocument(firstVisible);\n }\n }\n }\n }\n collectIdleChapters() {\n const timeout = this.config.unloadTimeoutMs ?? 6e4;\n if (timeout <= 0) return;\n const now = Date.now();\n for (const [cid, st] of this.chapterStatus) {\n if (st !== \"loaded\") continue;\n const last = this.chapterLastUsed.get(cid) ?? 0;\n if (now - last > timeout) {\n this.closeChapter(cid);\n }\n }\n }\n /* ───────────────── load / retry / close ───────────────── */\n ensureChapterLoaded(chapterId) {\n const existing = this.pendingLoadPromises.get(chapterId);\n if (existing) return existing;\n const chapter = this.findChapter(chapterId);\n if (!chapter) return Promise.resolve(\"error\");\n const currentStatus = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (currentStatus === \"loaded\") {\n this.chapterLastUsed.set(chapterId, Date.now());\n return Promise.resolve(\"loaded\");\n }\n if (currentStatus === \"loading\") {\n return this.waitForTerminalStatus(chapterId);\n }\n const promise = this.startLoad(chapter).finally(() => {\n this.pendingLoadPromises.delete(chapterId);\n });\n this.pendingLoadPromises.set(chapterId, promise);\n return promise;\n }\n async resolvePdfPayload(chapter) {\n const src = chapter.source;\n if (src) {\n if (\"url\" in src) return { url: src.url };\n if (\"buffer\" in src) return { buffer: src.buffer };\n if (\"load\" in src) return src.load();\n }\n const loader = this.config.chapterPdfLoader;\n if (loader) return loader.loadPdf(chapter);\n throw new Error(\n `Chapter \"${chapter.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`\n );\n }\n async startLoad(chapter) {\n var _a;\n this.updateStatus(chapter.chapterId, \"loading\");\n this.chapterLastUsed.set(chapter.chapterId, Date.now());\n const cachedPwd = chapter.encrypted && ((_a = this.passwordProvider) == null ? void 0 : _a.getCachedPassword) ? this.passwordProvider.getCachedPassword(chapter.chapterId) : null;\n const payload = await this.resolvePdfPayload(chapter);\n const cap = this.documentManager.provides();\n const openTask = \"url\" in payload ? cap.openDocumentUrl({\n documentId: chapter.chapterId,\n url: payload.url,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n // 由 handleVisibleChange 决定 active\n }) : cap.openDocumentBuffer({\n documentId: chapter.chapterId,\n buffer: payload.buffer,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n });\n await new Promise((resolve) => openTask.wait(() => resolve(), () => resolve()));\n return this.waitForTerminalStatus(chapter.chapterId);\n }\n /** 阻塞等待该章节状态进入 loaded / error / password-required / closed */\n waitForTerminalStatus(chapterId) {\n return new Promise((resolve) => {\n const check = (st) => {\n if (st === \"loaded\" || st === \"error\" || st === \"password-required\" || st === \"closed\") {\n unsub();\n resolve(st);\n }\n };\n const unsub = this.statusChange$.on((evt) => {\n if (evt.chapterId === chapterId) check(evt.status);\n });\n check(this.chapterStatus.get(chapterId) ?? \"idle\");\n });\n }\n async handleDocumentError(chapterId, code, _message) {\n if (code !== PdfErrorCode.Password) {\n this.updateStatus(chapterId, \"error\");\n return;\n }\n if (!this.passwordProvider) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n const chapter = this.findChapter(chapterId);\n if (!chapter) return;\n const attempt = (this.passwordAttempts.get(chapterId) ?? 0) + 1;\n this.passwordAttempts.set(chapterId, attempt);\n let password = null;\n try {\n password = await this.passwordProvider.resolvePassword(chapter, attempt - 1);\n } catch (err) {\n this.logger.error(\n _ChapterManagerPlugin22.id,\n \"PasswordProvider\",\n `Provider rejected for ${chapterId}`,\n err\n );\n }\n if (!password) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n this.updateStatus(chapterId, \"loading\");\n const retryTask = this.documentManager.provides().retryDocument(chapterId, { password });\n retryTask.wait(\n () => {\n },\n () => {\n }\n );\n }\n closeChapter(chapterId) {\n const cap = this.documentManager.provides();\n if (cap.isDocumentOpen(chapterId)) {\n const task = cap.closeDocument(chapterId);\n task.wait(\n () => this.updateStatus(chapterId, \"closed\"),\n () => this.updateStatus(chapterId, \"closed\")\n );\n } else {\n this.updateStatus(chapterId, \"closed\");\n }\n }\n updateStatus(chapterId, status, errorMsg) {\n const prev = this.chapterStatus.get(chapterId);\n if (prev === status) return;\n this.chapterStatus.set(chapterId, status);\n this.statusChange$.emit({\n chapterId,\n status,\n ...status === \"error\" && errorMsg ? { error: { message: errorMsg } } : {}\n });\n }\n};\n_ChapterManagerPlugin2.id = \"chapter-manager\";\nlet ChapterManagerPlugin = _ChapterManagerPlugin2;\nconst _ChapterScrollPlugin = class _ChapterScrollPlugin2 extends BasePlugin {\n constructor(id, registry) {\n super(id, registry);\n this.layoutChange$ = createBehaviorEmitter();\n this.visibleChange$ = createBehaviorEmitter();\n this.virtualPageMap = null;\n this.pageSizes = /* @__PURE__ */ new Map();\n this.offsets = [];\n this.totalHeight = 0;\n this.totalWidth = 0;\n this.viewportEl = null;\n this.viewportObservers = null;\n this.currentVisible = [];\n this.currentGlobalPageIndex = 0;\n this.chapterManagerUnsubs = [];\n this.chapterManager = this.registry.getPlugin(ChapterManagerPlugin.id);\n this.documentManager = this.registry.getPlugin(DocumentManagerPlugin.id);\n }\n async initialize(config) {\n this.config = {\n placeholderPageHeight: config.placeholderPageHeight ?? 1200,\n placeholderPageWidth: config.placeholderPageWidth ?? 900,\n bufferSize: config.bufferSize ?? 2,\n pageGap: config.pageGap ?? 20\n };\n this.virtualPageMap = this.chapterManager.provides().getVirtualPageMap();\n this.rebuildOffsets();\n this.chapterManagerUnsubs.push(\n this.chapterManager.provides().onManifestChange(({ map }) => {\n this.virtualPageMap = map;\n this.pageSizes.clear();\n this.rebuildOffsets();\n this.syncReadyChapterSizes();\n this.recomputeVisible();\n })\n );\n this.syncReadyChapterSizes();\n }\n /** 章节 PDF 在 document-manager 中是否已可渲染(不依赖 chapter-manager.status,避免事件丢失) */\n isChapterDocumentReady(chapterId) {\n if (!this.chapterManager.provides().getChapter(chapterId)) return false;\n const docState = this.documentManager.provides().getDocumentState(chapterId);\n if (!docState || docState.status !== \"loaded\" || !docState.document) return false;\n return docState.document.pages.length > 0;\n }\n refreshLayout() {\n this.layoutChange$.emit(this.computeLayout());\n }\n /** 对已打开且可渲染的章节补采页尺寸 */\n syncReadyChapterSizes() {\n for (const ch of this.chapterManager.provides().getManifest().chapters) {\n if (this.isChapterDocumentReady(ch.chapterId)) {\n this.harvestChapterSizes(ch.chapterId);\n }\n }\n this.refreshLayout();\n }\n onDocumentLoaded(documentId) {\n if (!this.chapterManager.provides().getChapter(documentId)) return;\n const dm = this.documentManager.provides();\n if (!dm.getActiveDocumentId()) {\n dm.setActiveDocument(documentId);\n }\n this.harvestChapterSizes(documentId);\n this.refreshLayout();\n }\n onDocumentClosed(documentId) {\n if (!this.chapterManager.provides().getChapter(documentId)) return;\n this.dropChapterSizes(documentId);\n this.refreshLayout();\n }\n buildCapability() {\n return {\n registerViewport: (el) => this.bindViewport(el),\n reportChapterPageSizes: (chapterId, sizes) => this.applyChapterPageSizes(chapterId, sizes),\n getLayout: () => this.computeLayout(),\n getCurrentGlobalPageIndex: () => this.currentGlobalPageIndex,\n getVisibleGlobalPageIndices: () => this.currentVisible.slice(),\n scrollToGlobalPageIndex: (i, o) => this.scrollToIndex(i, o),\n scrollToChapter: (cid, o) => this.scrollToChapter(cid, o),\n scrollToGlobalPageNumber: (n22, o) => this.scrollToGlobalNumber(n22, o),\n scrollToGlobalPdfPoint: (i, pdfY, o) => this.scrollToGlobalPdfPoint(i, pdfY, o),\n onLayoutChange: this.layoutChange$.on,\n onVisibleChange: this.visibleChange$.on\n };\n }\n destroy() {\n var _a;\n super.destroy();\n for (const u of this.chapterManagerUnsubs) u();\n this.chapterManagerUnsubs = [];\n (_a = this.viewportObservers) == null ? void 0 : _a.unbind();\n this.viewportObservers = null;\n this.viewportEl = null;\n this.layoutChange$.clear();\n this.visibleChange$.clear();\n }\n /* ───────────────── 尺寸 / 偏移 ───────────────── */\n getPageSize(globalPageIndex) {\n return this.pageSizes.get(globalPageIndex) ?? {\n width: this.config.placeholderPageWidth,\n height: this.config.placeholderPageHeight\n };\n }\n rebuildOffsets() {\n if (!this.virtualPageMap) {\n this.offsets = [];\n this.totalHeight = 0;\n this.totalWidth = 0;\n return;\n }\n const total = this.virtualPageMap.totalPages;\n this.offsets = new Array(total);\n let y = 0;\n let maxW = 0;\n for (let i = 0; i < total; i++) {\n const { width, height } = this.getPageSize(i);\n this.offsets[i] = y;\n y += height + this.config.pageGap;\n if (width > maxW) maxW = width;\n }\n this.totalHeight = total > 0 ? y - this.config.pageGap : 0;\n this.totalWidth = maxW;\n this.layoutChange$.emit(this.computeLayout());\n }\n applyChapterPageSizes(chapterId, sizes) {\n if (!this.virtualPageMap) return;\n let changed = false;\n for (const s2 of sizes) {\n const loc = this.virtualPageMap.toGlobal(chapterId, s2.localPageIndex);\n if (!loc) continue;\n const prev = this.pageSizes.get(loc.globalPageIndex);\n if (!prev || prev.width !== s2.width || prev.height !== s2.height) {\n this.pageSizes.set(loc.globalPageIndex, { width: s2.width, height: s2.height });\n changed = true;\n }\n }\n if (changed) {\n const anchorIdx = this.currentGlobalPageIndex;\n const oldOffset = this.offsets[anchorIdx] ?? 0;\n this.rebuildOffsets();\n if (this.viewportEl) {\n const newOffset = this.offsets[anchorIdx] ?? 0;\n const delta = newOffset - oldOffset;\n if (delta !== 0) this.viewportEl.scrollTop += delta;\n }\n this.recomputeVisible();\n }\n }\n /** 章节 document 在 core store 中的缩放(与 RenderLayer / Annotation 一致) */\n getChapterDocumentScale(chapterId) {\n var _a;\n return ((_a = this.coreState.core.documents[chapterId]) == null ? void 0 : _a.scale) ?? 1;\n }\n /** 从已加载的 PdfDocumentObject 拉取章节内所有页尺寸并上报 */\n harvestChapterSizes(chapterId, attempt = 0) {\n var _a;\n if (!this.virtualPageMap) return;\n const pdfDoc = this.documentManager.provides().getDocument(chapterId);\n const owned = this.virtualPageMap.pagesOfChapter(chapterId);\n if (!((_a = pdfDoc == null ? void 0 : pdfDoc.pages) == null ? void 0 : _a.length) || owned.length === 0) {\n if (attempt < 60) {\n requestAnimationFrame(() => this.harvestChapterSizes(chapterId, attempt + 1));\n }\n return;\n }\n const scale = this.getChapterDocumentScale(chapterId);\n const sizes = [];\n for (const loc of owned) {\n const page = pdfDoc.pages[loc.localPageIndex];\n if (!(page == null ? void 0 : page.size)) continue;\n sizes.push({\n localPageIndex: loc.localPageIndex,\n width: page.size.width * scale,\n height: page.size.height * scale\n });\n }\n if (sizes.length === 0) {\n if (attempt < 60) {\n requestAnimationFrame(() => this.harvestChapterSizes(chapterId, attempt + 1));\n }\n return;\n }\n this.applyChapterPageSizes(chapterId, sizes);\n }\n /** core SET_SCALE 后重算布局,使滚动占位与 PDF 渲染尺寸一致 */\n onScaleChanged(documentId) {\n const coreDoc = this.coreState.core.documents[documentId];\n if (!coreDoc || coreDoc.status !== \"loaded\") return;\n if (!this.chapterManager.provides().getChapter(documentId)) return;\n this.harvestChapterSizes(documentId);\n }\n dropChapterSizes(chapterId) {\n if (!this.virtualPageMap) return;\n let changed = false;\n for (const p of this.virtualPageMap.pagesOfChapter(chapterId)) {\n if (this.pageSizes.delete(p.globalPageIndex)) changed = true;\n }\n if (changed) {\n this.rebuildOffsets();\n this.recomputeVisible();\n }\n }\n /* ───────────────── viewport 绑定 ───────────────── */\n bindViewport(el) {\n var _a;\n (_a = this.viewportObservers) == null ? void 0 : _a.unbind();\n this.viewportEl = el;\n this.viewportObservers = null;\n if (!el) return;\n const onScroll = () => this.recomputeVisible();\n const ro = new ResizeObserver(() => this.recomputeVisible());\n el.addEventListener(\"scroll\", onScroll, { passive: true });\n ro.observe(el);\n this.viewportObservers = {\n unbind: () => {\n el.removeEventListener(\"scroll\", onScroll);\n ro.disconnect();\n }\n };\n this.syncReadyChapterSizes();\n this.recomputeVisible();\n if (el.clientHeight === 0) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => this.recomputeVisible());\n });\n }\n }\n /* ───────────────── visible / layout ───────────────── */\n recomputeVisible() {\n if (!this.viewportEl || !this.virtualPageMap) return;\n const total = this.virtualPageMap.totalPages;\n if (total === 0) {\n this.currentVisible = [];\n this.currentGlobalPageIndex = 0;\n this.layoutChange$.emit(this.computeLayout());\n return;\n }\n const scrollTop = this.viewportEl.scrollTop;\n const clientH = this.viewportEl.clientHeight;\n const viewportEnd = scrollTop + clientH;\n const start = this.findFirstVisibleIndex(scrollTop);\n let end = start;\n while (end < total) {\n const size = this.getPageSize(end);\n const pageTop = this.offsets[end];\n pageTop + size.height;\n if (pageTop >= viewportEnd) break;\n end++;\n }\n const visible = [];\n let maxOverlapIdx = start;\n let maxOverlap = -1;\n for (let i = start; i < end; i++) {\n visible.push(i);\n const pageTop = this.offsets[i];\n const pageBottom = pageTop + this.getPageSize(i).height;\n const overlap = Math.max(\n 0,\n Math.min(pageBottom, viewportEnd) - Math.max(pageTop, scrollTop)\n );\n if (overlap > maxOverlap) {\n maxOverlap = overlap;\n maxOverlapIdx = i;\n }\n }\n this.currentVisible = visible;\n this.currentGlobalPageIndex = maxOverlapIdx;\n this.visibleChange$.emit({\n visibleGlobalPageIndices: visible,\n currentGlobalPageIndex: maxOverlapIdx\n });\n this.chapterManager.provides().setVisibleGlobalPages(visible);\n this.layoutChange$.emit(this.computeLayout());\n }\n findFirstVisibleIndex(scrollTop) {\n let lo = 0;\n let hi = this.offsets.length - 1;\n let ans = 0;\n while (lo <= hi) {\n const mid = lo + hi >> 1;\n if (this.offsets[mid] <= scrollTop) {\n ans = mid;\n lo = mid + 1;\n } else {\n hi = mid - 1;\n }\n }\n return ans;\n }\n computeLayout() {\n const buffer = this.config.bufferSize;\n const start = Math.max(0, (this.currentVisible[0] ?? 0) - buffer);\n const last = this.currentVisible[this.currentVisible.length - 1] ?? -1;\n const end = Math.min(this.offsets.length - 1, (last >= 0 ? last : 0) + buffer);\n const items = [];\n if (this.virtualPageMap && this.offsets.length > 0) {\n for (let i = start; i <= end; i++) {\n const loc = this.virtualPageMap.atIndex(i);\n if (!loc) continue;\n const size = this.getPageSize(i);\n const isPlaceholder = !this.isChapterDocumentReady(loc.chapterId);\n items.push({\n globalPageIndex: i,\n globalPageNumber: loc.globalPageNumber,\n chapterId: loc.chapterId,\n localPageIndex: loc.localPageIndex,\n width: size.width,\n height: size.height,\n offsetTop: this.offsets[i],\n isPlaceholder\n });\n }\n }\n return {\n totalHeight: this.totalHeight,\n totalWidth: this.totalWidth || this.config.placeholderPageWidth,\n items,\n pageGap: this.config.pageGap\n };\n }\n /* ───────────────── scroll-to ───────────────── */\n scrollToIndex(idx, options) {\n if (!this.viewportEl || idx < 0 || idx >= this.offsets.length) return;\n const targetTop = (this.offsets[idx] ?? 0) - ((options == null ? void 0 : options.topOffset) ?? 0);\n this.viewportEl.scrollTo({ top: targetTop, behavior: (options == null ? void 0 : options.behavior) ?? \"auto\" });\n }\n scrollToGlobalPdfPoint(idx, pdfY, options) {\n var _a;\n if (!this.viewportEl || idx < 0 || idx >= this.offsets.length || !this.virtualPageMap) {\n return;\n }\n const marginTop = (options == null ? void 0 : options.marginTop) ?? 80;\n const loc = this.virtualPageMap.atIndex(idx);\n if (!loc) {\n this.scrollToIndex(idx, options);\n return;\n }\n const cssSize = this.pageSizes.get(idx);\n const pdfPage = (_a = this.documentManager.provides().getDocument(loc.chapterId)) == null ? void 0 : _a.pages[loc.localPageIndex];\n if (!cssSize || !pdfPage) {\n this.scrollToIndex(idx, options);\n return;\n }\n const sy = cssSize.height / pdfPage.size.height;\n const absoluteTop = (this.offsets[idx] ?? 0) + pdfY * sy - marginTop;\n this.viewportEl.scrollTo({\n top: Math.max(0, absoluteTop),\n behavior: (options == null ? void 0 : options.behavior) ?? \"auto\"\n });\n }\n scrollToChapter(chapterId, options) {\n if (!this.virtualPageMap) return;\n const idx = this.virtualPageMap.firstIndexOfChapter(chapterId);\n if (idx < 0) return;\n void this.chapterManager.provides().ensureChapterLoaded(chapterId);\n this.scrollToIndex(idx, options);\n }\n scrollToGlobalNumber(n22, options) {\n if (!this.virtualPageMap) return;\n const loc = this.virtualPageMap.byGlobalNumber(n22);\n if (!loc) return;\n this.scrollToIndex(loc.globalPageIndex, options);\n }\n};\n_ChapterScrollPlugin.id = \"chapter-scroll\";\nlet ChapterScrollPlugin = _ChapterScrollPlugin;\nfunction unionRects(rects) {\n if (rects.length === 0) {\n throw new Error(\"unionRects: empty rects\");\n }\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const r2 of rects) {\n minX = Math.min(minX, r2.origin.x);\n minY = Math.min(minY, r2.origin.y);\n maxX = Math.max(maxX, r2.origin.x + r2.size.width);\n maxY = Math.max(maxY, r2.origin.y + r2.size.height);\n }\n return {\n origin: { x: minX, y: minY },\n size: { width: maxX - minX, height: maxY - minY }\n };\n}\nfunction markerAnchorFromRects(rects) {\n const last = rects[rects.length - 1];\n return {\n x: last.origin.x + last.size.width,\n y: last.origin.y + last.size.height\n };\n}\nconst MARKER_MATCH_EPS_PDF = 6;\nfunction verticalOverlapRatio(a2, b) {\n const topA = a2.origin.y;\n const bottomA = a2.origin.y + a2.size.height;\n const topB = b.origin.y;\n const bottomB = b.origin.y + b.size.height;\n const union = Math.max(bottomA, bottomB) - Math.min(topA, topB);\n if (union <= 0) return 0;\n const intersect = Math.max(0, Math.min(bottomA, bottomB) - Math.max(topA, topB));\n return intersect / union;\n}\nfunction anchorsMatch(a2, b) {\n var _a, _b;\n if (a2.chapterId !== b.chapterId || a2.localPageIndex !== b.localPageIndex) {\n return false;\n }\n const rectsA = ((_a = a2.rectsPdfCoord) == null ? void 0 : _a.length) ? a2.rectsPdfCoord : [a2.rectPdfCoord];\n const rectsB = ((_b = b.rectsPdfCoord) == null ? void 0 : _b.length) ? b.rectsPdfCoord : [b.rectPdfCoord];\n const ma = a2.markerAnchor ?? markerAnchorFromRects(rectsA);\n const mb = b.markerAnchor ?? markerAnchorFromRects(rectsB);\n if (Math.hypot(ma.x - mb.x, ma.y - mb.y) <= MARKER_MATCH_EPS_PDF) {\n return true;\n }\n for (const ra of rectsA) {\n for (const rb of rectsB) {\n if (verticalOverlapRatio(ra, rb) < 0.5) continue;\n const left = Math.max(ra.origin.x, rb.origin.x);\n const right = Math.min(ra.origin.x + ra.size.width, rb.origin.x + rb.size.width);\n const overlap = right - left;\n if (overlap > Math.min(ra.size.width, rb.size.width) * 0.25) {\n return true;\n }\n }\n }\n return false;\n}\nfunction buildParagraphBookmarkAnchor(chapterId, localPageIndex, rectsPdfCoord, virtualPage) {\n const rects = rectsPdfCoord.length > 0 ? rectsPdfCoord : [];\n if (rects.length === 0) {\n throw new Error(\"buildParagraphBookmarkAnchor: no rects\");\n }\n return {\n chapterId,\n localPageIndex,\n globalPageIndex: virtualPage == null ? void 0 : virtualPage.globalPageIndex,\n globalPageNumber: virtualPage == null ? void 0 : virtualPage.globalPageNumber,\n rectPdfCoord: unionRects(rects),\n rectsPdfCoord: rects,\n markerAnchor: markerAnchorFromRects(rects)\n };\n}\nconst VIEWPORT_MARGIN_PX = 80;\nfunction waitForPageInLayout(scroll, globalPageIndex, timeoutMs = 2500) {\n const found = scroll.getLayout().items.find((i) => i.globalPageIndex === globalPageIndex && !i.isPlaceholder);\n if (found) return Promise.resolve(found);\n return new Promise((resolve) => {\n const timer = setTimeout(() => {\n unsub();\n resolve(null);\n }, timeoutMs);\n const unsub = scroll.onLayoutChange((layout) => {\n const item = layout.items.find(\n (i) => i.globalPageIndex === globalPageIndex && !i.isPlaceholder\n );\n if (item) {\n clearTimeout(timer);\n unsub();\n resolve(item);\n }\n });\n });\n}\nfunction topOffsetForPdfMarker(markerPdfY, cssPageHeight, pdfPageHeight) {\n if (!pdfPageHeight) return 0;\n const sy = cssPageHeight / pdfPageHeight;\n const markerYCss = markerPdfY * sy;\n return VIEWPORT_MARGIN_PX - markerYCss;\n}\nfunction pdfMarkerYFromBookmarkAnchor(anchor) {\n if (anchor.markerAnchor) return anchor.markerAnchor.y;\n const r2 = anchor.rectPdfCoord;\n return r2.origin.y + r2.size.height;\n}\nasync function scrollToBookmarkAnchor(scroll, globalPageIndex, pdfY) {\n scroll.scrollToGlobalPageIndex(globalPageIndex);\n await waitForPageInLayout(scroll, globalPageIndex);\n scroll.scrollToGlobalPdfPoint(globalPageIndex, pdfY, { marginTop: VIEWPORT_MARGIN_PX });\n}\nconst _ParagraphBookmarkPlugin = class _ParagraphBookmarkPlugin extends BasePlugin {\n constructor(id, registry) {\n super(id, registry);\n this.change$ = createBehaviorEmitter([]);\n this.entries = /* @__PURE__ */ new Map();\n this.chapterScroll = this.registry.getPlugin(ChapterScrollPlugin.id);\n this.chapterManager = this.registry.getPlugin(ChapterManagerPlugin$1.id);\n this.documentManager = this.registry.getPlugin(DocumentManagerPlugin.id);\n }\n async initialize(config) {\n var _a;\n this.config = config;\n if ((_a = config.callbacks) == null ? void 0 : _a.load) {\n try {\n const initial = await config.callbacks.load();\n for (const b of initial) this.entries.set(b.id, b);\n this.change$.emit(this.list());\n } catch (err) {\n this.logger.error(\n _ParagraphBookmarkPlugin.id,\n \"Load\",\n \"Failed to load paragraph bookmarks\",\n err\n );\n }\n }\n }\n buildCapability() {\n return {\n addBookmark: (input) => this.addBookmark(input),\n removeBookmark: (id) => this.removeBookmark(id),\n updateBookmark: (id, patch) => this.updateBookmark(id, patch),\n listBookmarks: () => this.list(),\n getBookmark: (id) => this.entries.get(id) ?? null,\n scrollToBookmark: (id) => this.scrollToBookmark(id),\n requestRemoveBookmark: (id) => this.requestRemoveBookmark(id),\n onBookmarksChange: this.change$.on\n };\n }\n addBookmark(input) {\n for (const existing of this.entries.values()) {\n if (anchorsMatch(existing.anchor, input.anchor)) {\n return existing;\n }\n }\n const id = input.id ?? `bm-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;\n const entry = {\n id,\n label: input.label,\n anchor: input.anchor,\n metadata: input.metadata,\n createdAt: Date.now()\n };\n this.entries.set(id, entry);\n this.notifyAndPersist();\n return entry;\n }\n removeBookmark(id) {\n var _a, _b, _c;\n if (this.entries.delete(id)) {\n this.notifyAndPersist();\n (_c = (_b = (_a = this.config) == null ? void 0 : _a.callbacks) == null ? void 0 : _b.onRemoveSuccess) == null ? void 0 : _c.call(_b, id);\n }\n }\n async requestRemoveBookmark(id) {\n var _a, _b;\n const entry = this.entries.get(id);\n if (!entry) return false;\n const cb = (_b = (_a = this.config) == null ? void 0 : _a.callbacks) == null ? void 0 : _b.onRequestRemove;\n if (cb) {\n try {\n const ok = await cb(entry);\n if (!ok) return false;\n } catch (err) {\n this.logger.error(_ParagraphBookmarkPlugin.id, \"RequestRemove\", \"callback failed\", err);\n return false;\n }\n }\n this.removeBookmark(id);\n return true;\n }\n updateBookmark(id, patch) {\n const e2 = this.entries.get(id);\n if (!e2) return;\n this.entries.set(id, { ...e2, ...patch });\n this.notifyAndPersist();\n }\n list() {\n return Array.from(this.entries.values()).sort((a2, b) => a2.createdAt - b.createdAt);\n }\n notifyAndPersist() {\n var _a, _b;\n const list = this.list();\n this.change$.emit(list);\n if ((_b = (_a = this.config) == null ? void 0 : _a.callbacks) == null ? void 0 : _b.persist) {\n Promise.resolve(this.config.callbacks.persist(list)).catch(\n (err) => this.logger.error(\n _ParagraphBookmarkPlugin.id,\n \"Persist\",\n \"persist callback rejected\",\n err\n )\n );\n }\n }\n async scrollToBookmark(id) {\n const e2 = this.entries.get(id);\n if (!e2) return;\n const scroll = this.chapterScroll.provides();\n await this.chapterManager.provides().ensureChapterLoaded(e2.anchor.chapterId);\n let globalPageIndex = e2.anchor.globalPageIndex;\n if (globalPageIndex === void 0) {\n const loc = this.chapterManager.provides().getVirtualPageMap().toGlobal(e2.anchor.chapterId, e2.anchor.localPageIndex);\n if (!loc) return;\n globalPageIndex = loc.globalPageIndex;\n }\n const pdfY = pdfMarkerYFromBookmarkAnchor(e2.anchor);\n await scrollToBookmarkAnchor(scroll, globalPageIndex, pdfY);\n }\n};\n_ParagraphBookmarkPlugin.id = \"paragraph-bookmark\";\nlet ParagraphBookmarkPlugin = _ParagraphBookmarkPlugin;\nconst ParagraphBookmarkPluginPackage = {\n manifest,\n create: (registry) => new ParagraphBookmarkPlugin(PARAGRAPH_BOOKMARK_PLUGIN_ID, registry),\n reducer: (state) => state,\n initialState: {}\n};\nexport {\n PARAGRAPH_BOOKMARK_PLUGIN_ID,\n ParagraphBookmarkPlugin,\n ParagraphBookmarkPluginPackage,\n VIEWPORT_MARGIN_PX,\n anchorsMatch,\n buildParagraphBookmarkAnchor,\n manifest,\n markerAnchorFromRects,\n pdfMarkerYFromBookmarkAnchor,\n scrollToBookmarkAnchor,\n topOffsetForPdfMarker,\n unionRects,\n waitForPageInLayout\n};\n//# sourceMappingURL=index.js.map\n","function e(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`)}return t}const t={kind:\"first-wins\"};function s(e,s=t){const n=/* @__PURE__ */new Map;for(const t of e.chapters){const[e,s]=t.globalPageRange;for(let a=e;a<=s;a++){const e=n.get(a);e?e.push(t):n.set(a,[t])}}const r=/* @__PURE__ */new Map;for(const[t,o]of n)r.set(t,a(t,o,s));return r}function a(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>t.ownedGlobalPages?.includes(e));return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}class n{constructor(e){this._pages=e,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const t of e){this._byGlobalNumber.set(t.globalPageNumber,t);let e=this._byChapter.get(t.chapterId);e||(e=[],this._byChapter.set(t.chapterId,e)),e.push(t)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(e){return this._pages[e]??null}byGlobalNumber(e){return this._byGlobalNumber.get(e)??null}toGlobal(e,t){const s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){const t=this._byChapter.get(e)?.[0];return t?this._pages.indexOf(t):-1}}function r(e,a=t){const r=s(e,a),o=/* @__PURE__ */new Map;for(const t of e.chapters)o.set(t.chapterId,t);const l=Array.from(r.keys()).sort((e,t)=>e-t),c=[];let h=0;for(const t of l){const e=r.get(t),s=o.get(e);if(!s)continue;const[a]=s.globalPageRange,[n]=s.localPageRange,l=n+(t-a);c.push({globalPageIndex:h++,globalPageNumber:t,chapterId:e,localPageIndex:l})}return new n(c)}class o{constructor(e){this.map=e}resolvePassword(e){return Promise.resolve(this.map[e.chapterId]??null)}getCachedPassword(e){return this.map[e]??null}}class l{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}class c{constructor(e){this.onPrompt=e,this.pending=/* @__PURE__ */new Map}resolvePassword(e,t){return new Promise(s=>{const a=this.pending.get(e.chapterId);a&&a.resolve(null),this.pending.set(e.chapterId,{resolve:s,attempt:t,chapter:e}),this.onPrompt(e,t)})}submit(e,t){const s=this.pending.get(e);s&&(this.pending.delete(e),s.resolve(t))}}export{l as CallbackPasswordProvider,o as StaticPasswordProvider,c as UiPromptPasswordProvider,n as VirtualPageMap,r as buildVirtualPageMap,t as defaultOverlapStrategy,s as resolveOwners,e as validateChapterManifest};\n//# sourceMappingURL=index.js.map\n","import { BasePlugin, createBehaviorEmitter, createEmitter } from \"@embedpdf/core\";\nimport { PdfErrorCode } from \"@embedpdf/models\";\nimport { DocumentManagerPlugin } from \"@embedpdf/plugin-document-manager\";\nconst CHAPTER_MANAGER_PLUGIN_ID = \"chapter-manager\";\nconst manifest = {\n id: CHAPTER_MANAGER_PLUGIN_ID,\n name: \"Chapter Manager Plugin\",\n version: \"0.1.0\",\n provides: [\"chapter-manager\"],\n // 强依赖 document-manager 来真正打开每个章节 PDF\n requires: [\"document-manager\"],\n optional: [],\n defaultConfig: {\n manifest: { chapters: [] },\n prefetchChapters: 1,\n unloadTimeoutMs: 6e4,\n autoActivateOnLoad: true\n }\n};\nfunction e(e2) {\n const t2 = [], s2 = /* @__PURE__ */ new Set();\n for (const a2 of e2.chapters) {\n s2.has(a2.chapterId) && t2.push(`Duplicate chapterId: ${a2.chapterId}`), s2.add(a2.chapterId);\n const [e3, n2] = a2.globalPageRange, [r2, o] = a2.localPageRange;\n if (e3 > n2 && t2.push(`${a2.chapterId}: invalid globalPageRange [${e3},${n2}]`), r2 > o && t2.push(`${a2.chapterId}: invalid localPageRange [${r2},${o}]`), n2 - e3 !== o - r2 && t2.push(`${a2.chapterId}: page-count mismatch (global ${n2 - e3 + 1} vs local ${o - r2 + 1})`), a2.ownedGlobalPages) for (const s3 of a2.ownedGlobalPages) (s3 < e3 || s3 > n2) && t2.push(`${a2.chapterId}: ownedGlobalPages contains ${s3} outside range`);\n }\n return t2;\n}\nconst t = { kind: \"first-wins\" };\nfunction s(e2, s2 = t) {\n const n2 = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) {\n const [e3, s3] = t2.globalPageRange;\n for (let a2 = e3; a2 <= s3; a2++) {\n const e4 = n2.get(a2);\n e4 ? e4.push(t2) : n2.set(a2, [t2]);\n }\n }\n const r2 = /* @__PURE__ */ new Map();\n for (const [t2, o] of n2) r2.set(t2, a(t2, o, s2));\n return r2;\n}\nfunction a(e2, t2, s2) {\n if (1 === t2.length) return t2[0].chapterId;\n switch (s2.kind) {\n case \"first-wins\":\n return t2[0].chapterId;\n case \"last-wins\":\n return t2[t2.length - 1].chapterId;\n case \"explicit\": {\n const s3 = t2.find((t3) => {\n var _a;\n return (_a = t3.ownedGlobalPages) == null ? void 0 : _a.includes(e2);\n });\n return s3 ? s3.chapterId : t2[0].chapterId;\n }\n case \"custom\":\n return s2.resolve(e2, t2);\n }\n}\nclass n {\n constructor(e2) {\n this._pages = e2, this._byChapter = /* @__PURE__ */ new Map(), this._byGlobalNumber = /* @__PURE__ */ new Map();\n for (const t2 of e2) {\n this._byGlobalNumber.set(t2.globalPageNumber, t2);\n let e3 = this._byChapter.get(t2.chapterId);\n e3 || (e3 = [], this._byChapter.set(t2.chapterId, e3)), e3.push(t2);\n }\n }\n get totalPages() {\n return this._pages.length;\n }\n list() {\n return this._pages;\n }\n atIndex(e2) {\n return this._pages[e2] ?? null;\n }\n byGlobalNumber(e2) {\n return this._byGlobalNumber.get(e2) ?? null;\n }\n toGlobal(e2, t2) {\n const s2 = this._byChapter.get(e2);\n return s2 ? s2.find((e3) => e3.localPageIndex === t2) ?? null : null;\n }\n pagesOfChapter(e2) {\n return this._byChapter.get(e2) ?? [];\n }\n firstIndexOfChapter(e2) {\n var _a;\n const t2 = (_a = this._byChapter.get(e2)) == null ? void 0 : _a[0];\n return t2 ? this._pages.indexOf(t2) : -1;\n }\n}\nfunction r(e2, a2 = t) {\n const r2 = s(e2, a2), o = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) o.set(t2.chapterId, t2);\n const l = Array.from(r2.keys()).sort((e3, t2) => e3 - t2), c = [];\n let h = 0;\n for (const t2 of l) {\n const e3 = r2.get(t2), s2 = o.get(e3);\n if (!s2) continue;\n const [a3] = s2.globalPageRange, [n2] = s2.localPageRange, l2 = n2 + (t2 - a3);\n c.push({ globalPageIndex: h++, globalPageNumber: t2, chapterId: e3, localPageIndex: l2 });\n }\n return new n(c);\n}\nconst _ChapterManagerPlugin = class _ChapterManagerPlugin extends BasePlugin {\n constructor(id, registry) {\n super(id, registry);\n this.statusChange$ = createBehaviorEmitter();\n this.manifestChange$ = createEmitter();\n this.overlapStrategy = t;\n this.chapterStatus = /* @__PURE__ */ new Map();\n this.chapterLastUsed = /* @__PURE__ */ new Map();\n this.passwordAttempts = /* @__PURE__ */ new Map();\n this.pendingLoadPromises = /* @__PURE__ */ new Map();\n this.unloadTimer = null;\n this.documentManagerUnsubs = [];\n this.documentManager = this.registry.getPlugin(DocumentManagerPlugin.id);\n }\n async initialize(config) {\n this.config = config;\n this.passwordProvider = config.passwordProvider;\n this.overlapStrategy = config.overlapStrategy ?? t;\n this.setManifestInternal(config.manifest);\n this.documentManagerUnsubs.push(\n this.documentManager.provides().onDocumentOpened((docState) => {\n if (!this.isOwnedChapter(docState.id)) return;\n this.passwordAttempts.delete(docState.id);\n this.updateStatus(docState.id, \"loaded\");\n }),\n this.documentManager.provides().onDocumentClosed((documentId) => {\n if (!this.isOwnedChapter(documentId)) return;\n this.updateStatus(documentId, \"closed\");\n }),\n this.documentManager.provides().onDocumentError((evt) => {\n if (!this.isOwnedChapter(evt.documentId)) return;\n this.handleDocumentError(evt.documentId, evt.code, evt.message);\n })\n );\n if (config.unloadTimeoutMs && config.unloadTimeoutMs > 0) {\n const tick = Math.max(5e3, Math.floor(config.unloadTimeoutMs / 4));\n this.unloadTimer = setInterval(() => this.collectIdleChapters(), tick);\n }\n }\n buildCapability() {\n return {\n setManifest: (m, s2) => {\n if (s2) this.overlapStrategy = s2;\n this.setManifestInternal(m);\n },\n getManifest: () => this.manifest,\n getVirtualPageMap: () => this.virtualPageMap,\n setVisibleGlobalPages: (visible) => this.handleVisibleChange(visible),\n ensureChapterLoaded: (chapterId) => this.ensureChapterLoaded(chapterId),\n getChapterStatus: (chapterId) => this.chapterStatus.get(chapterId) ?? \"idle\",\n getChapter: (chapterId) => this.findChapter(chapterId),\n onChapterStatusChange: this.statusChange$.on,\n onManifestChange: this.manifestChange$.on\n };\n }\n destroy() {\n super.destroy();\n for (const u of this.documentManagerUnsubs) u();\n this.documentManagerUnsubs = [];\n if (this.unloadTimer) clearInterval(this.unloadTimer);\n this.unloadTimer = null;\n this.statusChange$.clear();\n this.manifestChange$.clear();\n }\n /* ───────────────── manifest ───────────────── */\n setManifestInternal(manifest2) {\n const issues = e(manifest2);\n if (issues.length > 0) {\n this.logger.warn(\n _ChapterManagerPlugin.id,\n \"ManifestValidation\",\n `Chapter manifest has issues: ${issues.join(\"; \")}`\n );\n }\n const prevIds = new Set(this.chapterStatus.keys());\n const nextIds = new Set(manifest2.chapters.map((c) => c.chapterId));\n for (const oldId of prevIds) {\n if (!nextIds.has(oldId)) {\n this.closeChapter(oldId);\n this.chapterStatus.delete(oldId);\n }\n }\n for (const c of manifest2.chapters) {\n if (!this.chapterStatus.has(c.chapterId)) {\n this.chapterStatus.set(c.chapterId, \"idle\");\n }\n }\n this.manifest = manifest2;\n this.virtualPageMap = r(manifest2, this.overlapStrategy);\n this.manifestChange$.emit({ manifest: manifest2, map: this.virtualPageMap });\n this.eagerPrefetchFromManifest();\n }\n /** manifest 就绪后预取前 N 章(不依赖滚动视口是否已算出可见页) */\n eagerPrefetchFromManifest() {\n const prefetch = this.config.prefetchChapters ?? 0;\n if (prefetch <= 0 || this.manifest.chapters.length === 0) return;\n const now = Date.now();\n const count = Math.min(prefetch, this.manifest.chapters.length);\n for (let i = 0; i < count; i++) {\n const chapterId = this.manifest.chapters[i].chapterId;\n this.chapterLastUsed.set(chapterId, now);\n const st = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(chapterId);\n }\n }\n }\n findChapter(chapterId) {\n return this.manifest.chapters.find((c) => c.chapterId === chapterId) ?? null;\n }\n isOwnedChapter(documentId) {\n return !!this.findChapter(documentId);\n }\n /* ───────────────── 可见 → needed → load/unload ───────────────── */\n handleVisibleChange(visibleGlobalPageIndices) {\n if (!this.virtualPageMap) return;\n const now = Date.now();\n const prefetch = this.config.prefetchChapters ?? 1;\n const visibleChapters = /* @__PURE__ */ new Set();\n for (const idx of visibleGlobalPageIndices) {\n const loc = this.virtualPageMap.atIndex(idx);\n if (loc) visibleChapters.add(loc.chapterId);\n }\n if (visibleChapters.size === 0) return;\n const orderedIds = this.manifest.chapters.map((c) => c.chapterId);\n const neededIdx = /* @__PURE__ */ new Set();\n for (const cid of visibleChapters) {\n const i = orderedIds.indexOf(cid);\n if (i === -1) continue;\n for (let k = i - prefetch; k <= i + prefetch; k++) {\n if (k >= 0 && k < orderedIds.length) neededIdx.add(k);\n }\n }\n const needed = /* @__PURE__ */ new Set();\n for (const i of neededIdx) needed.add(orderedIds[i]);\n for (const cid of needed) {\n this.chapterLastUsed.set(cid, now);\n const st = this.chapterStatus.get(cid) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(cid);\n }\n }\n if (this.config.autoActivateOnLoad ?? true) {\n const firstVisible = orderedIds.find((id) => visibleChapters.has(id));\n if (firstVisible && this.documentManager.provides().isDocumentOpen(firstVisible)) {\n const currentActive = this.documentManager.provides().getActiveDocumentId();\n if (currentActive !== firstVisible) {\n this.documentManager.provides().setActiveDocument(firstVisible);\n }\n }\n }\n }\n collectIdleChapters() {\n const timeout = this.config.unloadTimeoutMs ?? 6e4;\n if (timeout <= 0) return;\n const now = Date.now();\n for (const [cid, st] of this.chapterStatus) {\n if (st !== \"loaded\") continue;\n const last = this.chapterLastUsed.get(cid) ?? 0;\n if (now - last > timeout) {\n this.closeChapter(cid);\n }\n }\n }\n /* ───────────────── load / retry / close ───────────────── */\n ensureChapterLoaded(chapterId) {\n const existing = this.pendingLoadPromises.get(chapterId);\n if (existing) return existing;\n const chapter = this.findChapter(chapterId);\n if (!chapter) return Promise.resolve(\"error\");\n const currentStatus = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (currentStatus === \"loaded\") {\n this.chapterLastUsed.set(chapterId, Date.now());\n return Promise.resolve(\"loaded\");\n }\n if (currentStatus === \"loading\") {\n return this.waitForTerminalStatus(chapterId);\n }\n const promise = this.startLoad(chapter).finally(() => {\n this.pendingLoadPromises.delete(chapterId);\n });\n this.pendingLoadPromises.set(chapterId, promise);\n return promise;\n }\n async resolvePdfPayload(chapter) {\n const src = chapter.source;\n if (src) {\n if (\"url\" in src) return { url: src.url };\n if (\"buffer\" in src) return { buffer: src.buffer };\n if (\"load\" in src) return src.load();\n }\n const loader = this.config.chapterPdfLoader;\n if (loader) return loader.loadPdf(chapter);\n throw new Error(\n `Chapter \"${chapter.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`\n );\n }\n async startLoad(chapter) {\n var _a;\n this.updateStatus(chapter.chapterId, \"loading\");\n this.chapterLastUsed.set(chapter.chapterId, Date.now());\n const cachedPwd = chapter.encrypted && ((_a = this.passwordProvider) == null ? void 0 : _a.getCachedPassword) ? this.passwordProvider.getCachedPassword(chapter.chapterId) : null;\n const payload = await this.resolvePdfPayload(chapter);\n const cap = this.documentManager.provides();\n const openTask = \"url\" in payload ? cap.openDocumentUrl({\n documentId: chapter.chapterId,\n url: payload.url,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n // 由 handleVisibleChange 决定 active\n }) : cap.openDocumentBuffer({\n documentId: chapter.chapterId,\n buffer: payload.buffer,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n });\n await new Promise((resolve) => openTask.wait(() => resolve(), () => resolve()));\n return this.waitForTerminalStatus(chapter.chapterId);\n }\n /** 阻塞等待该章节状态进入 loaded / error / password-required / closed */\n waitForTerminalStatus(chapterId) {\n return new Promise((resolve) => {\n const check = (st) => {\n if (st === \"loaded\" || st === \"error\" || st === \"password-required\" || st === \"closed\") {\n unsub();\n resolve(st);\n }\n };\n const unsub = this.statusChange$.on((evt) => {\n if (evt.chapterId === chapterId) check(evt.status);\n });\n check(this.chapterStatus.get(chapterId) ?? \"idle\");\n });\n }\n async handleDocumentError(chapterId, code, _message) {\n if (code !== PdfErrorCode.Password) {\n this.updateStatus(chapterId, \"error\");\n return;\n }\n if (!this.passwordProvider) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n const chapter = this.findChapter(chapterId);\n if (!chapter) return;\n const attempt = (this.passwordAttempts.get(chapterId) ?? 0) + 1;\n this.passwordAttempts.set(chapterId, attempt);\n let password = null;\n try {\n password = await this.passwordProvider.resolvePassword(chapter, attempt - 1);\n } catch (err) {\n this.logger.error(\n _ChapterManagerPlugin.id,\n \"PasswordProvider\",\n `Provider rejected for ${chapterId}`,\n err\n );\n }\n if (!password) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n this.updateStatus(chapterId, \"loading\");\n const retryTask = this.documentManager.provides().retryDocument(chapterId, { password });\n retryTask.wait(\n () => {\n },\n () => {\n }\n );\n }\n closeChapter(chapterId) {\n const cap = this.documentManager.provides();\n if (cap.isDocumentOpen(chapterId)) {\n const task = cap.closeDocument(chapterId);\n task.wait(\n () => this.updateStatus(chapterId, \"closed\"),\n () => this.updateStatus(chapterId, \"closed\")\n );\n } else {\n this.updateStatus(chapterId, \"closed\");\n }\n }\n updateStatus(chapterId, status, errorMsg) {\n const prev = this.chapterStatus.get(chapterId);\n if (prev === status) return;\n this.chapterStatus.set(chapterId, status);\n this.statusChange$.emit({\n chapterId,\n status,\n ...status === \"error\" && errorMsg ? { error: { message: errorMsg } } : {}\n });\n }\n};\n_ChapterManagerPlugin.id = \"chapter-manager\";\nlet ChapterManagerPlugin = _ChapterManagerPlugin;\nconst ChapterManagerPluginPackage = {\n manifest,\n create: (registry) => new ChapterManagerPlugin(CHAPTER_MANAGER_PLUGIN_ID, registry),\n reducer: (state) => state,\n initialState: {}\n};\nexport {\n CHAPTER_MANAGER_PLUGIN_ID,\n ChapterManagerPlugin,\n ChapterManagerPluginPackage,\n manifest\n};\n//# sourceMappingURL=index.js.map\n","import { BasePlugin, createBehaviorEmitter, createEmitter } from \"@embedpdf/core\";\nimport { PdfErrorCode } from \"@embedpdf/models\";\nimport { DocumentManagerPlugin } from \"@embedpdf/plugin-document-manager\";\nconst CHAPTER_SCROLL_PLUGIN_ID = \"chapter-scroll\";\nconst manifest = {\n id: CHAPTER_SCROLL_PLUGIN_ID,\n name: \"Chapter Scroll Plugin\",\n version: \"0.1.0\",\n provides: [\"chapter-scroll\"],\n requires: [\"chapter-manager\"],\n optional: [],\n defaultConfig: {\n placeholderPageHeight: 1200,\n placeholderPageWidth: 900,\n bufferSize: 2,\n pageGap: 20\n }\n};\nfunction e(e2) {\n const t2 = [], s2 = /* @__PURE__ */ new Set();\n for (const a2 of e2.chapters) {\n s2.has(a2.chapterId) && t2.push(`Duplicate chapterId: ${a2.chapterId}`), s2.add(a2.chapterId);\n const [e3, n2] = a2.globalPageRange, [r2, o] = a2.localPageRange;\n if (e3 > n2 && t2.push(`${a2.chapterId}: invalid globalPageRange [${e3},${n2}]`), r2 > o && t2.push(`${a2.chapterId}: invalid localPageRange [${r2},${o}]`), n2 - e3 !== o - r2 && t2.push(`${a2.chapterId}: page-count mismatch (global ${n2 - e3 + 1} vs local ${o - r2 + 1})`), a2.ownedGlobalPages) for (const s3 of a2.ownedGlobalPages) (s3 < e3 || s3 > n2) && t2.push(`${a2.chapterId}: ownedGlobalPages contains ${s3} outside range`);\n }\n return t2;\n}\nconst t = { kind: \"first-wins\" };\nfunction s(e2, s2 = t) {\n const n2 = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) {\n const [e3, s3] = t2.globalPageRange;\n for (let a2 = e3; a2 <= s3; a2++) {\n const e4 = n2.get(a2);\n e4 ? e4.push(t2) : n2.set(a2, [t2]);\n }\n }\n const r2 = /* @__PURE__ */ new Map();\n for (const [t2, o] of n2) r2.set(t2, a(t2, o, s2));\n return r2;\n}\nfunction a(e2, t2, s2) {\n if (1 === t2.length) return t2[0].chapterId;\n switch (s2.kind) {\n case \"first-wins\":\n return t2[0].chapterId;\n case \"last-wins\":\n return t2[t2.length - 1].chapterId;\n case \"explicit\": {\n const s3 = t2.find((t3) => {\n var _a;\n return (_a = t3.ownedGlobalPages) == null ? void 0 : _a.includes(e2);\n });\n return s3 ? s3.chapterId : t2[0].chapterId;\n }\n case \"custom\":\n return s2.resolve(e2, t2);\n }\n}\nclass n {\n constructor(e2) {\n this._pages = e2, this._byChapter = /* @__PURE__ */ new Map(), this._byGlobalNumber = /* @__PURE__ */ new Map();\n for (const t2 of e2) {\n this._byGlobalNumber.set(t2.globalPageNumber, t2);\n let e3 = this._byChapter.get(t2.chapterId);\n e3 || (e3 = [], this._byChapter.set(t2.chapterId, e3)), e3.push(t2);\n }\n }\n get totalPages() {\n return this._pages.length;\n }\n list() {\n return this._pages;\n }\n atIndex(e2) {\n return this._pages[e2] ?? null;\n }\n byGlobalNumber(e2) {\n return this._byGlobalNumber.get(e2) ?? null;\n }\n toGlobal(e2, t2) {\n const s2 = this._byChapter.get(e2);\n return s2 ? s2.find((e3) => e3.localPageIndex === t2) ?? null : null;\n }\n pagesOfChapter(e2) {\n return this._byChapter.get(e2) ?? [];\n }\n firstIndexOfChapter(e2) {\n var _a;\n const t2 = (_a = this._byChapter.get(e2)) == null ? void 0 : _a[0];\n return t2 ? this._pages.indexOf(t2) : -1;\n }\n}\nfunction r(e2, a2 = t) {\n const r2 = s(e2, a2), o = /* @__PURE__ */ new Map();\n for (const t2 of e2.chapters) o.set(t2.chapterId, t2);\n const l = Array.from(r2.keys()).sort((e3, t2) => e3 - t2), c = [];\n let h = 0;\n for (const t2 of l) {\n const e3 = r2.get(t2), s2 = o.get(e3);\n if (!s2) continue;\n const [a3] = s2.globalPageRange, [n2] = s2.localPageRange, l2 = n2 + (t2 - a3);\n c.push({ globalPageIndex: h++, globalPageNumber: t2, chapterId: e3, localPageIndex: l2 });\n }\n return new n(c);\n}\nconst _ChapterManagerPlugin = class _ChapterManagerPlugin2 extends BasePlugin {\n constructor(id, registry) {\n super(id, registry);\n this.statusChange$ = createBehaviorEmitter();\n this.manifestChange$ = createEmitter();\n this.overlapStrategy = t;\n this.chapterStatus = /* @__PURE__ */ new Map();\n this.chapterLastUsed = /* @__PURE__ */ new Map();\n this.passwordAttempts = /* @__PURE__ */ new Map();\n this.pendingLoadPromises = /* @__PURE__ */ new Map();\n this.unloadTimer = null;\n this.documentManagerUnsubs = [];\n this.documentManager = this.registry.getPlugin(DocumentManagerPlugin.id);\n }\n async initialize(config) {\n this.config = config;\n this.passwordProvider = config.passwordProvider;\n this.overlapStrategy = config.overlapStrategy ?? t;\n this.setManifestInternal(config.manifest);\n this.documentManagerUnsubs.push(\n this.documentManager.provides().onDocumentOpened((docState) => {\n if (!this.isOwnedChapter(docState.id)) return;\n this.passwordAttempts.delete(docState.id);\n this.updateStatus(docState.id, \"loaded\");\n }),\n this.documentManager.provides().onDocumentClosed((documentId) => {\n if (!this.isOwnedChapter(documentId)) return;\n this.updateStatus(documentId, \"closed\");\n }),\n this.documentManager.provides().onDocumentError((evt) => {\n if (!this.isOwnedChapter(evt.documentId)) return;\n this.handleDocumentError(evt.documentId, evt.code, evt.message);\n })\n );\n if (config.unloadTimeoutMs && config.unloadTimeoutMs > 0) {\n const tick = Math.max(5e3, Math.floor(config.unloadTimeoutMs / 4));\n this.unloadTimer = setInterval(() => this.collectIdleChapters(), tick);\n }\n }\n buildCapability() {\n return {\n setManifest: (m, s2) => {\n if (s2) this.overlapStrategy = s2;\n this.setManifestInternal(m);\n },\n getManifest: () => this.manifest,\n getVirtualPageMap: () => this.virtualPageMap,\n setVisibleGlobalPages: (visible) => this.handleVisibleChange(visible),\n ensureChapterLoaded: (chapterId) => this.ensureChapterLoaded(chapterId),\n getChapterStatus: (chapterId) => this.chapterStatus.get(chapterId) ?? \"idle\",\n getChapter: (chapterId) => this.findChapter(chapterId),\n onChapterStatusChange: this.statusChange$.on,\n onManifestChange: this.manifestChange$.on\n };\n }\n destroy() {\n super.destroy();\n for (const u of this.documentManagerUnsubs) u();\n this.documentManagerUnsubs = [];\n if (this.unloadTimer) clearInterval(this.unloadTimer);\n this.unloadTimer = null;\n this.statusChange$.clear();\n this.manifestChange$.clear();\n }\n /* ───────────────── manifest ───────────────── */\n setManifestInternal(manifest2) {\n const issues = e(manifest2);\n if (issues.length > 0) {\n this.logger.warn(\n _ChapterManagerPlugin2.id,\n \"ManifestValidation\",\n `Chapter manifest has issues: ${issues.join(\"; \")}`\n );\n }\n const prevIds = new Set(this.chapterStatus.keys());\n const nextIds = new Set(manifest2.chapters.map((c) => c.chapterId));\n for (const oldId of prevIds) {\n if (!nextIds.has(oldId)) {\n this.closeChapter(oldId);\n this.chapterStatus.delete(oldId);\n }\n }\n for (const c of manifest2.chapters) {\n if (!this.chapterStatus.has(c.chapterId)) {\n this.chapterStatus.set(c.chapterId, \"idle\");\n }\n }\n this.manifest = manifest2;\n this.virtualPageMap = r(manifest2, this.overlapStrategy);\n this.manifestChange$.emit({ manifest: manifest2, map: this.virtualPageMap });\n this.eagerPrefetchFromManifest();\n }\n /** manifest 就绪后预取前 N 章(不依赖滚动视口是否已算出可见页) */\n eagerPrefetchFromManifest() {\n const prefetch = this.config.prefetchChapters ?? 0;\n if (prefetch <= 0 || this.manifest.chapters.length === 0) return;\n const now = Date.now();\n const count = Math.min(prefetch, this.manifest.chapters.length);\n for (let i = 0; i < count; i++) {\n const chapterId = this.manifest.chapters[i].chapterId;\n this.chapterLastUsed.set(chapterId, now);\n const st = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(chapterId);\n }\n }\n }\n findChapter(chapterId) {\n return this.manifest.chapters.find((c) => c.chapterId === chapterId) ?? null;\n }\n isOwnedChapter(documentId) {\n return !!this.findChapter(documentId);\n }\n /* ───────────────── 可见 → needed → load/unload ───────────────── */\n handleVisibleChange(visibleGlobalPageIndices) {\n if (!this.virtualPageMap) return;\n const now = Date.now();\n const prefetch = this.config.prefetchChapters ?? 1;\n const visibleChapters = /* @__PURE__ */ new Set();\n for (const idx of visibleGlobalPageIndices) {\n const loc = this.virtualPageMap.atIndex(idx);\n if (loc) visibleChapters.add(loc.chapterId);\n }\n if (visibleChapters.size === 0) return;\n const orderedIds = this.manifest.chapters.map((c) => c.chapterId);\n const neededIdx = /* @__PURE__ */ new Set();\n for (const cid of visibleChapters) {\n const i = orderedIds.indexOf(cid);\n if (i === -1) continue;\n for (let k = i - prefetch; k <= i + prefetch; k++) {\n if (k >= 0 && k < orderedIds.length) neededIdx.add(k);\n }\n }\n const needed = /* @__PURE__ */ new Set();\n for (const i of neededIdx) needed.add(orderedIds[i]);\n for (const cid of needed) {\n this.chapterLastUsed.set(cid, now);\n const st = this.chapterStatus.get(cid) ?? \"idle\";\n if (st === \"idle\" || st === \"closed\" || st === \"error\") {\n void this.ensureChapterLoaded(cid);\n }\n }\n if (this.config.autoActivateOnLoad ?? true) {\n const firstVisible = orderedIds.find((id) => visibleChapters.has(id));\n if (firstVisible && this.documentManager.provides().isDocumentOpen(firstVisible)) {\n const currentActive = this.documentManager.provides().getActiveDocumentId();\n if (currentActive !== firstVisible) {\n this.documentManager.provides().setActiveDocument(firstVisible);\n }\n }\n }\n }\n collectIdleChapters() {\n const timeout = this.config.unloadTimeoutMs ?? 6e4;\n if (timeout <= 0) return;\n const now = Date.now();\n for (const [cid, st] of this.chapterStatus) {\n if (st !== \"loaded\") continue;\n const last = this.chapterLastUsed.get(cid) ?? 0;\n if (now - last > timeout) {\n this.closeChapter(cid);\n }\n }\n }\n /* ───────────────── load / retry / close ───────────────── */\n ensureChapterLoaded(chapterId) {\n const existing = this.pendingLoadPromises.get(chapterId);\n if (existing) return existing;\n const chapter = this.findChapter(chapterId);\n if (!chapter) return Promise.resolve(\"error\");\n const currentStatus = this.chapterStatus.get(chapterId) ?? \"idle\";\n if (currentStatus === \"loaded\") {\n this.chapterLastUsed.set(chapterId, Date.now());\n return Promise.resolve(\"loaded\");\n }\n if (currentStatus === \"loading\") {\n return this.waitForTerminalStatus(chapterId);\n }\n const promise = this.startLoad(chapter).finally(() => {\n this.pendingLoadPromises.delete(chapterId);\n });\n this.pendingLoadPromises.set(chapterId, promise);\n return promise;\n }\n async resolvePdfPayload(chapter) {\n const src = chapter.source;\n if (src) {\n if (\"url\" in src) return { url: src.url };\n if (\"buffer\" in src) return { buffer: src.buffer };\n if (\"load\" in src) return src.load();\n }\n const loader = this.config.chapterPdfLoader;\n if (loader) return loader.loadPdf(chapter);\n throw new Error(\n `Chapter \"${chapter.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`\n );\n }\n async startLoad(chapter) {\n var _a;\n this.updateStatus(chapter.chapterId, \"loading\");\n this.chapterLastUsed.set(chapter.chapterId, Date.now());\n const cachedPwd = chapter.encrypted && ((_a = this.passwordProvider) == null ? void 0 : _a.getCachedPassword) ? this.passwordProvider.getCachedPassword(chapter.chapterId) : null;\n const payload = await this.resolvePdfPayload(chapter);\n const cap = this.documentManager.provides();\n const openTask = \"url\" in payload ? cap.openDocumentUrl({\n documentId: chapter.chapterId,\n url: payload.url,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n // 由 handleVisibleChange 决定 active\n }) : cap.openDocumentBuffer({\n documentId: chapter.chapterId,\n buffer: payload.buffer,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n });\n await new Promise((resolve) => openTask.wait(() => resolve(), () => resolve()));\n return this.waitForTerminalStatus(chapter.chapterId);\n }\n /** 阻塞等待该章节状态进入 loaded / error / password-required / closed */\n waitForTerminalStatus(chapterId) {\n return new Promise((resolve) => {\n const check = (st) => {\n if (st === \"loaded\" || st === \"error\" || st === \"password-required\" || st === \"closed\") {\n unsub();\n resolve(st);\n }\n };\n const unsub = this.statusChange$.on((evt) => {\n if (evt.chapterId === chapterId) check(evt.status);\n });\n check(this.chapterStatus.get(chapterId) ?? \"idle\");\n });\n }\n async handleDocumentError(chapterId, code, _message) {\n if (code !== PdfErrorCode.Password) {\n this.updateStatus(chapterId, \"error\");\n return;\n }\n if (!this.passwordProvider) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n const chapter = this.findChapter(chapterId);\n if (!chapter) return;\n const attempt = (this.passwordAttempts.get(chapterId) ?? 0) + 1;\n this.passwordAttempts.set(chapterId, attempt);\n let password = null;\n try {\n password = await this.passwordProvider.resolvePassword(chapter, attempt - 1);\n } catch (err) {\n this.logger.error(\n _ChapterManagerPlugin2.id,\n \"PasswordProvider\",\n `Provider rejected for ${chapterId}`,\n err\n );\n }\n if (!password) {\n this.updateStatus(chapterId, \"password-required\");\n return;\n }\n this.updateStatus(chapterId, \"loading\");\n const retryTask = this.documentManager.provides().retryDocument(chapterId, { password });\n retryTask.wait(\n () => {\n },\n () => {\n }\n );\n }\n closeChapter(chapterId) {\n const cap = this.documentManager.provides();\n if (cap.isDocumentOpen(chapterId)) {\n const task = cap.closeDocument(chapterId);\n task.wait(\n () => this.updateStatus(chapterId, \"closed\"),\n () => this.updateStatus(chapterId, \"closed\")\n );\n } else {\n this.updateStatus(chapterId, \"closed\");\n }\n }\n updateStatus(chapterId, status, errorMsg) {\n const prev = this.chapterStatus.get(chapterId);\n if (prev === status) return;\n this.chapterStatus.set(chapterId, status);\n this.statusChange$.emit({\n chapterId,\n status,\n ...status === \"error\" && errorMsg ? { error: { message: errorMsg } } : {}\n });\n }\n};\n_ChapterManagerPlugin.id = \"chapter-manager\";\nlet ChapterManagerPlugin = _ChapterManagerPlugin;\nconst _ChapterScrollPlugin = class _ChapterScrollPlugin extends BasePlugin {\n constructor(id, registry) {\n super(id, registry);\n this.layoutChange$ = createBehaviorEmitter();\n this.visibleChange$ = createBehaviorEmitter();\n this.virtualPageMap = null;\n this.pageSizes = /* @__PURE__ */ new Map();\n this.offsets = [];\n this.totalHeight = 0;\n this.totalWidth = 0;\n this.viewportEl = null;\n this.viewportObservers = null;\n this.currentVisible = [];\n this.currentGlobalPageIndex = 0;\n this.chapterManagerUnsubs = [];\n this.chapterManager = this.registry.getPlugin(ChapterManagerPlugin.id);\n this.documentManager = this.registry.getPlugin(DocumentManagerPlugin.id);\n }\n async initialize(config) {\n this.config = {\n placeholderPageHeight: config.placeholderPageHeight ?? 1200,\n placeholderPageWidth: config.placeholderPageWidth ?? 900,\n bufferSize: config.bufferSize ?? 2,\n pageGap: config.pageGap ?? 20\n };\n this.virtualPageMap = this.chapterManager.provides().getVirtualPageMap();\n this.rebuildOffsets();\n this.chapterManagerUnsubs.push(\n this.chapterManager.provides().onManifestChange(({ map }) => {\n this.virtualPageMap = map;\n this.pageSizes.clear();\n this.rebuildOffsets();\n this.syncReadyChapterSizes();\n this.recomputeVisible();\n })\n );\n this.syncReadyChapterSizes();\n }\n /** 章节 PDF 在 document-manager 中是否已可渲染(不依赖 chapter-manager.status,避免事件丢失) */\n isChapterDocumentReady(chapterId) {\n if (!this.chapterManager.provides().getChapter(chapterId)) return false;\n const docState = this.documentManager.provides().getDocumentState(chapterId);\n if (!docState || docState.status !== \"loaded\" || !docState.document) return false;\n return docState.document.pages.length > 0;\n }\n refreshLayout() {\n this.layoutChange$.emit(this.computeLayout());\n }\n /** 对已打开且可渲染的章节补采页尺寸 */\n syncReadyChapterSizes() {\n for (const ch of this.chapterManager.provides().getManifest().chapters) {\n if (this.isChapterDocumentReady(ch.chapterId)) {\n this.harvestChapterSizes(ch.chapterId);\n }\n }\n this.refreshLayout();\n }\n onDocumentLoaded(documentId) {\n if (!this.chapterManager.provides().getChapter(documentId)) return;\n const dm = this.documentManager.provides();\n if (!dm.getActiveDocumentId()) {\n dm.setActiveDocument(documentId);\n }\n this.harvestChapterSizes(documentId);\n this.refreshLayout();\n }\n onDocumentClosed(documentId) {\n if (!this.chapterManager.provides().getChapter(documentId)) return;\n this.dropChapterSizes(documentId);\n this.refreshLayout();\n }\n buildCapability() {\n return {\n registerViewport: (el) => this.bindViewport(el),\n reportChapterPageSizes: (chapterId, sizes) => this.applyChapterPageSizes(chapterId, sizes),\n getLayout: () => this.computeLayout(),\n getCurrentGlobalPageIndex: () => this.currentGlobalPageIndex,\n getVisibleGlobalPageIndices: () => this.currentVisible.slice(),\n scrollToGlobalPageIndex: (i, o) => this.scrollToIndex(i, o),\n scrollToChapter: (cid, o) => this.scrollToChapter(cid, o),\n scrollToGlobalPageNumber: (n2, o) => this.scrollToGlobalNumber(n2, o),\n scrollToGlobalPdfPoint: (i, pdfY, o) => this.scrollToGlobalPdfPoint(i, pdfY, o),\n onLayoutChange: this.layoutChange$.on,\n onVisibleChange: this.visibleChange$.on\n };\n }\n destroy() {\n var _a;\n super.destroy();\n for (const u of this.chapterManagerUnsubs) u();\n this.chapterManagerUnsubs = [];\n (_a = this.viewportObservers) == null ? void 0 : _a.unbind();\n this.viewportObservers = null;\n this.viewportEl = null;\n this.layoutChange$.clear();\n this.visibleChange$.clear();\n }\n /* ───────────────── 尺寸 / 偏移 ───────────────── */\n getPageSize(globalPageIndex) {\n return this.pageSizes.get(globalPageIndex) ?? {\n width: this.config.placeholderPageWidth,\n height: this.config.placeholderPageHeight\n };\n }\n rebuildOffsets() {\n if (!this.virtualPageMap) {\n this.offsets = [];\n this.totalHeight = 0;\n this.totalWidth = 0;\n return;\n }\n const total = this.virtualPageMap.totalPages;\n this.offsets = new Array(total);\n let y = 0;\n let maxW = 0;\n for (let i = 0; i < total; i++) {\n const { width, height } = this.getPageSize(i);\n this.offsets[i] = y;\n y += height + this.config.pageGap;\n if (width > maxW) maxW = width;\n }\n this.totalHeight = total > 0 ? y - this.config.pageGap : 0;\n this.totalWidth = maxW;\n this.layoutChange$.emit(this.computeLayout());\n }\n applyChapterPageSizes(chapterId, sizes) {\n if (!this.virtualPageMap) return;\n let changed = false;\n for (const s2 of sizes) {\n const loc = this.virtualPageMap.toGlobal(chapterId, s2.localPageIndex);\n if (!loc) continue;\n const prev = this.pageSizes.get(loc.globalPageIndex);\n if (!prev || prev.width !== s2.width || prev.height !== s2.height) {\n this.pageSizes.set(loc.globalPageIndex, { width: s2.width, height: s2.height });\n changed = true;\n }\n }\n if (changed) {\n const anchorIdx = this.currentGlobalPageIndex;\n const oldOffset = this.offsets[anchorIdx] ?? 0;\n this.rebuildOffsets();\n if (this.viewportEl) {\n const newOffset = this.offsets[anchorIdx] ?? 0;\n const delta = newOffset - oldOffset;\n if (delta !== 0) this.viewportEl.scrollTop += delta;\n }\n this.recomputeVisible();\n }\n }\n /** 章节 document 在 core store 中的缩放(与 RenderLayer / Annotation 一致) */\n getChapterDocumentScale(chapterId) {\n var _a;\n return ((_a = this.coreState.core.documents[chapterId]) == null ? void 0 : _a.scale) ?? 1;\n }\n /** 从已加载的 PdfDocumentObject 拉取章节内所有页尺寸并上报 */\n harvestChapterSizes(chapterId, attempt = 0) {\n var _a;\n if (!this.virtualPageMap) return;\n const pdfDoc = this.documentManager.provides().getDocument(chapterId);\n const owned = this.virtualPageMap.pagesOfChapter(chapterId);\n if (!((_a = pdfDoc == null ? void 0 : pdfDoc.pages) == null ? void 0 : _a.length) || owned.length === 0) {\n if (attempt < 60) {\n requestAnimationFrame(() => this.harvestChapterSizes(chapterId, attempt + 1));\n }\n return;\n }\n const scale = this.getChapterDocumentScale(chapterId);\n const sizes = [];\n for (const loc of owned) {\n const page = pdfDoc.pages[loc.localPageIndex];\n if (!(page == null ? void 0 : page.size)) continue;\n sizes.push({\n localPageIndex: loc.localPageIndex,\n width: page.size.width * scale,\n height: page.size.height * scale\n });\n }\n if (sizes.length === 0) {\n if (attempt < 60) {\n requestAnimationFrame(() => this.harvestChapterSizes(chapterId, attempt + 1));\n }\n return;\n }\n this.applyChapterPageSizes(chapterId, sizes);\n }\n /** core SET_SCALE 后重算布局,使滚动占位与 PDF 渲染尺寸一致 */\n onScaleChanged(documentId) {\n const coreDoc = this.coreState.core.documents[documentId];\n if (!coreDoc || coreDoc.status !== \"loaded\") return;\n if (!this.chapterManager.provides().getChapter(documentId)) return;\n this.harvestChapterSizes(documentId);\n }\n dropChapterSizes(chapterId) {\n if (!this.virtualPageMap) return;\n let changed = false;\n for (const p of this.virtualPageMap.pagesOfChapter(chapterId)) {\n if (this.pageSizes.delete(p.globalPageIndex)) changed = true;\n }\n if (changed) {\n this.rebuildOffsets();\n this.recomputeVisible();\n }\n }\n /* ───────────────── viewport 绑定 ───────────────── */\n bindViewport(el) {\n var _a;\n (_a = this.viewportObservers) == null ? void 0 : _a.unbind();\n this.viewportEl = el;\n this.viewportObservers = null;\n if (!el) return;\n const onScroll = () => this.recomputeVisible();\n const ro = new ResizeObserver(() => this.recomputeVisible());\n el.addEventListener(\"scroll\", onScroll, { passive: true });\n ro.observe(el);\n this.viewportObservers = {\n unbind: () => {\n el.removeEventListener(\"scroll\", onScroll);\n ro.disconnect();\n }\n };\n this.syncReadyChapterSizes();\n this.recomputeVisible();\n if (el.clientHeight === 0) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => this.recomputeVisible());\n });\n }\n }\n /* ───────────────── visible / layout ───────────────── */\n recomputeVisible() {\n if (!this.viewportEl || !this.virtualPageMap) return;\n const total = this.virtualPageMap.totalPages;\n if (total === 0) {\n this.currentVisible = [];\n this.currentGlobalPageIndex = 0;\n this.layoutChange$.emit(this.computeLayout());\n return;\n }\n const scrollTop = this.viewportEl.scrollTop;\n const clientH = this.viewportEl.clientHeight;\n const viewportEnd = scrollTop + clientH;\n const start = this.findFirstVisibleIndex(scrollTop);\n let end = start;\n while (end < total) {\n const size = this.getPageSize(end);\n const pageTop = this.offsets[end];\n pageTop + size.height;\n if (pageTop >= viewportEnd) break;\n end++;\n }\n const visible = [];\n let maxOverlapIdx = start;\n let maxOverlap = -1;\n for (let i = start; i < end; i++) {\n visible.push(i);\n const pageTop = this.offsets[i];\n const pageBottom = pageTop + this.getPageSize(i).height;\n const overlap = Math.max(\n 0,\n Math.min(pageBottom, viewportEnd) - Math.max(pageTop, scrollTop)\n );\n if (overlap > maxOverlap) {\n maxOverlap = overlap;\n maxOverlapIdx = i;\n }\n }\n this.currentVisible = visible;\n this.currentGlobalPageIndex = maxOverlapIdx;\n this.visibleChange$.emit({\n visibleGlobalPageIndices: visible,\n currentGlobalPageIndex: maxOverlapIdx\n });\n this.chapterManager.provides().setVisibleGlobalPages(visible);\n this.layoutChange$.emit(this.computeLayout());\n }\n findFirstVisibleIndex(scrollTop) {\n let lo = 0;\n let hi = this.offsets.length - 1;\n let ans = 0;\n while (lo <= hi) {\n const mid = lo + hi >> 1;\n if (this.offsets[mid] <= scrollTop) {\n ans = mid;\n lo = mid + 1;\n } else {\n hi = mid - 1;\n }\n }\n return ans;\n }\n computeLayout() {\n const buffer = this.config.bufferSize;\n const start = Math.max(0, (this.currentVisible[0] ?? 0) - buffer);\n const last = this.currentVisible[this.currentVisible.length - 1] ?? -1;\n const end = Math.min(this.offsets.length - 1, (last >= 0 ? last : 0) + buffer);\n const items = [];\n if (this.virtualPageMap && this.offsets.length > 0) {\n for (let i = start; i <= end; i++) {\n const loc = this.virtualPageMap.atIndex(i);\n if (!loc) continue;\n const size = this.getPageSize(i);\n const isPlaceholder = !this.isChapterDocumentReady(loc.chapterId);\n items.push({\n globalPageIndex: i,\n globalPageNumber: loc.globalPageNumber,\n chapterId: loc.chapterId,\n localPageIndex: loc.localPageIndex,\n width: size.width,\n height: size.height,\n offsetTop: this.offsets[i],\n isPlaceholder\n });\n }\n }\n return {\n totalHeight: this.totalHeight,\n totalWidth: this.totalWidth || this.config.placeholderPageWidth,\n items,\n pageGap: this.config.pageGap\n };\n }\n /* ───────────────── scroll-to ───────────────── */\n scrollToIndex(idx, options) {\n if (!this.viewportEl || idx < 0 || idx >= this.offsets.length) return;\n const targetTop = (this.offsets[idx] ?? 0) - ((options == null ? void 0 : options.topOffset) ?? 0);\n this.viewportEl.scrollTo({ top: targetTop, behavior: (options == null ? void 0 : options.behavior) ?? \"auto\" });\n }\n scrollToGlobalPdfPoint(idx, pdfY, options) {\n var _a;\n if (!this.viewportEl || idx < 0 || idx >= this.offsets.length || !this.virtualPageMap) {\n return;\n }\n const marginTop = (options == null ? void 0 : options.marginTop) ?? 80;\n const loc = this.virtualPageMap.atIndex(idx);\n if (!loc) {\n this.scrollToIndex(idx, options);\n return;\n }\n const cssSize = this.pageSizes.get(idx);\n const pdfPage = (_a = this.documentManager.provides().getDocument(loc.chapterId)) == null ? void 0 : _a.pages[loc.localPageIndex];\n if (!cssSize || !pdfPage) {\n this.scrollToIndex(idx, options);\n return;\n }\n const sy = cssSize.height / pdfPage.size.height;\n const absoluteTop = (this.offsets[idx] ?? 0) + pdfY * sy - marginTop;\n this.viewportEl.scrollTo({\n top: Math.max(0, absoluteTop),\n behavior: (options == null ? void 0 : options.behavior) ?? \"auto\"\n });\n }\n scrollToChapter(chapterId, options) {\n if (!this.virtualPageMap) return;\n const idx = this.virtualPageMap.firstIndexOfChapter(chapterId);\n if (idx < 0) return;\n void this.chapterManager.provides().ensureChapterLoaded(chapterId);\n this.scrollToIndex(idx, options);\n }\n scrollToGlobalNumber(n2, options) {\n if (!this.virtualPageMap) return;\n const loc = this.virtualPageMap.byGlobalNumber(n2);\n if (!loc) return;\n this.scrollToIndex(loc.globalPageIndex, options);\n }\n};\n_ChapterScrollPlugin.id = \"chapter-scroll\";\nlet ChapterScrollPlugin = _ChapterScrollPlugin;\nconst ChapterScrollPluginPackage = {\n manifest,\n create: (registry) => new ChapterScrollPlugin(CHAPTER_SCROLL_PLUGIN_ID, registry),\n reducer: (state) => state,\n initialState: {}\n};\nexport {\n CHAPTER_SCROLL_PLUGIN_ID,\n ChapterScrollPlugin,\n ChapterScrollPluginPackage,\n manifest\n};\n//# sourceMappingURL=index.js.map\n","import { useCallback, useEffect, useState, type CSSProperties } from 'react';\nimport { useCapability } from '@embedpdf/core/react';\nimport { ChapterManagerPlugin } from '@embedpdf-editor/plugin-chapter-manager';\nimport { ChapterScrollPlugin } from '@embedpdf-editor/plugin-chapter-scroll';\nimport type { ChapterLoadStatus } from '@embedpdf-editor/chapter-core';\nimport type { ChapterTreeNode } from './chapter-tree';\n\nconst STATUS_LABEL: Record<ChapterLoadStatus, string> = {\n idle: '未加载',\n loading: '加载中',\n loaded: '已加载',\n closed: '已卸载',\n error: '失败',\n 'password-required': '需密码',\n};\n\nexport type ChapterTreePanelProps = {\n tree: ChapterTreeNode[];\n activeChapterId: string;\n onActiveChapterChange?: (chapterId: string) => void;\n};\n\nexport function ChapterTreePanel({\n tree,\n activeChapterId,\n onActiveChapterChange,\n}: ChapterTreePanelProps) {\n const { provides: scroll } = useCapability<ChapterScrollPlugin>(ChapterScrollPlugin.id);\n const { provides: chapterManager } = useCapability<ChapterManagerPlugin>(\n ChapterManagerPlugin.id,\n );\n const [chapterStatus, setChapterStatus] = useState<Record<string, ChapterLoadStatus>>({});\n\n const syncStatus = useCallback(() => {\n if (!chapterManager) return;\n const next: Record<string, ChapterLoadStatus> = {};\n const walk = (nodes: ChapterTreeNode[]) => {\n for (const n of nodes) {\n next[n.id] = chapterManager.getChapterStatus(n.id);\n if (n.children?.length) walk(n.children);\n }\n };\n walk(tree);\n setChapterStatus(next);\n }, [chapterManager, tree]);\n\n useEffect(() => {\n syncStatus();\n }, [syncStatus]);\n\n useEffect(() => {\n if (!chapterManager) return;\n return chapterManager.onChapterStatusChange(syncStatus);\n }, [chapterManager, syncStatus]);\n\n const selectChapter = (chapterId: string) => {\n onActiveChapterChange?.(chapterId);\n scroll?.scrollToChapter(chapterId);\n };\n\n return (\n <aside style={asideStyle}>\n <h2 style={headingStyle}>章节目录</h2>\n <nav style={navStyle} aria-label=\"章节目录\">\n <ChapterTreeList\n nodes={tree}\n depth={0}\n activeChapterId={activeChapterId}\n chapterStatus={chapterStatus}\n onSelect={selectChapter}\n />\n </nav>\n </aside>\n );\n}\n\nfunction ChapterTreeList({\n nodes,\n depth,\n activeChapterId,\n chapterStatus,\n onSelect,\n}: {\n nodes: ChapterTreeNode[];\n depth: number;\n activeChapterId: string;\n chapterStatus: Record<string, ChapterLoadStatus>;\n onSelect: (chapterId: string) => void;\n}) {\n return (\n <ul style={{ margin: 0, padding: 0, listStyle: 'none', marginLeft: depth > 0 ? 12 : 0 }}>\n {nodes.map((node) => (\n <ChapterTreeItem\n key={node.id}\n node={node}\n depth={depth}\n activeChapterId={activeChapterId}\n chapterStatus={chapterStatus}\n onSelect={onSelect}\n />\n ))}\n </ul>\n );\n}\n\nfunction ChapterTreeItem({\n node,\n depth,\n activeChapterId,\n chapterStatus,\n onSelect,\n}: {\n node: ChapterTreeNode;\n depth: number;\n activeChapterId: string;\n chapterStatus: Record<string, ChapterLoadStatus>;\n onSelect: (chapterId: string) => void;\n}) {\n const children = node.children ?? [];\n const hasChildren = children.length > 0;\n const [expanded, setExpanded] = useState(depth < 1);\n const isActive = activeChapterId === node.id;\n const status = chapterStatus[node.id] ?? 'idle';\n const isLeaf = !hasChildren;\n\n return (\n <li>\n <div style={{ display: 'flex', alignItems: 'stretch', gap: 2 }}>\n {hasChildren ? (\n <button\n type=\"button\"\n aria-expanded={expanded}\n style={toggleBtnStyle}\n onClick={() => setExpanded((v) => !v)}\n >\n {expanded ? '▼' : '▶'}\n </button>\n ) : (\n <span style={{ width: 16, flexShrink: 0 }} aria-hidden />\n )}\n <button\n type=\"button\"\n style={{\n ...itemBtnStyle,\n background: isActive ? '#1e293b' : 'transparent',\n color: isActive ? '#fff' : '#334155',\n }}\n onClick={() => onSelect(node.id)}\n >\n <div style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', fontWeight: 500 }}>\n {node.title}\n </div>\n <div\n style={{\n marginTop: 2,\n fontSize: 10,\n color: isActive ? '#cbd5e1' : '#94a3b8',\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px 8px',\n }}\n >\n <span>\n 第 {node.startPage}\n {node.endPage !== node.startPage ? `–${node.endPage}` : ''} 页\n </span>\n {isLeaf ? <span>{STATUS_LABEL[status]}</span> : null}\n </div>\n </button>\n </div>\n {hasChildren && expanded ? (\n <ChapterTreeList\n nodes={children}\n depth={depth + 1}\n activeChapterId={activeChapterId}\n chapterStatus={chapterStatus}\n onSelect={onSelect}\n />\n ) : null}\n </li>\n );\n}\n\nconst asideStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n width: 224,\n flexShrink: 0,\n borderRadius: 8,\n border: '1px solid #e2e8f0',\n background: '#fff',\n overflow: 'hidden',\n};\n\nconst headingStyle: CSSProperties = {\n margin: 0,\n padding: '8px 12px',\n fontSize: 12,\n fontWeight: 600,\n color: '#334155',\n borderBottom: '1px solid #f1f5f9',\n};\n\nconst navStyle: CSSProperties = {\n flex: 1,\n overflowY: 'auto',\n padding: 4,\n};\n\nconst toggleBtnStyle: CSSProperties = {\n flexShrink: 0,\n padding: '0 4px',\n border: 'none',\n background: 'transparent',\n fontSize: 10,\n color: '#94a3b8',\n cursor: 'pointer',\n};\n\nconst itemBtnStyle: CSSProperties = {\n minWidth: 0,\n flex: 1,\n border: 'none',\n borderRadius: 6,\n padding: '8px',\n textAlign: 'left',\n fontSize: 13,\n cursor: 'pointer',\n};\n"],"names":["X","K","t","e","a","Z","Q","i","s","r","n","l","J","M","S","x","y","k","tt","et","at","st","h","it","T","rt","ot","nt","ht","lt","dt","ct","ut","pt","gt","ft","mt","vt","bt","Pt","It","wt","yt","C","o","d","c","p","g","v","b","Ct","Mt","St","xt","$t","kt","Lt","Dt","zt","Tt","Gt","At","Ot","Nt","Vt","Rt","Et","Ut","_t","Ft","$","f","m","L","D","z","G","A","O","N","V","_a","_b","u","I","w","j","R","E","P","U","_","F","q","W","H","B","Y","_e","unionRects","e$1","t2","s2","a2","s3","t$1","s$1","a$1","t3","n$1","r$1","l2","_ChapterManagerPlugin$1","ChapterManagerPlugin$1","ChapterManagerPlugin","_ChapterScrollPlugin","ChapterScrollPlugin","ma","ra","_ParagraphBookmarkPlugin","n2","_ChapterManagerPlugin","_ChapterManagerPlugin2"],"mappings":"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"}
|