@embedpdf-editor/vue3-chapter-viewer 0.2.0 → 0.3.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../editor-engine/dist/vue/index.js","../src/ChapterPdfViewer.vue","../../plugin-chapter-manager/dist/index.js"],"sourcesContent":["import{isRef as e,computed as t,ref as a,watch as s,onBeforeUnmount as i,defineComponent as o,onMounted as r,openBlock as n,createElementBlock as l,normalizeStyle as h,normalizeClass as d,createElementVNode as c,Fragment as u,renderList as p,renderSlot as g,createBlock as f,unref as m,withModifiers as v,createCommentVNode as b,withCtx as P,createVNode as w,resolveDynamicComponent as y,h as I,toDisplayString as C}from\"vue\";import{useRegistry as M,useCapability as S,EmbedPDF as x}from\"@embedpdf/core/vue\";import{EmbedPDF as k,useCapability as L}from\"@embedpdf/core/vue\";import{LockModeType as $,ANNOTATION_PLUGIN_ID as z,AnnotationPluginPackage as T,AnnotationPlugin as D}from\"@embedpdf/plugin-annotation\";import{PdfAnnotationSubtype as O,uuidV4 as G,PdfBlendMode as A,PdfErrorCode as N}from\"@embedpdf/models\";import{BasePlugin as V,createBehaviorEmitter as _,createEmitter as E,createPluginRegistration as R,setDefaultScale as U,setScale as F}from\"@embedpdf/core\";import{DocumentManagerPlugin as W,DocumentManagerPluginPackage as q}from\"@embedpdf/plugin-document-manager\";import{InteractionManagerPluginPackage as H}from\"@embedpdf/plugin-interaction-manager\";import{RenderPluginPackage as B}from\"@embedpdf/plugin-render\";import{RotatePluginPackage as j}from\"@embedpdf/plugin-rotate\";import{SelectionPluginPackage as Z,SelectionPlugin as Y,glyphAt as K,expandToLineBoundary as X,rectsWithinSlice as Q}from\"@embedpdf/plugin-selection\";import{HistoryPluginPackage as J}from\"@embedpdf/plugin-history\";import{RedactionPluginPackage as ee}from\"@embedpdf/plugin-redaction\";import{FormPluginPackage as te}from\"@embedpdf/plugin-form\";import{StampPluginPackage as ae}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as se}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as ie}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as oe}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as re,UIPluginPackage as ne}from\"@embedpdf/plugin-ui\";import{GlobalPointerProvider as le,PagePointerProvider as he}from\"@embedpdf/plugin-interaction-manager/vue\";import{Rotate as de}from\"@embedpdf/plugin-rotate/vue\";import{SelectionLayer as ce}from\"@embedpdf/plugin-selection/vue\";import{AnnotationLayer as ue}from\"@embedpdf/plugin-annotation/vue\";import{RedactionLayer as pe}from\"@embedpdf/plugin-redaction/vue\";import{RenderLayer as ge}from\"@embedpdf/plugin-render/vue\";import{usePdfiumEngine as fe}from\"@embedpdf/engines/vue\";const me={position:\"relative\",height:\"100%\",width:\"100%\"},ve={highlight:{offsetY:0},underline:{offsetY:2.5},squiggly:{offsetY:0},strikeout:{offsetY:0}},be={highlight:O.HIGHLIGHT,underline:O.UNDERLINE,squiggly:O.SQUIGGLY,strikeout:O.STRIKEOUT};function Pe(e,t){return 0===t?e:e.map(e=>({origin:{x:e.origin.x,y:e.origin.y+t},size:{...e.size}}))}function we(e){let t=1/0,a=1/0,s=-1/0,i=-1/0;for(const o of e)t=Math.min(t,o.origin.x),a=Math.min(a,o.origin.y),s=Math.max(s,o.origin.x+o.size.width),i=Math.max(i,o.origin.y+o.size.height);return{origin:{x:t,y:a},size:{width:s-t,height:i-a}}}function ye(e,t,a,s,i){const o=a.forDocument(e),r=s.forDocument(e);if(!o||!r)return!1;const n=\"highlight\"===t?\"highlight\":\"underline\"===t?\"underline\":\"squiggly\"===t?\"squiggly\":\"strikeout\",l=a.getTool(n);if(!l)return!1;const h=l.defaults,d=function(e,t){return{...ve[e],...null==t?void 0:t[e]}}(t,i),c=r.getFormattedSelection();if(0===c.length)return!1;o.setLocked({type:$.Exclude,categories:[\"markup\",\"shape\"]});for(const u of c){const e=G(),a=d.color??h.color??h.strokeColor,s=d.opacity??h.opacity,i=d.thickness??h.strokeWidth,r=d.offsetY??0,n=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?Pe(u.segmentRects,r):u.segmentRects,l=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?we(n):u.rect;o.createAnnotation(u.pageIndex,{id:e,created:/* @__PURE__ */new Date,flags:[\"print\"],type:be[t],...\"highlight\"===t?{blendMode:A.Multiply}:{},strokeColor:a,opacity:s,...null!=i?{strokeWidth:i}:{},pageIndex:u.pageIndex,rect:l,segmentRects:n})}return r.clear(),!0}function Ie(e,t){const a=e;return!1===e?{...t,enabled:!1}:!0===e||void 0===e?{...t,enabled:t.enabled??!0}:{...t,...a,enabled:!1!==(null==a?void 0:a.enabled)}}function Ce(e){const t=Ie(null==e?void 0:e.markup,{enabled:!0}),a=Ie(null==e?void 0:e.bookmarks,{enabled:!0}),s=Ie(null==e?void 0:e.notes,{enabled:!0});return{markup:t,bookmarks:a,notes:s,zoom:Ie(null==e?void 0:e.zoom,{enabled:!0,min:.5,max:3,initial:1}),selectionToolbar:Ie(void 0===(null==e?void 0:e.selectionToolbar)?!1!==t.enabled||!1!==s.enabled:e.selectionToolbar,{enabled:!0})}}class Me{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}const Se=\"chapter-manager\",xe={id:Se,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 ke={kind:\"first-wins\"};function Le(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let $e=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function ze(e,t=ke){const a=function(e,t=ke){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,Le(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new $e(o)}const Te=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=ke,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??ke,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=ze(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Te.id=\"chapter-manager\";let De=Te;const Oe={manifest:xe,create:e=>new De(Se,e),reducer:e=>e,initialState:{}},Ge=\"chapter-scroll\",Ae={id:Ge,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 Ne={kind:\"first-wins\"};function Ve(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let _e=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function Ee(e,t=Ne){const a=function(e,t=Ne){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,Ve(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new _e(o)}const Re=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=Ne,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Ne,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Ee(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Re.id=\"chapter-manager\";let Ue=Re;const Fe=class extends V{constructor(e,t){super(e,t),this.layoutChange$=_(),this.visibleChange$=_(),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(Ue.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(e.chapterId)&&this.harvestChapterSizes(e.chapterId);this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=!this.isChapterDocumentReady(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};Fe.id=\"chapter-scroll\";let We=Fe;const qe={manifest:Ae,create:e=>new We(Ge,e),reducer:e=>e,initialState:{}},He=\"note\",Be={id:He,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 je={kind:\"first-wins\"};function Ze(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let Ye=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function Ke(e,t=je){const a=function(e,t=je){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,Ze(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new Ye(o)}const Xe=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=je,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??je,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Ke(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Xe.id=\"chapter-manager\";let Qe=Xe;const Je={kind:\"first-wins\"};function et(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let tt=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function at(e,t=Je){const a=function(e,t=Je){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,et(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new tt(o)}const st=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=Je,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Je,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=at(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};st.id=\"chapter-manager\";let it=st;const ot=class extends V{constructor(e,t){super(e,t),this.layoutChange$=_(),this.visibleChange$=_(),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(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(e.chapterId)&&this.harvestChapterSizes(e.chapterId);this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=!this.isChapterDocumentReady(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};ot.id=\"chapter-scroll\";let rt=ot;const nt=class e extends V{constructor(e,t){super(e,t),this.notesChange$=_([]),this.noteActivated$=E(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(rt.id),this.chapterManager=this.registry.getPlugin(Qe.id),this.documentManager=this.registry.getPlugin(W.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(a){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",a)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(a=>a.chapterId===e&&a.localPageIndex===t),listAllNotes:()=>this.listAll(),getNote:e=>this.notes.get(e)??null,deleteNote:e=>this.deleteNote(e),updateNoteContent:(e,t)=>this.updateNoteContent(e,t),scrollToNote:e=>this.scrollToNote(e),onNotesChange:this.notesChange$.on,onNoteActivated:this.noteActivated$.on}}registerNote(e){this.notes.set(e.noteId,e),this.notesChange$.emit(this.listAll())}requestEdit(e){const t=this.notes.get(e);t&&(this.config.callbacks.onRequestEditNote?this.config.callbacks.onRequestEditNote(e,t):this.activateNote(e))}activateNote(e){var t,a;const s=this.notes.get(e);s&&(null==(a=(t=this.config.callbacks).onActivateNote)||a.call(t,e,s),this.noteActivated$.emit({noteId:e,anchor:s}))}listAll(){return Array.from(this.notes.values())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:ht(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:a,onCreateNote:s}=this.config.callbacks;return a?(a({draft:t,complete:async e=>{const a={...t,noteId:e};this.registerNote(a)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const a=this.buildDraft(t),s=this.config.callbacks.onCreateNote;if(!s)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let i=null;try{i=await s(a)}catch(r){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",r),null}if(!i)return null;const o={...a,noteId:i.noteId};return this.registerNote(o),o}async deleteNote(t){var a,s;if(this.notes.has(t)){try{await(null==(s=(a=this.config.callbacks).onDeleteNote)?void 0:s.call(a,t))}catch(i){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",i)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,a){var s,i;const o=this.notes.get(t);if(!o)return;const r={...o,content:a};try{await(null==(i=(s=this.config.callbacks).onUpdateNote)?void 0:i.call(s,r))}catch(n){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(t,r),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const a=this.notes.get(e);if(!a)return;const s=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(a.chapterId);(null==(t=this.documentManager.provides().getDocument(a.chapterId))?void 0:t.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(e){const t=this.chapterScroll.provides(),a=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const s=setTimeout(()=>{i(),a(null)},2500),i=t.onLayoutChange(t=>{const o=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);o&&(clearTimeout(s),i(),a(o))})})}};nt.id=\"note\";let lt=nt;function ht(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}const dt={manifest:Be,create:e=>new lt(He,e),reducer:e=>e,initialState:{}},ct=\"paragraph-bookmark\",ut={id:ct,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};const pt={kind:\"first-wins\"};function gt(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let ft=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function mt(e,t=pt){const a=function(e,t=pt){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,gt(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new ft(o)}const vt=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=pt,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??pt,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=mt(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};vt.id=\"chapter-manager\";let bt=vt;const Pt={kind:\"first-wins\"};function wt(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let yt=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function It(e,t=Pt){const a=function(e,t=Pt){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,wt(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new yt(o)}const Ct=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=Pt,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Pt,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=It(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Ct.id=\"chapter-manager\";let Mt=Ct;const St=class extends V{constructor(e,t){super(e,t),this.layoutChange$=_(),this.visibleChange$=_(),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(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(e.chapterId)&&this.harvestChapterSizes(e.chapterId);this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=!this.isChapterDocumentReady(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};St.id=\"chapter-scroll\";let xt=St;function kt(e){if(0===e.length)throw new Error(\"unionRects: empty rects\");let t=1/0,a=1/0,s=-1/0,i=-1/0;for(const o of e)t=Math.min(t,o.origin.x),a=Math.min(a,o.origin.y),s=Math.max(s,o.origin.x+o.size.width),i=Math.max(i,o.origin.y+o.size.height);return{origin:{x:t,y:a},size:{width:s-t,height:i-a}}}function Lt(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function $t(e,t){const a=e.origin.y,s=e.origin.y+e.size.height,i=t.origin.y,o=t.origin.y+t.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 zt(e,t){var a,s;if(e.chapterId!==t.chapterId||e.localPageIndex!==t.localPageIndex)return!1;const i=(null==(a=e.rectsPdfCoord)?void 0:a.length)?e.rectsPdfCoord:[e.rectPdfCoord],o=(null==(s=t.rectsPdfCoord)?void 0:s.length)?t.rectsPdfCoord:[t.rectPdfCoord],r=e.markerAnchor??Lt(i),n=t.markerAnchor??Lt(o);if(Math.hypot(r.x-n.x,r.y-n.y)<=6)return!0;for(const l of i)for(const e of o){if($t(l,e)<.5)continue;const t=Math.max(l.origin.x,e.origin.x);if(Math.min(l.origin.x+l.size.width,e.origin.x+e.size.width)-t>.25*Math.min(l.size.width,e.size.width))return!0}return!1}function Tt(e,t,a,s){const i=a.length>0?a:[];if(0===i.length)throw new Error(\"buildParagraphBookmarkAnchor: no rects\");return{chapterId:e,localPageIndex:t,globalPageIndex:null==s?void 0:s.globalPageIndex,globalPageNumber:null==s?void 0:s.globalPageNumber,rectPdfCoord:kt(i),rectsPdfCoord:i,markerAnchor:Lt(i)}}async function Dt(e,t,a){e.scrollToGlobalPageIndex(t),await function(e,t,a=2500){const s=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const i=setTimeout(()=>{o(),s(null)},a),o=e.onLayoutChange(e=>{const a=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);a&&(clearTimeout(i),o(),s(a))})})}(e,t),e.scrollToGlobalPdfPoint(t,a,{marginTop:80})}const Ot=class e extends V{constructor(e,t){super(e,t),this.change$=_([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(xt.id),this.chapterManager=this.registry.getPlugin(bt.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(t){var a;if(this.config=t,null==(a=t.callbacks)?void 0:a.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(e.id,\"Load\",\"Failed to load paragraph bookmarks\",s)}}buildCapability(){return{addBookmark:e=>this.addBookmark(e),removeBookmark:e=>this.removeBookmark(e),updateBookmark:(e,t)=>this.updateBookmark(e,t),listBookmarks:()=>this.list(),getBookmark:e=>this.entries.get(e)??null,scrollToBookmark:e=>this.scrollToBookmark(e),requestRemoveBookmark:e=>this.requestRemoveBookmark(e),onBookmarksChange:this.change$.on}}addBookmark(e){for(const s of this.entries.values())if(zt(s.anchor,e.anchor))return s;const t=e.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,a={id:t,label:e.label,anchor:e.anchor,metadata:e.metadata,createdAt:Date.now()};return this.entries.set(t,a),this.notifyAndPersist(),a}removeBookmark(e){var t,a,s;this.entries.delete(e)&&(this.notifyAndPersist(),null==(s=null==(a=null==(t=this.config)?void 0:t.callbacks)?void 0:a.onRemoveSuccess)||s.call(a,e))}async requestRemoveBookmark(t){var a,s;const i=this.entries.get(t);if(!i)return!1;const o=null==(s=null==(a=this.config)?void 0:a.callbacks)?void 0:s.onRequestRemove;if(o)try{if(!(await o(i)))return!1}catch(r){return this.logger.error(e.id,\"RequestRemove\",\"callback failed\",r),!1}return this.removeBookmark(t),!0}updateBookmark(e,t){const a=this.entries.get(e);a&&(this.entries.set(e,{...a,...t}),this.notifyAndPersist())}list(){return Array.from(this.entries.values()).sort((e,t)=>e.createdAt-t.createdAt)}notifyAndPersist(){var t,a;const s=this.list();this.change$.emit(s),(null==(a=null==(t=this.config)?void 0:t.callbacks)?void 0:a.persist)&&Promise.resolve(this.config.callbacks.persist(s)).catch(t=>this.logger.error(e.id,\"Persist\",\"persist callback rejected\",t))}async scrollToBookmark(e){const t=this.entries.get(e);if(!t)return;const a=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(t.anchor.chapterId);let s=t.anchor.globalPageIndex;if(void 0===s){const e=this.chapterManager.provides().getVirtualPageMap().toGlobal(t.anchor.chapterId,t.anchor.localPageIndex);if(!e)return;s=e.globalPageIndex}const i=function(e){if(e.markerAnchor)return e.markerAnchor.y;const t=e.rectPdfCoord;return t.origin.y+t.size.height}(t.anchor);await Dt(a,s,i)}};Ot.id=\"paragraph-bookmark\";let Gt=Ot;const At={manifest:ut,create:e=>new Gt(ct,e),reducer:e=>e,initialState:{}},Nt={\"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 Vt{constructor(){this.specs=[]}register(e){if(this.specs.some(t=>t.id===e.id))throw new Error(`OperationRegistry: duplicate operation id \"${e.id}\"`);this.specs.push(e)}registerAll(e){for(const t of e)t&&this.register(t)}list(){return this.specs}buildToolbars(){const e=structuredClone(Nt);for(const t of this.specs){const a=e[t.toolbarSlot];if(!a)continue;const s={type:\"command-button\",id:t.id,commandId:t.commandId,variant:\"icon\",...t.icon?{icon:t.icon}:{},...t.i18nKey?{labelKey:t.i18nKey}:{},...t.label?{label:t.label}:{},categories:t.categories??[]};a.items=_t(a.items,s,t.position)}return e}}function _t(e,t,a){return(null==a?void 0:a.after)||(null==a?void 0:a.before)?function(e,t,a){const s=e=>{const i=[];for(const o of e)\"group\"!==o.type?a.before&&o.id===a.before?i.push(t,o):(i.push(o),a.after&&o.id===a.after&&i.push(t)):i.push({...o,items:s(o.items)});return i};return s(e)}(e,t,a):function(e,t){return e.map(e=>\"group\"===e.type?{...e,items:[...e.items,t]}:e)}(e,t)}const Et={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function Rt(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides(),s=e.getPlugin(\"interaction-manager\")?.provides();a&&s&&(s.forDocument(t)?.activateDefaultMode(),a.forDocument(t).closeToolbarSlot(\"top\",\"secondary\"),e.getPlugin(z)?.provides().forDocument(t).setLocked((e=>e.getPluginConfig(z).locked??{type:$.None})(e)))},active:({state:e,documentId:t})=>!re(e.plugins,t,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",t),e.getPlugin(z)?.provides().forDocument(t).setLocked({type:$.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>re(e.plugins,t,\"top\",\"secondary\",\"annotation-toolbar\")},\"mode:shapes\":{id:\"mode:shapes\",label:\"Shapes\",categories:[\"mode\",\"mode-shapes\",\"annotation\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",t),e.getPlugin(z)?.provides().forDocument(t).setLocked({type:$.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>re(e.plugins,t,\"top\",\"secondary\",\"shapes-toolbar\")},\"mode:insert\":{id:\"mode:insert\",label:\"Insert\",categories:[\"mode\",\"mode-insert\",\"insert\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",t),e.getPlugin(z)?.provides().forDocument(t).setLocked({type:$.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>re(e.plugins,t,\"top\",\"secondary\",\"insert-toolbar\")},\"mode:form\":{id:\"mode:form\",label:\"Form\",categories:[\"mode\",\"mode-form\",\"form\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",t),e.getPlugin(z)?.provides().forDocument(t).setLocked({type:$.None}))},active:({state:e,documentId:t})=>re(e.plugins,t,\"top\",\"secondary\",\"form-toolbar\")},\"mode:redact\":{id:\"mode:redact\",label:\"Redact\",categories:[\"mode\",\"mode-redact\",\"redaction\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",t),e.getPlugin(z)?.provides().forDocument(t).setLocked({type:$.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>re(e.plugins,t,\"top\",\"secondary\",\"redaction-toolbar\")}}}function Ut(e){const t=e.toolbar??{},a=t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],s=a.length>0,{schema:i,operationRegistry:o}=function(e={}){var t,a,s,i,o,r;const n=new Set(e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),l=new Vt;(null==(t=e.customOperations)?void 0:t.length)&&l.registerAll(e.customOperations);const h=l.buildToolbars(),d={};for(const u of n){if(\"view\"===u)continue;const e=Et[u];h[e]&&(d[e]=h[e])}const c=function(e){if(0===e.size)return null;const t=(e,t,a)=>({type:\"command-button\",id:`${e}-mode`,commandId:a,variant:\"text\",label:t,categories:[\"mode\",e]});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:[...e.has(\"view\")?[t(\"view\",\"View\",\"mode:view\")]:[],...e.has(\"annotate\")?[t(\"annotate\",\"Annotate\",\"mode:annotate\")]:[],...e.has(\"shapes\")?[t(\"shapes\",\"Shapes\",\"mode:shapes\")]:[],...e.has(\"insert\")?[t(\"insert\",\"Insert\",\"mode:insert\")]:[],...e.has(\"form\")?[t(\"form\",\"Form\",\"mode:form\")]:[],...e.has(\"redact\")?[t(\"redact\",\"Redact\",\"mode:redact\")]:[]]},{type:\"spacer\",id:\"main-spacer-right\",flex:!0}]}}(n);return c&&(d[\"chapter-editor-main-toolbar\"]=c),(null==(a=e.extend)?void 0:a.toolbars)&&Object.assign(d,e.extend.toolbars),{schema:{id:\"chapter-pdf-editor-ui\",version:\"1.0.0\",toolbars:d,menus:(null==(s=e.extend)?void 0:s.menus)??{},sidebars:(null==(i=e.extend)?void 0:i.sidebars)??{},modals:(null==(o=e.extend)?void 0:o.modals)??{},selectionMenus:(null==(r=e.extend)?void 0:r.selectionMenus)??{}},operationRegistry:l}}({...t,enabledModes:a}),r={...s?Rt():{},...s?Ft(o.list()):{},...e.commands??{}},n=[R(q,{initialDocuments:[]}),R(Oe,{manifest:e.manifest,overlapStrategy:e.overlapStrategy,passwordProvider:e.passwordProvider,chapterPdfLoader:e.chapterPdfLoader,prefetchChapters:e.prefetchChapters,unloadTimeoutMs:e.unloadTimeoutMs}),R(qe,{placeholderPageHeight:e.placeholderPageHeight,placeholderPageWidth:e.placeholderPageWidth}),R(H),R(B),R(j),R(Z,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),R(J),R(T),R(ee),R(te),R(ae,!1===e.loadDefaultStampLibrary?{manifests:[]}:void 0),R(se),...Object.keys(r).length>0?[R(ie,{commands:r})]:[],...s?[R(oe),R(ne,{schema:i})]:[]];return e.notes&&n.push(R(dt,{callbacks:e.notes.callbacks,ui:e.features?.notes?.marker})),e.bookmarks&&n.push(R(At,{callbacks:e.bookmarks.callbacks,ui:e.features?.bookmarks?.marker,hover:e.features?.bookmarks?.hover})),{plugins:n,uiSchema:i,operationRegistry:o}}function Ft(e){const t={};for(const a of e)a.handler&&(t[a.commandId]={id:a.commandId,labelKey:a.i18nKey,label:a.label,icon:a.icon,categories:a.categories,action:({documentId:e})=>{a.handler?.({documentId:e,chapterId:e})}});return t}const Wt=Ce(),qt={};function Ht(e){return Ut({...e,toolbar:e.toolbar??{enabledModes:[]},features:Ce(e.features)})}const Bt={overlapStrategy:{kind:\"first-wins\"},passwordProvider:new Me(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]}};function jt(e){return function(e){return\"callbacks\"in e.notes}(e)?{manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,notes:e.notes.callbacks,bookmarks:e.bookmarks.callbacks}:e}function Zt(e){return{manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,...Bt,notes:{callbacks:e.notes},bookmarks:{callbacks:e.bookmarks},features:Ce(e.features)}}function Yt(e){const t=Zt(jt(e)),{plugins:a}=Ht(t);return{plugins:a,features:t.features,editorOptions:t}}function Kt(e){const{features:t,...a}=Zt(jt(e));return a}function Xt(e,t=.5,a=3){return Math.min(a,Math.max(t,e))}function Qt(i,o){const r=e(i)?i:t(()=>i),{registry:n}=M(),{provides:l}=S(W.id),{provides:h}=S(De.id),d=a(o.value?.initial??1),c=a(d.value),u=()=>!1!==o.value?.enabled,p=()=>o.value?.min??.5,g=()=>o.value?.max??3,f=()=>o.value?.pageWidth;function m(e){const t=Xt(e,p(),g());c.value=t,d.value=t,function(e,t,a,s=.5,i=3){const o=e?.getStore();if(!o)return;const r=Xt(a,s,i);o.dispatchToCore(U(r));for(const n of t.chapters)o.getState().core.documents[n.chapterId]&&o.dispatchToCore(F(r,n.chapterId))}(n.value,r.value,t,p(),g())}function v(e){f()?function(e){const t=f();if(!t||!l.value)return;const a=l.value.getDocument(e);a&&m(function(e,t,a=0){const s=e.pages[a];return s?.size?.width?t/s.size.width:1}(a,t))}(e):m(c.value)}return s([n,()=>o.value?.initial,()=>o.value?.pageWidth],()=>{u()&&n.value&&(f()||m(o.value?.initial??1))},{immediate:!0}),s([h,r,()=>o.value?.pageWidth],()=>{const e=h.value;if(u()&&e){for(const t of r.value.chapters)\"loaded\"===e.getChapterStatus(t.chapterId)&&v(t.chapterId);return e.onChapterStatusChange(e=>{\"loaded\"===e.status&&v(e.chapterId)})}},{immediate:!0}),{scale:d,setScale:m,zoomEnabled:u,minZoom:p,maxZoom:g}}function Jt(e,t,a){return Math.min(a,Math.max(t,e))}function ea(e,t){if(!e||!1===t.enabled)return()=>{};let a=null,s=null,i=0;const o=()=>{const s=e.querySelector(\"[data-chapter-scroll-viewport]\");return!!s&&(a?.(),a=function({container:e,getScale:t,setScale:a,minZoom:s=.5,maxZoom:i=3}){let o=0,r=1,n=null,l=1,h=1;const d=e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),null===n?(h=t(),l=1):clearTimeout(n),l*=1-.01*e.deltaY,l=Jt(l,.1,10),a(Jt(h*l,s,i)),n=setTimeout(()=>{n=null},120))},c=/* @__PURE__ */new Map,u=e=>{if(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size){const[e,a]=[...c.values()];o=Math.hypot(a.x-e.x,a.y-e.y),r=t()}},p=e=>{if(c.has(e.pointerId)&&(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size&&o>0)){e.preventDefault();const[t,n]=[...c.values()],l=Math.hypot(n.x-t.x,n.y-t.y);a(Jt(r*(l/o),s,i))}},g=e=>{c.delete(e.pointerId),c.size<2&&(o=0)};return e.addEventListener(\"wheel\",d,{passive:!1}),e.addEventListener(\"pointerdown\",u),e.addEventListener(\"pointermove\",p,{passive:!1}),e.addEventListener(\"pointerup\",g),e.addEventListener(\"pointercancel\",g),()=>{e.removeEventListener(\"wheel\",d),e.removeEventListener(\"pointerdown\",u),e.removeEventListener(\"pointermove\",p),e.removeEventListener(\"pointerup\",g),e.removeEventListener(\"pointercancel\",g),n&&clearTimeout(n)}}({container:s,getScale:t.getScale,setScale:t.setScale,minZoom:t.minZoom,maxZoom:t.maxZoom}),!0)};return o()||(s=new MutationObserver(()=>{o()&&(s?.disconnect(),s=null)}),s.observe(e,{childList:!0,subtree:!0}),i=requestAnimationFrame(()=>o())),()=>{i&&cancelAnimationFrame(i),s?.disconnect(),a?.()}}const ta={chapters:[]};function aa(e){const o=a(null),{provides:r}=S(De.id),n=t(()=>r.value?.getManifest()??ta),l=t(()=>e.value?.zoom),{scale:h,setScale:d,zoomEnabled:c,minZoom:u,maxZoom:p}=Qt(n,l);return function(e,t){let a=null;s([e,t],()=>{a?.();const s=t.value;a=ea(e.value??null,{enabled:s.enabled,getScale:s.getScale,setScale:s.setScale,minZoom:s.minZoom,maxZoom:s.maxZoom})},{deep:!0,flush:\"post\"}),i(()=>a?.())}(o,t(()=>({enabled:c(),getScale:()=>h.value,setScale:d,minZoom:u(),maxZoom:p()}))),{hostRef:o,scale:h,setScale:d,zoomEnabled:c}}const sa={kind:\"first-wins\"};function ia(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let oa=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function ra(e,t=sa){const a=function(e,t=sa){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,ia(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new oa(o)}const na=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=sa,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??sa,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=ra(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};na.id=\"chapter-manager\";let la=na;const ha=class extends V{constructor(e,t){super(e,t),this.layoutChange$=_(),this.visibleChange$=_(),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(la.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(e.chapterId)&&this.harvestChapterSizes(e.chapterId);this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=!this.isChapterDocumentReady(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};ha.id=\"chapter-scroll\";let da=ha;const ca=[\"data-global-page-index\",\"data-chapter-id\",\"data-local-page-index\"],ua=/* @__PURE__ */((e,t)=>{const a=e.__vccOpts||e;for(const[s,i]of t)a[s]=i;return a})(/* @__PURE__ */o({__name:\"ChapterScroller\",props:{class:{},style:{}},setup(e){const{provides:t}=S(da.id),o=a(null),f=a(null);let m=null;const v=()=>{null==m||m(),m=null,t.value&&(t.value.registerViewport(o.value),m=t.value.onLayoutChange(e=>{f.value=e}))};return r(v),i(()=>{var e;null==m||m(),null==(e=t.value)||e.registerViewport(null)}),s(t,v),(e,t)=>{var a,s,i;return n(),l(\"div\",{ref_key:\"containerRef\",ref:o,\"data-chapter-scroll-viewport\":\"\",class:d(e.$props.class),style:h({overflow:\"auto\",position:\"relative\",width:\"100%\",height:\"100%\",...e.$props.style})},[c(\"div\",{style:h({position:\"relative\",width:`${(null==(a=f.value)?void 0:a.totalWidth)??0}px`,height:`${(null==(s=f.value)?void 0:s.totalHeight)??0}px`,margin:\"0 auto\"})},[(n(!0),l(u,null,p((null==(i=f.value)?void 0:i.items)??[],a=>(n(),l(\"div\",{key:a.globalPageIndex,\"data-global-page-index\":a.globalPageIndex,\"data-chapter-id\":a.chapterId,\"data-local-page-index\":a.localPageIndex,style:h({position:\"absolute\",top:`${a.offsetTop}px`,left:\"50%\",transform:\"translateX(-50%)\",width:`${a.width}px`,height:`${a.height}px`,backgroundColor:a.isPlaceholder?\"#f3f4f6\":\"#fff\",boxShadow:\"0 1px 4px rgba(0,0,0,0.08)\"})},[a.isPlaceholder?g(e.$slots,\"placeholder\",{key:0,item:a},()=>[t[0]||(t[0]=c(\"div\",{class:\"chapter-scroll-placeholder\"},\"Loading chapter…\",-1))],!0):g(e.$slots,\"page\",{key:1,item:a},void 0,!0)],12,ca))),128))],4)],6)}}}),[[\"__scopeId\",\"data-v-8a737137\"]]),pa=/* @__PURE__ */o({__name:\"ChapterRenderLayer\",props:{chapterId:{},localPageIndex:{},scale:{},dpr:{},class:{}},setup:e=>(t,a)=>(n(),f(m(ge),{\"document-id\":e.chapterId,\"page-index\":e.localPageIndex,scale:e.scale,dpr:e.dpr,class:d(e.class),style:{pointerEvents:\"none\"}},null,8,[\"document-id\",\"page-index\",\"scale\",\"dpr\",\"class\"]))});const ga={kind:\"first-wins\"};function fa(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let ma=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function va(e,t=ga){const a=function(e,t=ga){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,fa(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new ma(o)}const ba=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=ga,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??ga,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=va(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};ba.id=\"chapter-manager\";let Pa=ba;const wa={kind:\"first-wins\"};function ya(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}class Ia{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}}function Ca(e,t=wa){const a=function(e,t=wa){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,ya(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new Ia(o)}const Ma=class e extends V{constructor(e,t){super(e,t),this.statusChange$=_(),this.manifestChange$=E(),this.overlapStrategy=wa,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??wa,this.setManifestInternal(e.manifest),this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Ca(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(e){var t;this.updateStatus(e.chapterId,\"loading\"),this.chapterLastUsed.set(e.chapterId,Date.now());const a=e.encrypted&&(null==(t=this.passwordProvider)?void 0:t.getCachedPassword)?this.passwordProvider.getCachedPassword(e.chapterId):null,s=await this.resolvePdfPayload(e),i=this.documentManager.provides(),o=\"url\"in s?i.openDocumentUrl({documentId:e.chapterId,url:s.url,name:e.title,password:a??void 0,autoActivate:!1}):i.openDocumentBuffer({documentId:e.chapterId,buffer:s.buffer,name:e.title,password:a??void 0,autoActivate:!1});return await new Promise(e=>o.wait(()=>e(),()=>e())),this.waitForTerminalStatus(e.chapterId)}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>{\"loaded\"!==e&&\"error\"!==e&&\"password-required\"!==e&&\"closed\"!==e||(s(),t(e))},s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)});a(this.chapterStatus.get(e)??\"idle\")})}async handleDocumentError(t,a,s){if(a!==N.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Ma.id=\"chapter-manager\";let Sa=Ma;const xa=class extends V{constructor(e,t){super(e,t),this.layoutChange$=_(),this.visibleChange$=_(),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(Sa.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters)this.isChapterDocumentReady(e.chapterId)&&this.harvestChapterSizes(e.chapterId);this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=!this.isChapterDocumentReady(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};xa.id=\"chapter-scroll\";let ka=xa;const La=class e extends V{constructor(e,t){super(e,t),this.notesChange$=_([]),this.noteActivated$=E(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(ka.id),this.chapterManager=this.registry.getPlugin(Pa.id),this.documentManager=this.registry.getPlugin(W.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(a){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",a)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(a=>a.chapterId===e&&a.localPageIndex===t),listAllNotes:()=>this.listAll(),getNote:e=>this.notes.get(e)??null,deleteNote:e=>this.deleteNote(e),updateNoteContent:(e,t)=>this.updateNoteContent(e,t),scrollToNote:e=>this.scrollToNote(e),onNotesChange:this.notesChange$.on,onNoteActivated:this.noteActivated$.on}}registerNote(e){this.notes.set(e.noteId,e),this.notesChange$.emit(this.listAll())}requestEdit(e){const t=this.notes.get(e);t&&(this.config.callbacks.onRequestEditNote?this.config.callbacks.onRequestEditNote(e,t):this.activateNote(e))}activateNote(e){var t,a;const s=this.notes.get(e);s&&(null==(a=(t=this.config.callbacks).onActivateNote)||a.call(t,e,s),this.noteActivated$.emit({noteId:e,anchor:s}))}listAll(){return Array.from(this.notes.values())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:za(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:a,onCreateNote:s}=this.config.callbacks;return a?(a({draft:t,complete:async e=>{const a={...t,noteId:e};this.registerNote(a)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const a=this.buildDraft(t),s=this.config.callbacks.onCreateNote;if(!s)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let i=null;try{i=await s(a)}catch(r){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",r),null}if(!i)return null;const o={...a,noteId:i.noteId};return this.registerNote(o),o}async deleteNote(t){var a,s;if(this.notes.has(t)){try{await(null==(s=(a=this.config.callbacks).onDeleteNote)?void 0:s.call(a,t))}catch(i){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",i)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,a){var s,i;const o=this.notes.get(t);if(!o)return;const r={...o,content:a};try{await(null==(i=(s=this.config.callbacks).onUpdateNote)?void 0:i.call(s,r))}catch(n){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(t,r),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const a=this.notes.get(e);if(!a)return;const s=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(a.chapterId);(null==(t=this.documentManager.provides().getDocument(a.chapterId))?void 0:t.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(e){const t=this.chapterScroll.provides(),a=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const s=setTimeout(()=>{i(),a(null)},2500),i=t.onLayoutChange(t=>{const o=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);o&&(clearTimeout(s),i(),a(o))})})}};La.id=\"note\";let $a=La;function za(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function Ta(e){const{markerPdf:t,lineRects:a,sx:s,sy:i,cssPageWidth:o,iconSize:r,gapPx:n=6}=e,l=a?.length?a[a.length-1]:void 0;let h,d;l?(h=(l.origin.x+l.size.width)*s+n,d=l.origin.y*i+(l.size.height*i-r)/2):(h=t.x*s-r/2,d=t.y*i-r-n);const c=Math.max(0,o-r-2);return h>c&&(h=c),d<0&&(d=0),{left:h,top:d}}const Da={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\",zIndex:25}},Oa=[\"onMouseenter\"],Ga=[\"data-note-marker-zone\",\"onMouseenter\",\"onMouseleave\"],Aa=[\"onClick\"],Na=[\"onClick\"],Va=[\"onClick\"],_a=/* @__PURE__ */o({__name:\"NoteMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const o=e,{provides:r}=S($a.id),d=a([]),g=a(null),f=a(null);s(r,e=>{if(e)return e.onNotesChange(e=>{d.value=e.filter(e=>e.chapterId===o.chapterId&&e.localPageIndex===o.localPageIndex)})},{immediate:!0});let P=null;s(f,e=>{P&&(document.removeEventListener(\"mousedown\",P),P=null),e&&(P=t=>{const a=t.target;a.closest?.(`[data-note-marker-zone=\"${e}\"]`)||(f.value=null,g.value=null)},document.addEventListener(\"mousedown\",P))}),i(()=>{P&&document.removeEventListener(\"mousedown\",P)});const w=t(()=>o.ui?.iconSize??16),y=t(()=>o.ui?.highlightColor??\"rgba(245, 158, 11, 0.08)\");function I(e){const t=o.cssPageWidth/o.pdfPageWidth,a=o.cssPageHeight/o.pdfPageHeight,s=w.value,{left:i,top:r}=Ta({markerPdf:e.endAnchor,lineRects:e.rectsPdfCoord,sx:t,sy:a,cssPageWidth:o.cssPageWidth,iconSize:s}),n=function(e,t,a){let s=1/0,i=1/0,o=-1/0,r=-1/0;for(const n of e)s=Math.min(s,n.origin.x*t),i=Math.min(i,n.origin.y*a),o=Math.max(o,(n.origin.x+n.size.width)*t),r=Math.max(r,(n.origin.y+n.size.height)*a);return{left:s,top:i,width:o-s,height:r-i}}(e.rectsPdfCoord,t,a),l=f.value===e.noteId?72:0,h=Math.max(0,Math.min(n.left,i)-8),d=Math.max(0,Math.min(n.top,r)-8);return{zoneLeft:h,zoneTop:d,zoneW:Math.min(o.cssPageWidth,Math.max(n.left+n.width,i+s)+8)-h,zoneH:Math.max(n.top+n.height,r+s+6+l)+8-d,iconLeft:i,iconTop:r,sx:t,sy:a}}return(t,a)=>m(r)&&d.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(n(),l(\"div\",Da,[(n(!0),l(u,null,p(d.value,e=>(n(),l(u,{key:e.noteId},[(n(!0),l(u,null,p(e.rectsPdfCoord,(t,a)=>(n(),l(\"div\",{key:`${e.noteId}-bg-${a}`,style:h({position:\"absolute\",left:t.origin.x*I(e).sx+\"px\",top:t.origin.y*I(e).sy+\"px\",width:t.size.width*I(e).sx+\"px\",height:t.size.height*I(e).sy+\"px\",background:y.value,borderRadius:\"2px\",pointerEvents:\"auto\"}),onMouseenter:t=>g.value=e.noteId},null,44,Oa))),128)),g.value===e.noteId||f.value===e.noteId?(n(),l(\"div\",{key:0,\"data-note-marker-zone\":e.noteId,style:h({position:\"absolute\",left:`${I(e).zoneLeft}px`,top:`${I(e).zoneTop}px`,width:`${I(e).zoneW}px`,height:`${I(e).zoneH}px`,pointerEvents:\"auto\",zIndex:26}),onMouseenter:t=>g.value=e.noteId,onMouseleave:t=>f.value!==e.noteId&&(g.value=null)},[c(\"button\",{type:\"button\",title:\"笔记\",style:h({position:\"absolute\",left:I(e).iconLeft-I(e).zoneLeft+\"px\",top:I(e).iconTop-I(e).zoneTop+\"px\",width:`${w.value}px`,height:`${w.value}px`,border:\"none\",borderRadius:\"50%\",background:\"#f59e0b\",color:\"#fff\",cursor:\"pointer\",fontSize:\"11px\",padding:0}),onMousedown:a[0]||(a[0]=v(()=>{},[\"stop\"])),onClick:v(t=>f.value=f.value===e.noteId?null:e.noteId,[\"stop\"])},\" 💬 \",44,Aa),f.value===e.noteId?(n(),l(\"div\",{key:0,style:h({position:\"absolute\",left:I(e).iconLeft-I(e).zoneLeft+\"px\",top:`${I(e).iconTop-I(e).zoneTop+w.value+4}px`,minWidth:\"120px\",padding:\"6px\",borderRadius:\"8px\",background:\"#fff\",border:\"1px solid #e5e7eb\",boxShadow:\"0 4px 12px rgba(0,0,0,0.12)\",zIndex:30}),onMousedown:a[1]||(a[1]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",style:{display:\"block\",width:\"100%\",padding:\"6px 8px\",\"font-size\":\"12px\",border:\"none\",\"border-radius\":\"4px\",background:\"transparent\",color:\"#334155\",cursor:\"pointer\",\"text-align\":\"left\"},onClick:t=>function(e){r.value?.requestEditNote(e.noteId,e)}(e)},\" 编辑 \",8,Na),c(\"button\",{type:\"button\",style:{display:\"block\",width:\"100%\",padding:\"6px 8px\",\"font-size\":\"12px\",border:\"none\",\"border-radius\":\"4px\",background:\"transparent\",color:\"#dc2626\",cursor:\"pointer\",\"text-align\":\"left\"},onClick:t=>{return a=e.noteId,r.value?.requestDeleteNote(a),void(f.value=null);var a}},\" 删除 \",8,Va)],36)):b(\"\",!0)],44,Ga)):b(\"\",!0)],64))),128))])):b(\"\",!0)}}),Ea={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\"}},Ra=[\"title\",\"onClick\"],Ua=[\"onClick\"],Fa=/* @__PURE__ */o({__name:\"BookmarkMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const o=e,{provides:r}=S(Gt.id),d=a([]),g=a(null),f=a(null);function P(){const e=r.value;e&&(d.value=e.listBookmarks().filter(e=>e.anchor.chapterId===o.chapterId&&e.anchor.localPageIndex===o.localPageIndex))}s(r,e=>{if(e)return P(),e.onBookmarksChange(P)},{immediate:!0});let w=null;s(g,e=>{w&&(document.removeEventListener(\"mousedown\",w),w=null),e&&(w=e=>{f.value?.contains(e.target)||(g.value=null)},document.addEventListener(\"mousedown\",w))}),i(()=>{w&&document.removeEventListener(\"mousedown\",w)});const y=t(()=>o.ui?.iconSize??16);function I(e){const{left:t,top:a}=function(e){const t=o.cssPageWidth/o.pdfPageWidth,a=o.cssPageHeight/o.pdfPageHeight,s=e.anchor.rectsPdfCoord?.length?e.anchor.rectsPdfCoord:[e.anchor.rectPdfCoord];return Ta({markerPdf:e.anchor.markerAnchor??{x:e.anchor.rectPdfCoord.origin.x+e.anchor.rectPdfCoord.size.width,y:e.anchor.rectPdfCoord.origin.y+e.anchor.rectPdfCoord.size.height},lineRects:s,sx:t,sy:a,cssPageWidth:o.cssPageWidth,iconSize:y.value})}(e);return{position:\"absolute\",left:`${Math.max(0,t-6)}px`,top:`${Math.max(0,a-6)}px`,width:`${y.value+12}px`,height:`${y.value+12}px`,pointerEvents:\"auto\",zIndex:20}}return(t,a)=>m(r)&&d.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(n(),l(\"div\",Ea,[(n(!0),l(u,null,p(d.value,e=>(n(),l(\"div\",{key:e.id,style:h(I(e)),onMousedown:a[1]||(a[1]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",title:e.label,style:h({position:\"absolute\",left:\"6px\",top:\"6px\",width:`${y.value}px`,height:`${y.value}px`,border:\"none\",borderRadius:\"4px\",background:\"#3b82f6\",color:\"#fff\",cursor:\"pointer\",boxShadow:\"0 2px 6px rgba(37, 99, 235, 0.35)\",fontSize:\"11px\",padding:0}),onClick:v(t=>g.value=g.value===e.id?null:e.id,[\"stop\"])},\" 🔖 \",12,Ra),g.value===e.id?(n(),l(\"div\",{key:0,ref_for:!0,ref_key:\"deleteMenuRef\",ref:f,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:a[0]||(a[0]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",style:{width:\"100%\",padding:\"6px 8px\",\"font-size\":\"12px\",border:\"none\",\"border-radius\":\"4px\",background:\"transparent\",color:\"#dc2626\",cursor:\"pointer\",\"text-align\":\"left\"},onClick:t=>async function(e){const t=r.value;if(!t)return;await t.requestRemoveBookmark(e)&&(g.value=null)}(e.id)},\" 删除书签 \",8,Ua)],512)):b(\"\",!0)],36))),128))])):b(\"\",!0)}});function Wa(e){return e.chapterId}function qa(e,t){e.wait(t,()=>{})}const Ha=/* @__PURE__ */o({__name:\"ChapterPageSurface\",props:{item:{},features:{},showNoteMarkers:{type:Boolean},showBookmarkMarkers:{type:Boolean},showRedactionLayer:{type:Boolean},noteMarkerUi:{},bookmarkMarkerUi:{},buildSelectionMenu:{type:Function},createNote:{},annotationSelectionMenu:{},redactionSelectionMenu:{},renderPageOverlay:{type:Function}},setup(e){const a=e,i=t(()=>Wa(a.item));!function(e){const{provides:t}=S(W.id);s([t,e],([e,t])=>{e&&t&&e.isDocumentOpen(t)&&e.setActiveDocument(t)},{immediate:!0})}(i);const{provides:o}=S(W.id),{provides:r}=S(Y.id),l=t(()=>o.value?.getDocument(i.value)?.pages[a.item.localPageIndex]);function h(e,t){const s=a.createNote.value;if(s)return a=>{const i={position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:a.placement?.suggestTop?-40:a.rect.size.height+8};return I(\"div\",a.menuWrapperProps,[I(\"div\",{style:i},I(\"button\",{type:\"button\",style:{padding:\"6px 10px\",fontSize:\"12px\",border:\"1px solid #e2e8f0\",borderRadius:\"6px\",background:\"#fff\",cursor:\"pointer\"},onClick:()=>{if(!r.value)return;const a=r.value.getHighlightRectsForPage(e.localPageIndex,t);qa(r.value.getSelectedText(t),t=>{s(function(e,t,a){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageIndex:e.globalPageIndex,globalPageNumber:e.globalPageNumber,rectsPdfCoord:t,selectedText:a}}(e,a,t.join(\"\\n\")))})}},\"添加附注\"))])}}const d=t(()=>{const e=a.buildSelectionMenu,t={item:a.item,defaultMenu:h(a.item,i.value),createNote:a.createNote.value};if(e){const a=e(t);if(a)return a}return t.defaultMenu}),c=t(()=>a.renderPageOverlay?.(a.item));return(t,a)=>e.item.isPlaceholder?b(\"\",!0):(n(),f(m(le),{key:0,\"document-id\":i.value},{default:P(()=>[w(m(de),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex,style:{backgroundColor:\"#fff\"}},{default:P(()=>[w(m(he),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex},{default:P(()=>[w(m(pa),{\"chapter-id\":i.value,\"local-page-index\":e.item.localPageIndex},null,8,[\"chapter-id\",\"local-page-index\"]),w(m(ce),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex,\"selection-menu\":d.value},null,8,[\"document-id\",\"page-index\",\"selection-menu\"]),e.showRedactionLayer?(n(),f(m(pe),{key:0,\"document-id\":i.value,\"page-index\":e.item.localPageIndex,\"selection-menu\":e.redactionSelectionMenu},null,8,[\"document-id\",\"page-index\",\"selection-menu\"])):b(\"\",!0),w(m(ue),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex,\"selection-menu\":e.annotationSelectionMenu},null,8,[\"document-id\",\"page-index\",\"selection-menu\"]),e.showBookmarkMarkers&&l.value?(n(),f(Fa,{key:1,\"chapter-id\":i.value,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":l.value.size.width,\"pdf-page-height\":l.value.size.height,\"css-page-width\":e.item.width,\"css-page-height\":e.item.height,ui:e.bookmarkMarkerUi},null,8,[\"chapter-id\",\"local-page-index\",\"pdf-page-width\",\"pdf-page-height\",\"css-page-width\",\"css-page-height\",\"ui\"])):b(\"\",!0),c.value?(n(),f(y(c.value),{key:2})):b(\"\",!0),e.showNoteMarkers&&l.value?(n(),f(_a,{key:3,\"chapter-id\":i.value,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":l.value.size.width,\"pdf-page-height\":l.value.size.height,\"css-page-width\":e.item.width,\"css-page-height\":e.item.height,ui:e.noteMarkerUi},null,8,[\"chapter-id\",\"local-page-index\",\"pdf-page-width\",\"pdf-page-height\",\"css-page-width\",\"css-page-height\",\"ui\"])):b(\"\",!0),g(t.$slots,\"default\")]),_:3},8,[\"document-id\",\"page-index\"])]),_:3},8,[\"document-id\",\"page-index\"])]),_:3},8,[\"document-id\"]))}});const Ba=/* @__PURE__ */o({__name:\"HoverBookmarkLayer\",props:{item:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},hoverUi:{}},setup(e){const o=e,r=t(()=>Wa(o.item)),{provides:d}=S(Y.id),{provides:u}=S(Gt.id),p=a(null),g=a(null),f=a(null),P=a(null),w=t(()=>o.hoverUi?.iconSize??16),y=t(()=>P.value??f.value);let I=null,C=0;function M(){const e=d.value;if(!e)return;const t=e.forDocument(r.value).getState().geometry[o.item.localPageIndex];t&&(g.value=t)}s([d,r,()=>o.item.localPageIndex],([e])=>{if(I?.(),I=null,cancelAnimationFrame(C),g.value=null,!e)return;const t=e.forDocument(r.value);I=t.onSelectionChange(M);let a=!1;const s=()=>{if(!a){try{if(M(),t.getState().geometry[o.item.localPageIndex])return}catch{}C=requestAnimationFrame(s)}};return s(),()=>{a=!0,cancelAnimationFrame(C),I?.(),I=null}},{immediate:!0});let x=null;s([g,()=>o.pdfPageWidth,P,d],()=>{x&&(document.removeEventListener(\"mousemove\",x),x=null),g.value&&o.pdfPageWidth&&(x=e=>{if(P.value)return;const t=d.value;if(t)try{if(t.forDocument(r.value).getState().selecting)return void(f.value=null)}catch{}const a=p.value;if(!a)return;const s=a.getBoundingClientRect();if(e.clientX<s.left||e.clientX>s.right||e.clientY<s.top||e.clientY>s.bottom)return void(f.value=null);const i=function(e,t){const a=K(e,t);if(a<0)return null;const s=X(e,a);if(!s)return null;const i=Q(e,s.from,s.to);return 0===i.length?null:{lineRects:i,charFrom:s.from,charTo:s.to}}(g.value,{x:(e.clientX-s.left)/(o.cssPageWidth/o.pdfPageWidth),y:(e.clientY-s.top)/(o.cssPageHeight/o.pdfPageHeight)});f.value=i?.lineRects??null},document.addEventListener(\"mousemove\",x))},{immediate:!0}),i(()=>{x&&document.removeEventListener(\"mousemove\",x),cancelAnimationFrame(C),I?.()});const k=t(()=>{const e=y.value;return e?.length?Tt(o.item.chapterId,o.item.localPageIndex,e,{globalPageIndex:o.item.globalPageIndex,globalPageNumber:o.item.globalPageNumber}):null}),L=t(()=>{const e=k.value,t=u.value;return!(!e||!t)&&t.listBookmarks().some(t=>zt(t.anchor,e))});function $(){const e=u.value,t=k.value;e&&t&&!L.value&&(e.addBookmark({label:`书签 ${/* @__PURE__ */(new Date).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"})}`,anchor:t}),f.value=null,P.value=null)}const z=t(()=>{const e=y.value,t=e?.[e.length-1];if(!t||!o.pdfPageWidth)return null;const a=o.cssPageWidth/o.pdfPageWidth,s=o.cssPageHeight/o.pdfPageHeight,i=w.value;return{iconLeft:Math.min((t.origin.x+t.size.width)*a+6,Math.max(0,o.cssPageWidth-i-2)),iconTop:t.origin.y*s+(t.size.height*s-i)/2,zoneLeft:Math.max(0,(t.origin.x+t.size.width)*a-4),zoneTop:Math.max(0,t.origin.y*s-4),size:i}});return(t,a)=>m(u)&&e.pdfPageWidth&&e.pdfPageHeight?(n(),l(\"div\",{key:0,ref_key:\"rootRef\",ref:p,style:{position:\"absolute\",inset:\"0\",zIndex:14,pointerEvents:\"none\"}},[z.value&&y.value&&!L.value?(n(),l(\"div\",{key:0,style:h({position:\"absolute\",left:`${z.value.zoneLeft}px`,top:`${z.value.zoneTop}px`,width:`${z.value.size+20}px`,height:`${(y.value[y.value.length-1]?.size.height??0)*(e.cssPageHeight/e.pdfPageHeight)+z.value.size+12}px`,pointerEvents:\"auto\"}),onMouseenter:a[0]||(a[0]=e=>P.value=y.value),onMouseleave:a[1]||(a[1]=e=>P.value=null)},[c(\"button\",{type:\"button\",title:\"添加书签\",style:h({position:\"absolute\",left:z.value.iconLeft-z.value.zoneLeft+\"px\",top:z.value.iconTop-z.value.zoneTop+\"px\",width:`${z.value.size}px`,height:`${z.value.size}px`,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"#3b82f6\",color:\"#fff\",border:\"none\",borderRadius:\"4px\",boxShadow:\"0 2px 8px rgba(37, 99, 235, 0.45)\",fontSize:\"12px\",padding:0}),onClick:v($,[\"stop\"])},\" 🔖 \",4)],36)):b(\"\",!0)],512)):b(\"\",!0)}}),ja={key:0,width:\"24\",height:\"24\",viewBox:\"0 0 28 28\",fill:\"none\",\"aria-hidden\":\"\"},Za={key:0,x:\"5\",y:\"4\",width:\"18\",height:\"20\",rx:\"3\",fill:\"#fde047\"},Ya={key:1,d:\"M6 22h16\",stroke:\"#dc2626\",\"stroke-width\":\"2.2\",\"stroke-linecap\":\"round\"},Ka={key:2,d:\"M6 22c2-2 3-2 5 0s3 2 5 0 3-2 5 0\",stroke:\"#dc2626\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",fill:\"none\"},Xa={key:3,d:\"M5 14h18\",stroke:\"#dc2626\",\"stroke-width\":\"2.2\",\"stroke-linecap\":\"round\"},Qa={key:1,width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"\"},Ja=/* @__PURE__ */o({__name:\"SelectionToolbarIcons\",props:{kind:{}},setup:e=>(t,a)=>\"note\"!==e.kind?(n(),l(\"svg\",ja,[\"highlight\"===e.kind?(n(),l(\"rect\",Za)):b(\"\",!0),a[0]||(a[0]=c(\"text\",{x:\"14\",y:\"19\",\"text-anchor\":\"middle\",\"font-size\":\"15\",\"font-weight\":\"700\",\"font-family\":\"system-ui, -apple-system, sans-serif\",fill:\"#0f172a\"},\" A \",-1)),\"underline\"===e.kind?(n(),l(\"path\",Ya)):\"squiggly\"===e.kind?(n(),l(\"path\",Ka)):\"strikeout\"===e.kind?(n(),l(\"path\",Xa)):b(\"\",!0)])):(n(),l(\"svg\",Qa,[...a[1]||(a[1]=[c(\"path\",{d:\"M8 3h8l4 4v14H8V3z\",fill:\"#fef3c7\",stroke:\"#d97706\",\"stroke-width\":\"1.2\",\"stroke-linejoin\":\"round\"},null,-1),c(\"path\",{d:\"M16 3v4h4\",stroke:\"#d97706\",\"stroke-width\":\"1.2\"},null,-1),c(\"path\",{d:\"M10 12h6M10 16h4\",stroke:\"#92400e\",\"stroke-width\":\"1.2\",\"stroke-linecap\":\"round\"},null,-1)])]))}),es=[\"title\",\"aria-label\",\"onMouseenter\",\"onClick\"],ts=[\"title\",\"onMouseenter\",\"onClick\"],as={style:{\"font-size\":\"11px\",\"font-weight\":\"600\"}},ss=/* @__PURE__ */o({__name:\"SelectionToolbarCard\",props:{placementAbove:{type:Boolean},anchorHeight:{},hiddenBuiltinActions:{},extraActions:{}},emits:[\"action\"],setup(e,{emit:s}){const i=e,o=s,r=[{id:\"highlight\",label:\"高亮背景\"},{id:\"underline\",label:\"下划线\"},{id:\"squiggly\",label:\"波浪线\"},{id:\"strikeout\",label:\"删除线\"},{id:\"note\",label:\"添加笔记\"}],d=t(()=>new Set(i.hiddenBuiltinActions??[])),g=t(()=>r.filter(e=>\"note\"!==e.id&&!d.value.has(e.id))),f=t(()=>!d.value.has(\"note\")),m=t(()=>[...i.extraActions??[]].sort((e,t)=>(e.order??0)-(t.order??0))),v=a(null),P=t(()=>({position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:i.placementAbove?void 0:`${i.anchorHeight+10}px`,bottom:i.placementAbove?`${i.anchorHeight+10}px`:void 0,display:\"flex\",alignItems:\"center\",gap:\"2px\",padding:\"4px 6px\",borderRadius:\"12px\",background:\"rgba(255, 255, 255, 0.96)\",border:\"1px solid rgba(15, 23, 42, 0.06)\",boxShadow:\"0 2px 8px rgba(15, 23, 42, 0.08), 0 12px 32px rgba(15, 23, 42, 0.1)\",backdropFilter:\"blur(10px)\",WebkitBackdropFilter:\"blur(10px)\"}));function y(e,t=!1){return{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"32px\",height:\"32px\",padding:0,margin:0,border:\"none\",borderRadius:\"8px\",background:v.value===e?t?\"#fffbeb\":\"#f1f5f9\":\"transparent\",color:t?\"#b45309\":\"#334155\",cursor:\"pointer\",flexShrink:0,WebkitAppearance:\"none\",appearance:\"none\"}}const I={width:\"1px\",height:\"20px\",margin:\"0 4px\",background:\"rgba(15, 23, 42, 0.1)\",flexShrink:0};return(e,t)=>(n(),l(\"div\",{role:\"toolbar\",\"aria-label\":\"选区工具\",style:h(P.value)},[(n(!0),l(u,null,p(g.value,e=>(n(),l(\"button\",{key:e.id,type:\"button\",title:e.label,\"aria-label\":e.label,style:h(y(e.id)),onMouseenter:t=>v.value=e.id,onMouseleave:t[0]||(t[0]=e=>v.value=null),onClick:t=>o(\"action\",e.id)},[w(Ja,{kind:e.id},null,8,[\"kind\"])],44,es))),128)),(n(!0),l(u,null,p(m.value,e=>(n(),l(\"button\",{key:e.id,type:\"button\",title:e.label,style:h(y(e.id)),onMouseenter:t=>v.value=e.id,onMouseleave:t[1]||(t[1]=e=>v.value=null),onClick:t=>o(\"action\",e.id)},[c(\"span\",as,C(e.label.slice(0,2)),1)],44,ts))),128)),f.value?(n(),l(u,{key:0},[c(\"span\",{style:I,\"aria-hidden\":\"\"}),c(\"button\",{type:\"button\",title:\"添加笔记\",\"aria-label\":\"添加笔记\",style:h(y(\"note\",!0)),onMouseenter:t[2]||(t[2]=e=>v.value=\"note\"),onMouseleave:t[3]||(t[3]=e=>v.value=null),onClick:t[4]||(t[4]=e=>o(\"action\",\"note\"))},[w(Ja,{kind:\"note\"})],36)],64)):b(\"\",!0)],4))}}),is={highlight:\"highlight\",underline:\"underline\",squiggly:\"squiggly\",strikeout:\"strikeout\"};const os=/* @__PURE__ */o({__name:\"PdfChapterViewport\",props:{className:{},features:{},buildSelectionMenu:{},annotationSelectionMenu:{},redactionSelectionMenu:{},showNoteMarkers:{type:Boolean,default:!0},showBookmarkMarkers:{type:Boolean,default:!0},showRedactionLayer:{type:Boolean,default:!1},renderPageOverlay:{},onExtraSelectionAction:{}},setup(e){const a=e,s=t(()=>a.features),{hostRef:i}=aa(s),o=function(){const{registry:e}=M();return t(()=>{const t=e.value?.getPlugin(lt.id)?.provides?.();return t?e=>t.createNoteFromSelection(e):null})}(),r=function(){const{registry:e}=M();return t(()=>!!e.value?.getPlugin(lt.id))}(),c=function(){const{registry:e}=M();return t(()=>!!e.value?.getPlugin(Gt.id))}(),u=t(()=>a.showNoteMarkers&&r.value&&!1!==a.features?.notes?.enabled),p=t(()=>a.showBookmarkMarkers&&c.value&&!1!==a.features?.bookmarks?.enabled),f=t(()=>c.value&&!1!==a.features?.bookmarks?.enabled),v=function(e,a){const s=t(()=>e()?.selectionToolbar),i=t(()=>!1!==e()?.markup?.enabled),o=t(()=>!1!==e()?.notes?.enabled),{provides:r}=S(Y.id),{provides:n}=S(D.id),{provides:l}=S(lt.id);return t(()=>{if(!1!==s.value?.enabled&&(i.value||o.value||s.value?.extraActions?.length))return t=>{const h=Wa(t.item);return d=>I(\"div\",d.menuWrapperProps,I(ss,{placementAbove:!!d.placement?.suggestTop,anchorHeight:d.rect.size.height,hiddenBuiltinActions:s.value?.hiddenBuiltinActions,extraActions:s.value?.extraActions,onAction:s=>{if(\"highlight\"!==s&&\"underline\"!==s&&\"squiggly\"!==s&&\"strikeout\"!==s){if(\"note\"===s){if(!r.value||!l.value||!o.value)return;const e=r.value.getHighlightRectsForPage(t.item.localPageIndex,h);return void qa(r.value.getSelectedText(h),a=>{l.value?.requestCreateFromSelection({chapterId:t.item.chapterId,localPageIndex:t.item.localPageIndex,globalPageIndex:t.item.globalPageIndex,globalPageNumber:t.item.globalPageNumber,rectsPdfCoord:e,selectedText:a.join(\"\\n\")})})}a?.onExtraAction?.(s,t)}else{if(!r.value||!n.value||!i.value)return;ye(h,is[s],n.value,r.value,e()?.markup?.styles)}}}))}})}(()=>a.features,{onExtraAction:a.onExtraSelectionAction}),b=t(()=>{if(a.buildSelectionMenu||v.value)return e=>{const t=v.value?v.value(e):e.defaultMenu;return a.buildSelectionMenu?a.buildSelectionMenu({...e,defaultMenu:t}):t}}),{provides:y}=S(W.id);function C(e){const t=[];if(f.value){const s=function(e){const t=Wa(e),s=y.value?.getDocument(t)?.pages[e.localPageIndex];return e.isPlaceholder||!s?null:I(Ba,{item:e,pdfPageWidth:s.size.width,pdfPageHeight:s.size.height,cssPageWidth:e.width,cssPageHeight:e.height,hoverUi:a.features?.bookmarks?.hover})}(e);s&&t.push(s)}const s=a.renderPageOverlay?.(e);if(s&&t.push(s),t.length)return I(\"div\",t)}return(t,a)=>(n(),l(\"div\",{ref_key:\"hostRef\",ref:i,class:d(e.className),style:h(e.className?void 0:m(me))},[w(m(ua),{class:d(e.className)},{page:P(({item:t})=>[w(Ha,{item:t,features:e.features,\"show-note-markers\":u.value,\"show-bookmark-markers\":p.value,\"show-redaction-layer\":e.showRedactionLayer,\"note-marker-ui\":e.features?.notes?.marker,\"bookmark-marker-ui\":e.features?.bookmarks?.marker,\"build-selection-menu\":b.value,\"create-note\":m(o),\"annotation-selection-menu\":e.annotationSelectionMenu,\"redaction-selection-menu\":e.redactionSelectionMenu,\"render-page-overlay\":C},null,8,[\"item\",\"features\",\"show-note-markers\",\"show-bookmark-markers\",\"show-redaction-layer\",\"note-marker-ui\",\"bookmark-marker-ui\",\"build-selection-menu\",\"create-note\",\"annotation-selection-menu\",\"redaction-selection-menu\"])]),_:1},8,[\"class\"]),g(t.$slots,\"default\")],6))}}),rs=/* @__PURE__ */o({__name:\"ChapterPdfViewer\",props:{engine:{},options:{},editorOptions:{},features:{},className:{},viewportClassName:{},onExtraSelectionAction:{type:Function}},setup(e){const a=e,s=t(()=>function(e){if(e.options)return Yt(e.options);if(!e.editorOptions)throw new Error(\"ChapterPdfViewer: 请传入 `options`(推荐),或同时传入 `editorOptions` 与 `features`\");const t=Ce(e.features),{plugins:a}=Ht({...e.editorOptions,features:t});return{plugins:a,features:t,editorOptions:{...e.editorOptions,features:t}}}({engine:a.engine,options:a.options,editorOptions:a.editorOptions,features:a.features}));return(t,a)=>(n(),l(\"div\",{class:d(e.className),style:h(e.className?void 0:m(me))},[w(m(x),{engine:e.engine,plugins:s.value.plugins},{default:P(({pluginsReady:a})=>[a?(n(),f(os,{key:0,class:d(e.viewportClassName),features:s.value.features,\"on-extra-selection-action\":e.onExtraSelectionAction},null,8,[\"class\",\"features\",\"on-extra-selection-action\"])):b(\"\",!0),a?g(t.$slots,\"default\",{key:1}):b(\"\",!0)]),_:3},8,[\"engine\",\"plugins\"])],6))}}),ns={class:\"chapter-tree-row\"},ls=[\"aria-expanded\"],hs={key:1,class:\"chapter-tree-toggle-spacer\",\"aria-hidden\":\"\"},ds={class:\"chapter-tree-label\"},cs={class:\"chapter-tree-meta\"},us={key:0},ps=(e,t)=>{const a=e.__vccOpts||e;for(const[s,i]of t)a[s]=i;return a},gs=/* @__PURE__ */ps(/* @__PURE__ */o({__name:\"ChapterTreeItem\",props:{node:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup(e){const s={idle:\"未加载\",loading:\"加载中\",loaded:\"已加载\",closed:\"已卸载\",error:\"失败\",\"password-required\":\"需密码\"},i=e,o=t(()=>i.node.children??[]),r=t(()=>o.value.length>0),h=a(i.depth<1),u=t(()=>i.activeChapterId===i.node.id),p=t(()=>i.chapterStatus[i.node.id]??\"idle\"),g=t(()=>!r.value);return(t,a)=>(n(),l(\"li\",null,[c(\"div\",ns,[r.value?(n(),l(\"button\",{key:0,type:\"button\",class:\"chapter-tree-toggle\",\"aria-expanded\":h.value,onClick:a[0]||(a[0]=e=>h.value=!h.value)},C(h.value?\"▼\":\"▶\"),9,ls)):(n(),l(\"span\",hs)),c(\"button\",{type:\"button\",class:d([\"chapter-tree-btn\",{\"chapter-tree-btn-active\":u.value}]),onClick:a[1]||(a[1]=a=>t.$emit(\"select\",e.node.id))},[c(\"div\",ds,C(e.node.title),1),c(\"div\",cs,[c(\"span\",null,\" 第 \"+C(e.node.startPage)+C(e.node.endPage!==e.node.startPage?`–${e.node.endPage}`:\"\")+\" 页 \",1),g.value?(n(),l(\"span\",us,C(s[p.value]),1)):b(\"\",!0)])],2)]),r.value&&h.value?(n(),f(fs,{key:0,nodes:o.value,depth:e.depth+1,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:a[2]||(a[2]=e=>t.$emit(\"select\",e))},null,8,[\"nodes\",\"depth\",\"active-chapter-id\",\"chapter-status\"])):b(\"\",!0)]))}}),[[\"__scopeId\",\"data-v-315bbf7a\"]]),fs=/* @__PURE__ */ps(/* @__PURE__ */o({__name:\"ChapterTreeList\",props:{nodes:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup:e=>(t,a)=>(n(),l(\"ul\",{class:\"chapter-tree-list\",style:h({marginLeft:e.depth>0?\"12px\":\"0\"})},[(n(!0),l(u,null,p(e.nodes,s=>(n(),f(gs,{key:s.id,node:s,depth:e.depth,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:a[0]||(a[0]=e=>t.$emit(\"select\",e))},null,8,[\"node\",\"depth\",\"active-chapter-id\",\"chapter-status\"]))),128))],4))}),[[\"__scopeId\",\"data-v-eb742e4f\"]]),ms={class:\"chapter-tree\"},vs={class:\"chapter-tree-nav\",\"aria-label\":\"章节目录\"},bs=/* @__PURE__ */ps(/* @__PURE__ */o({__name:\"ChapterTreePanel\",props:{tree:{},activeChapterId:{}},emits:[\"active-chapter-change\"],setup(e,{emit:t}){const o=e,r=t,{provides:h}=S(We.id),{provides:d}=S(De.id),u=a({});function p(){if(!d.value)return;const e={},t=a=>{for(const s of a)e[s.id]=d.value.getChapterStatus(s.id),s.children?.length&&t(s.children)};t(o.tree),u.value=e}s([d,()=>o.tree],p,{immediate:!0});let g=null;function f(e){r(\"active-chapter-change\",e),h.value?.scrollToChapter(e)}return s(d,e=>{g?.(),g=e?e.onChapterStatusChange(p):null},{immediate:!0}),i(()=>g?.()),(t,a)=>(n(),l(\"aside\",ms,[a[0]||(a[0]=c(\"h2\",{class:\"chapter-tree-title\"},\"章节目录\",-1)),c(\"nav\",vs,[w(fs,{nodes:e.tree,depth:0,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":u.value,onSelect:f},null,8,[\"nodes\",\"active-chapter-id\",\"chapter-status\"])])]))}}),[[\"__scopeId\",\"data-v-d7a0838d\"]]);export{Me as CallbackPasswordProvider,rs as ChapterPdfViewer,bs as ChapterTreePanel,qt as DEFAULT_CHAPTER_VIEWER_CONFIG,Wt as DEFAULT_CHAPTER_VIEWER_FEATURES,k as EmbedPDF,os as PdfChapterViewport,ye as applySelectionMarkup,Tt as buildParagraphBookmarkAnchor,Yt as createChapterViewerBundle,Ht as createChapterViewerEditor,Kt as createChapterViewerEditorOptions,Ut as createPdfChapterEditor,L as useCapability,fe as usePdfiumEngine};\n//# sourceMappingURL=index.js.map\n","<script setup lang=\"ts\">\nimport {\n ChapterPdfViewer as ChapterPdfViewerCore,\n type ChapterPdfViewerProps,\n} from '@embedpdf-editor/editor-engine/vue';\n\ndefineProps<ChapterPdfViewerProps>();\n</script>\n\n<template>\n <ChapterPdfViewerCore v-bind=\"$props\" />\n</template>\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"],"names":["O","e","t","a","s","r","n","h","$","G","i","l","A","o","V","_","E","W","N","_a","z","re","R","q","H","B","j","Z","J","T","ee","te","ae","se","ie","oe","ne","_e","M","S","U","F","d","c","u","p","g","f","m","ge","v","b","Y","I","le","P","w","de","he","ce","pe","ue","y","K","X","Q","C","D","_b","_c","x","_openBlock","_createBlock","_unref","$props","e2","e3","e4","_ChapterManagerPlugin","st"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../editor-engine/dist/vue/index.js","../src/ChapterPdfViewer.vue","../../plugin-chapter-manager/dist/index.js","../../editor-engine/dist/index.js"],"sourcesContent":["import{isRef as e,computed as t,ref as a,watch as s,onBeforeUnmount as i,defineComponent as o,onMounted as r,openBlock as n,createElementBlock as l,normalizeStyle as h,normalizeClass as d,createElementVNode as c,Fragment as u,renderList as p,renderSlot as g,createBlock as f,unref as m,withModifiers as v,createCommentVNode as b,withCtx as P,createVNode as w,resolveDynamicComponent as y,h as C,toDisplayString as I}from\"vue\";import{useRegistry as M,useCapability as S,EmbedPDF as x}from\"@embedpdf/core/vue\";import{EmbedPDF as k,useCapability as L,useRegistry as $}from\"@embedpdf/core/vue\";import{LockModeType as z,ANNOTATION_PLUGIN_ID as T,AnnotationPluginPackage as D,AnnotationPlugin as O}from\"@embedpdf/plugin-annotation\";import{PdfAnnotationSubtype as G,uuidV4 as N,PdfBlendMode as A,PdfErrorCode as V}from\"@embedpdf/models\";import{BasePlugin as _,createBehaviorEmitter as E,createEmitter as R,createPluginRegistration as F,setDefaultScale as U,setScale as q}from\"@embedpdf/core\";import{DocumentManagerPlugin as W,DocumentManagerPluginPackage as H}from\"@embedpdf/plugin-document-manager\";import{InteractionManagerPluginPackage as B}from\"@embedpdf/plugin-interaction-manager\";import{RenderPluginPackage as j}from\"@embedpdf/plugin-render\";import{RotatePluginPackage as Z}from\"@embedpdf/plugin-rotate\";import{SelectionPluginPackage as Y,SelectionPlugin as K,glyphAt as X,expandToLineBoundary as Q,rectsWithinSlice as J}from\"@embedpdf/plugin-selection\";import{HistoryPluginPackage as ee}from\"@embedpdf/plugin-history\";import{RedactionPluginPackage as te}from\"@embedpdf/plugin-redaction\";import{FormPluginPackage as ae}from\"@embedpdf/plugin-form\";import{StampPluginPackage as se}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as ie}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as oe}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as re}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as ne,UIPluginPackage as le}from\"@embedpdf/plugin-ui\";import{GlobalPointerProvider as he,PagePointerProvider as de}from\"@embedpdf/plugin-interaction-manager/vue\";import{Rotate as ce}from\"@embedpdf/plugin-rotate/vue\";import{SelectionLayer as ue}from\"@embedpdf/plugin-selection/vue\";import{AnnotationLayer as pe}from\"@embedpdf/plugin-annotation/vue\";import{RedactionLayer as ge}from\"@embedpdf/plugin-redaction/vue\";import{RenderLayer as fe}from\"@embedpdf/plugin-render/vue\";import{usePdfiumEngine as me}from\"@embedpdf/engines/vue\";const ve={position:\"relative\",height:\"100%\",width:\"100%\"},be={highlight:{offsetY:0},underline:{offsetY:2.5},squiggly:{offsetY:0},strikeout:{offsetY:0}},Pe={highlight:G.HIGHLIGHT,underline:G.UNDERLINE,squiggly:G.SQUIGGLY,strikeout:G.STRIKEOUT};function we(e,t){return 0===t?e:e.map(e=>({origin:{x:e.origin.x,y:e.origin.y+t},size:{...e.size}}))}function ye(e){let t=1/0,a=1/0,s=-1/0,i=-1/0;for(const o of e)t=Math.min(t,o.origin.x),a=Math.min(a,o.origin.y),s=Math.max(s,o.origin.x+o.size.width),i=Math.max(i,o.origin.y+o.size.height);return{origin:{x:t,y:a},size:{width:s-t,height:i-a}}}function Ce(e,t,a,s,i){const o=a.forDocument(e),r=s.forDocument(e);if(!o||!r)return!1;const n=\"highlight\"===t?\"highlight\":\"underline\"===t?\"underline\":\"squiggly\"===t?\"squiggly\":\"strikeout\",l=a.getTool(n);if(!l)return!1;const h=l.defaults,d=function(e,t){return{...be[e],...null==t?void 0:t[e]}}(t,i),c=r.getFormattedSelection();if(0===c.length)return!1;o.setLocked({type:z.Exclude,categories:[\"markup\",\"shape\"]});for(const u of c){const e=N(),a=d.color??h.color??h.strokeColor,s=d.opacity??h.opacity,i=d.thickness??h.strokeWidth,r=d.offsetY??0,n=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?we(u.segmentRects,r):u.segmentRects,l=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?ye(n):u.rect;o.createAnnotation(u.pageIndex,{id:e,created:/* @__PURE__ */new Date,flags:[\"print\"],type:Pe[t],...\"highlight\"===t?{blendMode:A.Multiply}:{},strokeColor:a,opacity:s,...null!=i?{strokeWidth:i}:{},pageIndex:u.pageIndex,rect:l,segmentRects:n})}return r.clear(),!0}function Ie(e,t){const a=e;return!1===e?{...t,enabled:!1}:!0===e||void 0===e?{...t,enabled:t.enabled??!0}:{...t,...a,enabled:!1!==(null==a?void 0:a.enabled)}}function Me(e){const t=Ie(null==e?void 0:e.markup,{enabled:!0}),a=Ie(null==e?void 0:e.bookmarks,{enabled:!0}),s=Ie(null==e?void 0:e.notes,{enabled:!0});return{markup:t,bookmarks:a,notes:s,zoom:Ie(null==e?void 0:e.zoom,{enabled:!0,min:.5,max:3,initial:1}),selectionToolbar:Ie(void 0===(null==e?void 0:e.selectionToolbar)?!1!==t.enabled||!1!==s.enabled:e.selectionToolbar,{enabled:!0})}}class Se{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}const xe=\"chapter-manager\",ke={id:xe,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 Le={kind:\"first-wins\"};function $e(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let ze=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function Te(e,t=Le){const a=function(e,t=Le){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,$e(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new ze(o)}const De=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),this.overlapStrategy=Le,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Le,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Te(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};De.id=\"chapter-manager\";let Oe=De;const Ge={manifest:ke,create:e=>new Oe(xe,e),reducer:e=>e,initialState:{}},Ne=\"chapter-scroll\",Ae={id:Ne,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 Ve={kind:\"first-wins\"};function _e(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let Ee=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function Re(e,t=Ve){const a=function(e,t=Ve){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,_e(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new Ee(o)}const Fe=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),this.overlapStrategy=Ve,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Ve,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Re(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Fe.id=\"chapter-manager\";let Ue=Fe;function qe(e,t){if(e===t)return!0;if(e.totalHeight!==t.totalHeight||e.totalWidth!==t.totalWidth||e.pageGap!==t.pageGap||e.items.length!==t.items.length)return!1;for(let a=0;a<e.items.length;a++){const s=e.items[a],i=t.items[a];if(s.globalPageIndex!==i.globalPageIndex||s.isPlaceholder!==i.isPlaceholder||s.chapterId!==i.chapterId||s.localPageIndex!==i.localPageIndex||s.offsetTop!==i.offsetTop||s.width!==i.width||s.height!==i.height)return!1}return!0}const We=class extends _{constructor(e,t){super(e,t),this.layoutChange$=E(void 0,qe),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(Ue.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()}),this.chapterManager.provides().onChapterStatusChange(e=>{\"loaded\"===e.status&&this.harvestChapterSizes(e.chapterId),\"loaded\"!==e.status&&\"closed\"!==e.status&&\"error\"!==e.status&&\"password-required\"!==e.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}isChapterPagePlaceholder(e){const t=this.chapterManager.provides().getChapterStatus(e);return\"error\"===t||\"password-required\"===t||\"loaded\"!==t}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(e.chapterId)||this.isChapterDocumentReady(e.chapterId))&&this.harvestChapterSizes(e.chapterId)}this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=this.isChapterPagePlaceholder(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};We.id=\"chapter-scroll\";let He=We;const Be={manifest:Ae,create:e=>new He(Ne,e),reducer:e=>e,initialState:{}},je=\"note\",Ze={id:je,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 Ye={kind:\"first-wins\"};function Ke(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let Xe=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function Qe(e,t=Ye){const a=function(e,t=Ye){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,Ke(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new Xe(o)}const Je=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Ye,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Qe(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Je.id=\"chapter-manager\";let et=Je;const tt={kind:\"first-wins\"};function at(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let st=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function it(e,t=tt){const a=function(e,t=tt){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,at(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new st(o)}const ot=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),this.overlapStrategy=tt,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??tt,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=it(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};ot.id=\"chapter-manager\";let rt=ot;function nt(e,t){if(e===t)return!0;if(e.totalHeight!==t.totalHeight||e.totalWidth!==t.totalWidth||e.pageGap!==t.pageGap||e.items.length!==t.items.length)return!1;for(let a=0;a<e.items.length;a++){const s=e.items[a],i=t.items[a];if(s.globalPageIndex!==i.globalPageIndex||s.isPlaceholder!==i.isPlaceholder||s.chapterId!==i.chapterId||s.localPageIndex!==i.localPageIndex||s.offsetTop!==i.offsetTop||s.width!==i.width||s.height!==i.height)return!1}return!0}const lt=class extends _{constructor(e,t){super(e,t),this.layoutChange$=E(void 0,nt),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(rt.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()}),this.chapterManager.provides().onChapterStatusChange(e=>{\"loaded\"===e.status&&this.harvestChapterSizes(e.chapterId),\"loaded\"!==e.status&&\"closed\"!==e.status&&\"error\"!==e.status&&\"password-required\"!==e.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}isChapterPagePlaceholder(e){const t=this.chapterManager.provides().getChapterStatus(e);return\"error\"===t||\"password-required\"===t||\"loaded\"!==t}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(e.chapterId)||this.isChapterDocumentReady(e.chapterId))&&this.harvestChapterSizes(e.chapterId)}this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=this.isChapterPagePlaceholder(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};lt.id=\"chapter-scroll\";let ht=lt;const dt=class e extends _{constructor(e,t){super(e,t),this.notesChange$=E([]),this.noteActivated$=R(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(ht.id),this.chapterManager=this.registry.getPlugin(et.id),this.documentManager=this.registry.getPlugin(W.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(a){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",a)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(a=>a.chapterId===e&&a.localPageIndex===t),listAllNotes:()=>this.listAll(),getNote:e=>this.notes.get(e)??null,deleteNote:e=>this.deleteNote(e),updateNoteContent:(e,t)=>this.updateNoteContent(e,t),scrollToNote:e=>this.scrollToNote(e),listNotesForChapter:e=>this.listNotesForChapter(e),replaceNotesForChapter:(e,t)=>this.replaceNotesForChapter(e,t),onNotesChange:this.notesChange$.on,onNoteActivated:this.noteActivated$.on}}registerNote(e){this.notes.set(e.noteId,e),this.notesChange$.emit(this.listAll())}requestEdit(e){const t=this.notes.get(e);t&&(this.config.callbacks.onRequestEditNote?this.config.callbacks.onRequestEditNote(e,t):this.activateNote(e))}activateNote(e){var t,a;const s=this.notes.get(e);s&&(null==(a=(t=this.config.callbacks).onActivateNote)||a.call(t,e,s),this.noteActivated$.emit({noteId:e,anchor:s}))}listAll(){return Array.from(this.notes.values())}listNotesForChapter(e){return this.listAll().filter(t=>t.chapterId===e)}replaceNotesForChapter(e,t){for(const[a,s]of this.notes.entries())s.chapterId===e&&this.notes.delete(a);for(const a of t)a.chapterId===e&&this.notes.set(a.noteId,a);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:ut(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:a,onCreateNote:s}=this.config.callbacks;return a?(a({draft:t,complete:async e=>{const a={...t,noteId:e};this.registerNote(a)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const a=this.buildDraft(t),s=this.config.callbacks.onCreateNote;if(!s)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let i=null;try{i=await s(a)}catch(r){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",r),null}if(!i)return null;const o={...a,noteId:i.noteId};return this.registerNote(o),o}async deleteNote(t){var a,s;if(this.notes.has(t)){try{await(null==(s=(a=this.config.callbacks).onDeleteNote)?void 0:s.call(a,t))}catch(i){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",i)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,a){var s,i;const o=this.notes.get(t);if(!o)return;const r={...o,content:a};try{await(null==(i=(s=this.config.callbacks).onUpdateNote)?void 0:i.call(s,r))}catch(n){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(t,r),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const a=this.notes.get(e);if(!a)return;const s=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(a.chapterId);(null==(t=this.documentManager.provides().getDocument(a.chapterId))?void 0:t.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(e){const t=this.chapterScroll.provides(),a=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const s=setTimeout(()=>{i(),a(null)},2500),i=t.onLayoutChange(t=>{const o=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);o&&(clearTimeout(s),i(),a(o))})})}};dt.id=\"note\";let ct=dt;function ut(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}const pt={manifest:Ze,create:e=>new ct(je,e),reducer:e=>e,initialState:{}},gt=\"paragraph-bookmark\",ft={id:gt,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};const mt={kind:\"first-wins\"};function vt(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let bt=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function Pt(e,t=mt){const a=function(e,t=mt){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,vt(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new bt(o)}const wt=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??mt,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Pt(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};wt.id=\"chapter-manager\";let yt=wt;const Ct={kind:\"first-wins\"};function It(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let Mt=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function St(e,t=Ct){const a=function(e,t=Ct){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,It(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new Mt(o)}const xt=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Ct,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=St(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};xt.id=\"chapter-manager\";let kt=xt;function Lt(e,t){if(e===t)return!0;if(e.totalHeight!==t.totalHeight||e.totalWidth!==t.totalWidth||e.pageGap!==t.pageGap||e.items.length!==t.items.length)return!1;for(let a=0;a<e.items.length;a++){const s=e.items[a],i=t.items[a];if(s.globalPageIndex!==i.globalPageIndex||s.isPlaceholder!==i.isPlaceholder||s.chapterId!==i.chapterId||s.localPageIndex!==i.localPageIndex||s.offsetTop!==i.offsetTop||s.width!==i.width||s.height!==i.height)return!1}return!0}const $t=class extends _{constructor(e,t){super(e,t),this.layoutChange$=E(void 0,Lt),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(kt.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()}),this.chapterManager.provides().onChapterStatusChange(e=>{\"loaded\"===e.status&&this.harvestChapterSizes(e.chapterId),\"loaded\"!==e.status&&\"closed\"!==e.status&&\"error\"!==e.status&&\"password-required\"!==e.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}isChapterPagePlaceholder(e){const t=this.chapterManager.provides().getChapterStatus(e);return\"error\"===t||\"password-required\"===t||\"loaded\"!==t}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(e.chapterId)||this.isChapterDocumentReady(e.chapterId))&&this.harvestChapterSizes(e.chapterId)}this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=this.isChapterPagePlaceholder(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};$t.id=\"chapter-scroll\";let zt=$t;function Tt(e){if(0===e.length)throw new Error(\"unionRects: empty rects\");let t=1/0,a=1/0,s=-1/0,i=-1/0;for(const o of e)t=Math.min(t,o.origin.x),a=Math.min(a,o.origin.y),s=Math.max(s,o.origin.x+o.size.width),i=Math.max(i,o.origin.y+o.size.height);return{origin:{x:t,y:a},size:{width:s-t,height:i-a}}}function Dt(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function Ot(e,t){const a=e.origin.y,s=e.origin.y+e.size.height,i=t.origin.y,o=t.origin.y+t.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 Gt(e,t){var a,s;if(e.chapterId!==t.chapterId||e.localPageIndex!==t.localPageIndex)return!1;const i=(null==(a=e.rectsPdfCoord)?void 0:a.length)?e.rectsPdfCoord:[e.rectPdfCoord],o=(null==(s=t.rectsPdfCoord)?void 0:s.length)?t.rectsPdfCoord:[t.rectPdfCoord],r=e.markerAnchor??Dt(i),n=t.markerAnchor??Dt(o);if(Math.hypot(r.x-n.x,r.y-n.y)<=6)return!0;for(const l of i)for(const e of o){if(Ot(l,e)<.5)continue;const t=Math.max(l.origin.x,e.origin.x);if(Math.min(l.origin.x+l.size.width,e.origin.x+e.size.width)-t>.25*Math.min(l.size.width,e.size.width))return!0}return!1}function Nt(e,t,a,s){const i=a.length>0?a:[];if(0===i.length)throw new Error(\"buildParagraphBookmarkAnchor: no rects\");return{chapterId:e,localPageIndex:t,globalPageIndex:null==s?void 0:s.globalPageIndex,globalPageNumber:null==s?void 0:s.globalPageNumber,rectPdfCoord:Tt(i),rectsPdfCoord:i,markerAnchor:Dt(i)}}async function At(e,t,a){e.scrollToGlobalPageIndex(t),await function(e,t,a=2500){const s=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const i=setTimeout(()=>{o(),s(null)},a),o=e.onLayoutChange(e=>{const a=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);a&&(clearTimeout(i),o(),s(a))})})}(e,t),e.scrollToGlobalPdfPoint(t,a,{marginTop:80})}const Vt=class e extends _{constructor(e,t){super(e,t),this.change$=E([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(zt.id),this.chapterManager=this.registry.getPlugin(yt.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(t){var a;if(this.config=t,null==(a=t.callbacks)?void 0:a.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(e.id,\"Load\",\"Failed to load paragraph bookmarks\",s)}}buildCapability(){return{addBookmark:e=>this.addBookmark(e),removeBookmark:e=>this.removeBookmark(e),updateBookmark:(e,t)=>this.updateBookmark(e,t),listBookmarks:()=>this.list(),getBookmark:e=>this.entries.get(e)??null,scrollToBookmark:e=>this.scrollToBookmark(e),requestRemoveBookmark:e=>this.requestRemoveBookmark(e),listBookmarksForChapter:e=>this.listBookmarksForChapter(e),replaceBookmarksForChapter:(e,t)=>this.replaceBookmarksForChapter(e,t),onBookmarksChange:this.change$.on}}addBookmark(e){for(const s of this.entries.values())if(Gt(s.anchor,e.anchor))return s;const t=e.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,a={id:t,label:e.label,anchor:e.anchor,metadata:e.metadata,createdAt:Date.now()};return this.entries.set(t,a),this.notifyAndPersist(),a}removeBookmark(e){var t,a,s;this.entries.delete(e)&&(this.notifyAndPersist(),null==(s=null==(a=null==(t=this.config)?void 0:t.callbacks)?void 0:a.onRemoveSuccess)||s.call(a,e))}async requestRemoveBookmark(t){var a,s;const i=this.entries.get(t);if(!i)return!1;const o=null==(s=null==(a=this.config)?void 0:a.callbacks)?void 0:s.onRequestRemove;if(o)try{if(!(await o(i)))return!1}catch(r){return this.logger.error(e.id,\"RequestRemove\",\"callback failed\",r),!1}return this.removeBookmark(t),!0}updateBookmark(e,t){const a=this.entries.get(e);a&&(this.entries.set(e,{...a,...t}),this.notifyAndPersist())}list(){return Array.from(this.entries.values()).sort((e,t)=>e.createdAt-t.createdAt)}listBookmarksForChapter(e){return this.list().filter(t=>t.anchor.chapterId===e)}replaceBookmarksForChapter(e,t){for(const[a,s]of this.entries.entries())s.anchor.chapterId===e&&this.entries.delete(a);for(const a of t)a.anchor.chapterId===e&&this.entries.set(a.id,a);this.notifyAndPersist()}notifyAndPersist(){var t,a;const s=this.list();this.change$.emit(s),(null==(a=null==(t=this.config)?void 0:t.callbacks)?void 0:a.persist)&&Promise.resolve(this.config.callbacks.persist(s)).catch(t=>this.logger.error(e.id,\"Persist\",\"persist callback rejected\",t))}async scrollToBookmark(e){const t=this.entries.get(e);if(!t)return;const a=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(t.anchor.chapterId);let s=t.anchor.globalPageIndex;if(void 0===s){const e=this.chapterManager.provides().getVirtualPageMap().toGlobal(t.anchor.chapterId,t.anchor.localPageIndex);if(!e)return;s=e.globalPageIndex}const i=function(e){if(e.markerAnchor)return e.markerAnchor.y;const t=e.rectPdfCoord;return t.origin.y+t.size.height}(t.anchor);await At(a,s,i)}};Vt.id=\"paragraph-bookmark\";let _t=Vt;const Et={manifest:ft,create:e=>new _t(gt,e),reducer:e=>e,initialState:{}},Rt={\"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 Ft{constructor(){this.specs=[]}register(e){if(this.specs.some(t=>t.id===e.id))throw new Error(`OperationRegistry: duplicate operation id \"${e.id}\"`);this.specs.push(e)}registerAll(e){for(const t of e)t&&this.register(t)}list(){return this.specs}buildToolbars(){const e=structuredClone(Rt);for(const t of this.specs){const a=e[t.toolbarSlot];if(!a)continue;const s={type:\"command-button\",id:t.id,commandId:t.commandId,variant:\"icon\",...t.icon?{icon:t.icon}:{},...t.i18nKey?{labelKey:t.i18nKey}:{},...t.label?{label:t.label}:{},categories:t.categories??[]};a.items=Ut(a.items,s,t.position)}return e}}function Ut(e,t,a){return(null==a?void 0:a.after)||(null==a?void 0:a.before)?function(e,t,a){const s=e=>{const i=[];for(const o of e)\"group\"!==o.type?a.before&&o.id===a.before?i.push(t,o):(i.push(o),a.after&&o.id===a.after&&i.push(t)):i.push({...o,items:s(o.items)});return i};return s(e)}(e,t,a):function(e,t){return e.map(e=>\"group\"===e.type?{...e,items:[...e.items,t]}:e)}(e,t)}const qt={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function Wt(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides(),s=e.getPlugin(\"interaction-manager\")?.provides();a&&s&&(s.forDocument(t)?.activateDefaultMode(),a.forDocument(t).closeToolbarSlot(\"top\",\"secondary\"),e.getPlugin(T)?.provides().forDocument(t).setLocked((e=>e.getPluginConfig(T).locked??{type:z.None})(e)))},active:({state:e,documentId:t})=>!ne(e.plugins,t,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:z.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ne(e.plugins,t,\"top\",\"secondary\",\"annotation-toolbar\")},\"mode:shapes\":{id:\"mode:shapes\",label:\"Shapes\",categories:[\"mode\",\"mode-shapes\",\"annotation\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:z.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ne(e.plugins,t,\"top\",\"secondary\",\"shapes-toolbar\")},\"mode:insert\":{id:\"mode:insert\",label:\"Insert\",categories:[\"mode\",\"mode-insert\",\"insert\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:z.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ne(e.plugins,t,\"top\",\"secondary\",\"insert-toolbar\")},\"mode:form\":{id:\"mode:form\",label:\"Form\",categories:[\"mode\",\"mode-form\",\"form\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:z.None}))},active:({state:e,documentId:t})=>ne(e.plugins,t,\"top\",\"secondary\",\"form-toolbar\")},\"mode:redact\":{id:\"mode:redact\",label:\"Redact\",categories:[\"mode\",\"mode-redact\",\"redaction\"],action:({registry:e,documentId:t})=>{const a=e.getPlugin(\"ui\")?.provides();a&&(a.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:z.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ne(e.plugins,t,\"top\",\"secondary\",\"redaction-toolbar\")}}}function Ht(e){const t=e.toolbar??{},a=t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],s=a.length>0,{schema:i,operationRegistry:o}=function(e={}){var t,a,s,i,o,r;const n=new Set(e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),l=new Ft;(null==(t=e.customOperations)?void 0:t.length)&&l.registerAll(e.customOperations);const h=l.buildToolbars(),d={};for(const u of n){if(\"view\"===u)continue;const e=qt[u];h[e]&&(d[e]=h[e])}const c=function(e){if(0===e.size)return null;const t=(e,t,a)=>({type:\"command-button\",id:`${e}-mode`,commandId:a,variant:\"text\",label:t,categories:[\"mode\",e]});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:[...e.has(\"view\")?[t(\"view\",\"View\",\"mode:view\")]:[],...e.has(\"annotate\")?[t(\"annotate\",\"Annotate\",\"mode:annotate\")]:[],...e.has(\"shapes\")?[t(\"shapes\",\"Shapes\",\"mode:shapes\")]:[],...e.has(\"insert\")?[t(\"insert\",\"Insert\",\"mode:insert\")]:[],...e.has(\"form\")?[t(\"form\",\"Form\",\"mode:form\")]:[],...e.has(\"redact\")?[t(\"redact\",\"Redact\",\"mode:redact\")]:[]]},{type:\"spacer\",id:\"main-spacer-right\",flex:!0}]}}(n);return c&&(d[\"chapter-editor-main-toolbar\"]=c),(null==(a=e.extend)?void 0:a.toolbars)&&Object.assign(d,e.extend.toolbars),{schema:{id:\"chapter-pdf-editor-ui\",version:\"1.0.0\",toolbars:d,menus:(null==(s=e.extend)?void 0:s.menus)??{},sidebars:(null==(i=e.extend)?void 0:i.sidebars)??{},modals:(null==(o=e.extend)?void 0:o.modals)??{},selectionMenus:(null==(r=e.extend)?void 0:r.selectionMenus)??{}},operationRegistry:l}}({...t,enabledModes:a}),r={...s?Wt():{},...s?Bt(o.list()):{},...e.commands??{}},n=[F(H,{initialDocuments:[]}),F(Ge,{manifest:e.manifest,overlapStrategy:e.overlapStrategy,passwordProvider:e.passwordProvider,chapterPdfLoader:e.chapterPdfLoader,prefetchChapters:e.prefetchChapters,unloadTimeoutMs:e.unloadTimeoutMs}),F(Be,{placeholderPageHeight:e.placeholderPageHeight,placeholderPageWidth:e.placeholderPageWidth}),F(B),F(j),F(Z),F(Y,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),F(ee),F(D),F(te),F(ae),F(se,!1===e.loadDefaultStampLibrary?{manifests:[]}:void 0),F(ie),...Object.keys(r).length>0?[F(oe,{commands:r})]:[],...s?[F(re),F(le,{schema:i})]:[]];return e.notes&&n.push(F(pt,{callbacks:e.notes.callbacks,ui:e.features?.notes?.marker})),e.bookmarks&&n.push(F(Et,{callbacks:e.bookmarks.callbacks,ui:e.features?.bookmarks?.marker,hover:e.features?.bookmarks?.hover})),{plugins:n,uiSchema:i,operationRegistry:o}}function Bt(e){const t={};for(const a of e)a.handler&&(t[a.commandId]={id:a.commandId,labelKey:a.i18nKey,label:a.label,icon:a.icon,categories:a.categories,action:({documentId:e})=>{a.handler?.({documentId:e,chapterId:e})}});return t}const jt=Me(),Zt={};function Yt(e){return Ht({...e,toolbar:e.toolbar??{enabledModes:[]},features:Me(e.features)})}const Kt={overlapStrategy:{kind:\"first-wins\"},passwordProvider:new Se(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]}};function Xt(e){return function(e){return\"callbacks\"in e.notes}(e)?{manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,notes:e.notes.callbacks,bookmarks:e.bookmarks.callbacks}:e}function Qt(e){return{manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,...Kt,notes:{callbacks:e.notes},bookmarks:{callbacks:e.bookmarks},features:Me(e.features)}}function Jt(e){const t=Qt(Xt(e)),{plugins:a}=Yt(t);return{plugins:a,features:t.features,editorOptions:t}}function ea(e){const{features:t,...a}=Qt(Xt(e));return a}function ta(e,t=.5,a=3){return Math.min(a,Math.max(t,e))}function aa(i,o){const r=e(i)?i:t(()=>i),{registry:n}=M(),{provides:l}=S(W.id),{provides:h}=S(Oe.id),d=a(o.value?.initial??1),c=a(d.value),u=()=>o.value?.min??.5,p=()=>o.value?.max??3,g=()=>o.value?.pageWidth;function f(e){const t=ta(e,u(),p());c.value=t,d.value=t,function(e,t,a,s=.5,i=3){const o=e?.getStore();if(!o)return;const r=ta(a,s,i);o.dispatchToCore(U(r));for(const n of t.chapters)o.getState().core.documents[n.chapterId]&&o.dispatchToCore(q(r,n.chapterId))}(n.value,r.value,t,u(),p())}function m(e){g()?function(e){const t=g();if(!t||!l.value)return;const a=l.value.getDocument(e);a&&f(function(e,t,a=0){const s=e.pages[a];return s?.size?.width?t/s.size.width:1}(a,t))}(e):f(c.value)}return s([n,()=>o.value?.initial,()=>o.value?.pageWidth],()=>{n.value&&(g()||f(o.value?.initial??1))},{immediate:!0}),s([h,r,()=>o.value?.pageWidth],()=>{const e=h.value;if(e){for(const t of r.value.chapters)\"loaded\"===e.getChapterStatus(t.chapterId)&&m(t.chapterId);return e.onChapterStatusChange(e=>{\"loaded\"===e.status&&m(e.chapterId)})}},{immediate:!0}),{scale:d,setScale:f,zoomEnabled:()=>!1!==o.value?.enabled,minZoom:u,maxZoom:p}}function sa(e,t,a){return Math.min(a,Math.max(t,e))}function ia(e,t){if(!e||!1===t.enabled)return()=>{};let a=null,s=null,i=0;const o=()=>{const s=e.querySelector(\"[data-chapter-scroll-viewport]\");return!!s&&(a?.(),a=function({container:e,getScale:t,setScale:a,minZoom:s=.5,maxZoom:i=3}){let o=0,r=1,n=null,l=1,h=1;const d=e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),null===n?(h=t(),l=1):clearTimeout(n),l*=1-.01*e.deltaY,l=sa(l,.1,10),a(sa(h*l,s,i)),n=setTimeout(()=>{n=null},120))},c=/* @__PURE__ */new Map,u=e=>{if(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size){const[e,a]=[...c.values()];o=Math.hypot(a.x-e.x,a.y-e.y),r=t()}},p=e=>{if(c.has(e.pointerId)&&(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size&&o>0)){e.preventDefault();const[t,n]=[...c.values()],l=Math.hypot(n.x-t.x,n.y-t.y);a(sa(r*(l/o),s,i))}},g=e=>{c.delete(e.pointerId),c.size<2&&(o=0)};return e.addEventListener(\"wheel\",d,{passive:!1}),e.addEventListener(\"pointerdown\",u),e.addEventListener(\"pointermove\",p,{passive:!1}),e.addEventListener(\"pointerup\",g),e.addEventListener(\"pointercancel\",g),()=>{e.removeEventListener(\"wheel\",d),e.removeEventListener(\"pointerdown\",u),e.removeEventListener(\"pointermove\",p),e.removeEventListener(\"pointerup\",g),e.removeEventListener(\"pointercancel\",g),n&&clearTimeout(n)}}({container:s,getScale:t.getScale,setScale:t.setScale,minZoom:t.minZoom,maxZoom:t.maxZoom}),!0)};return o()||(s=new MutationObserver(()=>{o()&&(s?.disconnect(),s=null)}),s.observe(e,{childList:!0,subtree:!0}),i=requestAnimationFrame(()=>o())),()=>{i&&cancelAnimationFrame(i),s?.disconnect(),a?.()}}const oa={chapters:[]};function ra(e){const o=a(null),{provides:r}=S(Oe.id),n=t(()=>r.value?.getManifest()??oa),l=t(()=>e.value?.zoom),{scale:h,setScale:d,zoomEnabled:c,minZoom:u,maxZoom:p}=aa(n,l);return function(e,t){let a=null;s([e,t],()=>{a?.();const s=t.value;a=ia(e.value??null,{enabled:s.enabled,getScale:s.getScale,setScale:s.setScale,minZoom:s.minZoom,maxZoom:s.maxZoom})},{deep:!0,flush:\"post\"}),i(()=>a?.())}(o,t(()=>({enabled:c(),getScale:()=>h.value,setScale:d,minZoom:u(),maxZoom:p()}))),{hostRef:o,scale:h,setScale:d,zoomEnabled:c}}const na={kind:\"first-wins\"};function la(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let ha=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function da(e,t=na){const a=function(e,t=na){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,la(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new ha(o)}const ca=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),this.overlapStrategy=na,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??na,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=da(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};ca.id=\"chapter-manager\";let ua=ca;function pa(e,t){if(e===t)return!0;if(e.totalHeight!==t.totalHeight||e.totalWidth!==t.totalWidth||e.pageGap!==t.pageGap||e.items.length!==t.items.length)return!1;for(let a=0;a<e.items.length;a++){const s=e.items[a],i=t.items[a];if(s.globalPageIndex!==i.globalPageIndex||s.isPlaceholder!==i.isPlaceholder||s.chapterId!==i.chapterId||s.localPageIndex!==i.localPageIndex||s.offsetTop!==i.offsetTop||s.width!==i.width||s.height!==i.height)return!1}return!0}const ga=class extends _{constructor(e,t){super(e,t),this.layoutChange$=E(void 0,pa),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(ua.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()}),this.chapterManager.provides().onChapterStatusChange(e=>{\"loaded\"===e.status&&this.harvestChapterSizes(e.chapterId),\"loaded\"!==e.status&&\"closed\"!==e.status&&\"error\"!==e.status&&\"password-required\"!==e.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}isChapterPagePlaceholder(e){const t=this.chapterManager.provides().getChapterStatus(e);return\"error\"===t||\"password-required\"===t||\"loaded\"!==t}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(e.chapterId)||this.isChapterDocumentReady(e.chapterId))&&this.harvestChapterSizes(e.chapterId)}this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=this.isChapterPagePlaceholder(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};ga.id=\"chapter-scroll\";let fa=ga;const ma=[\"data-global-page-index\",\"data-chapter-id\",\"data-local-page-index\"],va=/* @__PURE__ */((e,t)=>{const a=e.__vccOpts||e;for(const[s,i]of t)a[s]=i;return a})(/* @__PURE__ */o({__name:\"ChapterScroller\",props:{class:{},style:{}},setup(e){const{provides:t}=S(fa.id),o=a(null),f=a(null);let m=null;const v=()=>{null==m||m(),m=null,t.value&&(t.value.registerViewport(o.value),m=t.value.onLayoutChange(e=>{f.value=e}))};return r(v),i(()=>{var e;null==m||m(),null==(e=t.value)||e.registerViewport(null)}),s(t,v),(e,t)=>{var a,s,i;return n(),l(\"div\",{ref_key:\"containerRef\",ref:o,\"data-chapter-scroll-viewport\":\"\",class:d(e.$props.class),style:h({overflow:\"auto\",position:\"relative\",width:\"100%\",height:\"100%\",...e.$props.style})},[c(\"div\",{style:h({position:\"relative\",width:`${(null==(a=f.value)?void 0:a.totalWidth)??0}px`,height:`${(null==(s=f.value)?void 0:s.totalHeight)??0}px`,margin:\"0 auto\"})},[(n(!0),l(u,null,p((null==(i=f.value)?void 0:i.items)??[],a=>(n(),l(\"div\",{key:a.globalPageIndex,\"data-global-page-index\":a.globalPageIndex,\"data-chapter-id\":a.chapterId,\"data-local-page-index\":a.localPageIndex,style:h({position:\"absolute\",top:`${a.offsetTop}px`,left:\"50%\",transform:\"translateX(-50%)\",width:`${a.width}px`,height:`${a.height}px`,backgroundColor:a.isPlaceholder?\"#f3f4f6\":\"#fff\",boxShadow:\"0 1px 4px rgba(0,0,0,0.08)\"})},[a.isPlaceholder?g(e.$slots,\"placeholder\",{key:0,item:a},()=>[t[0]||(t[0]=c(\"div\",{class:\"chapter-scroll-placeholder\"},\"Loading chapter…\",-1))],!0):g(e.$slots,\"page\",{key:1,item:a},void 0,!0)],12,ma))),128))],4)],6)}}}),[[\"__scopeId\",\"data-v-8a737137\"]]),ba=/* @__PURE__ */o({__name:\"ChapterRenderLayer\",props:{chapterId:{},localPageIndex:{},scale:{},dpr:{},class:{}},setup:e=>(t,a)=>(n(),f(m(fe),{\"document-id\":e.chapterId,\"page-index\":e.localPageIndex,scale:e.scale,dpr:e.dpr,class:d(e.class),style:{pointerEvents:\"none\"}},null,8,[\"document-id\",\"page-index\",\"scale\",\"dpr\",\"class\"]))});const Pa={kind:\"first-wins\"};function wa(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}let ya=class{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}};function Ca(e,t=Pa){const a=function(e,t=Pa){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,wa(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new ya(o)}const Ia=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Pa,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Ca(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};Ia.id=\"chapter-manager\";let Ma=Ia;const Sa={kind:\"first-wins\"};function xa(e,t,a){if(1===t.length)return t[0].chapterId;switch(a.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const a=t.find(t=>{var a;return null==(a=t.ownedGlobalPages)?void 0:a.includes(e)});return a?a.chapterId:t[0].chapterId}case\"custom\":return a.resolve(e,t)}}class ka{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 a=this._byChapter.get(e);return a?a.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const a=null==(t=this._byChapter.get(e))?void 0:t[0];return a?this._pages.indexOf(a):-1}}function La(e,t=Sa){const a=function(e,t=Sa){const a=/* @__PURE__ */new Map;for(const i of e.chapters){const[e,t]=i.globalPageRange;for(let s=e;s<=t;s++){const e=a.get(s);e?e.push(i):a.set(s,[i])}}const s=/* @__PURE__ */new Map;for(const[i,o]of a)s.set(i,xa(i,o,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const n of e.chapters)s.set(n.chapterId,n);const i=Array.from(a.keys()).sort((e,t)=>e-t),o=[];let r=0;for(const n of i){const e=a.get(n),t=s.get(e);if(!t)continue;const[i]=t.globalPageRange,[l]=t.localPageRange,h=l+(n-i);o.push({globalPageIndex:r++,globalPageNumber:n,chapterId:e,localPageIndex:h})}return new ka(o)}const $a=class e extends _{constructor(e,t){super(e,t),this.statusChange$=E(),this.manifestChange$=R(),this.overlapStrategy=Sa,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(W.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Sa,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{this.isOwnedChapter(e.id)&&(this.passwordAttempts.delete(e.id),this.updateStatus(e.id,\"loaded\"))}),this.documentManager.provides().onDocumentClosed(e=>{this.isOwnedChapter(e)&&this.updateStatus(e,\"closed\")}),this.documentManager.provides().onDocumentError(e=>{this.isOwnedChapter(e.documentId)&&this.handleDocumentError(e.documentId,e.code,e.message)})),this.setManifestInternal(e.manifest),e.unloadTimeoutMs&&e.unloadTimeoutMs>0){const t=Math.max(5e3,Math.floor(e.unloadTimeoutMs/4));this.unloadTimer=setInterval(()=>this.collectIdleChapters(),t)}}buildCapability(){return{setManifest:(e,t)=>{t&&(this.overlapStrategy=t),this.setManifestInternal(e)},getManifest:()=>this.manifest,getVirtualPageMap:()=>this.virtualPageMap,setVisibleGlobalPages:e=>this.handleVisibleChange(e),ensureChapterLoaded:e=>this.ensureChapterLoaded(e),getChapterStatus:e=>this.chapterStatus.get(e)??\"idle\",getChapter:e=>this.findChapter(e),onChapterStatusChange:this.statusChange$.on,onManifestChange:this.manifestChange$.on}}destroy(){super.destroy();for(const e of this.documentManagerUnsubs)e();this.documentManagerUnsubs=[],this.unloadTimer&&clearInterval(this.unloadTimer),this.unloadTimer=null,this.statusChange$.clear(),this.manifestChange$.clear()}setManifestInternal(t){const a=function(e){const t=[],a=/* @__PURE__ */new Set;for(const s of e.chapters){a.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),a.add(s.chapterId);const[e,i]=s.globalPageRange,[o,r]=s.localPageRange;if(e>i&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${i}]`),o>r&&t.push(`${s.chapterId}: invalid localPageRange [${o},${r}]`),i-e!==r-o&&t.push(`${s.chapterId}: page-count mismatch (global ${i-e+1} vs local ${r-o+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<e||a>i)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${a} outside range`)}return t}(t);a.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${a.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),i=new Set(t.chapters.map(e=>e.chapterId));for(const e of s)i.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e));for(const e of t.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=La(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),a=Math.min(e,this.manifest.chapters.length);for(let s=0;s<a;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const a=this.chapterStatus.get(e)??\"idle\";\"idle\"!==a&&\"closed\"!==a&&\"error\"!==a||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}isOwnedChapter(e){return!!this.findChapter(e)}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),a=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set;for(const n of e){const e=this.virtualPageMap.atIndex(n);e&&s.add(e.chapterId)}if(0===s.size)return;const i=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const n of s){const e=i.indexOf(n);if(-1!==e)for(let t=e-a;t<=e+a;t++)t>=0&&t<i.length&&o.add(t)}const r=/* @__PURE__ */new Set;for(const n of o)r.add(i[n]);for(const n of r){this.chapterLastUsed.set(n,t);const e=this.chapterStatus.get(n)??\"idle\";\"idle\"!==e&&\"closed\"!==e&&\"error\"!==e||this.ensureChapterLoaded(n)}if(this.config.autoActivateOnLoad??1){const e=i.find(e=>s.has(e));if(e&&this.documentManager.provides().isDocumentOpen(e)){this.documentManager.provides().getActiveDocumentId()!==e&&this.documentManager.provides().setActiveDocument(e)}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[a,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(a)??0)>e&&this.closeChapter(a)}}ensureChapterLoaded(e){const t=this.pendingLoadPromises.get(e);if(t)return t;const a=this.findChapter(e);if(!a)return Promise.resolve(\"error\");const s=this.chapterStatus.get(e)??\"idle\";if(\"loaded\"===s)return this.chapterLastUsed.set(e,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===s)return this.waitForTerminalStatus(e);const i=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(e)});return this.pendingLoadPromises.set(e,i),i}async resolvePdfPayload(e){const t=e.source;if(t){if(\"url\"in t)return{url:t.url};if(\"buffer\"in t)return{buffer:t.buffer};if(\"load\"in t)return t.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoad(t){var a;const s=t.chapterId;this.updateStatus(s,\"loading\"),this.chapterLastUsed.set(s,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(s):null,i=await this.resolvePdfPayload(t),o=this.documentManager.provides(),r=\"url\"in i?o.openDocumentUrl({documentId:s,url:i.url,name:t.title,password:e??void 0,autoActivate:!1}):o.openDocumentBuffer({documentId:s,buffer:i.buffer,name:t.title,password:e??void 0,autoActivate:!1}),n=await new Promise((e,t)=>{r.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{n.task.wait(()=>e(),e=>t(e))}),o.isDocumentOpen(s)&&this.updateStatus(s,\"loaded\"),this.waitForTerminalStatus(s)}catch(i){const t=this.chapterStatus.get(s);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${s}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),this.updateStatus(s,\"error\",t)}return this.chapterStatus.get(s)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const a=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(a(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&a(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,a,s){if(a!==V.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(e.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(e){const t=this.documentManager.provides();if(t.isDocumentOpen(e)){t.closeDocument(e).wait(()=>this.updateStatus(e,\"closed\"),()=>this.updateStatus(e,\"closed\"))}else this.updateStatus(e,\"closed\")}updateStatus(e,t,a){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&a?{error:{message:a}}:{}}))}};$a.id=\"chapter-manager\";let za=$a;function Ta(e,t){if(e===t)return!0;if(e.totalHeight!==t.totalHeight||e.totalWidth!==t.totalWidth||e.pageGap!==t.pageGap||e.items.length!==t.items.length)return!1;for(let a=0;a<e.items.length;a++){const s=e.items[a],i=t.items[a];if(s.globalPageIndex!==i.globalPageIndex||s.isPlaceholder!==i.isPlaceholder||s.chapterId!==i.chapterId||s.localPageIndex!==i.localPageIndex||s.offsetTop!==i.offsetTop||s.width!==i.width||s.height!==i.height)return!1}return!0}const Da=class extends _{constructor(e,t){super(e,t),this.layoutChange$=E(void 0,Ta),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(za.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(e){this.config={placeholderPageHeight:e.placeholderPageHeight??1200,placeholderPageWidth:e.placeholderPageWidth??900,bufferSize:e.bufferSize??2,pageGap:e.pageGap??20},this.virtualPageMap=this.chapterManager.provides().getVirtualPageMap(),this.rebuildOffsets(),this.chapterManagerUnsubs.push(this.chapterManager.provides().onManifestChange(({map:e})=>{this.virtualPageMap=e,this.pageSizes.clear(),this.rebuildOffsets(),this.syncReadyChapterSizes(),this.recomputeVisible()}),this.chapterManager.provides().onChapterStatusChange(e=>{\"loaded\"===e.status&&this.harvestChapterSizes(e.chapterId),\"loaded\"!==e.status&&\"closed\"!==e.status&&\"error\"!==e.status&&\"password-required\"!==e.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(e){const t=this.coreState.core.documents[e];return!(!t||\"loaded\"!==t.status||!t.document)&&t.document.pages.length>0}isChapterPagePlaceholder(e){const t=this.chapterManager.provides().getChapterStatus(e);return\"error\"===t||\"password-required\"===t||\"loaded\"!==t}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const e of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(e.chapterId)||this.isChapterDocumentReady(e.chapterId))&&this.harvestChapterSizes(e.chapterId)}this.refreshLayout()}onDocumentLoaded(e){var t;if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(e),this.refreshLayout()}onDocumentClosed(e){var t;0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(e).length)??0)&&(this.dropChapterSizes(e),this.refreshLayout())}buildCapability(){return{registerViewport:e=>this.bindViewport(e),reportChapterPageSizes:(e,t)=>this.applyChapterPageSizes(e,t),getLayout:()=>this.computeLayout(),getCurrentGlobalPageIndex:()=>this.currentGlobalPageIndex,getVisibleGlobalPageIndices:()=>this.currentVisible.slice(),scrollToGlobalPageIndex:(e,t)=>this.scrollToIndex(e,t),scrollToChapter:(e,t)=>this.scrollToChapter(e,t),scrollToGlobalPageNumber:(e,t)=>this.scrollToGlobalNumber(e,t),scrollToGlobalPdfPoint:(e,t,a)=>this.scrollToGlobalPdfPoint(e,t,a),onLayoutChange:this.layoutChange$.on,onVisibleChange:this.visibleChange$.on}}destroy(){var e;super.destroy();for(const t of this.chapterManagerUnsubs)t();this.chapterManagerUnsubs=[],null==(e=this.viewportObservers)||e.unbind(),this.viewportObservers=null,this.viewportEl=null,this.layoutChange$.clear(),this.visibleChange$.clear()}getPageSize(e){return this.pageSizes.get(e)??{width:this.config.placeholderPageWidth,height:this.config.placeholderPageHeight}}rebuildOffsets(){if(!this.virtualPageMap)return this.offsets=[],this.totalHeight=0,void(this.totalWidth=0);const e=this.virtualPageMap.totalPages;this.offsets=new Array(e);let t=0,a=0;for(let s=0;s<e;s++){const{width:e,height:i}=this.getPageSize(s);this.offsets[s]=t,t+=i+this.config.pageGap,e>a&&(a=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=a,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let a=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const i=this.pageSizes.get(t.globalPageIndex);i&&i.width===s.width&&i.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),a=!0)}if(a){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const a=(this.offsets[e]??0)-t;0!==a&&(this.viewportEl.scrollTop+=a)}this.recomputeVisible()}}getChapterDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){var a;if(!this.virtualPageMap)return;const s=this.documentManager.provides().getDocument(e),i=this.virtualPageMap.pagesOfChapter(e);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===i.length)return void(t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1)));const o=this.getChapterDocumentScale(e),r=[];for(const n of i){const e=s.pages[n.localPageIndex];(null==e?void 0:e.size)&&r.push({localPageIndex:n.localPageIndex,width:e.size.width*o,height:e.size.height*o})}0!==r.length?this.applyChapterPageSizes(e,r):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];t&&\"loaded\"===t.status&&this.chapterManager.provides().getChapter(e)&&this.harvestChapterSizes(e)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const a of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(a.globalPageIndex)&&(t=!0);t&&(this.rebuildOffsets(),this.recomputeVisible())}bindViewport(e){var t;if(null==(t=this.viewportObservers)||t.unbind(),this.viewportEl=e,this.viewportObservers=null,!e)return;const a=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",a,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",a),s.disconnect()}},this.syncReadyChapterSizes(),this.recomputeVisible(),0===e.clientHeight&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.recomputeVisible())})}recomputeVisible(){if(!this.viewportEl||!this.virtualPageMap)return;const e=this.virtualPageMap.totalPages;if(0===e)return this.currentVisible=[],this.currentGlobalPageIndex=0,void this.layoutChange$.emit(this.computeLayout());const t=this.viewportEl.scrollTop,a=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let i=s;for(;i<e;){const e=this.getPageSize(i),t=this.offsets[i];if(e.height,t>=a)break;i++}const o=[];let r=s,n=-1;for(let l=s;l<i;l++){o.push(l);const e=this.offsets[l],s=e+this.getPageSize(l).height,i=Math.max(0,Math.min(s,a)-Math.max(e,t));i>n&&(n=i,r=l)}this.currentVisible=o,this.currentGlobalPageIndex=r,this.visibleChange$.emit({visibleGlobalPageIndices:o,currentGlobalPageIndex:r}),this.chapterManager.provides().setVisibleGlobalPages(o),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,a=this.offsets.length-1,s=0;for(;t<=a;){const i=t+a>>1;this.offsets[i]<=e?(s=i,t=i+1):a=i-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),a=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(a>=0?a:0)+e),i=[];if(this.virtualPageMap&&this.offsets.length>0)for(let o=t;o<=s;o++){const e=this.virtualPageMap.atIndex(o);if(!e)continue;const t=this.getPageSize(o),a=this.isChapterPagePlaceholder(e.chapterId);i.push({globalPageIndex:o,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,width:t.width,height:t.height,offsetTop:this.offsets[o],isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:i,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const a=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:a,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,a){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const i=(null==a?void 0:a.marginTop)??80,o=this.virtualPageMap.atIndex(e);if(!o)return void this.scrollToIndex(e,a);const r=this.pageSizes.get(e),n=null==(s=this.documentManager.provides().getDocument(o.chapterId))?void 0:s.pages[o.localPageIndex];if(!r||!n)return void this.scrollToIndex(e,a);const l=r.height/n.size.height,h=(this.offsets[e]??0)+t*l-i;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==a?void 0:a.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.firstIndexOfChapter(e);a<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(a,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const a=this.virtualPageMap.byGlobalNumber(e);a&&this.scrollToIndex(a.globalPageIndex,t)}};Da.id=\"chapter-scroll\";let Oa=Da;const Ga=class e extends _{constructor(e,t){super(e,t),this.notesChange$=E([]),this.noteActivated$=R(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(Oa.id),this.chapterManager=this.registry.getPlugin(Ma.id),this.documentManager=this.registry.getPlugin(W.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(a){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",a)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(a=>a.chapterId===e&&a.localPageIndex===t),listAllNotes:()=>this.listAll(),getNote:e=>this.notes.get(e)??null,deleteNote:e=>this.deleteNote(e),updateNoteContent:(e,t)=>this.updateNoteContent(e,t),scrollToNote:e=>this.scrollToNote(e),listNotesForChapter:e=>this.listNotesForChapter(e),replaceNotesForChapter:(e,t)=>this.replaceNotesForChapter(e,t),onNotesChange:this.notesChange$.on,onNoteActivated:this.noteActivated$.on}}registerNote(e){this.notes.set(e.noteId,e),this.notesChange$.emit(this.listAll())}requestEdit(e){const t=this.notes.get(e);t&&(this.config.callbacks.onRequestEditNote?this.config.callbacks.onRequestEditNote(e,t):this.activateNote(e))}activateNote(e){var t,a;const s=this.notes.get(e);s&&(null==(a=(t=this.config.callbacks).onActivateNote)||a.call(t,e,s),this.noteActivated$.emit({noteId:e,anchor:s}))}listAll(){return Array.from(this.notes.values())}listNotesForChapter(e){return this.listAll().filter(t=>t.chapterId===e)}replaceNotesForChapter(e,t){for(const[a,s]of this.notes.entries())s.chapterId===e&&this.notes.delete(a);for(const a of t)a.chapterId===e&&this.notes.set(a.noteId,a);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:Aa(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:a,onCreateNote:s}=this.config.callbacks;return a?(a({draft:t,complete:async e=>{const a={...t,noteId:e};this.registerNote(a)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const a=this.buildDraft(t),s=this.config.callbacks.onCreateNote;if(!s)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let i=null;try{i=await s(a)}catch(r){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",r),null}if(!i)return null;const o={...a,noteId:i.noteId};return this.registerNote(o),o}async deleteNote(t){var a,s;if(this.notes.has(t)){try{await(null==(s=(a=this.config.callbacks).onDeleteNote)?void 0:s.call(a,t))}catch(i){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",i)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,a){var s,i;const o=this.notes.get(t);if(!o)return;const r={...o,content:a};try{await(null==(i=(s=this.config.callbacks).onUpdateNote)?void 0:i.call(s,r))}catch(n){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(t,r),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const a=this.notes.get(e);if(!a)return;const s=this.chapterScroll.provides();await this.chapterManager.provides().ensureChapterLoaded(a.chapterId);(null==(t=this.documentManager.provides().getDocument(a.chapterId))?void 0:t.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(e){const t=this.chapterScroll.provides(),a=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const s=setTimeout(()=>{i(),a(null)},2500),i=t.onLayoutChange(t=>{const o=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);o&&(clearTimeout(s),i(),a(o))})})}};Ga.id=\"note\";let Na=Ga;function Aa(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function Va(e){const{markerPdf:t,lineRects:a,sx:s,sy:i,cssPageWidth:o,iconSize:r,gapPx:n=6}=e,l=a?.length?a[a.length-1]:void 0;let h,d;l?(h=(l.origin.x+l.size.width)*s+n,d=l.origin.y*i+(l.size.height*i-r)/2):(h=t.x*s-r/2,d=t.y*i-r-n);const c=Math.max(0,o-r-2);return h>c&&(h=c),d<0&&(d=0),{left:h,top:d}}const _a={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\",zIndex:25}},Ea=[\"onMouseenter\"],Ra=[\"data-note-marker-zone\",\"onMouseenter\",\"onMouseleave\"],Fa=[\"onClick\"],Ua=[\"onClick\"],qa=[\"onClick\"],Wa=/* @__PURE__ */o({__name:\"NoteMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const o=e,{provides:r}=S(Na.id),d=a([]),g=a(null),f=a(null);s(r,e=>{if(e)return e.onNotesChange(e=>{d.value=e.filter(e=>e.chapterId===o.chapterId&&e.localPageIndex===o.localPageIndex)})},{immediate:!0});let P=null;s(f,e=>{P&&(document.removeEventListener(\"mousedown\",P),P=null),e&&(P=t=>{const a=t.target;a.closest?.(`[data-note-marker-zone=\"${e}\"]`)||(f.value=null,g.value=null)},document.addEventListener(\"mousedown\",P))}),i(()=>{P&&document.removeEventListener(\"mousedown\",P)});const w=t(()=>o.ui?.iconSize??16),y=t(()=>o.ui?.highlightColor??\"rgba(245, 158, 11, 0.08)\");function C(e){const t=o.cssPageWidth/o.pdfPageWidth,a=o.cssPageHeight/o.pdfPageHeight,s=w.value,{left:i,top:r}=Va({markerPdf:e.endAnchor,lineRects:e.rectsPdfCoord,sx:t,sy:a,cssPageWidth:o.cssPageWidth,iconSize:s}),n=function(e,t,a){let s=1/0,i=1/0,o=-1/0,r=-1/0;for(const n of e)s=Math.min(s,n.origin.x*t),i=Math.min(i,n.origin.y*a),o=Math.max(o,(n.origin.x+n.size.width)*t),r=Math.max(r,(n.origin.y+n.size.height)*a);return{left:s,top:i,width:o-s,height:r-i}}(e.rectsPdfCoord,t,a),l=f.value===e.noteId?72:0,h=Math.max(0,Math.min(n.left,i)-8),d=Math.max(0,Math.min(n.top,r)-8);return{zoneLeft:h,zoneTop:d,zoneW:Math.min(o.cssPageWidth,Math.max(n.left+n.width,i+s)+8)-h,zoneH:Math.max(n.top+n.height,r+s+6+l)+8-d,iconLeft:i,iconTop:r,sx:t,sy:a}}return(t,a)=>m(r)&&d.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(n(),l(\"div\",_a,[(n(!0),l(u,null,p(d.value,e=>(n(),l(u,{key:e.noteId},[(n(!0),l(u,null,p(e.rectsPdfCoord,(t,a)=>(n(),l(\"div\",{key:`${e.noteId}-bg-${a}`,style:h({position:\"absolute\",left:t.origin.x*C(e).sx+\"px\",top:t.origin.y*C(e).sy+\"px\",width:t.size.width*C(e).sx+\"px\",height:t.size.height*C(e).sy+\"px\",background:y.value,borderRadius:\"2px\",pointerEvents:\"auto\"}),onMouseenter:t=>g.value=e.noteId},null,44,Ea))),128)),g.value===e.noteId||f.value===e.noteId?(n(),l(\"div\",{key:0,\"data-note-marker-zone\":e.noteId,style:h({position:\"absolute\",left:`${C(e).zoneLeft}px`,top:`${C(e).zoneTop}px`,width:`${C(e).zoneW}px`,height:`${C(e).zoneH}px`,pointerEvents:\"auto\",zIndex:26}),onMouseenter:t=>g.value=e.noteId,onMouseleave:t=>f.value!==e.noteId&&(g.value=null)},[c(\"button\",{type:\"button\",title:\"笔记\",style:h({position:\"absolute\",left:C(e).iconLeft-C(e).zoneLeft+\"px\",top:C(e).iconTop-C(e).zoneTop+\"px\",width:`${w.value}px`,height:`${w.value}px`,border:\"none\",borderRadius:\"50%\",background:\"#f59e0b\",color:\"#fff\",cursor:\"pointer\",fontSize:\"11px\",padding:0}),onMousedown:a[0]||(a[0]=v(()=>{},[\"stop\"])),onClick:v(t=>f.value=f.value===e.noteId?null:e.noteId,[\"stop\"])},\" 💬 \",44,Fa),f.value===e.noteId?(n(),l(\"div\",{key:0,style:h({position:\"absolute\",left:C(e).iconLeft-C(e).zoneLeft+\"px\",top:`${C(e).iconTop-C(e).zoneTop+w.value+4}px`,minWidth:\"120px\",padding:\"6px\",borderRadius:\"8px\",background:\"#fff\",border:\"1px solid #e5e7eb\",boxShadow:\"0 4px 12px rgba(0,0,0,0.12)\",zIndex:30}),onMousedown:a[1]||(a[1]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",style:{display:\"block\",width:\"100%\",padding:\"6px 8px\",\"font-size\":\"12px\",border:\"none\",\"border-radius\":\"4px\",background:\"transparent\",color:\"#334155\",cursor:\"pointer\",\"text-align\":\"left\"},onClick:t=>function(e){r.value?.requestEditNote(e.noteId,e)}(e)},\" 编辑 \",8,Ua),c(\"button\",{type:\"button\",style:{display:\"block\",width:\"100%\",padding:\"6px 8px\",\"font-size\":\"12px\",border:\"none\",\"border-radius\":\"4px\",background:\"transparent\",color:\"#dc2626\",cursor:\"pointer\",\"text-align\":\"left\"},onClick:t=>{return a=e.noteId,r.value?.requestDeleteNote(a),void(f.value=null);var a}},\" 删除 \",8,qa)],36)):b(\"\",!0)],44,Ra)):b(\"\",!0)],64))),128))])):b(\"\",!0)}}),Ha={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\"}},Ba=[\"title\",\"onClick\"],ja=[\"onClick\"],Za=/* @__PURE__ */o({__name:\"BookmarkMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const o=e,{provides:r}=S(_t.id),d=a([]),g=a(null),f=a(null);function P(){const e=r.value;e&&(d.value=e.listBookmarks().filter(e=>e.anchor.chapterId===o.chapterId&&e.anchor.localPageIndex===o.localPageIndex))}s(r,e=>{if(e)return P(),e.onBookmarksChange(P)},{immediate:!0});let w=null;s(g,e=>{w&&(document.removeEventListener(\"mousedown\",w),w=null),e&&(w=e=>{f.value?.contains(e.target)||(g.value=null)},document.addEventListener(\"mousedown\",w))}),i(()=>{w&&document.removeEventListener(\"mousedown\",w)});const y=t(()=>o.ui?.iconSize??16);function C(e){const{left:t,top:a}=function(e){const t=o.cssPageWidth/o.pdfPageWidth,a=o.cssPageHeight/o.pdfPageHeight,s=e.anchor.rectsPdfCoord?.length?e.anchor.rectsPdfCoord:[e.anchor.rectPdfCoord];return Va({markerPdf:e.anchor.markerAnchor??{x:e.anchor.rectPdfCoord.origin.x+e.anchor.rectPdfCoord.size.width,y:e.anchor.rectPdfCoord.origin.y+e.anchor.rectPdfCoord.size.height},lineRects:s,sx:t,sy:a,cssPageWidth:o.cssPageWidth,iconSize:y.value})}(e);return{position:\"absolute\",left:`${Math.max(0,t-6)}px`,top:`${Math.max(0,a-6)}px`,width:`${y.value+12}px`,height:`${y.value+12}px`,pointerEvents:\"auto\",zIndex:20}}return(t,a)=>m(r)&&d.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(n(),l(\"div\",Ha,[(n(!0),l(u,null,p(d.value,e=>(n(),l(\"div\",{key:e.id,style:h(C(e)),onMousedown:a[1]||(a[1]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",title:e.label,style:h({position:\"absolute\",left:\"6px\",top:\"6px\",width:`${y.value}px`,height:`${y.value}px`,border:\"none\",borderRadius:\"4px\",background:\"#3b82f6\",color:\"#fff\",cursor:\"pointer\",boxShadow:\"0 2px 6px rgba(37, 99, 235, 0.35)\",fontSize:\"11px\",padding:0}),onClick:v(t=>g.value=g.value===e.id?null:e.id,[\"stop\"])},\" 🔖 \",12,Ba),g.value===e.id?(n(),l(\"div\",{key:0,ref_for:!0,ref_key:\"deleteMenuRef\",ref:f,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:a[0]||(a[0]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",style:{width:\"100%\",padding:\"6px 8px\",\"font-size\":\"12px\",border:\"none\",\"border-radius\":\"4px\",background:\"transparent\",color:\"#dc2626\",cursor:\"pointer\",\"text-align\":\"left\"},onClick:t=>async function(e){const t=r.value;if(!t)return;await t.requestRemoveBookmark(e)&&(g.value=null)}(e.id)},\" 删除书签 \",8,ja)],512)):b(\"\",!0)],36))),128))])):b(\"\",!0)}});function Ya(e){return e.chapterId}function Ka(e,t){e.wait(t,()=>{})}const Xa=/* @__PURE__ */o({__name:\"ChapterPageSurface\",props:{item:{},features:{},showNoteMarkers:{type:Boolean},showBookmarkMarkers:{type:Boolean},showRedactionLayer:{type:Boolean},noteMarkerUi:{},bookmarkMarkerUi:{},buildSelectionMenu:{type:Function},createNote:{},annotationSelectionMenu:{},redactionSelectionMenu:{},renderPageOverlay:{type:Function}},setup(e){const a=e,i=t(()=>Ya(a.item));!function(e){const{provides:t}=S(W.id);s([t,e],([e,t])=>{e&&t&&e.isDocumentOpen(t)&&e.setActiveDocument(t)},{immediate:!0})}(i);const{provides:o}=S(W.id),{provides:r}=S(K.id),l=t(()=>o.value?.getDocument(i.value)?.pages[a.item.localPageIndex]);function h(e,t){const s=a.createNote.value;if(s)return a=>{const i={position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:a.placement?.suggestTop?-40:a.rect.size.height+8};return C(\"div\",a.menuWrapperProps,[C(\"div\",{style:i},C(\"button\",{type:\"button\",style:{padding:\"6px 10px\",fontSize:\"12px\",border:\"1px solid #e2e8f0\",borderRadius:\"6px\",background:\"#fff\",cursor:\"pointer\"},onClick:()=>{if(!r.value)return;const a=r.value.getHighlightRectsForPage(e.localPageIndex,t);Ka(r.value.getSelectedText(t),t=>{s(function(e,t,a){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageIndex:e.globalPageIndex,globalPageNumber:e.globalPageNumber,rectsPdfCoord:t,selectedText:a}}(e,a,t.join(\"\\n\")))})}},\"添加附注\"))])}}const d=t(()=>{const e=a.buildSelectionMenu,t={item:a.item,defaultMenu:h(a.item,i.value),createNote:a.createNote.value};if(e){const a=e(t);if(a)return a}return t.defaultMenu}),c=t(()=>a.renderPageOverlay?.(a.item));return(t,a)=>e.item.isPlaceholder?b(\"\",!0):(n(),f(m(he),{key:0,\"document-id\":i.value},{default:P(()=>[w(m(ce),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex,style:{backgroundColor:\"#fff\"}},{default:P(()=>[w(m(de),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex},{default:P(()=>[w(m(ba),{\"chapter-id\":i.value,\"local-page-index\":e.item.localPageIndex},null,8,[\"chapter-id\",\"local-page-index\"]),w(m(ue),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex,\"selection-menu\":d.value},null,8,[\"document-id\",\"page-index\",\"selection-menu\"]),e.showRedactionLayer?(n(),f(m(ge),{key:0,\"document-id\":i.value,\"page-index\":e.item.localPageIndex,\"selection-menu\":e.redactionSelectionMenu},null,8,[\"document-id\",\"page-index\",\"selection-menu\"])):b(\"\",!0),w(m(pe),{\"document-id\":i.value,\"page-index\":e.item.localPageIndex,\"selection-menu\":e.annotationSelectionMenu},null,8,[\"document-id\",\"page-index\",\"selection-menu\"]),e.showBookmarkMarkers&&l.value?(n(),f(Za,{key:1,\"chapter-id\":i.value,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":l.value.size.width,\"pdf-page-height\":l.value.size.height,\"css-page-width\":e.item.width,\"css-page-height\":e.item.height,ui:e.bookmarkMarkerUi},null,8,[\"chapter-id\",\"local-page-index\",\"pdf-page-width\",\"pdf-page-height\",\"css-page-width\",\"css-page-height\",\"ui\"])):b(\"\",!0),c.value?(n(),f(y(c.value),{key:2})):b(\"\",!0),e.showNoteMarkers&&l.value?(n(),f(Wa,{key:3,\"chapter-id\":i.value,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":l.value.size.width,\"pdf-page-height\":l.value.size.height,\"css-page-width\":e.item.width,\"css-page-height\":e.item.height,ui:e.noteMarkerUi},null,8,[\"chapter-id\",\"local-page-index\",\"pdf-page-width\",\"pdf-page-height\",\"css-page-width\",\"css-page-height\",\"ui\"])):b(\"\",!0),g(t.$slots,\"default\")]),_:3},8,[\"document-id\",\"page-index\"])]),_:3},8,[\"document-id\",\"page-index\"])]),_:3},8,[\"document-id\"]))}});const Qa=/* @__PURE__ */o({__name:\"HoverBookmarkLayer\",props:{item:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},hoverUi:{}},setup(e){const o=e,r=t(()=>Ya(o.item)),{provides:d}=S(K.id),{provides:u}=S(_t.id),p=a(null),g=a(null),f=a(null),P=a(null),w=t(()=>o.hoverUi?.iconSize??16),y=t(()=>P.value??f.value);let C=null,I=0;function M(){const e=d.value;if(!e)return;const t=e.forDocument(r.value).getState().geometry[o.item.localPageIndex];t&&(g.value=t)}s([d,r,()=>o.item.localPageIndex],([e])=>{if(C?.(),C=null,cancelAnimationFrame(I),g.value=null,!e)return;const t=e.forDocument(r.value);C=t.onSelectionChange(M);let a=!1;const s=()=>{if(!a){try{if(M(),t.getState().geometry[o.item.localPageIndex])return}catch{}I=requestAnimationFrame(s)}};return s(),()=>{a=!0,cancelAnimationFrame(I),C?.(),C=null}},{immediate:!0});let x=null;s([g,()=>o.pdfPageWidth,P,d],()=>{x&&(document.removeEventListener(\"mousemove\",x),x=null),g.value&&o.pdfPageWidth&&(x=e=>{if(P.value)return;const t=d.value;if(t)try{if(t.forDocument(r.value).getState().selecting)return void(f.value=null)}catch{}const a=p.value;if(!a)return;const s=a.getBoundingClientRect();if(e.clientX<s.left||e.clientX>s.right||e.clientY<s.top||e.clientY>s.bottom)return void(f.value=null);const i=function(e,t){const a=X(e,t);if(a<0)return null;const s=Q(e,a);if(!s)return null;const i=J(e,s.from,s.to);return 0===i.length?null:{lineRects:i,charFrom:s.from,charTo:s.to}}(g.value,{x:(e.clientX-s.left)/(o.cssPageWidth/o.pdfPageWidth),y:(e.clientY-s.top)/(o.cssPageHeight/o.pdfPageHeight)});f.value=i?.lineRects??null},document.addEventListener(\"mousemove\",x))},{immediate:!0}),i(()=>{x&&document.removeEventListener(\"mousemove\",x),cancelAnimationFrame(I),C?.()});const k=t(()=>{const e=y.value;return e?.length?Nt(o.item.chapterId,o.item.localPageIndex,e,{globalPageIndex:o.item.globalPageIndex,globalPageNumber:o.item.globalPageNumber}):null}),L=t(()=>{const e=k.value,t=u.value;return!(!e||!t)&&t.listBookmarks().some(t=>Gt(t.anchor,e))});function $(){const e=u.value,t=k.value;e&&t&&!L.value&&(e.addBookmark({label:`书签 ${/* @__PURE__ */(new Date).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"})}`,anchor:t}),f.value=null,P.value=null)}const z=t(()=>{const e=y.value,t=e?.[e.length-1];if(!t||!o.pdfPageWidth)return null;const a=o.cssPageWidth/o.pdfPageWidth,s=o.cssPageHeight/o.pdfPageHeight,i=w.value;return{iconLeft:Math.min((t.origin.x+t.size.width)*a+6,Math.max(0,o.cssPageWidth-i-2)),iconTop:t.origin.y*s+(t.size.height*s-i)/2,zoneLeft:Math.max(0,(t.origin.x+t.size.width)*a-4),zoneTop:Math.max(0,t.origin.y*s-4),size:i}});return(t,a)=>m(u)&&e.pdfPageWidth&&e.pdfPageHeight?(n(),l(\"div\",{key:0,ref_key:\"rootRef\",ref:p,style:{position:\"absolute\",inset:\"0\",zIndex:14,pointerEvents:\"none\"}},[z.value&&y.value&&!L.value?(n(),l(\"div\",{key:0,style:h({position:\"absolute\",left:`${z.value.zoneLeft}px`,top:`${z.value.zoneTop}px`,width:`${z.value.size+20}px`,height:`${(y.value[y.value.length-1]?.size.height??0)*(e.cssPageHeight/e.pdfPageHeight)+z.value.size+12}px`,pointerEvents:\"auto\"}),onMouseenter:a[0]||(a[0]=e=>P.value=y.value),onMouseleave:a[1]||(a[1]=e=>P.value=null)},[c(\"button\",{type:\"button\",title:\"添加书签\",style:h({position:\"absolute\",left:z.value.iconLeft-z.value.zoneLeft+\"px\",top:z.value.iconTop-z.value.zoneTop+\"px\",width:`${z.value.size}px`,height:`${z.value.size}px`,cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"#3b82f6\",color:\"#fff\",border:\"none\",borderRadius:\"4px\",boxShadow:\"0 2px 8px rgba(37, 99, 235, 0.45)\",fontSize:\"12px\",padding:0}),onClick:v($,[\"stop\"])},\" 🔖 \",4)],36)):b(\"\",!0)],512)):b(\"\",!0)}}),Ja={key:0,width:\"24\",height:\"24\",viewBox:\"0 0 28 28\",fill:\"none\",\"aria-hidden\":\"\"},es={key:0,x:\"5\",y:\"4\",width:\"18\",height:\"20\",rx:\"3\",fill:\"#fde047\"},ts={key:1,d:\"M6 22h16\",stroke:\"#dc2626\",\"stroke-width\":\"2.2\",\"stroke-linecap\":\"round\"},as={key:2,d:\"M6 22c2-2 3-2 5 0s3 2 5 0 3-2 5 0\",stroke:\"#dc2626\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",fill:\"none\"},ss={key:3,d:\"M5 14h18\",stroke:\"#dc2626\",\"stroke-width\":\"2.2\",\"stroke-linecap\":\"round\"},is={key:1,width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"\"},os=/* @__PURE__ */o({__name:\"SelectionToolbarIcons\",props:{kind:{}},setup:e=>(t,a)=>\"note\"!==e.kind?(n(),l(\"svg\",Ja,[\"highlight\"===e.kind?(n(),l(\"rect\",es)):b(\"\",!0),a[0]||(a[0]=c(\"text\",{x:\"14\",y:\"19\",\"text-anchor\":\"middle\",\"font-size\":\"15\",\"font-weight\":\"700\",\"font-family\":\"system-ui, -apple-system, sans-serif\",fill:\"#0f172a\"},\" A \",-1)),\"underline\"===e.kind?(n(),l(\"path\",ts)):\"squiggly\"===e.kind?(n(),l(\"path\",as)):\"strikeout\"===e.kind?(n(),l(\"path\",ss)):b(\"\",!0)])):(n(),l(\"svg\",is,[...a[1]||(a[1]=[c(\"path\",{d:\"M8 3h8l4 4v14H8V3z\",fill:\"#fef3c7\",stroke:\"#d97706\",\"stroke-width\":\"1.2\",\"stroke-linejoin\":\"round\"},null,-1),c(\"path\",{d:\"M16 3v4h4\",stroke:\"#d97706\",\"stroke-width\":\"1.2\"},null,-1),c(\"path\",{d:\"M10 12h6M10 16h4\",stroke:\"#92400e\",\"stroke-width\":\"1.2\",\"stroke-linecap\":\"round\"},null,-1)])]))}),rs=[\"title\",\"aria-label\",\"onMouseenter\",\"onClick\"],ns=[\"title\",\"onMouseenter\",\"onClick\"],ls={style:{\"font-size\":\"11px\",\"font-weight\":\"600\"}},hs=/* @__PURE__ */o({__name:\"SelectionToolbarCard\",props:{placementAbove:{type:Boolean},anchorHeight:{},hiddenBuiltinActions:{},extraActions:{}},emits:[\"action\"],setup(e,{emit:s}){const i=e,o=s,r=[{id:\"highlight\",label:\"高亮背景\"},{id:\"underline\",label:\"下划线\"},{id:\"squiggly\",label:\"波浪线\"},{id:\"strikeout\",label:\"删除线\"},{id:\"note\",label:\"添加笔记\"}],d=t(()=>new Set(i.hiddenBuiltinActions??[])),g=t(()=>r.filter(e=>\"note\"!==e.id&&!d.value.has(e.id))),f=t(()=>!d.value.has(\"note\")),m=t(()=>[...i.extraActions??[]].sort((e,t)=>(e.order??0)-(t.order??0))),v=a(null),P=t(()=>({position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:i.placementAbove?void 0:`${i.anchorHeight+10}px`,bottom:i.placementAbove?`${i.anchorHeight+10}px`:void 0,display:\"flex\",alignItems:\"center\",gap:\"2px\",padding:\"4px 6px\",borderRadius:\"12px\",background:\"rgba(255, 255, 255, 0.96)\",border:\"1px solid rgba(15, 23, 42, 0.06)\",boxShadow:\"0 2px 8px rgba(15, 23, 42, 0.08), 0 12px 32px rgba(15, 23, 42, 0.1)\",backdropFilter:\"blur(10px)\",WebkitBackdropFilter:\"blur(10px)\"}));function y(e,t=!1){return{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"32px\",height:\"32px\",padding:0,margin:0,border:\"none\",borderRadius:\"8px\",background:v.value===e?t?\"#fffbeb\":\"#f1f5f9\":\"transparent\",color:t?\"#b45309\":\"#334155\",cursor:\"pointer\",flexShrink:0,WebkitAppearance:\"none\",appearance:\"none\"}}const C={width:\"1px\",height:\"20px\",margin:\"0 4px\",background:\"rgba(15, 23, 42, 0.1)\",flexShrink:0};return(e,t)=>(n(),l(\"div\",{role:\"toolbar\",\"aria-label\":\"选区工具\",style:h(P.value)},[(n(!0),l(u,null,p(g.value,e=>(n(),l(\"button\",{key:e.id,type:\"button\",title:e.label,\"aria-label\":e.label,style:h(y(e.id)),onMouseenter:t=>v.value=e.id,onMouseleave:t[0]||(t[0]=e=>v.value=null),onClick:t=>o(\"action\",e.id)},[w(os,{kind:e.id},null,8,[\"kind\"])],44,rs))),128)),(n(!0),l(u,null,p(m.value,e=>(n(),l(\"button\",{key:e.id,type:\"button\",title:e.label,style:h(y(e.id)),onMouseenter:t=>v.value=e.id,onMouseleave:t[1]||(t[1]=e=>v.value=null),onClick:t=>o(\"action\",e.id)},[c(\"span\",ls,I(e.label.slice(0,2)),1)],44,ns))),128)),f.value?(n(),l(u,{key:0},[c(\"span\",{style:C,\"aria-hidden\":\"\"}),c(\"button\",{type:\"button\",title:\"添加笔记\",\"aria-label\":\"添加笔记\",style:h(y(\"note\",!0)),onMouseenter:t[2]||(t[2]=e=>v.value=\"note\"),onMouseleave:t[3]||(t[3]=e=>v.value=null),onClick:t[4]||(t[4]=e=>o(\"action\",\"note\"))},[w(os,{kind:\"note\"})],36)],64)):b(\"\",!0)],4))}}),ds={highlight:\"highlight\",underline:\"underline\",squiggly:\"squiggly\",strikeout:\"strikeout\"};const cs=/* @__PURE__ */o({__name:\"PdfChapterViewport\",props:{className:{},features:{},buildSelectionMenu:{},annotationSelectionMenu:{},redactionSelectionMenu:{},showNoteMarkers:{type:Boolean,default:!0},showBookmarkMarkers:{type:Boolean,default:!0},showRedactionLayer:{type:Boolean,default:!1},renderPageOverlay:{},onExtraSelectionAction:{}},setup(e){const a=e,s=t(()=>a.features),{hostRef:i}=ra(s),o=function(){const{registry:e}=M();return t(()=>{const t=e.value?.getPlugin(ct.id)?.provides?.();return t?e=>t.createNoteFromSelection(e):null})}(),r=function(){const{registry:e}=M();return t(()=>!!e.value?.getPlugin(ct.id))}(),c=function(){const{registry:e}=M();return t(()=>!!e.value?.getPlugin(_t.id))}(),u=t(()=>a.showNoteMarkers&&r.value&&!1!==a.features?.notes?.enabled),p=t(()=>a.showBookmarkMarkers&&c.value&&!1!==a.features?.bookmarks?.enabled),f=t(()=>c.value&&!1!==a.features?.bookmarks?.enabled),v=function(e,a){const s=t(()=>e()?.selectionToolbar),i=t(()=>!1!==e()?.markup?.enabled),o=t(()=>!1!==e()?.notes?.enabled),{provides:r}=S(K.id),{provides:n}=S(O.id),{provides:l}=S(ct.id);return t(()=>{if(!1!==s.value?.enabled&&(i.value||o.value||s.value?.extraActions?.length))return t=>{const h=Ya(t.item);return d=>C(\"div\",d.menuWrapperProps,C(hs,{placementAbove:!!d.placement?.suggestTop,anchorHeight:d.rect.size.height,hiddenBuiltinActions:s.value?.hiddenBuiltinActions,extraActions:s.value?.extraActions,onAction:s=>{if(\"highlight\"!==s&&\"underline\"!==s&&\"squiggly\"!==s&&\"strikeout\"!==s){if(\"note\"===s){if(!r.value||!l.value||!o.value)return;const e=r.value.getHighlightRectsForPage(t.item.localPageIndex,h);return void Ka(r.value.getSelectedText(h),a=>{l.value?.requestCreateFromSelection({chapterId:t.item.chapterId,localPageIndex:t.item.localPageIndex,globalPageIndex:t.item.globalPageIndex,globalPageNumber:t.item.globalPageNumber,rectsPdfCoord:e,selectedText:a.join(\"\\n\")})})}a?.onExtraAction?.(s,t)}else{if(!r.value||!n.value||!i.value)return;Ce(h,ds[s],n.value,r.value,e()?.markup?.styles)}}}))}})}(()=>a.features,{onExtraAction:a.onExtraSelectionAction}),b=t(()=>{if(a.buildSelectionMenu||v.value)return e=>{const t=v.value?v.value(e):e.defaultMenu;return a.buildSelectionMenu?a.buildSelectionMenu({...e,defaultMenu:t}):t}}),{provides:y}=S(W.id);function I(e){const t=[];if(f.value){const s=function(e){const t=Ya(e),s=y.value?.getDocument(t)?.pages[e.localPageIndex];return e.isPlaceholder||!s?null:C(Qa,{item:e,pdfPageWidth:s.size.width,pdfPageHeight:s.size.height,cssPageWidth:e.width,cssPageHeight:e.height,hoverUi:a.features?.bookmarks?.hover})}(e);s&&t.push(s)}const s=a.renderPageOverlay?.(e);if(s&&t.push(s),t.length)return C(\"div\",t)}return(t,a)=>(n(),l(\"div\",{ref_key:\"hostRef\",ref:i,class:d(e.className),style:h(e.className?void 0:m(ve))},[w(m(va),{class:d(e.className)},{page:P(({item:t})=>[w(Xa,{item:t,features:e.features,\"show-note-markers\":u.value,\"show-bookmark-markers\":p.value,\"show-redaction-layer\":e.showRedactionLayer,\"note-marker-ui\":e.features?.notes?.marker,\"bookmark-marker-ui\":e.features?.bookmarks?.marker,\"build-selection-menu\":b.value,\"create-note\":m(o),\"annotation-selection-menu\":e.annotationSelectionMenu,\"redaction-selection-menu\":e.redactionSelectionMenu,\"render-page-overlay\":I},null,8,[\"item\",\"features\",\"show-note-markers\",\"show-bookmark-markers\",\"show-redaction-layer\",\"note-marker-ui\",\"bookmark-marker-ui\",\"build-selection-menu\",\"create-note\",\"annotation-selection-menu\",\"redaction-selection-menu\"])]),_:1},8,[\"class\"]),g(t.$slots,\"default\")],6))}}),us={key:0,style:{display:\"flex\",flexDirection:\"column\",height:\"100%\",minHeight:0,width:\"100%\"}},ps=/* @__PURE__ */o({__name:\"ChapterPdfViewer\",props:{engine:{},options:{},editorOptions:{},features:{},className:{},viewportClassName:{},onExtraSelectionAction:{type:Function}},setup(e){const a=e,s=t(()=>function(e){if(e.options)return Jt(e.options);if(!e.editorOptions)throw new Error(\"ChapterPdfViewer: 请传入 `options`(推荐),或同时传入 `editorOptions` 与 `features`\");const t=Me(e.features),{plugins:a}=Yt({...e.editorOptions,features:t});return{plugins:a,features:t,editorOptions:{...e.editorOptions,features:t}}}({engine:a.engine,options:a.options,editorOptions:a.editorOptions,features:a.features}));return(t,a)=>(n(),l(\"div\",{class:d(e.className),style:h(e.className?void 0:m(ve))},[w(m(x),{engine:e.engine,plugins:s.value.plugins},{default:P(({pluginsReady:a})=>[a?(n(),l(\"div\",us,[g(t.$slots,\"prepend\"),w(cs,{class:d(e.viewportClassName),style:{flex:1,minHeight:0},features:s.value.features,\"on-extra-selection-action\":e.onExtraSelectionAction},null,8,[\"class\",\"features\",\"on-extra-selection-action\"]),g(t.$slots,\"default\")])):b(\"\",!0)]),_:3},8,[\"engine\",\"plugins\"])],6))}}),gs={class:\"chapter-tree-row\"},fs=[\"aria-expanded\"],ms={key:1,class:\"chapter-tree-toggle-spacer\",\"aria-hidden\":\"\"},vs={class:\"chapter-tree-label\"},bs={class:\"chapter-tree-meta\"},Ps={key:0},ws=(e,t)=>{const a=e.__vccOpts||e;for(const[s,i]of t)a[s]=i;return a},ys=/* @__PURE__ */ws(/* @__PURE__ */o({__name:\"ChapterTreeItem\",props:{node:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup(e){const s={idle:\"未加载\",loading:\"加载中\",loaded:\"已加载\",closed:\"已卸载\",error:\"失败\",\"password-required\":\"需密码\"},i=e,o=t(()=>i.node.children??[]),r=t(()=>o.value.length>0),h=a(i.depth<1),u=t(()=>i.activeChapterId===i.node.id),p=t(()=>i.chapterStatus[i.node.id]??\"idle\"),g=t(()=>!r.value);return(t,a)=>(n(),l(\"li\",null,[c(\"div\",gs,[r.value?(n(),l(\"button\",{key:0,type:\"button\",class:\"chapter-tree-toggle\",\"aria-expanded\":h.value,onClick:a[0]||(a[0]=e=>h.value=!h.value)},I(h.value?\"▼\":\"▶\"),9,fs)):(n(),l(\"span\",ms)),c(\"button\",{type:\"button\",class:d([\"chapter-tree-btn\",{\"chapter-tree-btn-active\":u.value}]),onClick:a[1]||(a[1]=a=>t.$emit(\"select\",e.node.id))},[c(\"div\",vs,I(e.node.title),1),c(\"div\",bs,[c(\"span\",null,\" 第 \"+I(e.node.startPage)+I(e.node.endPage!==e.node.startPage?`–${e.node.endPage}`:\"\")+\" 页 \",1),g.value?(n(),l(\"span\",Ps,I(s[p.value]),1)):b(\"\",!0)])],2)]),r.value&&h.value?(n(),f(Cs,{key:0,nodes:o.value,depth:e.depth+1,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:a[2]||(a[2]=e=>t.$emit(\"select\",e))},null,8,[\"nodes\",\"depth\",\"active-chapter-id\",\"chapter-status\"])):b(\"\",!0)]))}}),[[\"__scopeId\",\"data-v-315bbf7a\"]]),Cs=/* @__PURE__ */ws(/* @__PURE__ */o({__name:\"ChapterTreeList\",props:{nodes:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup:e=>(t,a)=>(n(),l(\"ul\",{class:\"chapter-tree-list\",style:h({marginLeft:e.depth>0?\"12px\":\"0\"})},[(n(!0),l(u,null,p(e.nodes,s=>(n(),f(ys,{key:s.id,node:s,depth:e.depth,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:a[0]||(a[0]=e=>t.$emit(\"select\",e))},null,8,[\"node\",\"depth\",\"active-chapter-id\",\"chapter-status\"]))),128))],4))}),[[\"__scopeId\",\"data-v-eb742e4f\"]]),Is={class:\"chapter-tree\"},Ms={class:\"chapter-tree-nav\",\"aria-label\":\"章节目录\"},Ss=/* @__PURE__ */ws(/* @__PURE__ */o({__name:\"ChapterTreePanel\",props:{tree:{},activeChapterId:{}},emits:[\"active-chapter-change\"],setup(e,{emit:t}){const o=e,r=t,{provides:h}=S(He.id),{provides:d}=S(Oe.id),u=a({});function p(){if(!d.value)return;const e={},t=a=>{for(const s of a)e[s.id]=d.value.getChapterStatus(s.id),s.children?.length&&t(s.children)};t(o.tree),u.value=e}s([d,()=>o.tree],p,{immediate:!0});let g=null;function f(e){r(\"active-chapter-change\",e),h.value?.scrollToChapter(e)}return s(d,e=>{g?.(),g=e?e.onChapterStatusChange(p):null},{immediate:!0}),i(()=>g?.()),(t,a)=>(n(),l(\"aside\",Is,[a[0]||(a[0]=c(\"h2\",{class:\"chapter-tree-title\"},\"章节目录\",-1)),c(\"nav\",Ms,[w(Cs,{nodes:e.tree,depth:0,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":u.value,onSelect:f},null,8,[\"nodes\",\"active-chapter-id\",\"chapter-status\"])])]))}}),[[\"__scopeId\",\"data-v-d7a0838d\"]]);export{Se as CallbackPasswordProvider,ps as ChapterPdfViewer,Ss as ChapterTreePanel,Zt as DEFAULT_CHAPTER_VIEWER_CONFIG,jt as DEFAULT_CHAPTER_VIEWER_FEATURES,k as EmbedPDF,cs as PdfChapterViewport,Ce as applySelectionMarkup,Nt as buildParagraphBookmarkAnchor,Jt as createChapterViewerBundle,Yt as createChapterViewerEditor,ea as createChapterViewerEditorOptions,Ht as createPdfChapterEditor,L as useCapability,me as usePdfiumEngine,$ as useRegistry};\n//# sourceMappingURL=index.js.map\n","<script setup lang=\"ts\">\nimport {\n ChapterPdfViewer as ChapterPdfViewerCore,\n type ChapterPdfViewerProps,\n} from '@embedpdf-editor/editor-engine/vue';\n\ndefineProps<ChapterPdfViewerProps>();\n</script>\n\n<template>\n <ChapterPdfViewerCore v-bind=\"$props\">\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <slot />\n </ChapterPdfViewerCore>\n</template>\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.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 this.setManifestInternal(config.manifest);\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 const chapterId = chapter.chapterId;\n this.updateStatus(chapterId, \"loading\");\n this.chapterLastUsed.set(chapterId, Date.now());\n try {\n const cachedPwd = chapter.encrypted && ((_a = this.passwordProvider) == null ? void 0 : _a.getCachedPassword) ? this.passwordProvider.getCachedPassword(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: 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: chapterId,\n buffer: payload.buffer,\n name: chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n });\n const openResult = await new Promise((resolve, reject) => {\n openTask.wait((res) => resolve(res), (err) => reject(err));\n });\n await new Promise((resolve, reject) => {\n openResult.task.wait(\n () => resolve(),\n (err) => reject(err)\n );\n });\n if (cap.isDocumentOpen(chapterId)) {\n this.updateStatus(chapterId, \"loaded\");\n }\n return this.waitForTerminalStatus(chapterId);\n } catch (err) {\n const current = this.chapterStatus.get(chapterId);\n if (current !== \"loaded\" && current !== \"password-required\") {\n const message = err instanceof Error ? err.message : `Failed to load chapter \"${chapterId}\"`;\n this.logger.error(_ChapterManagerPlugin.id, \"LoadChapter\", message, err);\n this.updateStatus(chapterId, \"error\", message);\n }\n return this.chapterStatus.get(chapterId) ?? \"error\";\n }\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 resolve(st);\n return true;\n }\n return false;\n };\n if (check(this.chapterStatus.get(chapterId) ?? \"idle\")) return;\n let unsub = null;\n unsub = this.statusChange$.on((evt) => {\n if (evt.chapterId === chapterId && check(evt.status)) {\n unsub == null ? void 0 : unsub();\n unsub = null;\n }\n });\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 as t,createBehaviorEmitter as e,createEmitter as a,createPluginRegistration as s}from\"@embedpdf/core\";import{DocumentManagerPlugin as o,DocumentManagerPluginPackage as r}from\"@embedpdf/plugin-document-manager\";import{InteractionManagerPluginPackage as i}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,AnnotationPlugin as p}from\"@embedpdf/plugin-annotation\";import{HistoryPluginPackage as g}from\"@embedpdf/plugin-history\";import{RedactionPluginPackage as f}from\"@embedpdf/plugin-redaction\";import{FormPluginPackage as m}from\"@embedpdf/plugin-form\";import{StampPluginPackage as v}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as b}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as P}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as w}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as y,UIPluginPackage as I}from\"@embedpdf/plugin-ui\";import{PdfErrorCode as C,PdfAnnotationSubtype as M}from\"@embedpdf/models\";const S=\"chapter-manager\",x={id:S,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 k={kind:\"first-wins\"};function L(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 T(t,e=k){const a=function(t,e=k){const a=/* @__PURE__ */new Map;for(const o of t.chapters){const[t,e]=o.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(o):a.set(s,[o])}}const s=/* @__PURE__ */new Map;for(const[o,r]of a)s.set(o,L(o,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const o=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let i=0;for(const n of o){const t=a.get(n),e=s.get(t);if(!e)continue;const[o]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-o);r.push({globalPageIndex:i++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new $(r)}const D=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=k,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(o.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??k,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)})),this.setManifestInternal(t.manifest),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,o]=s.globalPageRange,[r,i]=s.localPageRange;if(t>o&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${o}]`),r>i&&e.push(`${s.chapterId}: invalid localPageRange [${r},${i}]`),o-t!==i-r&&e.push(`${s.chapterId}: page-count mismatch (global ${o-t+1} vs local ${i-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>o)&&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()),o=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)o.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=T(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 o=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=o.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<o.length&&r.add(e)}const i=/* @__PURE__ */new Set;for(const n of r)i.add(o[n]);for(const n of i){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=o.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 o=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,o),o}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;const a=t.chapterId;this.updateStatus(a,\"loading\"),this.chapterLastUsed.set(a,Date.now());try{const s=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(a):null,o=await this.resolvePdfPayload(t),r=this.documentManager.provides(),i=\"url\"in o?r.openDocumentUrl({documentId:a,url:o.url,name:t.title,password:s??void 0,autoActivate:!1}):r.openDocumentBuffer({documentId:a,buffer:o.buffer,name:t.title,password:s??void 0,autoActivate:!1}),n=await new Promise((t,e)=>{i.wait(e=>t(e),t=>e(t))});return await new Promise((t,e)=>{n.task.wait(()=>t(),t=>e(t))}),r.isDocumentOpen(a)&&this.updateStatus(a,\"loaded\"),this.waitForTerminalStatus(a)}catch(o){const t=this.chapterStatus.get(a);if(\"loaded\"!==t&&\"password-required\"!==t){const t=o instanceof Error?o.message:`Failed to load chapter \"${a}\"`;this.logger.error(s.id,\"LoadChapter\",t,o),this.updateStatus(a,\"error\",t)}return this.chapterStatus.get(a)??\"error\"}}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>(\"loaded\"===t||\"error\"===t||\"password-required\"===t||\"closed\"===t)&&(e(t),!0);if(a(this.chapterStatus.get(t)??\"idle\"))return;let s=null;s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,e,a){if(e!==C.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const o=this.findChapter(t);if(!o)return;const r=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,r);let i=null;try{i=await this.passwordProvider.resolvePassword(o,r-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).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 O=D;const G={manifest:x,create:t=>new O(S,t),reducer:t=>t,initialState:{}},z=\"chapter-scroll\",A={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 N={kind:\"first-wins\"};function V(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 F{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 E(t,e=N){const a=function(t,e=N){const a=/* @__PURE__ */new Map;for(const o of t.chapters){const[t,e]=o.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(o):a.set(s,[o])}}const s=/* @__PURE__ */new Map;for(const[o,r]of a)s.set(o,V(o,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const o=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let i=0;for(const n of o){const t=a.get(n),e=s.get(t);if(!e)continue;const[o]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-o);r.push({globalPageIndex:i++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new F(r)}const U=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=N,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(o.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??N,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)})),this.setManifestInternal(t.manifest),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,o]=s.globalPageRange,[r,i]=s.localPageRange;if(t>o&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${o}]`),r>i&&e.push(`${s.chapterId}: invalid localPageRange [${r},${i}]`),o-t!==i-r&&e.push(`${s.chapterId}: page-count mismatch (global ${o-t+1} vs local ${i-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>o)&&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()),o=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)o.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=E(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 o=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=o.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<o.length&&r.add(e)}const i=/* @__PURE__ */new Set;for(const n of r)i.add(o[n]);for(const n of i){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=o.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 o=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,o),o}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;const a=t.chapterId;this.updateStatus(a,\"loading\"),this.chapterLastUsed.set(a,Date.now());try{const s=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(a):null,o=await this.resolvePdfPayload(t),r=this.documentManager.provides(),i=\"url\"in o?r.openDocumentUrl({documentId:a,url:o.url,name:t.title,password:s??void 0,autoActivate:!1}):r.openDocumentBuffer({documentId:a,buffer:o.buffer,name:t.title,password:s??void 0,autoActivate:!1}),n=await new Promise((t,e)=>{i.wait(e=>t(e),t=>e(t))});return await new Promise((t,e)=>{n.task.wait(()=>t(),t=>e(t))}),r.isDocumentOpen(a)&&this.updateStatus(a,\"loaded\"),this.waitForTerminalStatus(a)}catch(o){const t=this.chapterStatus.get(a);if(\"loaded\"!==t&&\"password-required\"!==t){const t=o instanceof Error?o.message:`Failed to load chapter \"${a}\"`;this.logger.error(s.id,\"LoadChapter\",t,o),this.updateStatus(a,\"error\",t)}return this.chapterStatus.get(a)??\"error\"}}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>(\"loaded\"===t||\"error\"===t||\"password-required\"===t||\"closed\"===t)&&(e(t),!0);if(a(this.chapterStatus.get(t)??\"idle\"))return;let s=null;s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,e,a){if(e!==C.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const o=this.findChapter(t);if(!o)return;const r=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,r);let i=null;try{i=await this.passwordProvider.resolvePassword(o,r-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).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}}:{}}))}};U.id=\"chapter-manager\";let R=U;function _(t,e){if(t===e)return!0;if(t.totalHeight!==e.totalHeight||t.totalWidth!==e.totalWidth||t.pageGap!==e.pageGap||t.items.length!==e.items.length)return!1;for(let a=0;a<t.items.length;a++){const s=t.items[a],o=e.items[a];if(s.globalPageIndex!==o.globalPageIndex||s.isPlaceholder!==o.isPlaceholder||s.chapterId!==o.chapterId||s.localPageIndex!==o.localPageIndex||s.offsetTop!==o.offsetTop||s.width!==o.width||s.height!==o.height)return!1}return!0}const q=class extends t{constructor(t,a){super(t,a),this.layoutChange$=e(void 0,_),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(R.id),this.documentManager=this.registry.getPlugin(o.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.chapterManager.provides().onChapterStatusChange(t=>{\"loaded\"===t.status&&this.harvestChapterSizes(t.chapterId),\"loaded\"!==t.status&&\"closed\"!==t.status&&\"error\"!==t.status&&\"password-required\"!==t.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){const e=this.coreState.core.documents[t];return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}isChapterPagePlaceholder(t){const e=this.chapterManager.provides().getChapterStatus(t);return\"error\"===e||\"password-required\"===e||\"loaded\"!==e}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(t.chapterId)||this.isChapterDocumentReady(t.chapterId))&&this.harvestChapterSizes(t.chapterId)}this.refreshLayout()}onDocumentLoaded(t){var e;if(0===((null==(e=this.virtualPageMap)?void 0:e.pagesOfChapter(t).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){var e;0!==((null==(e=this.virtualPageMap)?void 0:e.pagesOfChapter(t).length)??0)&&(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:o}=this.getPageSize(s);this.offsets[s]=e,e+=o+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 o=this.pageSizes.get(e.globalPageIndex);o&&o.width===s.width&&o.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),o=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===o.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),i=[];for(const n of o){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&i.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==i.length?this.applyChapterPageSizes(t,i):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 o=s;for(;o<t;){const t=this.getPageSize(o),e=this.offsets[o];if(t.height,e>=a)break;o++}const r=[];let i=s,n=-1;for(let h=s;h<o;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,o=Math.max(0,Math.min(s,a)-Math.max(t,e));o>n&&(n=o,i=h)}this.currentVisible=r,this.currentGlobalPageIndex=i,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:i}),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 o=e+a>>1;this.offsets[o]<=t?(s=o,e=o+1):a=o-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),o=[];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.isChapterPagePlaceholder(t.chapterId);o.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:o,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 o=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const i=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!i||!n)return void this.scrollToIndex(t,a);const h=i.height/n.size.height,d=(this.offsets[t]??0)+e*h-o;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)}};q.id=\"chapter-scroll\";let B=q;const H={manifest:A,create:t=>new B(z,t),reducer:t=>t,initialState:{}},W=\"note\",j={id:W,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 J={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 Q=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 Y(t,e=J){const a=function(t,e=J){const a=/* @__PURE__ */new Map;for(const o of t.chapters){const[t,e]=o.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(o):a.set(s,[o])}}const s=/* @__PURE__ */new Map;for(const[o,r]of a)s.set(o,K(o,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const o=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let i=0;for(const n of o){const t=a.get(n),e=s.get(t);if(!e)continue;const[o]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-o);r.push({globalPageIndex:i++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new Q(r)}const X=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=J,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(o.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??J,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)})),this.setManifestInternal(t.manifest),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,o]=s.globalPageRange,[r,i]=s.localPageRange;if(t>o&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${o}]`),r>i&&e.push(`${s.chapterId}: invalid localPageRange [${r},${i}]`),o-t!==i-r&&e.push(`${s.chapterId}: page-count mismatch (global ${o-t+1} vs local ${i-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>o)&&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()),o=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)o.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=Y(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 o=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=o.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<o.length&&r.add(e)}const i=/* @__PURE__ */new Set;for(const n of r)i.add(o[n]);for(const n of i){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=o.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 o=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,o),o}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;const a=t.chapterId;this.updateStatus(a,\"loading\"),this.chapterLastUsed.set(a,Date.now());try{const s=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(a):null,o=await this.resolvePdfPayload(t),r=this.documentManager.provides(),i=\"url\"in o?r.openDocumentUrl({documentId:a,url:o.url,name:t.title,password:s??void 0,autoActivate:!1}):r.openDocumentBuffer({documentId:a,buffer:o.buffer,name:t.title,password:s??void 0,autoActivate:!1}),n=await new Promise((t,e)=>{i.wait(e=>t(e),t=>e(t))});return await new Promise((t,e)=>{n.task.wait(()=>t(),t=>e(t))}),r.isDocumentOpen(a)&&this.updateStatus(a,\"loaded\"),this.waitForTerminalStatus(a)}catch(o){const t=this.chapterStatus.get(a);if(\"loaded\"!==t&&\"password-required\"!==t){const t=o instanceof Error?o.message:`Failed to load chapter \"${a}\"`;this.logger.error(s.id,\"LoadChapter\",t,o),this.updateStatus(a,\"error\",t)}return this.chapterStatus.get(a)??\"error\"}}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>(\"loaded\"===t||\"error\"===t||\"password-required\"===t||\"closed\"===t)&&(e(t),!0);if(a(this.chapterStatus.get(t)??\"idle\"))return;let s=null;s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,e,a){if(e!==C.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const o=this.findChapter(t);if(!o)return;const r=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,r);let i=null;try{i=await this.passwordProvider.resolvePassword(o,r-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).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}}:{}}))}};X.id=\"chapter-manager\";let Z=X;const tt={kind:\"first-wins\"};function et(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 at=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 st(t,e=tt){const a=function(t,e=tt){const a=/* @__PURE__ */new Map;for(const o of t.chapters){const[t,e]=o.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(o):a.set(s,[o])}}const s=/* @__PURE__ */new Map;for(const[o,r]of a)s.set(o,et(o,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const o=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let i=0;for(const n of o){const t=a.get(n),e=s.get(t);if(!e)continue;const[o]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-o);r.push({globalPageIndex:i++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new at(r)}const ot=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=tt,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(o.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??tt,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)})),this.setManifestInternal(t.manifest),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,o]=s.globalPageRange,[r,i]=s.localPageRange;if(t>o&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${o}]`),r>i&&e.push(`${s.chapterId}: invalid localPageRange [${r},${i}]`),o-t!==i-r&&e.push(`${s.chapterId}: page-count mismatch (global ${o-t+1} vs local ${i-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>o)&&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()),o=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)o.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=st(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 o=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=o.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<o.length&&r.add(e)}const i=/* @__PURE__ */new Set;for(const n of r)i.add(o[n]);for(const n of i){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=o.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 o=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,o),o}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;const a=t.chapterId;this.updateStatus(a,\"loading\"),this.chapterLastUsed.set(a,Date.now());try{const s=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(a):null,o=await this.resolvePdfPayload(t),r=this.documentManager.provides(),i=\"url\"in o?r.openDocumentUrl({documentId:a,url:o.url,name:t.title,password:s??void 0,autoActivate:!1}):r.openDocumentBuffer({documentId:a,buffer:o.buffer,name:t.title,password:s??void 0,autoActivate:!1}),n=await new Promise((t,e)=>{i.wait(e=>t(e),t=>e(t))});return await new Promise((t,e)=>{n.task.wait(()=>t(),t=>e(t))}),r.isDocumentOpen(a)&&this.updateStatus(a,\"loaded\"),this.waitForTerminalStatus(a)}catch(o){const t=this.chapterStatus.get(a);if(\"loaded\"!==t&&\"password-required\"!==t){const t=o instanceof Error?o.message:`Failed to load chapter \"${a}\"`;this.logger.error(s.id,\"LoadChapter\",t,o),this.updateStatus(a,\"error\",t)}return this.chapterStatus.get(a)??\"error\"}}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>(\"loaded\"===t||\"error\"===t||\"password-required\"===t||\"closed\"===t)&&(e(t),!0);if(a(this.chapterStatus.get(t)??\"idle\"))return;let s=null;s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,e,a){if(e!==C.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const o=this.findChapter(t);if(!o)return;const r=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,r);let i=null;try{i=await this.passwordProvider.resolvePassword(o,r-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).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}}:{}}))}};ot.id=\"chapter-manager\";let rt=ot;function it(t,e){if(t===e)return!0;if(t.totalHeight!==e.totalHeight||t.totalWidth!==e.totalWidth||t.pageGap!==e.pageGap||t.items.length!==e.items.length)return!1;for(let a=0;a<t.items.length;a++){const s=t.items[a],o=e.items[a];if(s.globalPageIndex!==o.globalPageIndex||s.isPlaceholder!==o.isPlaceholder||s.chapterId!==o.chapterId||s.localPageIndex!==o.localPageIndex||s.offsetTop!==o.offsetTop||s.width!==o.width||s.height!==o.height)return!1}return!0}const nt=class extends t{constructor(t,a){super(t,a),this.layoutChange$=e(void 0,it),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(rt.id),this.documentManager=this.registry.getPlugin(o.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.chapterManager.provides().onChapterStatusChange(t=>{\"loaded\"===t.status&&this.harvestChapterSizes(t.chapterId),\"loaded\"!==t.status&&\"closed\"!==t.status&&\"error\"!==t.status&&\"password-required\"!==t.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){const e=this.coreState.core.documents[t];return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}isChapterPagePlaceholder(t){const e=this.chapterManager.provides().getChapterStatus(t);return\"error\"===e||\"password-required\"===e||\"loaded\"!==e}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(t.chapterId)||this.isChapterDocumentReady(t.chapterId))&&this.harvestChapterSizes(t.chapterId)}this.refreshLayout()}onDocumentLoaded(t){var e;if(0===((null==(e=this.virtualPageMap)?void 0:e.pagesOfChapter(t).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){var e;0!==((null==(e=this.virtualPageMap)?void 0:e.pagesOfChapter(t).length)??0)&&(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:o}=this.getPageSize(s);this.offsets[s]=e,e+=o+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 o=this.pageSizes.get(e.globalPageIndex);o&&o.width===s.width&&o.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),o=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===o.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),i=[];for(const n of o){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&i.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==i.length?this.applyChapterPageSizes(t,i):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 o=s;for(;o<t;){const t=this.getPageSize(o),e=this.offsets[o];if(t.height,e>=a)break;o++}const r=[];let i=s,n=-1;for(let h=s;h<o;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,o=Math.max(0,Math.min(s,a)-Math.max(t,e));o>n&&(n=o,i=h)}this.currentVisible=r,this.currentGlobalPageIndex=i,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:i}),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 o=e+a>>1;this.offsets[o]<=t?(s=o,e=o+1):a=o-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),o=[];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.isChapterPagePlaceholder(t.chapterId);o.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:o,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 o=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const i=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!i||!n)return void this.scrollToIndex(t,a);const h=i.height/n.size.height,d=(this.offsets[t]??0)+e*h-o;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)}};nt.id=\"chapter-scroll\";let ht=nt;const dt=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(ht.id),this.chapterManager=this.registry.getPlugin(Z.id),this.documentManager=this.registry.getPlugin(o.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),listNotesForChapter:t=>this.listNotesForChapter(t),replaceNotesForChapter:(t,e)=>this.replaceNotesForChapter(t,e),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())}listNotesForChapter(t){return this.listAll().filter(e=>e.chapterId===t)}replaceNotesForChapter(t,e){for(const[a,s]of this.notes.entries())s.chapterId===t&&this.notes.delete(a);for(const a of e)a.chapterId===t&&this.notes.set(a.noteId,a);this.notesChange$.emit(this.listAll())}buildDraft(t){return{chapterId:t.chapterId,localPageIndex:t.localPageIndex,globalPageNumber:t.globalPageNumber,globalPageIndex:t.globalPageIndex,rectsPdfCoord:t.rectsPdfCoord,endAnchor:ct(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 o=null;try{o=await a(e)}catch(i){return this.logger.error(s.id,\"OnCreateNote\",\"Callback failed\",i),null}if(!o)return null;const r={...e,noteId:o.noteId};return this.registerNote(r),r}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(o){return void this.logger.error(s.id,\"OnDeleteNote\",\"Callback failed\",o)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,e){var a,o;const r=this.notes.get(t);if(!r)return;const i={...r,content:e};try{await(null==(o=(a=this.config.callbacks).onUpdateNote)?void 0:o.call(a,i))}catch(n){return void this.logger.error(s.id,\"OnUpdateNote\",\"Callback failed\",n)}this.notes.set(t,i),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(()=>{o(),a(null)},2500),o=e.onLayoutChange(e=>{const r=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);r&&(clearTimeout(s),o(),a(r))})})}};dt.id=\"note\";let lt=dt;function ct(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}const ut={manifest:j,create:t=>new lt(W,t),reducer:t=>t,initialState:{}},pt=\"paragraph-bookmark\",gt={id:pt,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};const ft={kind:\"first-wins\"};function mt(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 vt=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 bt(t,e=ft){const a=function(t,e=ft){const a=/* @__PURE__ */new Map;for(const o of t.chapters){const[t,e]=o.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(o):a.set(s,[o])}}const s=/* @__PURE__ */new Map;for(const[o,r]of a)s.set(o,mt(o,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const o=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let i=0;for(const n of o){const t=a.get(n),e=s.get(t);if(!e)continue;const[o]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-o);r.push({globalPageIndex:i++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new vt(r)}const Pt=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=ft,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(o.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??ft,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)})),this.setManifestInternal(t.manifest),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,o]=s.globalPageRange,[r,i]=s.localPageRange;if(t>o&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${o}]`),r>i&&e.push(`${s.chapterId}: invalid localPageRange [${r},${i}]`),o-t!==i-r&&e.push(`${s.chapterId}: page-count mismatch (global ${o-t+1} vs local ${i-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>o)&&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()),o=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)o.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=bt(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 o=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=o.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<o.length&&r.add(e)}const i=/* @__PURE__ */new Set;for(const n of r)i.add(o[n]);for(const n of i){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=o.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 o=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,o),o}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;const a=t.chapterId;this.updateStatus(a,\"loading\"),this.chapterLastUsed.set(a,Date.now());try{const s=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(a):null,o=await this.resolvePdfPayload(t),r=this.documentManager.provides(),i=\"url\"in o?r.openDocumentUrl({documentId:a,url:o.url,name:t.title,password:s??void 0,autoActivate:!1}):r.openDocumentBuffer({documentId:a,buffer:o.buffer,name:t.title,password:s??void 0,autoActivate:!1}),n=await new Promise((t,e)=>{i.wait(e=>t(e),t=>e(t))});return await new Promise((t,e)=>{n.task.wait(()=>t(),t=>e(t))}),r.isDocumentOpen(a)&&this.updateStatus(a,\"loaded\"),this.waitForTerminalStatus(a)}catch(o){const t=this.chapterStatus.get(a);if(\"loaded\"!==t&&\"password-required\"!==t){const t=o instanceof Error?o.message:`Failed to load chapter \"${a}\"`;this.logger.error(s.id,\"LoadChapter\",t,o),this.updateStatus(a,\"error\",t)}return this.chapterStatus.get(a)??\"error\"}}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>(\"loaded\"===t||\"error\"===t||\"password-required\"===t||\"closed\"===t)&&(e(t),!0);if(a(this.chapterStatus.get(t)??\"idle\"))return;let s=null;s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,e,a){if(e!==C.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const o=this.findChapter(t);if(!o)return;const r=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,r);let i=null;try{i=await this.passwordProvider.resolvePassword(o,r-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).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}}:{}}))}};Pt.id=\"chapter-manager\";let wt=Pt;const yt={kind:\"first-wins\"};function It(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 Ct{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 Mt(t,e=yt){const a=function(t,e=yt){const a=/* @__PURE__ */new Map;for(const o of t.chapters){const[t,e]=o.globalPageRange;for(let s=t;s<=e;s++){const t=a.get(s);t?t.push(o):a.set(s,[o])}}const s=/* @__PURE__ */new Map;for(const[o,r]of a)s.set(o,It(o,r,e));return s}(t,e),s=/* @__PURE__ */new Map;for(const n of t.chapters)s.set(n.chapterId,n);const o=Array.from(a.keys()).sort((t,e)=>t-e),r=[];let i=0;for(const n of o){const t=a.get(n),e=s.get(t);if(!e)continue;const[o]=e.globalPageRange,[h]=e.localPageRange,d=h+(n-o);r.push({globalPageIndex:i++,globalPageNumber:n,chapterId:t,localPageIndex:d})}return new Ct(r)}const St=class s extends t{constructor(t,s){super(t,s),this.statusChange$=e(),this.manifestChange$=a(),this.overlapStrategy=yt,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(o.id)}async initialize(t){if(this.config=t,this.passwordProvider=t.passwordProvider,this.overlapStrategy=t.overlapStrategy??yt,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)})),this.setManifestInternal(t.manifest),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,o]=s.globalPageRange,[r,i]=s.localPageRange;if(t>o&&e.push(`${s.chapterId}: invalid globalPageRange [${t},${o}]`),r>i&&e.push(`${s.chapterId}: invalid localPageRange [${r},${i}]`),o-t!==i-r&&e.push(`${s.chapterId}: page-count mismatch (global ${o-t+1} vs local ${i-r+1})`),s.ownedGlobalPages)for(const a of s.ownedGlobalPages)(a<t||a>o)&&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()),o=new Set(t.chapters.map(t=>t.chapterId));for(const s of a)o.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=Mt(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 o=this.manifest.chapters.map(t=>t.chapterId),r=/* @__PURE__ */new Set;for(const n of s){const t=o.indexOf(n);if(-1!==t)for(let e=t-a;e<=t+a;e++)e>=0&&e<o.length&&r.add(e)}const i=/* @__PURE__ */new Set;for(const n of r)i.add(o[n]);for(const n of i){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=o.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 o=this.startLoad(a).finally(()=>{this.pendingLoadPromises.delete(t)});return this.pendingLoadPromises.set(t,o),o}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;const a=t.chapterId;this.updateStatus(a,\"loading\"),this.chapterLastUsed.set(a,Date.now());try{const s=t.encrypted&&(null==(e=this.passwordProvider)?void 0:e.getCachedPassword)?this.passwordProvider.getCachedPassword(a):null,o=await this.resolvePdfPayload(t),r=this.documentManager.provides(),i=\"url\"in o?r.openDocumentUrl({documentId:a,url:o.url,name:t.title,password:s??void 0,autoActivate:!1}):r.openDocumentBuffer({documentId:a,buffer:o.buffer,name:t.title,password:s??void 0,autoActivate:!1}),n=await new Promise((t,e)=>{i.wait(e=>t(e),t=>e(t))});return await new Promise((t,e)=>{n.task.wait(()=>t(),t=>e(t))}),r.isDocumentOpen(a)&&this.updateStatus(a,\"loaded\"),this.waitForTerminalStatus(a)}catch(o){const t=this.chapterStatus.get(a);if(\"loaded\"!==t&&\"password-required\"!==t){const t=o instanceof Error?o.message:`Failed to load chapter \"${a}\"`;this.logger.error(s.id,\"LoadChapter\",t,o),this.updateStatus(a,\"error\",t)}return this.chapterStatus.get(a)??\"error\"}}waitForTerminalStatus(t){return new Promise(e=>{const a=t=>(\"loaded\"===t||\"error\"===t||\"password-required\"===t||\"closed\"===t)&&(e(t),!0);if(a(this.chapterStatus.get(t)??\"idle\"))return;let s=null;s=this.statusChange$.on(e=>{e.chapterId===t&&a(e.status)&&(null==s||s(),s=null)})})}async handleDocumentError(t,e,a){if(e!==C.Password)return void this.updateStatus(t,\"error\");if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const o=this.findChapter(t);if(!o)return;const r=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,r);let i=null;try{i=await this.passwordProvider.resolvePassword(o,r-1)}catch(n){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,n)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).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}}:{}}))}};St.id=\"chapter-manager\";let xt=St;function kt(t,e){if(t===e)return!0;if(t.totalHeight!==e.totalHeight||t.totalWidth!==e.totalWidth||t.pageGap!==e.pageGap||t.items.length!==e.items.length)return!1;for(let a=0;a<t.items.length;a++){const s=t.items[a],o=e.items[a];if(s.globalPageIndex!==o.globalPageIndex||s.isPlaceholder!==o.isPlaceholder||s.chapterId!==o.chapterId||s.localPageIndex!==o.localPageIndex||s.offsetTop!==o.offsetTop||s.width!==o.width||s.height!==o.height)return!1}return!0}const Lt=class extends t{constructor(t,a){super(t,a),this.layoutChange$=e(void 0,kt),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(xt.id),this.documentManager=this.registry.getPlugin(o.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.chapterManager.provides().onChapterStatusChange(t=>{\"loaded\"===t.status&&this.harvestChapterSizes(t.chapterId),\"loaded\"!==t.status&&\"closed\"!==t.status&&\"error\"!==t.status&&\"password-required\"!==t.status||this.refreshLayout()})),this.syncReadyChapterSizes()}isChapterDocumentReady(t){const e=this.coreState.core.documents[t];return!(!e||\"loaded\"!==e.status||!e.document)&&e.document.pages.length>0}isChapterPagePlaceholder(t){const e=this.chapterManager.provides().getChapterStatus(t);return\"error\"===e||\"password-required\"===e||\"loaded\"!==e}refreshLayout(){this.layoutChange$.emit(this.computeLayout())}syncReadyChapterSizes(){for(const t of this.chapterManager.provides().getManifest().chapters){(\"loaded\"===this.chapterManager.provides().getChapterStatus(t.chapterId)||this.isChapterDocumentReady(t.chapterId))&&this.harvestChapterSizes(t.chapterId)}this.refreshLayout()}onDocumentLoaded(t){var e;if(0===((null==(e=this.virtualPageMap)?void 0:e.pagesOfChapter(t).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(t),this.harvestChapterSizes(t),this.refreshLayout()}onDocumentClosed(t){var e;0!==((null==(e=this.virtualPageMap)?void 0:e.pagesOfChapter(t).length)??0)&&(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:o}=this.getPageSize(s);this.offsets[s]=e,e+=o+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 o=this.pageSizes.get(e.globalPageIndex);o&&o.width===s.width&&o.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),o=this.virtualPageMap.pagesOfChapter(t);if(!(null==(a=null==s?void 0:s.pages)?void 0:a.length)||0===o.length)return void(e<60&&requestAnimationFrame(()=>this.harvestChapterSizes(t,e+1)));const r=this.getChapterDocumentScale(t),i=[];for(const n of o){const t=s.pages[n.localPageIndex];(null==t?void 0:t.size)&&i.push({localPageIndex:n.localPageIndex,width:t.size.width*r,height:t.size.height*r})}0!==i.length?this.applyChapterPageSizes(t,i):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 o=s;for(;o<t;){const t=this.getPageSize(o),e=this.offsets[o];if(t.height,e>=a)break;o++}const r=[];let i=s,n=-1;for(let h=s;h<o;h++){r.push(h);const t=this.offsets[h],s=t+this.getPageSize(h).height,o=Math.max(0,Math.min(s,a)-Math.max(t,e));o>n&&(n=o,i=h)}this.currentVisible=r,this.currentGlobalPageIndex=i,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:i}),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 o=e+a>>1;this.offsets[o]<=t?(s=o,e=o+1):a=o-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),o=[];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.isChapterPagePlaceholder(t.chapterId);o.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:o,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 o=(null==a?void 0:a.marginTop)??80,r=this.virtualPageMap.atIndex(t);if(!r)return void this.scrollToIndex(t,a);const i=this.pageSizes.get(t),n=null==(s=this.documentManager.provides().getDocument(r.chapterId))?void 0:s.pages[r.localPageIndex];if(!i||!n)return void this.scrollToIndex(t,a);const h=i.height/n.size.height,d=(this.offsets[t]??0)+e*h-o;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)}};Lt.id=\"chapter-scroll\";let $t=Lt;function Tt(t){const e=t[t.length-1];return{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height}}function Dt(t,e){const a=t.origin.y,s=t.origin.y+t.size.height,o=e.origin.y,r=e.origin.y+e.size.height,i=Math.max(s,r)-Math.min(a,o);if(i<=0)return 0;return Math.max(0,Math.min(s,r)-Math.max(a,o))/i}function Ot(t,e){var a,s;if(t.chapterId!==e.chapterId||t.localPageIndex!==e.localPageIndex)return!1;const o=(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],i=t.markerAnchor??Tt(o),n=e.markerAnchor??Tt(r);if(Math.hypot(i.x-n.x,i.y-n.y)<=6)return!0;for(const h of o)for(const t of r){if(Dt(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 Gt(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 o=setTimeout(()=>{r(),s(null)},a),r=t.onLayoutChange(t=>{const a=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);a&&(clearTimeout(o),r(),s(a))})})}(t,e),t.scrollToGlobalPdfPoint(e,a,{marginTop:80})}const zt=class a extends t{constructor(t,a){super(t,a),this.change$=e([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin($t.id),this.chapterManager=this.registry.getPlugin(wt.id),this.documentManager=this.registry.getPlugin(o.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),listBookmarksForChapter:t=>this.listBookmarksForChapter(t),replaceBookmarksForChapter:(t,e)=>this.replaceBookmarksForChapter(t,e),onBookmarksChange:this.change$.on}}addBookmark(t){for(const s of this.entries.values())if(Ot(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 o=this.entries.get(t);if(!o)return!1;const r=null==(s=null==(e=this.config)?void 0:e.callbacks)?void 0:s.onRequestRemove;if(r)try{if(!(await r(o)))return!1}catch(i){return this.logger.error(a.id,\"RequestRemove\",\"callback failed\",i),!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)}listBookmarksForChapter(t){return this.list().filter(e=>e.anchor.chapterId===t)}replaceBookmarksForChapter(t,e){for(const[a,s]of this.entries.entries())s.anchor.chapterId===t&&this.entries.delete(a);for(const a of e)a.anchor.chapterId===t&&this.entries.set(a.id,a);this.notifyAndPersist()}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 o=function(t){if(t.markerAnchor)return t.markerAnchor.y;const e=t.rectPdfCoord;return e.origin.y+e.size.height}(e.anchor);await Gt(a,s,o)}};zt.id=\"paragraph-bookmark\";let At=zt;const Nt={manifest:gt,create:t=>new At(pt,t),reducer:t=>t,initialState:{}},Vt={\"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 Ft{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(Vt);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=Et(a.items,s,e.position)}return t}}function Et(t,e,a){return(null==a?void 0:a.after)||(null==a?void 0:a.before)?function(t,e,a){const s=t=>{const o=[];for(const r of t)\"group\"!==r.type?a.before&&r.id===a.before?o.push(e,r):(o.push(r),a.after&&r.id===a.after&&o.push(e)):o.push({...r,items:s(r.items)});return o};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 Ut={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function Rt(){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})=>!y(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})=>y(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})=>y(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})=>y(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})=>y(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})=>y(t.plugins,e,\"top\",\"secondary\",\"redaction-toolbar\")}}}function _t(t){const e=t.toolbar??{},a=e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],o=a.length>0,{schema:l,operationRegistry:c}=function(t={}){var e,a,s,o,r,i;const n=new Set(t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),h=new Ft;(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=Ut[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==(o=t.extend)?void 0:o.sidebars)??{},modals:(null==(r=t.extend)?void 0:r.modals)??{},selectionMenus:(null==(i=t.extend)?void 0:i.selectionMenus)??{}},operationRegistry:h}}({...e,enabledModes:a}),p={...o?Rt():{},...o?qt(c.list()):{},...t.commands??{}},y=[s(r,{initialDocuments:[]}),s(G,{manifest:t.manifest,overlapStrategy:t.overlapStrategy,passwordProvider:t.passwordProvider,chapterPdfLoader:t.chapterPdfLoader,prefetchChapters:t.prefetchChapters,unloadTimeoutMs:t.unloadTimeoutMs}),s(H,{placeholderPageHeight:t.placeholderPageHeight,placeholderPageWidth:t.placeholderPageWidth}),s(i),s(n),s(h),s(d,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),s(g),s(u),s(f),s(m),s(v,!1===t.loadDefaultStampLibrary?{manifests:[]}:void 0),s(b),...Object.keys(p).length>0?[s(P,{commands:p})]:[],...o?[s(w),s(I,{schema:l})]:[]];return t.notes&&y.push(s(ut,{callbacks:t.notes.callbacks,ui:t.features?.notes?.marker})),t.bookmarks&&y.push(s(Nt,{callbacks:t.bookmarks.callbacks,ui:t.features?.bookmarks?.marker,hover:t.features?.bookmarks?.hover})),{plugins:y,uiSchema:l,operationRegistry:c}}function qt(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}function Bt(t,e){const a=t;return!1===t?{...e,enabled:!1}:!0===t||void 0===t?{...e,enabled:e.enabled??!0}:{...e,...a,enabled:!1!==(null==a?void 0:a.enabled)}}function Ht(t){const e=Bt(null==t?void 0:t.markup,{enabled:!0}),a=Bt(null==t?void 0:t.bookmarks,{enabled:!0}),s=Bt(null==t?void 0:t.notes,{enabled:!0});return{markup:e,bookmarks:a,notes:s,zoom:Bt(null==t?void 0:t.zoom,{enabled:!0,min:.5,max:3,initial:1}),selectionToolbar:Bt(void 0===(null==t?void 0:t.selectionToolbar)?!1!==e.enabled||!1!==s.enabled:t.selectionToolbar,{enabled:!0})}}M.HIGHLIGHT,M.UNDERLINE,M.SQUIGGLY,M.STRIKEOUT;const Wt=Ht(),jt={};function Jt(t){return _t({...t,toolbar:t.toolbar??{enabledModes:[]},features:Ht(t.features)})}const Kt={overlapStrategy:{kind:\"first-wins\"},passwordProvider:new class{constructor(t){this.cb=t}resolvePassword(t,e){return this.cb(t,e)}}(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]}};function Qt(t){return function(t){return\"callbacks\"in t.notes}(t)?{manifest:t.manifest,chapterPdfLoader:t.chapterPdfLoader,notes:t.notes.callbacks,bookmarks:t.bookmarks.callbacks}:t}function Yt(t){return{manifest:t.manifest,chapterPdfLoader:t.chapterPdfLoader,...Kt,notes:{callbacks:t.notes},bookmarks:{callbacks:t.bookmarks},features:Ht(t.features)}}function Xt(t){const e=Yt(Qt(t)),{plugins:a}=Jt(e);return{plugins:a,features:e.features,editorOptions:e}}function Zt(t){const{features:e,...a}=Yt(Qt(t));return a}function te(t){return t.chapterId}function ee(t,e){t.wait(e,()=>{})}function ae(t,e,a){return{chapterId:t.chapterId,localPageIndex:t.localPageIndex,globalPageIndex:t.globalPageIndex,globalPageNumber:t.globalPageNumber,rectsPdfCoord:e,selectedText:a}}const se=1;function oe(t){const e=new Uint8Array(t);let a=\"\";for(let s=0;s<e.length;s++)a+=String.fromCharCode(e[s]);return btoa(a)}function re(t){return t.map(t=>{if(!(t.ctx&&\"data\"in t.ctx&&t.ctx.data instanceof ArrayBuffer))return{annotation:t.annotation};const e=t.ctx;return{annotation:t.annotation,ctx:{dataBase64:oe(e.data),mimeType:e.mimeType}}})}function ie(t){return t.map(t=>{if(!t.ctx?.dataBase64)return{annotation:t.annotation};const e=function(t){const e=atob(t),a=new Uint8Array(e.length);for(let s=0;s<e.length;s++)a[s]=e.charCodeAt(s);return a.buffer}(t.ctx.dataBase64);return{annotation:t.annotation,ctx:{data:e,...t.ctx.mimeType?{mimeType:t.ctx.mimeType}:{}}}})}function ne(t){return{bookmarks:!1!==t?.bookmarks,notes:!1!==t?.notes,markup:!1!==t?.markup}}function he(t){const e=t.getPlugin(p.id)?.provides(),a=t.getPlugin(lt.id)?.provides(),s=t.getPlugin(At.id)?.provides(),o=t.getPlugin(O.id)?.provides();return{annotation:e,note:a,bookmark:s,chapterManager:o}}async function de(t,e,a){if(!a||!t)return;const s=await t.ensureChapterLoaded(e);if(\"loaded\"!==s)throw new Error(`章节 ${e} 未加载成功(${s}),无法导入/导出划线`)}async function le(t,e,a){const s=ne(a),{annotation:o,note:r,bookmark:i,chapterManager:n}=he(t),h={chapterId:e};if(s.bookmarks){if(!i)throw new Error(\"paragraph-bookmark 插件未注册\");h.bookmarks=i.listBookmarksForChapter(e)}if(s.notes){if(!r)throw new Error(\"note 插件未注册\");h.notes=r.listNotesForChapter(e)}if(s.markup){if(!o)throw new Error(\"annotation 插件未注册\");await de(n,e,!1!==a?.ensureChapterLoaded);const t=await(d=o.forDocument(e).exportAnnotations(),new Promise((t,e)=>{d.wait(e=>t(e),t=>e(t))}));h.markup=re(t)}var d;return h}async function ce(t,e,a){const s={};for(const o of e.chapters){const e=await le(t,o.chapterId,a),{chapterId:r,...i}=e;s[o.chapterId]=i}return{version:1,exportedAt:/* @__PURE__ */(new Date).toISOString(),chapters:s}}async function ue(t,e,a){const s=ne(a),o=a?.mode??\"replace\",{annotation:r,note:i,bookmark:n,chapterManager:h}=he(t),d=e.chapterId;if(s.bookmarks&&e.bookmarks){if(!n)throw new Error(\"paragraph-bookmark 插件未注册\");if(\"replace\"===o)n.replaceBookmarksForChapter(d,e.bookmarks);else for(const t of e.bookmarks)n.addBookmark(t)}if(s.notes&&e.notes){if(!i)throw new Error(\"note 插件未注册\");if(\"replace\"===o)i.replaceNotesForChapter(d,e.notes);else for(const t of e.notes)i.registerNote(t)}if(s.markup&&e.markup){if(!r)throw new Error(\"annotation 插件未注册\");await de(h,d,!1!==a?.ensureChapterLoaded);const t=r.forDocument(d),s=ie(e.markup);\"replace\"===o&&t.deleteAllAnnotations(),t.importAnnotations(s)}a?.persistNotes&&i&&await a.persistNotes(i.listAllNotes()),a?.persistBookmarks&&n&&await a.persistBookmarks(n.listBookmarks())}async function pe(t,e,a){if(1!==e.version)throw new Error(`不支持的归档版本 ${e.version},当前为 1`);for(const[s,o]of Object.entries(e.chapters))await ue(t,{chapterId:s,...o},a)}function ge(t){return JSON.stringify(t,null,2)}function fe(t){const e=JSON.parse(t);if(!e||\"object\"!=typeof e||!e.chapters)throw new Error(\"无效的章节标注 JSON\");return e}function me(t){return JSON.stringify(t,null,2)}function ve(t){const e=JSON.parse(t);if(!e?.chapterId)throw new Error(\"无效的章节标注 JSON:缺少 chapterId\");return e}function be(t,e){const a=new Blob([e],{type:\"application/json;charset=utf-8\"}),s=URL.createObjectURL(a),o=document.createElement(\"a\");o.href=s,o.download=t,o.click(),URL.revokeObjectURL(s)}function Pe(t,e=\"chapter-annotations.json\"){be(e,ge(t))}function we(t,e){be(e??`chapter-annotations-${t.chapterId}.json`,me(t))}export{se as CHAPTER_ANNOTATIONS_ARCHIVE_VERSION,jt as DEFAULT_CHAPTER_VIEWER_CONFIG,Wt as DEFAULT_CHAPTER_VIEWER_FEATURES,ae as buildChapterSelectionSnapshot,ge as chapterAnnotationsArchiveToJson,me as chapterAnnotationsSnapshotToJson,te as chapterDocumentIdForPage,Rt as createChapterEditorModeCommands,Xt as createChapterViewerBundle,Jt as createChapterViewerEditor,Zt as createChapterViewerEditorOptions,_t as createPdfChapterEditor,ie as deserializeMarkupItems,Pe as downloadChapterAnnotationsArchive,we as downloadChapterAnnotationsSnapshot,be as downloadJsonFile,ce as exportAllChapterAnnotations,le as exportChapterAnnotations,ue as importChapterAnnotations,pe as importChapterAnnotationsArchive,fe as parseChapterAnnotationsArchiveJson,ve as parseChapterAnnotationsSnapshotJson,re as serializeMarkupItems,Yt as toCreatePdfChapterEditorOptions,ee as waitSelectedText};\n//# sourceMappingURL=index.js.map\n"],"names":["ve","be","Pe","G","we","e","t","a","s","r","n","h","z","N","i","l","A","o","_","E","R","W","V","et","tt","at","st","it","ot","rt","nt","lt","ht","dt","ct","ft","mt","vt","bt","Pt","wt","yt","Ct","It","Mt","St","xt","kt","Lt","$t","zt","Tt","Dt","Ot","Gt","At","_a","T","ne","Ht","Bt","F","H","B","j","Z","Y","ee","D","te","ae","se","ie","oe","re","le","_e","M","S","U","q","d","c","u","p","g","f","m","fe","v","b","K","C","he","P","w","ce","de","ue","ge","pe","y","X","Q","J","k","L","$","I","O","_b","_c","x","_openBlock","_createBlock","_unref","$props","_createSlots","_renderSlot","$slots","e2","s2","a2","e3","s3","e4","_ChapterManagerPlugin"],"mappings":"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"}