@embedpdf-editor/vue3-chapter-viewer 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../editor-engine/dist/vue/index.js","../src/ChapterPdfViewer.vue","../../editor-engine/dist/index.js","../../plugin-chapter-manager/dist/index.js","../../chapter-core/dist/index.js"],"sourcesContent":["import{isRef as e,computed as t,ref as s,watch as a,onBeforeUnmount as n,defineComponent as r,onMounted as o,openBlock as i,createElementBlock as l,normalizeStyle as d,normalizeClass as h,createElementVNode as c,Fragment as u,renderList as p,renderSlot as g,createBlock as m,unref as f,withModifiers as v,createCommentVNode as P,h as b,withCtx as I,createVNode as C,resolveDynamicComponent as S,toDisplayString as y}from\"vue\";import{useRegistry as w,useCapability as x,EmbedPDF as M}from\"@embedpdf/core/vue\";import{EmbedPDF as $,useCapability as L,useRegistry as D}from\"@embedpdf/core/vue\";import{LockModeType as k,ANNOTATION_PLUGIN_ID as T,AnnotationPluginPackage as z,AnnotationPlugin as O}from\"@embedpdf/plugin-annotation\";import{PdfAnnotationSubtype as A,uuidV4 as N,PdfBlendMode as F,PdfErrorCode as G}from\"@embedpdf/models\";import{BasePlugin as E,createBehaviorEmitter as R,createEmitter as V,createPluginRegistration as _,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 X,glyphAt as K,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 se}from\"@embedpdf/plugin-form\";import{StampPluginPackage as ae}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as ne}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as re}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as oe}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as ie,UIPluginPackage as le}from\"@embedpdf/plugin-ui\";import{GlobalPointerProvider as de,PagePointerProvider as he}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{useAnnotationCapability as pe,AnnotationLayer as ge}from\"@embedpdf/plugin-annotation/vue\";import{RedactionLayer as me}from\"@embedpdf/plugin-redaction/vue\";import{RenderLayer as fe}from\"@embedpdf/plugin-render/vue\";import{usePdfiumEngine as ve}from\"@embedpdf/engines/vue\";const Pe={position:\"relative\",height:\"100%\",width:\"100%\"},be={userSelect:\"none\",WebkitUserSelect:\"none\"};function Ie(){\"undefined\"!=typeof window&&window.getSelection()?.removeAllRanges()}const Ce=\"#f1f5f9\",Se={highlight:{offsetY:0},underline:{offsetY:2.5},squiggly:{offsetY:4},strikeout:{offsetY:0}},ye={highlight:A.HIGHLIGHT,underline:A.UNDERLINE,squiggly:A.SQUIGGLY,strikeout:A.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 xe(e){let t=1/0,s=1/0,a=-1/0,n=-1/0;for(const r of e)t=Math.min(t,r.origin.x),s=Math.min(s,r.origin.y),a=Math.max(a,r.origin.x+r.size.width),n=Math.max(n,r.origin.y+r.size.height);return{origin:{x:t,y:s},size:{width:a-t,height:n-s}}}function Me(e,t,s,a,n){const r=s.forDocument(e),o=a.forDocument(e);if(!r||!o)return!1;const i=\"highlight\"===t?\"highlight\":\"underline\"===t?\"underline\":\"squiggly\"===t?\"squiggly\":\"strikeout\",l=s.getTool(i);if(!l)return!1;const d=l.defaults,h=function(e,t){return{...Se[e],...null==t?void 0:t[e]}}(t,n),c=o.getFormattedSelection();if(0===c.length)return!1;r.setLocked({type:k.Exclude,categories:[\"markup\",\"shape\"]});for(const u of c){const e=N(),s=h.color??d.color??d.strokeColor,a=h.opacity??d.opacity,n=h.thickness??d.strokeWidth,o=h.offsetY??0,i=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?we(u.segmentRects,o):u.segmentRects,l=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?xe(i):u.rect;r.createAnnotation(u.pageIndex,{id:e,created:/* @__PURE__ */new Date,flags:[\"print\"],type:ye[t],...\"highlight\"===t?{blendMode:F.Multiply}:{},strokeColor:s,opacity:a,...null!=n?{strokeWidth:n}:{},pageIndex:u.pageIndex,rect:l,segmentRects:i})}return o.clear(),!0}const $e=/* @__PURE__ */new Set([A.HIGHLIGHT,A.UNDERLINE,A.SQUIGGLY,A.STRIKEOUT]);function Le(e,t){const s=e;return!1===e?{...t,enabled:!1}:!0===e||void 0===e?{...t,enabled:t.enabled??!0}:{...t,...s,enabled:!1!==(null==s?void 0:s.enabled)}}function De(e){var t;const s=Le(null==e?void 0:e.markup,{enabled:!0}),a=Le(null==e?void 0:e.bookmarks,{enabled:!0}),n=Le(null==e?void 0:e.notes,{enabled:!0}),r=Le(null==e?void 0:e.zoom,{enabled:!0,min:.5,max:3,initial:1}),o=Le(void 0===(null==e?void 0:e.selectionToolbar)?!1!==s.enabled||!1!==n.enabled:e.selectionToolbar,{enabled:!0});return{markup:s,bookmarks:a,notes:n,zoom:r,scrollViewport:{background:(null==(t=null==e?void 0:e.scrollViewport)?void 0:t.background)??Ce},selectionToolbar:o}}function ke(e,t){return`${e}#s${t}`}function Te(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:ke(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}const ze={kind:\"first-wins\"};class Oe{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}function Ae(e){return\"last\"===e?{kind:\"last-wins\"}:{kind:\"first-wins\"}}function Ne(e){const t=e.endPage-e.startPage+1;return{chapterId:e.chapterId,title:e.title,globalPageRange:[e.startPage,e.endPage],localPageRange:[0,t-1],...e.source?{source:e.source}:{},...e.encrypted?{encrypted:e.encrypted}:{}}}function Fe(e){const t=[],s=e=>{for(const a of e)t.push(Ne(a)),a.children?.length&&s(a.children)};return s(e),t}function Ge(e){return e.map(e=>({id:e.chapterId,title:e.title,startPage:e.startPage,endPage:e.endPage,children:e.children?.length?Ge(e.children):void 0}))}function Ee(e){return{tree:Ge(e),manifest:{chapters:Fe(e)}}}const Re=\"chapter-manager\",Ve={id:Re,name:\"Chapter Manager Plugin\",version:\"0.1.0\",provides:[\"chapter-manager\"],requires:[\"document-manager\"],optional:[],defaultConfig:{manifest:{chapters:[]},prefetchChapters:1,unloadTimeoutMs:6e4,autoActivateOnLoad:!0}};function _e(e){const[t,s]=e.localPageRange;return s-t+1}function Ue(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function qe(e,t){return`${e}#s${t}`}function We(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function He(e){const t=e.source;if(!Ue(t))return null;const s=t.segmentPageThreshold,a=_e(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:qe(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Be(e,t){const s=He(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function je(e,t){const s=He(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function Ze(e){var t;const s=e.source;if(!Ue(s))return[];const a=[],{chapterId:n}=e,r=_e(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Ye={kind:\"first-wins\"};function Xe(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let Ke=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function Qe(e,t=Ye){const s=function(e,t=Ye){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Xe(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new Ke(r)}const Je=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=Ye,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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=>{const{chapterId:t}=We(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=We(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=We(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Be(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?He(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Ze(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?He(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=je(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Be(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=He(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(Ue(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=We(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?He(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};Je.id=\"chapter-manager\";let et=Je;const tt={manifest:Ve,create:e=>new et(Re,e),reducer:e=>e,initialState:{}},st=\"chapter-scroll\",at={id:st,name:\"Chapter Scroll Plugin\",version:\"0.1.0\",provides:[\"chapter-scroll\"],requires:[\"chapter-manager\"],optional:[],defaultConfig:{placeholderPageHeight:1200,placeholderPageWidth:900,bufferSize:2,pageGap:20}};function nt(e,t){return`${e}#s${t}`}function rt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function ot(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:nt(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function it(e){const[t,s]=e.localPageRange;return s-t+1}function lt(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function dt(e,t){return`${e}#s${t}`}function ht(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function ct(e){const t=e.source;if(!lt(t))return null;const s=t.segmentPageThreshold,a=it(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:dt(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function ut(e,t){const s=ct(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function pt(e,t){const s=ct(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function gt(e){var t;const s=e.source;if(!lt(s))return[];const a=[],{chapterId:n}=e,r=it(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const mt={kind:\"first-wins\"};function ft(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let vt=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function Pt(e,t=mt){const s=function(e,t=mt){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,ft(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new vt(r)}const bt=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=mt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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=>{const{chapterId:t}=ht(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=ht(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=ht(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?ut(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?ct(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...gt(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?ct(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=pt(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=ut(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=ct(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(lt(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=ht(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?ct(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};bt.id=\"chapter-manager\";let It=bt;function Ct(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const St=class extends E{constructor(e,t){super(e,t),this.layoutChange$=R(void 0,Ct),this.visibleChange$=R(),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.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=ot(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=rt(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=rt(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=ot(a),o=this.documentManager.provides(),i=[],l=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(r)for(const d of r.segments){if(!s.isSegmentLoaded(e,d.index))continue;const t=d.localPageEnd-d.localPageStart+1;l(d.documentId,d.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=rt(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let l=a;l<n;l++){r.push(l);const e=this.offsets[l],a=e+this.getPageSize(l).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),l=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const d=o.height/l.size.height,h=(this.offsets[e]??0)+t*d-n;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};St.id=\"chapter-scroll\";let yt=St;const wt={manifest:at,create:e=>new yt(st,e),reducer:e=>e,initialState:{}},xt=\"note\",Mt={id:xt,name:\"Note Plugin\",version:\"0.1.0\",provides:[\"note\"],requires:[\"selection\",\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{callbacks:{onCreateNote:async()=>null,onActivateNote:()=>{}},markerSize:18}};function $t(e){const[t,s]=e.localPageRange;return s-t+1}function Lt(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Dt(e,t){return`${e}#s${t}`}function kt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function Tt(e){const t=e.source;if(!Lt(t))return null;const s=t.segmentPageThreshold,a=$t(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:Dt(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function zt(e,t){const s=Tt(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Ot(e,t){const s=Tt(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function At(e){var t;const s=e.source;if(!Lt(s))return[];const a=[],{chapterId:n}=e,r=$t(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Nt={kind:\"first-wins\"};function Ft(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let Gt=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function Et(e,t=Nt){const s=function(e,t=Nt){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Ft(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new Gt(r)}const Rt=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=Nt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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??Nt,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=kt(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=kt(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=kt(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?zt(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Tt(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...At(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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=Et(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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Tt(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Ot(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=zt(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=Tt(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(Lt(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=kt(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?Tt(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};Rt.id=\"chapter-manager\";let Vt=Rt;function _t(e,t){return`${e}#s${t}`}function Ut(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function qt(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:_t(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Wt(e){const[t,s]=e.localPageRange;return s-t+1}function Ht(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Bt(e,t){return`${e}#s${t}`}function jt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function Zt(e){const t=e.source;if(!Ht(t))return null;const s=t.segmentPageThreshold,a=Wt(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:Bt(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Yt(e,t){const s=Zt(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Xt(e,t){const s=Zt(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function Kt(e){var t;const s=e.source;if(!Ht(s))return[];const a=[],{chapterId:n}=e,r=Wt(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Qt={kind:\"first-wins\"};function Jt(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let es=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function ts(e,t=Qt){const s=function(e,t=Qt){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Jt(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new es(r)}const ss=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=Qt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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??Qt,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=jt(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=jt(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=jt(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Yt(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Zt(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Kt(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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=ts(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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Zt(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Xt(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Yt(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=Zt(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(Ht(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=jt(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?Zt(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};ss.id=\"chapter-manager\";let as=ss;function ns(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const rs=class extends E{constructor(e,t){super(e,t),this.layoutChange$=R(void 0,ns),this.visibleChange$=R(),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(as.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=qt(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=Ut(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=Ut(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=qt(a),o=this.documentManager.provides(),i=[],l=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(r)for(const d of r.segments){if(!s.isSegmentLoaded(e,d.index))continue;const t=d.localPageEnd-d.localPageStart+1;l(d.documentId,d.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=Ut(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let l=a;l<n;l++){r.push(l);const e=this.offsets[l],a=e+this.getPageSize(l).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),l=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const d=o.height/l.size.height,h=(this.offsets[e]??0)+t*d-n;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};rs.id=\"chapter-scroll\";let os=rs;const is=class e extends E{constructor(e,t){super(e,t),this.notesChange$=R([]),this.noteActivated$=V(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(os.id),this.chapterManager=this.registry.getPlugin(Vt.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(s){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",s)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(s=>s.chapterId===e&&s.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,s;const a=this.notes.get(e);a&&(null==(s=(t=this.config.callbacks).onActivateNote)||s.call(t,e,a),this.noteActivated$.emit({noteId:e,anchor:a}))}listAll(){return Array.from(this.notes.values())}listNotesForChapter(e){return this.listAll().filter(t=>t.chapterId===e)}replaceNotesForChapter(e,t){for(const[s,a]of this.notes.entries())a.chapterId===e&&this.notes.delete(s);for(const s of t)s.chapterId===e&&this.notes.set(s.noteId,s);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:ds(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:s,onCreateNote:a}=this.config.callbacks;return s?(s({draft:t,complete:async e=>{const s={...t,noteId:e};this.registerNote(s)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const s=this.buildDraft(t),a=this.config.callbacks.onCreateNote;if(!a)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let n=null;try{n=await a(s)}catch(o){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!n)return null;const r={...s,noteId:n.noteId};return this.registerNote(r),r}async deleteNote(t){var s,a;if(this.notes.has(t)){try{await(null==(a=(s=this.config.callbacks).onDeleteNote)?void 0:a.call(s,t))}catch(n){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",n)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,s){var a,n;const r=this.notes.get(t);if(!r)return;const o={...r,content:s};try{await(null==(n=(a=this.config.callbacks).onUpdateNote)?void 0:n.call(a,o))}catch(i){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",i)}this.notes.set(t,o),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const s=this.notes.get(e);if(!s)return;const a=this.chapterScroll.provides(),n=this.chapterManager.provides();await n.ensureAllSegmentsLoaded(s.chapterId);const r=n.resolvePageDocument(s.chapterId,s.localPageIndex);(null==(t=this.documentManager.provides().getDocument(r.documentId))?void 0:t.pages[r.pageIndex])?(a.scrollToGlobalPageIndex(s.globalPageIndex),await this.waitForPageInLayout(s.globalPageIndex),a.scrollToGlobalPdfPoint(s.globalPageIndex,s.endAnchor.y,{marginTop:80})):a.scrollToGlobalPageIndex(s.globalPageIndex)}waitForPageInLayout(e){const t=this.chapterScroll.provides(),s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const a=setTimeout(()=>{n(),s(null)},2500),n=t.onLayoutChange(t=>{const r=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);r&&(clearTimeout(a),n(),s(r))})})}};is.id=\"note\";let ls=is;function ds(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}const hs={manifest:Mt,create:e=>new ls(xt,e),reducer:e=>e,initialState:{}},cs=\"paragraph-bookmark\",us={id:cs,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};function ps(e){const[t,s]=e.localPageRange;return s-t+1}function gs(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function ms(e,t){return`${e}#s${t}`}function fs(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function vs(e){const t=e.source;if(!gs(t))return null;const s=t.segmentPageThreshold,a=ps(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:ms(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Ps(e,t){const s=vs(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function bs(e,t){const s=vs(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function Is(e){var t;const s=e.source;if(!gs(s))return[];const a=[],{chapterId:n}=e,r=ps(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Cs={kind:\"first-wins\"};function Ss(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let ys=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function ws(e,t=Cs){const s=function(e,t=Cs){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Ss(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new ys(r)}const xs=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=Cs,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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??Cs,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=fs(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=fs(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=fs(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Ps(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?vs(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Is(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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=ws(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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?vs(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=bs(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Ps(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=vs(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(gs(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=fs(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?vs(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};xs.id=\"chapter-manager\";let Ms=xs;function $s(e,t){return`${e}#s${t}`}function Ls(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function Ds(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:$s(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function ks(e){const[t,s]=e.localPageRange;return s-t+1}function Ts(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function zs(e,t){return`${e}#s${t}`}function Os(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function As(e){const t=e.source;if(!Ts(t))return null;const s=t.segmentPageThreshold,a=ks(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:zs(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Ns(e,t){const s=As(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Fs(e,t){const s=As(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function Gs(e){var t;const s=e.source;if(!Ts(s))return[];const a=[],{chapterId:n}=e,r=ks(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Es={kind:\"first-wins\"};function Rs(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let Vs=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function _s(e,t=Es){const s=function(e,t=Es){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Rs(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new Vs(r)}const Us=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=Es,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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??Es,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Os(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Os(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Os(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Ns(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?As(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Gs(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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=_s(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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?As(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Fs(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Ns(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=As(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(Ts(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=Os(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?As(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};Us.id=\"chapter-manager\";let qs=Us;function Ws(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const Hs=class extends E{constructor(e,t){super(e,t),this.layoutChange$=R(void 0,Ws),this.visibleChange$=R(),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(qs.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=Ds(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=Ls(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=Ls(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=Ds(a),o=this.documentManager.provides(),i=[],l=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(r)for(const d of r.segments){if(!s.isSegmentLoaded(e,d.index))continue;const t=d.localPageEnd-d.localPageStart+1;l(d.documentId,d.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=Ls(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let l=a;l<n;l++){r.push(l);const e=this.offsets[l],a=e+this.getPageSize(l).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),l=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const d=o.height/l.size.height,h=(this.offsets[e]??0)+t*d-n;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};Hs.id=\"chapter-scroll\";let Bs=Hs;function js(e){if(0===e.length)throw new Error(\"unionRects: empty rects\");let t=1/0,s=1/0,a=-1/0,n=-1/0;for(const r of e)t=Math.min(t,r.origin.x),s=Math.min(s,r.origin.y),a=Math.max(a,r.origin.x+r.size.width),n=Math.max(n,r.origin.y+r.size.height);return{origin:{x:t,y:s},size:{width:a-t,height:n-s}}}function Zs(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function Ys(e,t){const s=e.origin.y,a=e.origin.y+e.size.height,n=t.origin.y,r=t.origin.y+t.size.height,o=Math.max(a,r)-Math.min(s,n);if(o<=0)return 0;return Math.max(0,Math.min(a,r)-Math.max(s,n))/o}function Xs(e,t){var s,a;if(e.chapterId!==t.chapterId||e.localPageIndex!==t.localPageIndex)return!1;const n=(null==(s=e.rectsPdfCoord)?void 0:s.length)?e.rectsPdfCoord:[e.rectPdfCoord],r=(null==(a=t.rectsPdfCoord)?void 0:a.length)?t.rectsPdfCoord:[t.rectPdfCoord],o=e.markerAnchor??Zs(n),i=t.markerAnchor??Zs(r);if(Math.hypot(o.x-i.x,o.y-i.y)<=6)return!0;for(const l of n)for(const e of r){if(Ys(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 Ks(e,t,s,a){const n=s.length>0?s:[];if(0===n.length)throw new Error(\"buildParagraphBookmarkAnchor: no rects\");return{chapterId:e,localPageIndex:t,globalPageIndex:null==a?void 0:a.globalPageIndex,globalPageNumber:null==a?void 0:a.globalPageNumber,rectPdfCoord:js(n),rectsPdfCoord:n,markerAnchor:Zs(n)}}async function Qs(e,t,s){e.scrollToGlobalPageIndex(t),await function(e,t,s=2500){const a=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const n=setTimeout(()=>{r(),a(null)},s),r=e.onLayoutChange(e=>{const s=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);s&&(clearTimeout(n),r(),a(s))})})}(e,t),e.scrollToGlobalPdfPoint(t,s,{marginTop:80})}const Js=class e extends E{constructor(e,t){super(e,t),this.change$=R([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(Bs.id),this.chapterManager=this.registry.getPlugin(Ms.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(t){var s;if(this.config=t,null==(s=t.callbacks)?void 0:s.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(a){this.logger.error(e.id,\"Load\",\"Failed to load paragraph bookmarks\",a)}}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 a of this.entries.values())if(Xs(a.anchor,e.anchor))return a;const t=e.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,s={id:t,label:e.label,anchor:e.anchor,metadata:e.metadata,createdAt:Date.now()};return this.entries.set(t,s),this.notifyAndPersist(),s}removeBookmark(e){var t,s,a;this.entries.delete(e)&&(this.notifyAndPersist(),null==(a=null==(s=null==(t=this.config)?void 0:t.callbacks)?void 0:s.onRemoveSuccess)||a.call(s,e))}async requestRemoveBookmark(t){var s,a;const n=this.entries.get(t);if(!n)return!1;const r=null==(a=null==(s=this.config)?void 0:s.callbacks)?void 0:a.onRequestRemove;if(r)try{if(!(await r(n)))return!1}catch(o){return this.logger.error(e.id,\"RequestRemove\",\"callback failed\",o),!1}return this.removeBookmark(t),!0}updateBookmark(e,t){const s=this.entries.get(e);s&&(this.entries.set(e,{...s,...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[s,a]of this.entries.entries())a.anchor.chapterId===e&&this.entries.delete(s);for(const s of t)s.anchor.chapterId===e&&this.entries.set(s.id,s);this.notifyAndPersist()}notifyAndPersist(){var t,s;const a=this.list();this.change$.emit(a),(null==(s=null==(t=this.config)?void 0:t.callbacks)?void 0:s.persist)&&Promise.resolve(this.config.callbacks.persist(a)).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 s=this.chapterScroll.provides(),a=this.chapterManager.provides();await a.ensureAllSegmentsLoaded(t.anchor.chapterId);let n=t.anchor.globalPageIndex;if(void 0===n){const e=this.chapterManager.provides().getVirtualPageMap().toGlobal(t.anchor.chapterId,t.anchor.localPageIndex);if(!e)return;n=e.globalPageIndex}const r=function(e){if(e.markerAnchor)return e.markerAnchor.y;const t=e.rectPdfCoord;return t.origin.y+t.size.height}(t.anchor);await Qs(s,n,r)}};Js.id=\"paragraph-bookmark\";let ea=Js;const ta={manifest:us,create:e=>new ea(cs,e),reducer:e=>e,initialState:{}},sa={\"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 aa{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(sa);for(const t of this.specs){const s=e[t.toolbarSlot];if(!s)continue;const a={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??[]};s.items=na(s.items,a,t.position)}return e}}function na(e,t,s){return(null==s?void 0:s.after)||(null==s?void 0:s.before)?function(e,t,s){const a=e=>{const n=[];for(const r of e)\"group\"!==r.type?s.before&&r.id===s.before?n.push(t,r):(n.push(r),s.after&&r.id===s.after&&n.push(t)):n.push({...r,items:a(r.items)});return n};return a(e)}(e,t,s):function(e,t){return e.map(e=>\"group\"===e.type?{...e,items:[...e.items,t]}:e)}(e,t)}const ra={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function oa(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:e,documentId:t})=>{const s=e.getPlugin(\"ui\")?.provides(),a=e.getPlugin(\"interaction-manager\")?.provides();s&&a&&(a.forDocument(t)?.activateDefaultMode(),s.forDocument(t).closeToolbarSlot(\"top\",\"secondary\"),e.getPlugin(T)?.provides().forDocument(t).setLocked((e=>e.getPluginConfig(T).locked??{type:k.None})(e)))},active:({state:e,documentId:t})=>!ie(e.plugins,t,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:e,documentId:t})=>{const s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:k.None}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",t),e.getPlugin(T)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(e.plugins,t,\"top\",\"secondary\",\"redaction-toolbar\")}}}function ia(e){const t=e.toolbar??{},s=t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],a=s.length>0,{schema:n,operationRegistry:r}=function(e={}){var t,s,a,n,r,o;const i=new Set(e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),l=new aa;(null==(t=e.customOperations)?void 0:t.length)&&l.registerAll(e.customOperations);const d=l.buildToolbars(),h={};for(const u of i){if(\"view\"===u)continue;const e=ra[u];d[e]&&(h[e]=d[e])}const c=function(e){if(0===e.size)return null;const t=(e,t,s)=>({type:\"command-button\",id:`${e}-mode`,commandId:s,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}]}}(i);return c&&(h[\"chapter-editor-main-toolbar\"]=c),(null==(s=e.extend)?void 0:s.toolbars)&&Object.assign(h,e.extend.toolbars),{schema:{id:\"chapter-pdf-editor-ui\",version:\"1.0.0\",toolbars:h,menus:(null==(a=e.extend)?void 0:a.menus)??{},sidebars:(null==(n=e.extend)?void 0:n.sidebars)??{},modals:(null==(r=e.extend)?void 0:r.modals)??{},selectionMenus:(null==(o=e.extend)?void 0:o.selectionMenus)??{}},operationRegistry:l}}({...t,enabledModes:s}),o={...a?oa():{},...a?la(r.list()):{},...e.commands??{}},i=[_(H,{initialDocuments:[]}),_(tt,{manifest:e.manifest,overlapStrategy:e.overlapStrategy,passwordProvider:e.passwordProvider,chapterPdfLoader:e.chapterPdfLoader,prefetchChapters:e.prefetchChapters,unloadTimeoutMs:e.unloadTimeoutMs}),_(wt,{placeholderPageHeight:e.placeholderPageHeight,placeholderPageWidth:e.placeholderPageWidth}),_(B),_(j),_(Z),_(Y,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),_(ee),_(z),_(te),_(se),_(ae,!1===e.loadDefaultStampLibrary?{manifests:[]}:void 0),_(ne),...Object.keys(o).length>0?[_(re,{commands:o})]:[],...a?[_(oe),_(le,{schema:n})]:[]];return e.notes&&i.push(_(hs,{callbacks:e.notes.callbacks,ui:e.features?.notes?.marker})),e.bookmarks&&i.push(_(ta,{callbacks:e.bookmarks.callbacks,ui:e.features?.bookmarks?.marker,hover:e.features?.bookmarks?.hover})),{plugins:i,uiSchema:n,operationRegistry:r}}function la(e){const t={};for(const s of e)s.handler&&(t[s.commandId]={id:s.commandId,labelKey:s.i18nKey,label:s.label,icon:s.icon,categories:s.categories,action:({documentId:e})=>{s.handler?.({documentId:e,chapterId:e})}});return t}const da=De(),ha={};function ca(e){return ia({...e,toolbar:e.toolbar??{enabledModes:[]},features:De(e.features)})}const ua={overlapStrategy:{kind:\"first-wins\"},passwordProvider:new Oe(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]}};function pa(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 ga(e){return{...ua,manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,overlapStrategy:e.overlapStrategy??ua.overlapStrategy,notes:{callbacks:e.notes},bookmarks:{callbacks:e.bookmarks},features:De(e.features)}}function ma(e){const t=ga(pa(e)),{plugins:s}=ca(t);return{plugins:s,features:t.features,editorOptions:t}}function fa(e){const{features:t,...s}=ga(pa(e));return s}function va(e,t=.5,s=3){return Math.min(s,Math.max(t,e))}function Pa(e,t){if(t<=0)return 1;let s=0;for(const a of e.pages){const e=a?.size?.width??0;e>s&&(s=e)}return s<=0?1:t/s}function ba(e,t){return e<=0?t??0:null==t||t<=0?e:Math.min(t,e)}function Ia(e,t,s,a){const n=ba(t,s);if(n<=0)return a;const r=Pa(e,n);return Math.min(a,r)}function Ca(e,t,s){const a=Te(t);if(a){for(const t of a.segments){const a=e.getDocument(t.documentId);a&&s(a,t.documentId)}return}const n=e.getDocument(t.chapterId);n&&s(n,t.chapterId)}function Sa(e){return e instanceof HTMLElement?e.clientWidth:0}function ya(r,o,i){const l=e(r)?r:t(()=>r),{registry:d}=w(),{provides:h}=x(W.id),{provides:c}=x(et.id),u=s(v()),p=s(u.value),g=s(0),m=()=>o.value?.pageWidth,f=()=>function(e){return null!=e&&e>0}(m()),v=()=>o.value?.initial??1,P=t(()=>function(e,t,s,a,n){if(!e||s<=0)return n;let r=n;for(const o of t.chapters)Ca(e,o,e=>{r=Math.min(r,Ia(e,s,a,n))});return r}(h.value,l.value,g.value,m(),o.value?.max??3)),b=t(()=>Math.min(o.value?.min??.5,P.value));let I;function C(e){const t=P.value,s=b.value,a=va(e,s,t);p.value=a,u.value=a,function(e,t,s,a=.5,n=3){const r=e?.getStore();if(!r)return;const o=va(s,a,n);r.dispatchToCore(U(o));for(const i of t.chapters){const e=Te(i);if(e)for(const t of e.segments)r.getState().core.documents[t.documentId]&&r.dispatchToCore(q(o,t.documentId));else r.getState().core.documents[i.chapterId]&&r.dispatchToCore(q(o,i.chapterId))}}(d.value,l.value,a,s,t)}function S(e){if(!h.value||!c.value)return;const t=c.value.resolvePageDocument(e,0),s=h.value.getDocument(t.documentId);if(!s)return;const a=ba(g.value,m());a<=0||C(Pa(s,a))}function y(e){f()?S(e):C(v())}return a(()=>i?.value,e=>{I?.(),I=e?function(e,t){if(!e||\"undefined\"==typeof ResizeObserver)return()=>{};let s=null;const a=new ResizeObserver(()=>{t(Sa(s))}),n=()=>{const n=e.querySelector(\"[data-chapter-scroll-viewport]\");n!==s?(s&&a.unobserve(s),s=n,s?(a.observe(s),t(Sa(s))):t(0)):t(Sa(s))};n();const r=new MutationObserver(n);r.observe(e,{childList:!0,subtree:!0});const o=requestAnimationFrame(n);return()=>{cancelAnimationFrame(o),r.disconnect(),s&&a.unobserve(s),a.disconnect()}}(e,e=>{g.value=e}):void 0},{immediate:!0}),n(()=>I?.()),a([d,()=>v(),()=>f()],()=>{d.value&&(f()||C(v()))},{immediate:!0}),a(P,e=>{p.value>e&&C(e)}),a([c,l,()=>f(),()=>v()],()=>{const e=c.value;if(e){for(const t of l.value.chapters)\"loaded\"===e.getChapterStatus(t.chapterId)&&y(t.chapterId);return e.onChapterStatusChange(e=>{\"loaded\"===e.status&&y(e.chapterId)})}},{immediate:!0}),a([g,()=>f(),c,l],()=>{if(f()&&!(g.value<=0)&&c.value)for(const e of l.value.chapters)if(\"loaded\"===c.value.getChapterStatus(e.chapterId)){S(e.chapterId);break}}),{scale:u,setScale:C,zoomEnabled:()=>!1!==o.value?.enabled,minZoom:b,maxZoom:P}}function wa(e,t,s){return Math.min(s,Math.max(t,e))}function xa(e,t){if(!e||!1===t.enabled)return()=>{};let s=null,a=null,n=0;const r=()=>{const a=e.querySelector(\"[data-chapter-scroll-viewport]\");return!!a&&(s?.(),s=function({container:e,getScale:t,setScale:s,minZoom:a=.5,maxZoom:n=3}){let r=0,o=1,i=null,l=1,d=1;const h=e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),null===i?(d=t(),l=1):clearTimeout(i),l*=1-.01*e.deltaY,l=wa(l,.1,10),s(wa(d*l,a,n)),i=setTimeout(()=>{i=null},120))},c=/* @__PURE__ */new Map,u=e=>{if(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size){const[e,s]=[...c.values()];r=Math.hypot(s.x-e.x,s.y-e.y),o=t()}},p=e=>{if(c.has(e.pointerId)&&(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size&&r>0)){e.preventDefault();const[t,i]=[...c.values()],l=Math.hypot(i.x-t.x,i.y-t.y);s(wa(o*(l/r),a,n))}},g=e=>{c.delete(e.pointerId),c.size<2&&(r=0)};return e.addEventListener(\"wheel\",h,{passive:!1}),e.addEventListener(\"pointerdown\",u),e.addEventListener(\"pointermove\",p,{passive:!1}),e.addEventListener(\"pointerup\",g),e.addEventListener(\"pointercancel\",g),()=>{e.removeEventListener(\"wheel\",h),e.removeEventListener(\"pointerdown\",u),e.removeEventListener(\"pointermove\",p),e.removeEventListener(\"pointerup\",g),e.removeEventListener(\"pointercancel\",g),i&&clearTimeout(i)}}({container:a,getScale:t.getScale,setScale:t.setScale,minZoom:t.minZoom,maxZoom:t.maxZoom}),!0)};return r()||(a=new MutationObserver(()=>{r()&&(a?.disconnect(),a=null)}),a.observe(e,{childList:!0,subtree:!0}),n=requestAnimationFrame(()=>r())),()=>{n&&cancelAnimationFrame(n),a?.disconnect(),s?.()}}const Ma={chapters:[]};function $a(e){const r=s(null),{provides:o}=x(et.id),i=t(()=>o.value?.getManifest()??Ma),l=t(()=>e.value?.zoom),{scale:d,setScale:h,zoomEnabled:c,minZoom:u,maxZoom:p}=ya(i,l,r);return function(e,t){let s=null;a([e,t],()=>{s?.();const a=t.value;s=xa(e.value??null,{enabled:a.enabled,getScale:a.getScale,setScale:a.setScale,minZoom:a.minZoom,maxZoom:a.maxZoom})},{deep:!0,flush:\"post\"}),n(()=>s?.())}(r,t(()=>({enabled:c(),getScale:()=>d.value,setScale:h,minZoom:u.value,maxZoom:p.value}))),{hostRef:r,scale:d,setScale:h,zoomEnabled:c}}function La(e,t){return`${e}#s${t}`}function Da(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function ka(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:La(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Ta(e){const[t,s]=e.localPageRange;return s-t+1}function za(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Oa(e,t){return`${e}#s${t}`}function Aa(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function Na(e){const t=e.source;if(!za(t))return null;const s=t.segmentPageThreshold,a=Ta(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:Oa(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Fa(e,t){const s=Na(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Ga(e,t){const s=Na(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function Ea(e){var t;const s=e.source;if(!za(s))return[];const a=[],{chapterId:n}=e,r=Ta(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Ra={kind:\"first-wins\"};function Va(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}class _a{constructor(e){this._pages=e,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const t of e){this._byGlobalNumber.set(t.globalPageNumber,t);let e=this._byChapter.get(t.chapterId);e||(e=[],this._byChapter.set(t.chapterId,e)),e.push(t)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(e){return this._pages[e]??null}byGlobalNumber(e){return this._byGlobalNumber.get(e)??null}toGlobal(e,t){const s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}}function Ua(e,t=Ra){const s=function(e,t=Ra){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Va(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new _a(r)}const qa=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=Ra,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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??Ra,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Aa(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Aa(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Aa(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Fa(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Na(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Ea(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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=Ua(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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Na(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Ga(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Fa(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=Na(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(za(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=Aa(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?Na(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};qa.id=\"chapter-manager\";let Wa=qa;function Ha(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const Ba=class extends E{constructor(e,t){super(e,t),this.layoutChange$=R(void 0,Ha),this.visibleChange$=R(),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(Wa.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=ka(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=Da(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=Da(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=ka(a),o=this.documentManager.provides(),i=[],l=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(r)for(const d of r.segments){if(!s.isSegmentLoaded(e,d.index))continue;const t=d.localPageEnd-d.localPageStart+1;l(d.documentId,d.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=Da(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let l=a;l<n;l++){r.push(l);const e=this.offsets[l],a=e+this.getPageSize(l).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),l=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const d=o.height/l.size.height,h=(this.offsets[e]??0)+t*d-n;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};Ba.id=\"chapter-scroll\";let ja=Ba;const Za=[\"data-global-page-index\",\"data-chapter-id\",\"data-local-page-index\"],Ya=/* @__PURE__ */((e,t)=>{const s=e.__vccOpts||e;for(const[a,n]of t)s[a]=n;return s})(/* @__PURE__ */r({__name:\"ChapterScroller\",props:{class:{},style:{}},setup(e){const{provides:t}=x(ja.id),r=s(null),m=s(null);let f=null;const v=()=>{null==f||f(),f=null,t.value&&(t.value.registerViewport(r.value),f=t.value.onLayoutChange(e=>{m.value=e}))};return o(v),n(()=>{var e;null==f||f(),null==(e=t.value)||e.registerViewport(null)}),a(t,v),(e,t)=>{var s,a,n;return i(),l(\"div\",{ref_key:\"containerRef\",ref:r,\"data-chapter-scroll-viewport\":\"\",class:h(e.$props.class),style:d({overflow:\"auto\",overflowX:\"hidden\",position:\"relative\",width:\"100%\",height:\"100%\",...e.$props.style})},[c(\"div\",{style:d({position:\"relative\",width:`${(null==(s=m.value)?void 0:s.totalWidth)??0}px`,height:`${(null==(a=m.value)?void 0:a.totalHeight)??0}px`,margin:\"0 auto\"})},[(i(!0),l(u,null,p((null==(n=m.value)?void 0:n.items)??[],s=>(i(),l(\"div\",{key:s.globalPageIndex,\"data-global-page-index\":s.globalPageIndex,\"data-chapter-id\":s.chapterId,\"data-local-page-index\":s.localPageIndex,style:d({position:\"absolute\",top:`${s.offsetTop}px`,left:\"50%\",transform:\"translateX(-50%)\",width:`${s.width}px`,height:`${s.height}px`,backgroundColor:s.isPlaceholder?\"#f3f4f6\":\"#fff\",boxShadow:\"0 1px 4px rgba(0,0,0,0.08)\"})},[s.isPlaceholder?g(e.$slots,\"placeholder\",{key:0,item:s},()=>[t[0]||(t[0]=c(\"div\",{class:\"chapter-scroll-placeholder\"},\"Loading chapter…\",-1))],!0):g(e.$slots,\"page\",{key:1,item:s},void 0,!0)],12,Za))),128))],4)],6)}}}),[[\"__scopeId\",\"data-v-e9ab4da3\"]]),Xa=/* @__PURE__ */r({__name:\"ChapterRenderLayer\",props:{chapterId:{},localPageIndex:{},pdfDocumentId:{},pdfPageIndex:{},scale:{},dpr:{},class:{}},setup(e){const t=e;return(s,a)=>(i(),m(f(fe),{\"document-id\":t.pdfDocumentId??t.chapterId,\"page-index\":t.pdfPageIndex??t.localPageIndex,scale:e.scale,dpr:e.dpr,class:h(e.class),style:{pointerEvents:\"none\"}},null,8,[\"document-id\",\"page-index\",\"scale\",\"dpr\",\"class\"]))}});function Ka(e){const[t,s]=e.localPageRange;return s-t+1}function Qa(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Ja(e,t){return`${e}#s${t}`}function en(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function tn(e){const t=e.source;if(!Qa(t))return null;const s=t.segmentPageThreshold,a=Ka(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:Ja(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function sn(e,t){const s=tn(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function an(e,t){const s=tn(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function nn(e){var t;const s=e.source;if(!Qa(s))return[];const a=[],{chapterId:n}=e,r=Ka(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const rn={kind:\"first-wins\"};function on(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let ln=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function dn(e,t=rn){const s=function(e,t=rn){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,on(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new ln(r)}const hn=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=rn,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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??rn,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=en(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=en(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=en(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?sn(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?tn(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...nn(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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=dn(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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?tn(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=an(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=sn(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=tn(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(Qa(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=en(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?tn(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};hn.id=\"chapter-manager\";let cn=hn;function un(e,t){return`${e}#s${t}`}function pn(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function gn(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:un(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function mn(e){const[t,s]=e.localPageRange;return s-t+1}function fn(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function vn(e,t){return`${e}#s${t}`}function Pn(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function bn(e){const t=e.source;if(!fn(t))return null;const s=t.segmentPageThreshold,a=mn(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:vn(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function In(e,t){const s=bn(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Cn(e,t){const s=bn(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function Sn(e){var t;const s=e.source;if(!fn(s))return[];const a=[],{chapterId:n}=e,r=mn(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const yn={kind:\"first-wins\"};function wn(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}class xn{constructor(e){this._pages=e,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const t of e){this._byGlobalNumber.set(t.globalPageNumber,t);let e=this._byChapter.get(t.chapterId);e||(e=[],this._byChapter.set(t.chapterId,e)),e.push(t)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(e){return this._pages[e]??null}byGlobalNumber(e){return this._byGlobalNumber.get(e)??null}toGlobal(e,t){const s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}}function Mn(e,t=yn){const s=function(e,t=yn){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,wn(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,d=l+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:d})}return new xn(r)}const $n=class e extends E{constructor(e,t){super(e,t),this.statusChange$=R(),this.manifestChange$=V(),this.overlapStrategy=yn,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__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??yn,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Pn(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Pn(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Pn(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?In(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?bn(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Sn(a))}return t}(t);s.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${s.join(\"; \")}`);const a=new Set(this.chapterStatus.keys()),n=new Set(t.chapters.map(e=>e.chapterId));for(const e of a)n.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=Mn(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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?bn(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Cn(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=In(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=bn(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(fn(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(t,s){var a;const n=t.chapterId,r=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(a=this.passwordProvider)?void 0:a.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,r),l=this.documentManager.provides(),d=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),h=await new Promise((e,t)=>{d.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{h.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===r&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(t,s,a,n){if(a!==G.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:a}=Pn(t);return void(e&&0!==a&&null!==a||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const r=this.findChapter(s);if(!r)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?bn(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};$n.id=\"chapter-manager\";let Ln=$n;function Dn(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const kn=class extends E{constructor(e,t){super(e,t),this.layoutChange$=R(void 0,Dn),this.visibleChange$=R(),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(Ln.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=gn(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=pn(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=pn(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=gn(a),o=this.documentManager.provides(),i=[],l=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(r)for(const d of r.segments){if(!s.isSegmentLoaded(e,d.index))continue;const t=d.localPageEnd-d.localPageStart+1;l(d.documentId,d.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=pn(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let l=a;l<n;l++){r.push(l);const e=this.offsets[l],a=e+this.getPageSize(l).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),l=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const d=o.height/l.size.height,h=(this.offsets[e]??0)+t*d-n;this.viewportEl.scrollTo({top:Math.max(0,h),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};kn.id=\"chapter-scroll\";let Tn=kn;const zn=class e extends E{constructor(e,t){super(e,t),this.notesChange$=R([]),this.noteActivated$=V(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(Tn.id),this.chapterManager=this.registry.getPlugin(cn.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(s){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",s)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(s=>s.chapterId===e&&s.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,s;const a=this.notes.get(e);a&&(null==(s=(t=this.config.callbacks).onActivateNote)||s.call(t,e,a),this.noteActivated$.emit({noteId:e,anchor:a}))}listAll(){return Array.from(this.notes.values())}listNotesForChapter(e){return this.listAll().filter(t=>t.chapterId===e)}replaceNotesForChapter(e,t){for(const[s,a]of this.notes.entries())a.chapterId===e&&this.notes.delete(s);for(const s of t)s.chapterId===e&&this.notes.set(s.noteId,s);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:An(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:s,onCreateNote:a}=this.config.callbacks;return s?(s({draft:t,complete:async e=>{const s={...t,noteId:e};this.registerNote(s)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const s=this.buildDraft(t),a=this.config.callbacks.onCreateNote;if(!a)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let n=null;try{n=await a(s)}catch(o){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!n)return null;const r={...s,noteId:n.noteId};return this.registerNote(r),r}async deleteNote(t){var s,a;if(this.notes.has(t)){try{await(null==(a=(s=this.config.callbacks).onDeleteNote)?void 0:a.call(s,t))}catch(n){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",n)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,s){var a,n;const r=this.notes.get(t);if(!r)return;const o={...r,content:s};try{await(null==(n=(a=this.config.callbacks).onUpdateNote)?void 0:n.call(a,o))}catch(i){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",i)}this.notes.set(t,o),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const s=this.notes.get(e);if(!s)return;const a=this.chapterScroll.provides(),n=this.chapterManager.provides();await n.ensureAllSegmentsLoaded(s.chapterId);const r=n.resolvePageDocument(s.chapterId,s.localPageIndex);(null==(t=this.documentManager.provides().getDocument(r.documentId))?void 0:t.pages[r.pageIndex])?(a.scrollToGlobalPageIndex(s.globalPageIndex),await this.waitForPageInLayout(s.globalPageIndex),a.scrollToGlobalPdfPoint(s.globalPageIndex,s.endAnchor.y,{marginTop:80})):a.scrollToGlobalPageIndex(s.globalPageIndex)}waitForPageInLayout(e){const t=this.chapterScroll.provides(),s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const a=setTimeout(()=>{n(),s(null)},2500),n=t.onLayoutChange(t=>{const r=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);r&&(clearTimeout(a),n(),s(r))})})}};zn.id=\"note\";let On=zn;function An(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function Nn(e){const{markerPdf:t,lineRects:s,sx:a,sy:n,cssPageWidth:r,iconSize:o,gapPx:i=6}=e,l=s?.length?s[s.length-1]:void 0;let d,h;l?(d=(l.origin.x+l.size.width)*a+i,h=l.origin.y*n+(l.size.height*n-o)/2):(d=t.x*a-o/2,h=t.y*n-o-i);const c=Math.max(0,r-o-2);return d>c&&(d=c),h<0&&(h=0),{left:d,top:h}}const Fn={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\",zIndex:25}},Gn=[\"onMouseenter\"],En=[\"data-note-marker-zone\",\"onMouseenter\",\"onMouseleave\"],Rn=[\"onClick\"],Vn=[\"onClick\"],_n=[\"onClick\"],Un=/* @__PURE__ */r({__name:\"NoteMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const r=e,{provides:o}=x(On.id),h=s([]),g=s(null),m=s(null);a(o,e=>{if(e)return e.onNotesChange(e=>{h.value=e.filter(e=>e.chapterId===r.chapterId&&e.localPageIndex===r.localPageIndex)})},{immediate:!0});let b=null;a(m,e=>{b&&(document.removeEventListener(\"mousedown\",b),b=null),e&&(b=t=>{const s=t.target;s.closest?.(`[data-note-marker-zone=\"${e}\"]`)||(m.value=null,g.value=null)},document.addEventListener(\"mousedown\",b))}),n(()=>{b&&document.removeEventListener(\"mousedown\",b)});const I=t(()=>r.ui?.iconSize??16),C=t(()=>r.ui?.highlightColor??\"rgba(245, 158, 11, 0.08)\");function S(e){const t=r.cssPageWidth/r.pdfPageWidth,s=r.cssPageHeight/r.pdfPageHeight,a=I.value,{left:n,top:o}=Nn({markerPdf:e.endAnchor,lineRects:e.rectsPdfCoord,sx:t,sy:s,cssPageWidth:r.cssPageWidth,iconSize:a}),i=function(e,t,s){let a=1/0,n=1/0,r=-1/0,o=-1/0;for(const i of e)a=Math.min(a,i.origin.x*t),n=Math.min(n,i.origin.y*s),r=Math.max(r,(i.origin.x+i.size.width)*t),o=Math.max(o,(i.origin.y+i.size.height)*s);return{left:a,top:n,width:r-a,height:o-n}}(e.rectsPdfCoord,t,s),l=m.value===e.noteId?72:0,d=Math.max(0,Math.min(i.left,n)-8),h=Math.max(0,Math.min(i.top,o)-8);return{zoneLeft:d,zoneTop:h,zoneW:Math.min(r.cssPageWidth,Math.max(i.left+i.width,n+a)+8)-d,zoneH:Math.max(i.top+i.height,o+a+6+l)+8-h,iconLeft:n,iconTop:o,sx:t,sy:s}}return(t,s)=>f(o)&&h.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(i(),l(\"div\",Fn,[(i(!0),l(u,null,p(h.value,e=>(i(),l(u,{key:e.noteId},[(i(!0),l(u,null,p(e.rectsPdfCoord,(t,s)=>(i(),l(\"div\",{key:`${e.noteId}-bg-${s}`,style:d({position:\"absolute\",left:t.origin.x*S(e).sx+\"px\",top:t.origin.y*S(e).sy+\"px\",width:t.size.width*S(e).sx+\"px\",height:t.size.height*S(e).sy+\"px\",background:C.value,borderRadius:\"2px\",pointerEvents:\"auto\"}),onMouseenter:t=>g.value=e.noteId},null,44,Gn))),128)),g.value===e.noteId||m.value===e.noteId?(i(),l(\"div\",{key:0,\"data-note-marker-zone\":e.noteId,style:d({position:\"absolute\",left:`${S(e).zoneLeft}px`,top:`${S(e).zoneTop}px`,width:`${S(e).zoneW}px`,height:`${S(e).zoneH}px`,pointerEvents:\"auto\",zIndex:26}),onMouseenter:t=>g.value=e.noteId,onMouseleave:t=>m.value!==e.noteId&&(g.value=null)},[c(\"button\",{type:\"button\",title:\"笔记\",style:d({position:\"absolute\",left:S(e).iconLeft-S(e).zoneLeft+\"px\",top:S(e).iconTop-S(e).zoneTop+\"px\",width:`${I.value}px`,height:`${I.value}px`,border:\"none\",borderRadius:\"50%\",background:\"#f59e0b\",color:\"#fff\",cursor:\"pointer\",fontSize:\"11px\",padding:0}),onMousedown:s[0]||(s[0]=v(()=>{},[\"stop\"])),onClick:v(t=>m.value=m.value===e.noteId?null:e.noteId,[\"stop\"])},\" 💬 \",44,Rn),m.value===e.noteId?(i(),l(\"div\",{key:0,style:d({position:\"absolute\",left:S(e).iconLeft-S(e).zoneLeft+\"px\",top:`${S(e).iconTop-S(e).zoneTop+I.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:s[1]||(s[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){o.value?.requestEditNote(e.noteId,e)}(e)},\" 编辑 \",8,Vn),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 s=e.noteId,o.value?.requestDeleteNote(s),void(m.value=null);var s}},\" 删除 \",8,_n)],36)):P(\"\",!0)],44,En)):P(\"\",!0)],64))),128))])):P(\"\",!0)}}),qn={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\"}},Wn=[\"title\",\"onClick\"],Hn=[\"onClick\"],Bn=/* @__PURE__ */r({__name:\"BookmarkMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const r=e,{provides:o}=x(ea.id),h=s([]),g=s(null),m=s(null);function b(){const e=o.value;e&&(h.value=e.listBookmarks().filter(e=>e.anchor.chapterId===r.chapterId&&e.anchor.localPageIndex===r.localPageIndex))}a(o,e=>{if(e)return b(),e.onBookmarksChange(b)},{immediate:!0});let I=null;a(g,e=>{I&&(document.removeEventListener(\"mousedown\",I),I=null),e&&(I=e=>{m.value?.contains(e.target)||(g.value=null)},document.addEventListener(\"mousedown\",I))}),n(()=>{I&&document.removeEventListener(\"mousedown\",I)});const C=t(()=>r.ui?.iconSize??16);function S(e){const{left:t,top:s}=function(e){const t=r.cssPageWidth/r.pdfPageWidth,s=r.cssPageHeight/r.pdfPageHeight,a=e.anchor.rectsPdfCoord?.length?e.anchor.rectsPdfCoord:[e.anchor.rectPdfCoord];return Nn({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:a,sx:t,sy:s,cssPageWidth:r.cssPageWidth,iconSize:C.value})}(e);return{position:\"absolute\",left:`${Math.max(0,t-6)}px`,top:`${Math.max(0,s-6)}px`,width:`${C.value+12}px`,height:`${C.value+12}px`,pointerEvents:\"auto\",zIndex:20}}return(t,s)=>f(o)&&h.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(i(),l(\"div\",qn,[(i(!0),l(u,null,p(h.value,e=>(i(),l(\"div\",{key:e.id,style:d(S(e)),onMousedown:s[1]||(s[1]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",title:e.label,style:d({position:\"absolute\",left:\"6px\",top:\"6px\",width:`${C.value}px`,height:`${C.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,Wn),g.value===e.id?(i(),l(\"div\",{key:0,ref_for:!0,ref_key:\"deleteMenuRef\",ref:m,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:s[0]||(s[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=o.value;if(!t)return;await t.requestRemoveBookmark(e)&&(g.value=null)}(e.id)},\" 删除书签 \",8,Hn)],512)):P(\"\",!0)],36))),128))])):P(\"\",!0)}});function jn(e){return e.pdfDocumentId??e.chapterId}function Zn(e){return e.pdfPageIndex??e.localPageIndex}function Yn(e,t){e.wait(t,()=>{})}async function Xn(e){const t=e.trim();if(!t)return!1;try{if(\"undefined\"!=typeof navigator&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(t),!0}catch{}if(\"undefined\"==typeof document)return!1;try{const e=document.createElement(\"textarea\");e.value=t,e.setAttribute(\"readonly\",\"\"),e.style.position=\"fixed\",e.style.left=\"-9999px\",document.body.appendChild(e),e.select();const s=document.execCommand(\"copy\");return document.body.removeChild(e),s}catch{return!1}}const Kn={display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"4px 8px\",borderRadius:\"8px\",background:\"#ffffff\",border:\"1px solid rgba(15, 23, 42, 0.08)\",boxShadow:\"0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 10px 24px -4px rgba(15, 23, 42, 0.12)\"},Qn={padding:\"6px 12px\",fontSize:\"12px\",fontWeight:\"500\",border:\"none\",borderRadius:\"6px\",background:\"transparent\",color:\"#dc2626\",cursor:\"pointer\"};function Jn(e,s){const{provides:a}=pe(),n=s?.markup?.annotationMenu,r=!1!==s?.markup?.enabled,o=!1!==n?.enabled;return t(()=>{const t=\"string\"==typeof e?e:e.value;if(r&&o&&a.value)return e=>{const{context:s,rect:r,placement:o,menuWrapperProps:i,selected:l}=e;if(!l||\"annotation\"!==s.type)return b(\"span\",i);if(s.structurallyLocked)return b(\"span\",i);if(d=s.annotation.object.type,!$e.has(d))return b(\"span\",i);var d;const h=a.value.forDocument(t),{pageIndex:c,id:u}=s.annotation.object,p=()=>{h?.deleteAnnotation(c,u)},g={position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:o?.suggestTop?void 0:`${r.size.height+8}px`,bottom:o?.suggestTop?`${r.size.height+8}px`:void 0},m=n?.renderMenu?n.renderMenu({pageIndex:c,annotationId:u,onDelete:p}):b(\"button\",{type:\"button\",style:Qn,onClick:p},\"删除\");return b(\"div\",i,[b(\"div\",{style:g},[b(\"div\",{style:Kn,role:\"toolbar\",\"aria-label\":\"划线标注\"},[m])])])}})}const er=/* @__PURE__ */r({__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 s=e,n=t(()=>jn(s.item)),r=t(()=>Zn(s.item));!function(e){const{provides:t}=x(W.id);a([t,e],([e,t])=>{e&&t&&e.isDocumentOpen(t)&&e.setActiveDocument(t)},{immediate:!0})}(n);const{provides:o}=x(W.id),{provides:l}=x(X.id),h=t(()=>o.value?.getDocument(n.value)?.pages[r.value]);function c(e,t){const a=s.createNote.value;if(a&&!1!==s.features?.notes?.enabled&&!1!==s.features?.selectionToolbar?.enabled)return s=>{const n={position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:s.placement?.suggestTop?-40:s.rect.size.height+8};return b(\"div\",s.menuWrapperProps,[b(\"div\",{style:n},b(\"button\",{type:\"button\",style:{padding:\"6px 10px\",fontSize:\"12px\",border:\"1px solid #e2e8f0\",borderRadius:\"6px\",background:\"#fff\",cursor:\"pointer\"},onClick:()=>{if(!l.value)return;const s=l.value.getHighlightRectsForPage(Zn(e),t);Yn(l.value.getSelectedText(t),t=>{a(function(e,t,s){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageIndex:e.globalPageIndex,globalPageNumber:e.globalPageNumber,rectsPdfCoord:t,selectedText:s}}(e,s,t.join(\"\\n\")))})}},\"添加附注\"))])}}const u=t(()=>{const e=s.buildSelectionMenu,t={item:s.item,defaultMenu:c(s.item,n.value),createNote:s.createNote.value};if(e){const s=e(t);if(s)return s}return t.defaultMenu}),p=Jn(n,s.features),v=t(()=>function(e,t){if(e||t)return s=>{if(e){const t=e(s);if(null!=t)return t}return t?.(s)??null}}(s.annotationSelectionMenu,p.value)),y=t(()=>s.renderPageOverlay?.(s.item));return(t,s)=>e.item.isPlaceholder?P(\"\",!0):(i(),m(f(de),{key:0,\"document-id\":n.value},{default:I(()=>[C(f(ce),{\"document-id\":n.value,\"page-index\":r.value,style:{backgroundColor:\"#fff\"}},{default:I(()=>[C(f(he),{\"document-id\":n.value,\"page-index\":r.value,style:d(f(be)),onPointerdown:f(Ie)},{default:I(()=>[C(f(Xa),{\"chapter-id\":e.item.chapterId,\"local-page-index\":e.item.localPageIndex,\"pdf-document-id\":n.value,\"pdf-page-index\":r.value},null,8,[\"chapter-id\",\"local-page-index\",\"pdf-document-id\",\"pdf-page-index\"]),C(f(ue),{\"document-id\":n.value,\"page-index\":r.value,\"selection-menu\":u.value},null,8,[\"document-id\",\"page-index\",\"selection-menu\"]),e.showRedactionLayer?(i(),m(f(me),{key:0,\"document-id\":n.value,\"page-index\":r.value,\"selection-menu\":e.redactionSelectionMenu},null,8,[\"document-id\",\"page-index\",\"selection-menu\"])):P(\"\",!0),C(f(ge),{\"document-id\":n.value,\"page-index\":r.value,\"selection-menu\":v.value},null,8,[\"document-id\",\"page-index\",\"selection-menu\"]),e.showBookmarkMarkers&&h.value?(i(),m(Bn,{key:1,\"chapter-id\":e.item.chapterId,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":h.value.size.width,\"pdf-page-height\":h.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\"])):P(\"\",!0),y.value?(i(),m(S(y.value),{key:2})):P(\"\",!0),e.showNoteMarkers&&h.value?(i(),m(Un,{key:3,\"chapter-id\":e.item.chapterId,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":h.value.size.width,\"pdf-page-height\":h.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\"])):P(\"\",!0),g(t.$slots,\"default\")]),_:3},8,[\"document-id\",\"page-index\",\"style\",\"onPointerdown\"])]),_:3},8,[\"document-id\",\"page-index\"])]),_:3},8,[\"document-id\"]))}});const tr=/* @__PURE__ */r({__name:\"HoverBookmarkLayer\",props:{item:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},hoverUi:{}},setup(e){const r=e,o=t(()=>jn(r.item)),{provides:h}=x(X.id),{provides:u}=x(ea.id),p=s(null),g=s(null),m=s(null),b=s(null),I=t(()=>r.hoverUi?.iconSize??16),C=t(()=>b.value??m.value);let S=null,y=0;function w(){const e=h.value;if(!e)return;const t=e.forDocument(o.value).getState().geometry[r.item.localPageIndex];t&&(g.value=t)}a([h,o,()=>r.item.localPageIndex],([e])=>{if(S?.(),S=null,cancelAnimationFrame(y),g.value=null,!e)return;const t=e.forDocument(o.value);S=t.onSelectionChange(w);let s=!1;const a=()=>{if(!s){try{if(w(),t.getState().geometry[r.item.localPageIndex])return}catch{}y=requestAnimationFrame(a)}};return a(),()=>{s=!0,cancelAnimationFrame(y),S?.(),S=null}},{immediate:!0});let M=null;a([g,()=>r.pdfPageWidth,b,h],()=>{M&&(document.removeEventListener(\"mousemove\",M),M=null),g.value&&r.pdfPageWidth&&(M=e=>{if(b.value)return;const t=h.value;if(t)try{if(t.forDocument(o.value).getState().selecting)return void(m.value=null)}catch{}const s=p.value;if(!s)return;const a=s.getBoundingClientRect();if(e.clientX<a.left||e.clientX>a.right||e.clientY<a.top||e.clientY>a.bottom)return void(m.value=null);const n=function(e,t){const s=K(e,t);if(s<0)return null;const a=Q(e,s);if(!a)return null;const n=J(e,a.from,a.to);return 0===n.length?null:{lineRects:n,charFrom:a.from,charTo:a.to}}(g.value,{x:(e.clientX-a.left)/(r.cssPageWidth/r.pdfPageWidth),y:(e.clientY-a.top)/(r.cssPageHeight/r.pdfPageHeight)});m.value=n?.lineRects??null},document.addEventListener(\"mousemove\",M))},{immediate:!0}),n(()=>{M&&document.removeEventListener(\"mousemove\",M),cancelAnimationFrame(y),S?.()});const $=t(()=>{const e=C.value;return e?.length?Ks(r.item.chapterId,r.item.localPageIndex,e,{globalPageIndex:r.item.globalPageIndex,globalPageNumber:r.item.globalPageNumber}):null}),L=t(()=>{const e=$.value,t=u.value;return!(!e||!t)&&t.listBookmarks().some(t=>Xs(t.anchor,e))});function D(){const e=u.value,t=$.value;e&&t&&!L.value&&(e.addBookmark({label:`书签 ${/* @__PURE__ */(new Date).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"})}`,anchor:t}),m.value=null,b.value=null)}const k=t(()=>{const e=C.value,t=e?.[e.length-1];if(!t||!r.pdfPageWidth)return null;const s=r.cssPageWidth/r.pdfPageWidth,a=r.cssPageHeight/r.pdfPageHeight,n=I.value;return{iconLeft:Math.min((t.origin.x+t.size.width)*s+6,Math.max(0,r.cssPageWidth-n-2)),iconTop:t.origin.y*a+(t.size.height*a-n)/2,zoneLeft:Math.max(0,(t.origin.x+t.size.width)*s-4),zoneTop:Math.max(0,t.origin.y*a-4),size:n}});return(t,s)=>f(u)&&e.pdfPageWidth&&e.pdfPageHeight?(i(),l(\"div\",{key:0,ref_key:\"rootRef\",ref:p,style:{position:\"absolute\",inset:\"0\",zIndex:14,pointerEvents:\"none\"}},[k.value&&C.value&&!L.value?(i(),l(\"div\",{key:0,style:d({position:\"absolute\",left:`${k.value.zoneLeft}px`,top:`${k.value.zoneTop}px`,width:`${k.value.size+20}px`,height:`${(C.value[C.value.length-1]?.size.height??0)*(e.cssPageHeight/e.pdfPageHeight)+k.value.size+12}px`,pointerEvents:\"auto\"}),onMouseenter:s[0]||(s[0]=e=>b.value=C.value),onMouseleave:s[1]||(s[1]=e=>b.value=null)},[c(\"button\",{type:\"button\",title:\"添加书签\",style:d({position:\"absolute\",left:k.value.iconLeft-k.value.zoneLeft+\"px\",top:k.value.iconTop-k.value.zoneTop+\"px\",width:`${k.value.size}px`,height:`${k.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(D,[\"stop\"])},\" 🔖 \",4)],36)):P(\"\",!0)],512)):P(\"\",!0)}}),sr={key:0,width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"\"},ar={key:1,width:\"24\",height:\"24\",viewBox:\"0 0 28 28\",fill:\"none\",\"aria-hidden\":\"\"},nr={key:0,x:\"5\",y:\"4\",width:\"18\",height:\"20\",rx:\"3\",fill:\"#fde047\"},rr={key:1,d:\"M6 22h16\",stroke:\"#dc2626\",\"stroke-width\":\"2.2\",\"stroke-linecap\":\"round\"},or={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\"},ir={key:3,d:\"M5 14h18\",stroke:\"#dc2626\",\"stroke-width\":\"2.2\",\"stroke-linecap\":\"round\"},lr={key:2,width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"\"},dr=/* @__PURE__ */r({__name:\"SelectionToolbarIcons\",props:{kind:{}},setup:e=>(t,s)=>\"copy\"===e.kind?(i(),l(\"svg\",sr,[...s[0]||(s[0]=[c(\"rect\",{x:\"8.5\",y:\"8.5\",width:\"11\",height:\"13\",rx:\"2.25\",fill:\"#f1f5f9\",stroke:\"#94a3b8\",\"stroke-width\":\"1.35\"},null,-1),c(\"rect\",{x:\"4.5\",y:\"3.5\",width:\"11\",height:\"13\",rx:\"2.25\",fill:\"#ffffff\",stroke:\"#334155\",\"stroke-width\":\"1.5\"},null,-1),c(\"path\",{d:\"M7.5 7h5.5a1.5 1.5 0 0 1 1.5 1.5V14\",stroke:\"#64748b\",\"stroke-width\":\"1.2\",\"stroke-linecap\":\"round\"},null,-1)])])):\"note\"!==e.kind?(i(),l(\"svg\",ar,[\"highlight\"===e.kind?(i(),l(\"rect\",nr)):P(\"\",!0),s[1]||(s[1]=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?(i(),l(\"path\",rr)):\"squiggly\"===e.kind?(i(),l(\"path\",or)):\"strikeout\"===e.kind?(i(),l(\"path\",ir)):P(\"\",!0)])):(i(),l(\"svg\",lr,[...s[2]||(s[2]=[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)])]))}),hr=[\"title\",\"aria-label\",\"onMouseenter\",\"onClick\"],cr=[\"title\",\"onMouseenter\",\"onClick\"],ur={style:{\"font-size\":\"11px\",\"font-weight\":\"600\"}},pr=/* @__PURE__ */r({__name:\"SelectionToolbarCard\",props:{placementAbove:{type:Boolean},anchorHeight:{},hiddenBuiltinActions:{},extraActions:{},renderCopyIcon:{type:Function}},emits:[\"action\"],setup(e,{emit:a}){const n=e,r=a,o=[{id:\"highlight\",label:\"高亮背景\"},{id:\"underline\",label:\"下划线\"},{id:\"squiggly\",label:\"波浪线\"},{id:\"strikeout\",label:\"删除线\"}],h=t(()=>new Set(n.hiddenBuiltinActions??[])),g=t(()=>!h.value.has(\"copy\")),f=t(()=>o.filter(e=>!h.value.has(e.id))),v=t(()=>!h.value.has(\"note\")),b=t(()=>[...n.extraActions??[]].sort((e,t)=>(e.order??0)-(t.order??0))),I=t(()=>f.value.length>0||b.value.length>0),w=s(null),x=t(()=>({position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:n.placementAbove?void 0:`${n.anchorHeight+10}px`,bottom:n.placementAbove?`${n.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 M(e,t=!1){return{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"32px\",height:\"32px\",padding:0,margin:0,border:\"none\",borderRadius:\"8px\",background:w.value===e?t?\"#fffbeb\":\"#f1f5f9\":\"transparent\",color:t?\"#b45309\":\"#334155\",cursor:\"pointer\",flexShrink:0,WebkitAppearance:\"none\",appearance:\"none\"}}const $={width:\"1px\",height:\"20px\",margin:\"0 4px\",background:\"rgba(15, 23, 42, 0.1)\",flexShrink:0};return(t,s)=>(i(),l(\"div\",{role:\"toolbar\",\"aria-label\":\"选区工具\",style:d(x.value)},[g.value?(i(),l(u,{key:0},[c(\"button\",{type:\"button\",title:\"复制\",\"aria-label\":\"复制\",style:d(M(\"copy\")),onMouseenter:s[0]||(s[0]=e=>w.value=\"copy\"),onMouseleave:s[1]||(s[1]=e=>w.value=null),onClick:s[2]||(s[2]=e=>r(\"action\",\"copy\"))},[e.renderCopyIcon?(i(),m(S(e.renderCopyIcon),{key:0})):(i(),m(dr,{key:1,kind:\"copy\"}))],36),I.value?(i(),l(\"span\",{key:0,style:$,\"aria-hidden\":\"\"})):P(\"\",!0)],64)):P(\"\",!0),(i(!0),l(u,null,p(f.value,e=>(i(),l(\"button\",{key:e.id,type:\"button\",title:e.label,\"aria-label\":e.label,style:d(M(e.id)),onMouseenter:t=>w.value=e.id,onMouseleave:s[3]||(s[3]=e=>w.value=null),onClick:t=>r(\"action\",e.id)},[C(dr,{kind:e.id},null,8,[\"kind\"])],44,hr))),128)),(i(!0),l(u,null,p(b.value,e=>(i(),l(\"button\",{key:e.id,type:\"button\",title:e.label,style:d(M(e.id)),onMouseenter:t=>w.value=e.id,onMouseleave:s[4]||(s[4]=e=>w.value=null),onClick:t=>r(\"action\",e.id)},[c(\"span\",ur,y(e.label.slice(0,2)),1)],44,cr))),128)),v.value?(i(),l(u,{key:1},[I.value||g.value?(i(),l(\"span\",{key:0,style:$,\"aria-hidden\":\"\"})):P(\"\",!0),c(\"button\",{type:\"button\",title:\"添加笔记\",\"aria-label\":\"添加笔记\",style:d(M(\"note\",!0)),onMouseenter:s[5]||(s[5]=e=>w.value=\"note\"),onMouseleave:s[6]||(s[6]=e=>w.value=null),onClick:s[7]||(s[7]=e=>r(\"action\",\"note\"))},[C(dr,{kind:\"note\"})],36)],64)):P(\"\",!0)],4))}}),gr={highlight:\"highlight\",underline:\"underline\",squiggly:\"squiggly\",strikeout:\"strikeout\"};const mr=/* @__PURE__ */r({__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 s=e,a=t(()=>s.features),{hostRef:n}=$a(a),r=t(()=>({background:s.features?.scrollViewport?.background??Ce})),o=function(){const{registry:e}=w();return t(()=>{const t=e.value?.getPlugin(ls.id)?.provides?.();return t?e=>t.createNoteFromSelection(e):null})}(),c=function(){const{registry:e}=w();return t(()=>!!e.value?.getPlugin(ls.id))}(),u=function(){const{registry:e}=w();return t(()=>!!e.value?.getPlugin(ea.id))}(),p=t(()=>s.showNoteMarkers&&c.value&&!1!==s.features?.notes?.enabled),m=t(()=>s.showBookmarkMarkers&&u.value&&!1!==s.features?.bookmarks?.enabled),v=t(()=>u.value&&!1!==s.features?.bookmarks?.enabled),P=function(e,s){const a=t(()=>e()?.selectionToolbar),n=t(()=>!1!==e()?.markup?.enabled),r=t(()=>!1!==e()?.notes?.enabled),o=t(()=>!a.value?.hiddenBuiltinActions?.includes(\"copy\")),{provides:i}=x(X.id),{provides:l}=x(O.id),{provides:d}=x(ls.id);return t(()=>{if(!1!==a.value?.enabled&&(n.value||r.value||o.value||a.value?.extraActions?.length))return t=>{const h=jn(t.item),c=Zn(t.item);return u=>b(\"div\",u.menuWrapperProps,b(pr,{placementAbove:!!u.placement?.suggestTop,anchorHeight:u.rect.size.height,hiddenBuiltinActions:a.value?.hiddenBuiltinActions,extraActions:a.value?.extraActions,renderCopyIcon:a.value?.renderCopyIcon,onAction:a=>{if(\"copy\"!==a)if(\"highlight\"!==a&&\"underline\"!==a&&\"squiggly\"!==a&&\"strikeout\"!==a){if(\"note\"===a){if(!i.value||!d.value||!r.value)return;const e=i.value.getHighlightRectsForPage(c,h);return void Yn(i.value.getSelectedText(h),s=>{d.value?.requestCreateFromSelection({chapterId:t.item.chapterId,localPageIndex:t.item.localPageIndex,globalPageIndex:t.item.globalPageIndex,globalPageNumber:t.item.globalPageNumber,rectsPdfCoord:e,selectedText:s.join(\"\\n\")})})}s?.onExtraAction?.(a,t)}else{if(!i.value||!l.value||!n.value)return;Me(h,gr[a],l.value,i.value,e()?.markup?.styles)}else{if(!i.value||!o.value)return;Yn(i.value.getSelectedText(h),e=>{Xn(e.join(\"\\n\"))})}}}))}})}(()=>s.features,{onExtraAction:s.onExtraSelectionAction}),S=t(()=>{if(s.buildSelectionMenu||P.value)return e=>{const t=P.value?P.value(e):e.defaultMenu;return s.buildSelectionMenu?s.buildSelectionMenu({...e,defaultMenu:t}):t}}),{provides:y}=x(W.id);function M(e){const t=[];if(v.value){const a=function(e){const t=jn(e),a=Zn(e),n=y.value?.getDocument(t)?.pages[a];return e.isPlaceholder||!n?null:b(tr,{item:e,pdfPageWidth:n.size.width,pdfPageHeight:n.size.height,cssPageWidth:e.width,cssPageHeight:e.height,hoverUi:s.features?.bookmarks?.hover})}(e);a&&t.push(a)}const a=s.renderPageOverlay?.(e);if(a&&t.push(a),t.length)return b(\"div\",t)}return(t,s)=>(i(),l(\"div\",{ref_key:\"hostRef\",ref:n,class:h(e.className),style:d(e.className?void 0:f(Pe))},[C(f(Ya),{class:h(e.className),style:d(r.value)},{page:I(({item:t})=>[C(er,{item:t,features:e.features,\"show-note-markers\":p.value,\"show-bookmark-markers\":m.value,\"show-redaction-layer\":e.showRedactionLayer,\"note-marker-ui\":e.features?.notes?.marker,\"bookmark-marker-ui\":e.features?.bookmarks?.marker,\"build-selection-menu\":S.value,\"create-note\":f(o),\"annotation-selection-menu\":e.annotationSelectionMenu,\"redaction-selection-menu\":e.redactionSelectionMenu,\"render-page-overlay\":M},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\",\"style\"]),g(t.$slots,\"default\")],6))}}),fr={key:0,style:{display:\"flex\",flexDirection:\"column\",height:\"100%\",minHeight:0,width:\"100%\"}},vr=/* @__PURE__ */r({__name:\"ChapterPdfViewer\",props:{engine:{},options:{},editorOptions:{},features:{},className:{},viewportClassName:{},onExtraSelectionAction:{type:Function}},setup(e){const s=e,a=t(()=>function(e){if(e.options)return ma(e.options);if(!e.editorOptions)throw new Error(\"ChapterPdfViewer: 请传入 `options`(推荐),或同时传入 `editorOptions` 与 `features`\");const t=De(e.features),{plugins:s}=ca({...e.editorOptions,features:t});return{plugins:s,features:t,editorOptions:{...e.editorOptions,features:t}}}({engine:s.engine,options:s.options,editorOptions:s.editorOptions,features:s.features}));return(t,s)=>(i(),l(\"div\",{class:h(e.className),style:d(e.className?void 0:f(Pe))},[C(f(M),{engine:e.engine,plugins:a.value.plugins},{default:I(({pluginsReady:s})=>[s?(i(),l(\"div\",fr,[g(t.$slots,\"prepend\"),C(mr,{class:h(e.viewportClassName),style:{flex:1,minHeight:0},features:a.value.features,\"on-extra-selection-action\":e.onExtraSelectionAction},null,8,[\"class\",\"features\",\"on-extra-selection-action\"]),g(t.$slots,\"default\")])):P(\"\",!0)]),_:3},8,[\"engine\",\"plugins\"])],6))}}),Pr={class:\"chapter-tree-row\"},br=[\"aria-expanded\"],Ir={key:1,class:\"chapter-tree-toggle-spacer\",\"aria-hidden\":\"\"},Cr={class:\"chapter-tree-label\"},Sr={class:\"chapter-tree-meta\"},yr={key:0},wr=(e,t)=>{const s=e.__vccOpts||e;for(const[a,n]of t)s[a]=n;return s},xr=/* @__PURE__ */wr(/* @__PURE__ */r({__name:\"ChapterTreeItem\",props:{node:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup(e){const a={idle:\"未加载\",loading:\"加载中\",loaded:\"已加载\",closed:\"已卸载\",error:\"失败\",\"password-required\":\"需密码\"},n=e,r=t(()=>n.node.children??[]),o=t(()=>r.value.length>0),d=s(n.depth<1),u=t(()=>n.activeChapterId===n.node.id),p=t(()=>n.chapterStatus[n.node.id]??\"idle\"),g=t(()=>!o.value);return(t,s)=>(i(),l(\"li\",null,[c(\"div\",Pr,[o.value?(i(),l(\"button\",{key:0,type:\"button\",class:\"chapter-tree-toggle\",\"aria-expanded\":d.value,onClick:s[0]||(s[0]=e=>d.value=!d.value)},y(d.value?\"▼\":\"▶\"),9,br)):(i(),l(\"span\",Ir)),c(\"button\",{type:\"button\",class:h([\"chapter-tree-btn\",{\"chapter-tree-btn-active\":u.value}]),onClick:s[1]||(s[1]=s=>t.$emit(\"select\",e.node.id))},[c(\"div\",Cr,y(e.node.title),1),c(\"div\",Sr,[c(\"span\",null,\" 第 \"+y(e.node.startPage)+y(e.node.endPage!==e.node.startPage?`–${e.node.endPage}`:\"\")+\" 页 \",1),g.value?(i(),l(\"span\",yr,y(a[p.value]),1)):P(\"\",!0)])],2)]),o.value&&d.value?(i(),m(Mr,{key:0,nodes:r.value,depth:e.depth+1,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:s[2]||(s[2]=e=>t.$emit(\"select\",e))},null,8,[\"nodes\",\"depth\",\"active-chapter-id\",\"chapter-status\"])):P(\"\",!0)]))}}),[[\"__scopeId\",\"data-v-315bbf7a\"]]),Mr=/* @__PURE__ */wr(/* @__PURE__ */r({__name:\"ChapterTreeList\",props:{nodes:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup:e=>(t,s)=>(i(),l(\"ul\",{class:\"chapter-tree-list\",style:d({marginLeft:e.depth>0?\"12px\":\"0\"})},[(i(!0),l(u,null,p(e.nodes,a=>(i(),m(xr,{key:a.id,node:a,depth:e.depth,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:s[0]||(s[0]=e=>t.$emit(\"select\",e))},null,8,[\"node\",\"depth\",\"active-chapter-id\",\"chapter-status\"]))),128))],4))}),[[\"__scopeId\",\"data-v-eb742e4f\"]]),$r={class:\"chapter-tree\"},Lr={class:\"chapter-tree-nav\",\"aria-label\":\"章节目录\"},Dr=/* @__PURE__ */wr(/* @__PURE__ */r({__name:\"ChapterTreePanel\",props:{tree:{},activeChapterId:{}},emits:[\"active-chapter-change\"],setup(e,{emit:t}){const r=e,o=t,{provides:d}=x(yt.id),{provides:h}=x(et.id),u=s({});function p(){if(!h.value)return;const e={},t=s=>{for(const a of s)e[a.id]=h.value.getChapterStatus(a.id),a.children?.length&&t(a.children)};t(r.tree),u.value=e}a([h,()=>r.tree],p,{immediate:!0});let g=null;function m(e){o(\"active-chapter-change\",e),d.value?.scrollToChapter(e)}return a(h,e=>{g?.(),g=e?e.onChapterStatusChange(p):null},{immediate:!0}),n(()=>g?.()),(t,s)=>(i(),l(\"aside\",$r,[s[0]||(s[0]=c(\"h2\",{class:\"chapter-tree-title\"},\"章节目录\",-1)),c(\"nav\",Lr,[C(Mr,{nodes:e.tree,depth:0,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":u.value,onSelect:m},null,8,[\"nodes\",\"active-chapter-id\",\"chapter-status\"])])]))}}),[[\"__scopeId\",\"data-v-d7a0838d\"]]);export{Oe as CallbackPasswordProvider,vr as ChapterPdfViewer,Dr as ChapterTreePanel,ha as DEFAULT_CHAPTER_VIEWER_CONFIG,da as DEFAULT_CHAPTER_VIEWER_FEATURES,$ as EmbedPDF,mr as PdfChapterViewport,Me as applySelectionMarkup,Ee as buildChapterViewerCatalog,Ks as buildParagraphBookmarkAnchor,Ne as chapterDescriptorFromTreeNode,Xn as copyTextToClipboard,ma as createChapterViewerBundle,ca as createChapterViewerEditor,fa as createChapterViewerEditorOptions,ia as createPdfChapterEditor,ze as defaultOverlapStrategy,Fe as flattenChapterTree,Ae as overlapStrategyForSamePageOwner,Ge as toChapterTreeNodes,L as useCapability,ve as usePdfiumEngine,D 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 as e,createBehaviorEmitter as t,createEmitter as s,createPluginRegistration as a}from\"@embedpdf/core\";import{DocumentManagerPlugin as n,DocumentManagerPluginPackage as r}from\"@embedpdf/plugin-document-manager\";import{InteractionManagerPluginPackage as o}from\"@embedpdf/plugin-interaction-manager\";import{RenderPluginPackage as i}from\"@embedpdf/plugin-render\";import{RotatePluginPackage as d}from\"@embedpdf/plugin-rotate\";import{SelectionPluginPackage as h}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 m}from\"@embedpdf/plugin-redaction\";import{FormPluginPackage as f}from\"@embedpdf/plugin-form\";import{StampPluginPackage as v}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as I}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as P}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as b}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as C,UIPluginPackage as S}from\"@embedpdf/plugin-ui\";import{PdfErrorCode as w,PdfAnnotationSubtype as y}from\"@embedpdf/models\";const M=\"chapter-manager\",x={id:M,name:\"Chapter Manager Plugin\",version:\"0.1.0\",provides:[\"chapter-manager\"],requires:[\"document-manager\"],optional:[],defaultConfig:{manifest:{chapters:[]},prefetchChapters:1,unloadTimeoutMs:6e4,autoActivateOnLoad:!0}};function L(e){const[t,s]=e.localPageRange;return s-t+1}function $(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function D(e,t){return`${e}#s${t}`}function k(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function T(e){const t=e.source;if(!$(t))return null;const s=t.segmentPageThreshold,a=L(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:D(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function O(e,t){const s=T(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function A(e,t){const s=T(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function F(e){var t;const s=e.source;if(!$(s))return[];const a=[],{chapterId:n}=e,r=L(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const N={kind:\"first-wins\"};function G(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let z=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function E(e,t=N){const s=function(e,t=N){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,G(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[d]=t.localPageRange,h=d+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new z(r)}const V=class a extends e{constructor(e,a){super(e,a),this.statusChange$=t(),this.manifestChange$=s(),this.overlapStrategy=N,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??N,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=k(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=k(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=k(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?O(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?T(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...F(a))}return t}(e);t.length>0&&this.logger.warn(a.id,\"ManifestValidation\",`Chapter manifest has issues: ${t.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),n=new Set(e.chapters.map(e=>e.chapterId));for(const a of s)n.has(a)||(this.closeChapter(a),this.chapterStatus.delete(a));for(const a of e.chapters)this.chapterStatus.has(a.chapterId)||this.chapterStatus.set(a.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=E(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?T(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=A(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=O(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=T(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if($(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(e,t){var s;const n=e.chapterId,r=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const a=e.encrypted&&(null==(s=this.passwordProvider)?void 0:s.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,r),d=this.documentManager.provides(),h=\"url\"in i?d.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}):d.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}),l=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{l.task.wait(()=>e(),e=>t(e))}),d.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(a.id,\"LoadChapter\",e,i),0===r&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(e,t,s,n){if(s!==w.Password){const s=this.getSegmentPlanForChapter(t),{segmentIndex:a}=k(e);return void(s&&0!==a&&null!==a||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const r=this.findChapter(t);if(!r)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(d){this.logger.error(a.id,\"PasswordProvider\",`Provider rejected for ${t}`,d)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?T(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};V.id=\"chapter-manager\";let U=V;const R={manifest:x,create:e=>new U(M,e),reducer:e=>e,initialState:{}},_=\"chapter-scroll\",q={id:_,name:\"Chapter Scroll Plugin\",version:\"0.1.0\",provides:[\"chapter-scroll\"],requires:[\"chapter-manager\"],optional:[],defaultConfig:{placeholderPageHeight:1200,placeholderPageWidth:900,bufferSize:2,pageGap:20}};function H(e,t){return`${e}#s${t}`}function B(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function W(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:H(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function j(e){const[t,s]=e.localPageRange;return s-t+1}function K(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function J(e,t){return`${e}#s${t}`}function Q(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function Y(e){const t=e.source;if(!K(t))return null;const s=t.segmentPageThreshold,a=j(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:J(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function X(e,t){const s=Y(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Z(e,t){const s=Y(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function ee(e){var t;const s=e.source;if(!K(s))return[];const a=[],{chapterId:n}=e,r=j(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const te={kind:\"first-wins\"};function se(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}class ae{constructor(e){this._pages=e,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const t of e){this._byGlobalNumber.set(t.globalPageNumber,t);let e=this._byChapter.get(t.chapterId);e||(e=[],this._byChapter.set(t.chapterId,e)),e.push(t)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(e){return this._pages[e]??null}byGlobalNumber(e){return this._byGlobalNumber.get(e)??null}toGlobal(e,t){const s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}}function ne(e,t=te){const s=function(e,t=te){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,se(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[d]=t.localPageRange,h=d+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new ae(r)}const re=class a extends e{constructor(e,a){super(e,a),this.statusChange$=t(),this.manifestChange$=s(),this.overlapStrategy=te,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??te,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Q(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Q(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Q(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?X(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Y(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...ee(a))}return t}(e);t.length>0&&this.logger.warn(a.id,\"ManifestValidation\",`Chapter manifest has issues: ${t.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),n=new Set(e.chapters.map(e=>e.chapterId));for(const a of s)n.has(a)||(this.closeChapter(a),this.chapterStatus.delete(a));for(const a of e.chapters)this.chapterStatus.has(a.chapterId)||this.chapterStatus.set(a.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=ne(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Y(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Z(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=X(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=Y(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(K(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(e,t){var s;const n=e.chapterId,r=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const a=e.encrypted&&(null==(s=this.passwordProvider)?void 0:s.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,r),d=this.documentManager.provides(),h=\"url\"in i?d.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}):d.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}),l=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{l.task.wait(()=>e(),e=>t(e))}),d.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(a.id,\"LoadChapter\",e,i),0===r&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(e,t,s,n){if(s!==w.Password){const s=this.getSegmentPlanForChapter(t),{segmentIndex:a}=Q(e);return void(s&&0!==a&&null!==a||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const r=this.findChapter(t);if(!r)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(d){this.logger.error(a.id,\"PasswordProvider\",`Provider rejected for ${t}`,d)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?Y(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};re.id=\"chapter-manager\";let oe=re;function ie(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const de=class extends e{constructor(e,s){super(e,s),this.layoutChange$=t(void 0,ie),this.visibleChange$=t(),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(oe.id),this.documentManager=this.registry.getPlugin(n.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=W(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=B(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=B(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=W(a),o=this.documentManager.provides(),i=[],d=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const d=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*d,height:e.size.height*d})}return i.length>0};if(r)for(const h of r.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;d(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&d(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=B(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let d=a;d<n;d++){r.push(d);const e=this.offsets[d],a=e+this.getPageSize(d).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=d)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),d=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!d)return void this.scrollToIndex(e,s);const h=o.height/d.size.height,l=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};de.id=\"chapter-scroll\";let he=de;const le={manifest:q,create:e=>new he(_,e),reducer:e=>e,initialState:{}},ce=\"note\",ue={id:ce,name:\"Note Plugin\",version:\"0.1.0\",provides:[\"note\"],requires:[\"selection\",\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{callbacks:{onCreateNote:async()=>null,onActivateNote:()=>{}},markerSize:18}};function pe(e){const[t,s]=e.localPageRange;return s-t+1}function ge(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function me(e,t){return`${e}#s${t}`}function fe(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function ve(e){const t=e.source;if(!ge(t))return null;const s=t.segmentPageThreshold,a=pe(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:me(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Ie(e,t){const s=ve(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Pe(e,t){const s=ve(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function be(e){var t;const s=e.source;if(!ge(s))return[];const a=[],{chapterId:n}=e,r=pe(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Ce={kind:\"first-wins\"};function Se(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let we=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function ye(e,t=Ce){const s=function(e,t=Ce){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Se(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[d]=t.localPageRange,h=d+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new we(r)}const Me=class a extends e{constructor(e,a){super(e,a),this.statusChange$=t(),this.manifestChange$=s(),this.overlapStrategy=Ce,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Ce,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=fe(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=fe(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=fe(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Ie(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?ve(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...be(a))}return t}(e);t.length>0&&this.logger.warn(a.id,\"ManifestValidation\",`Chapter manifest has issues: ${t.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),n=new Set(e.chapters.map(e=>e.chapterId));for(const a of s)n.has(a)||(this.closeChapter(a),this.chapterStatus.delete(a));for(const a of e.chapters)this.chapterStatus.has(a.chapterId)||this.chapterStatus.set(a.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=ye(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?ve(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Pe(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Ie(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=ve(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(ge(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(e,t){var s;const n=e.chapterId,r=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const a=e.encrypted&&(null==(s=this.passwordProvider)?void 0:s.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,r),d=this.documentManager.provides(),h=\"url\"in i?d.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}):d.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}),l=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{l.task.wait(()=>e(),e=>t(e))}),d.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(a.id,\"LoadChapter\",e,i),0===r&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(e,t,s,n){if(s!==w.Password){const s=this.getSegmentPlanForChapter(t),{segmentIndex:a}=fe(e);return void(s&&0!==a&&null!==a||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const r=this.findChapter(t);if(!r)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(d){this.logger.error(a.id,\"PasswordProvider\",`Provider rejected for ${t}`,d)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?ve(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};Me.id=\"chapter-manager\";let xe=Me;function Le(e,t){return`${e}#s${t}`}function $e(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function De(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:Le(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function ke(e){const[t,s]=e.localPageRange;return s-t+1}function Te(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Oe(e,t){return`${e}#s${t}`}function Ae(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function Fe(e){const t=e.source;if(!Te(t))return null;const s=t.segmentPageThreshold,a=ke(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:Oe(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Ne(e,t){const s=Fe(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function Ge(e,t){const s=Fe(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function ze(e){var t;const s=e.source;if(!Te(s))return[];const a=[],{chapterId:n}=e,r=ke(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const Ee={kind:\"first-wins\"};function Ve(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let Ue=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function Re(e,t=Ee){const s=function(e,t=Ee){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Ve(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[d]=t.localPageRange,h=d+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new Ue(r)}const _e=class a extends e{constructor(e,a){super(e,a),this.statusChange$=t(),this.manifestChange$=s(),this.overlapStrategy=Ee,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Ee,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Ae(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Ae(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Ae(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Ne(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Fe(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...ze(a))}return t}(e);t.length>0&&this.logger.warn(a.id,\"ManifestValidation\",`Chapter manifest has issues: ${t.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),n=new Set(e.chapters.map(e=>e.chapterId));for(const a of s)n.has(a)||(this.closeChapter(a),this.chapterStatus.delete(a));for(const a of e.chapters)this.chapterStatus.has(a.chapterId)||this.chapterStatus.set(a.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=Re(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Fe(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Ge(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Ne(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=Fe(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(Te(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(e,t){var s;const n=e.chapterId,r=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const a=e.encrypted&&(null==(s=this.passwordProvider)?void 0:s.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,r),d=this.documentManager.provides(),h=\"url\"in i?d.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}):d.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}),l=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{l.task.wait(()=>e(),e=>t(e))}),d.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(a.id,\"LoadChapter\",e,i),0===r&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(e,t,s,n){if(s!==w.Password){const s=this.getSegmentPlanForChapter(t),{segmentIndex:a}=Ae(e);return void(s&&0!==a&&null!==a||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const r=this.findChapter(t);if(!r)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(d){this.logger.error(a.id,\"PasswordProvider\",`Provider rejected for ${t}`,d)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?Fe(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};_e.id=\"chapter-manager\";let qe=_e;function He(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const Be=class extends e{constructor(e,s){super(e,s),this.layoutChange$=t(void 0,He),this.visibleChange$=t(),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(qe.id),this.documentManager=this.registry.getPlugin(n.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=De(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=$e(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=$e(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=De(a),o=this.documentManager.provides(),i=[],d=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const d=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*d,height:e.size.height*d})}return i.length>0};if(r)for(const h of r.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;d(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&d(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=$e(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let d=a;d<n;d++){r.push(d);const e=this.offsets[d],a=e+this.getPageSize(d).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=d)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),d=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!d)return void this.scrollToIndex(e,s);const h=o.height/d.size.height,l=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};Be.id=\"chapter-scroll\";let We=Be;const je=class a extends e{constructor(e,a){super(e,a),this.notesChange$=t([]),this.noteActivated$=s(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(We.id),this.chapterManager=this.registry.getPlugin(xe.id),this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,e.callbacks.loadNotes)try{const t=await e.callbacks.loadNotes();for(const e of t)this.notes.set(e.noteId,e);this.notesChange$.emit(this.listAll())}catch(t){this.logger.error(a.id,\"LoadNotes\",\"Failed to load notes\",t)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(s=>s.chapterId===e&&s.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,s;const a=this.notes.get(e);a&&(null==(s=(t=this.config.callbacks).onActivateNote)||s.call(t,e,a),this.noteActivated$.emit({noteId:e,anchor:a}))}listAll(){return Array.from(this.notes.values())}listNotesForChapter(e){return this.listAll().filter(t=>t.chapterId===e)}replaceNotesForChapter(e,t){for(const[s,a]of this.notes.entries())a.chapterId===e&&this.notes.delete(s);for(const s of t)s.chapterId===e&&this.notes.set(s.noteId,s);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:Je(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:s,onCreateNote:a}=this.config.callbacks;return s?(s({draft:t,complete:async e=>{const s={...t,noteId:e};this.registerNote(s)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),s=this.config.callbacks.onCreateNote;if(!s)return this.logger.error(a.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let n=null;try{n=await s(t)}catch(o){return this.logger.error(a.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!n)return null;const r={...t,noteId:n.noteId};return this.registerNote(r),r}async deleteNote(e){var t,s;if(this.notes.has(e)){try{await(null==(s=(t=this.config.callbacks).onDeleteNote)?void 0:s.call(t,e))}catch(n){return void this.logger.error(a.id,\"OnDeleteNote\",\"Callback failed\",n)}this.notes.delete(e),this.notesChange$.emit(this.listAll())}}async updateNoteContent(e,t){var s,n;const r=this.notes.get(e);if(!r)return;const o={...r,content:t};try{await(null==(n=(s=this.config.callbacks).onUpdateNote)?void 0:n.call(s,o))}catch(i){return void this.logger.error(a.id,\"OnUpdateNote\",\"Callback failed\",i)}this.notes.set(e,o),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const s=this.notes.get(e);if(!s)return;const a=this.chapterScroll.provides(),n=this.chapterManager.provides();await n.ensureAllSegmentsLoaded(s.chapterId);const r=n.resolvePageDocument(s.chapterId,s.localPageIndex);(null==(t=this.documentManager.provides().getDocument(r.documentId))?void 0:t.pages[r.pageIndex])?(a.scrollToGlobalPageIndex(s.globalPageIndex),await this.waitForPageInLayout(s.globalPageIndex),a.scrollToGlobalPdfPoint(s.globalPageIndex,s.endAnchor.y,{marginTop:80})):a.scrollToGlobalPageIndex(s.globalPageIndex)}waitForPageInLayout(e){const t=this.chapterScroll.provides(),s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const a=setTimeout(()=>{n(),s(null)},2500),n=t.onLayoutChange(t=>{const r=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);r&&(clearTimeout(a),n(),s(r))})})}};je.id=\"note\";let Ke=je;function Je(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}const Qe={manifest:ue,create:e=>new Ke(ce,e),reducer:e=>e,initialState:{}},Ye=\"paragraph-bookmark\",Xe={id:Ye,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};function Ze(e){const[t,s]=e.localPageRange;return s-t+1}function et(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function tt(e,t){return`${e}#s${t}`}function st(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function at(e){const t=e.source;if(!et(t))return null;const s=t.segmentPageThreshold,a=Ze(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:tt(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function nt(e,t){const s=at(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function rt(e,t){const s=at(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function ot(e){var t;const s=e.source;if(!et(s))return[];const a=[],{chapterId:n}=e,r=Ze(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const it={kind:\"first-wins\"};function dt(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let ht=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function lt(e,t=it){const s=function(e,t=it){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,dt(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[d]=t.localPageRange,h=d+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new ht(r)}const ct=class a extends e{constructor(e,a){super(e,a),this.statusChange$=t(),this.manifestChange$=s(),this.overlapStrategy=it,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??it,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=st(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=st(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=st(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?nt(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?at(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...ot(a))}return t}(e);t.length>0&&this.logger.warn(a.id,\"ManifestValidation\",`Chapter manifest has issues: ${t.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),n=new Set(e.chapters.map(e=>e.chapterId));for(const a of s)n.has(a)||(this.closeChapter(a),this.chapterStatus.delete(a));for(const a of e.chapters)this.chapterStatus.has(a.chapterId)||this.chapterStatus.set(a.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=lt(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?at(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=rt(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=nt(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=at(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(et(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(e,t){var s;const n=e.chapterId,r=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const a=e.encrypted&&(null==(s=this.passwordProvider)?void 0:s.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,r),d=this.documentManager.provides(),h=\"url\"in i?d.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}):d.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}),l=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{l.task.wait(()=>e(),e=>t(e))}),d.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(a.id,\"LoadChapter\",e,i),0===r&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(e,t,s,n){if(s!==w.Password){const s=this.getSegmentPlanForChapter(t),{segmentIndex:a}=st(e);return void(s&&0!==a&&null!==a||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const r=this.findChapter(t);if(!r)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(d){this.logger.error(a.id,\"PasswordProvider\",`Provider rejected for ${t}`,d)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?at(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};ct.id=\"chapter-manager\";let ut=ct;function pt(e,t){return`${e}#s${t}`}function gt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function mt(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:pt(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function ft(e){const[t,s]=e.localPageRange;return s-t+1}function vt(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function It(e,t){return`${e}#s${t}`}function Pt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),a=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(a)||a<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:a}}function bt(e){const t=e.source;if(!vt(t))return null;const s=t.segmentPageThreshold,a=ft(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:It(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function Ct(e,t){const s=bt(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!a){const a=s.segments[s.segments.length-1];return a?{documentId:a.documentId,pageIndex:t-a.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:a.documentId,pageIndex:t-a.localPageStart}}function St(e,t){const s=bt(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}function wt(e){var t;const s=e.source;if(!vt(s))return[];const a=[],{chapterId:n}=e,r=ft(e),o=s.segmentPageThreshold;if(o<=0&&a.push(`${n}: segmentPageThreshold must be > 0`),0===s.urls.length&&a.push(`${n}: source.urls must not be empty`),o>0){const e=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,o);s.urls.length!==e&&a.push(`${n}: source.urls.length (${s.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let i=0;i<s.urls.length;i++)(null==(t=s.urls[i])?void 0:t.trim())||a.push(`${n}: source.urls[${i}] is empty`);return a}const yt={kind:\"first-wins\"};function Mt(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}class xt{constructor(e){this._pages=e,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const t of e){this._byGlobalNumber.set(t.globalPageNumber,t);let e=this._byChapter.get(t.chapterId);e||(e=[],this._byChapter.set(t.chapterId,e)),e.push(t)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(e){return this._pages[e]??null}byGlobalNumber(e){return this._byGlobalNumber.get(e)??null}toGlobal(e,t){const s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}}function Lt(e,t=yt){const s=function(e,t=yt){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let a=e;a<=t;a++){const e=s.get(a);e?e.push(n):s.set(a,[n])}}const a=/* @__PURE__ */new Map;for(const[n,r]of s)a.set(n,Mt(n,r,t));return a}(e,t),a=/* @__PURE__ */new Map;for(const i of e.chapters)a.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),r=[];let o=0;for(const i of n){const e=s.get(i),t=a.get(e);if(!t)continue;const[n]=t.globalPageRange,[d]=t.localPageRange,h=d+(i-n);r.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new xt(r)}const $t=class a extends e{constructor(e,a){super(e,a),this.statusChange$=t(),this.manifestChange$=s(),this.overlapStrategy=yt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??yt,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Pt(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Pt(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Pt(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Ct(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?bt(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=[],s=/* @__PURE__ */new Set;for(const a of e.chapters){s.has(a.chapterId)&&t.push(`Duplicate chapterId: ${a.chapterId}`),s.add(a.chapterId);const[e,n]=a.globalPageRange,[r,o]=a.localPageRange;if(e>n&&t.push(`${a.chapterId}: invalid globalPageRange [${e},${n}]`),r>o&&t.push(`${a.chapterId}: invalid localPageRange [${r},${o}]`),n-e!==o-r&&t.push(`${a.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-r+1})`),a.ownedGlobalPages)for(const s of a.ownedGlobalPages)(s<e||s>n)&&t.push(`${a.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...wt(a))}return t}(e);t.length>0&&this.logger.warn(a.id,\"ManifestValidation\",`Chapter manifest has issues: ${t.join(\"; \")}`);const s=new Set(this.chapterStatus.keys()),n=new Set(e.chapters.map(e=>e.chapterId));for(const a of s)n.has(a)||(this.closeChapter(a),this.chapterStatus.delete(a));for(const a of e.chapters)this.chapterStatus.has(a.chapterId)||this.chapterStatus.set(a.chapterId,\"idle\");this.manifest=e,this.virtualPageMap=Lt(e,this.overlapStrategy),this.manifestChange$.emit({manifest:e,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(),s=Math.min(e,this.manifest.chapters.length);for(let a=0;a<s;a++){const e=this.manifest.chapters[a].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?bt(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),a=this.documentManager.provides();if(!s)return 0===t&&a.isDocumentOpen(e);const n=s.segments[t];return!!n&&a.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const a=t.segments[0];if(a&&s.isDocumentOpen(a.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,a=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;a.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=St(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===a.size)return;const r=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of a){const e=r.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<r.length&&o.add(t)}for(const i of o){const e=r[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),a=Number.parseInt(s,10);e&&Number.isFinite(a)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,a))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Ct(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,a]of this.chapterStatus){if(\"loaded\"!==a)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const a=bt(s);if(!a)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=a.segments.length)return Promise.resolve(\"error\");const n=a.segments[t],r=n.documentId;if(this.documentManager.provides().isDocumentOpen(r))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(r);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(r)});return this.pendingSegmentLoadPromises.set(r,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const a=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===a)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===a)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolvePdfPayload(e,t){const s=e.source;if(s){if(vt(s)){const a=s.urls[t];if(!a)throw new Error(`Chapter \"${e.chapterId}\" missing source.urls[${t}]`);return{url:a}}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(\"url\"in s)return{url:s.url};if(\"buffer\"in s)return{buffer:s.buffer};if(\"load\"in s)return s.load()}const a=this.config.chapterPdfLoader;if(a)return a.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`)}async startLoadSegment(e,t){var s;const n=e.chapterId,r=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===r&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const a=e.encrypted&&(null==(s=this.passwordProvider)?void 0:s.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,r),d=this.documentManager.provides(),h=\"url\"in i?d.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}):d.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:a??void 0,autoActivate:!1}),l=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{l.task.wait(()=>e(),e=>t(e))}),d.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(a.id,\"LoadChapter\",e,i),0===r&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let a=null;a=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==a||a(),a=null)})})}async handleDocumentError(e,t,s,n){if(s!==w.Password){const s=this.getSegmentPlanForChapter(t),{segmentIndex:a}=Pt(e);return void(s&&0!==a&&null!==a||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const r=this.findChapter(t);if(!r)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(r,o-1)}catch(d){this.logger.error(a.id,\"PasswordProvider\",`Provider rejected for ${t}`,d)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),a=t?bt(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(a)for(const r of a.segments)n(r.documentId);else n(e);this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};$t.id=\"chapter-manager\";let Dt=$t;function kt(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 s=0;s<e.items.length;s++){const a=e.items[s],n=t.items[s];if(a.globalPageIndex!==n.globalPageIndex||a.isPlaceholder!==n.isPlaceholder||a.chapterId!==n.chapterId||a.localPageIndex!==n.localPageIndex||a.pdfDocumentId!==n.pdfDocumentId||a.pdfPageIndex!==n.pdfPageIndex||a.offsetTop!==n.offsetTop||a.width!==n.width||a.height!==n.height)return!1}return!0}const Tt=class extends e{constructor(e,s){super(e,s),this.layoutChange$=t(void 0,kt),this.visibleChange$=t(),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(Dt.id),this.documentManager=this.registry.getPlugin(n.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),a=s.getChapterStatus(e);if(\"error\"===a||\"password-required\"===a)return!0;const n=s.getChapter(e);if(!n)return!0;const r=function(e,t){const s=mt(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==a?void 0:a.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,r)}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;const{chapterId:s}=gt(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const a=this.documentManager.provides();a.getActiveDocumentId()||a.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=gt(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let a=0;a<e;a++){const{width:e,height:n}=this.getPageSize(a);this.offsets[a]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const a of t){const t=this.virtualPageMap.toGlobal(e,a.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===a.width&&n.height===a.height||(this.pageSizes.set(t.globalPageIndex,{width:a.width,height:a.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),a=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!a||0===n.length)return;const r=mt(a),o=this.documentManager.provides(),i=[],d=(e,t,s,a)=>{var n;const r=o.getDocument(e);if(!(null==(n=null==r?void 0:r.pages)?void 0:n.length))return!1;const d=this.getDocumentScale(e);for(let o=0;o<a;o++){const e=r.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*d,height:e.size.height*d})}return i.length>0};if(r)for(const h of r.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;d(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&d(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=gt(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),a=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),a.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),a.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,s=t+this.viewportEl.clientHeight,a=this.findFirstVisibleIndex(t);let n=a;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const r=[];let o=a,i=-1;for(let d=a;d<n;d++){r.push(d);const e=this.offsets[d],a=e+this.getPageSize(d).height,n=Math.max(0,Math.min(a,s)-Math.max(e,t));n>i&&(i=n,o=d)}this.currentVisible=r,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:r,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(r),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,a=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(a=n,t=n+1):s=n-1}return a}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,a=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let r=t;r<=a;r++){const e=this.virtualPageMap.atIndex(r);if(!e)continue;const t=this.getPageSize(r),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),a=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:r,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[r]??0,isPlaceholder:a})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var a;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,r=this.virtualPageMap.atIndex(e);if(!r)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(r.chapterId,r.localPageIndex),d=i?null==(a=this.documentManager.provides().getDocument(i.documentId))?void 0:a.pages[i.pageIndex]:void 0;if(!o||!d)return void this.scrollToIndex(e,s);const h=o.height/d.size.height,l=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,l),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};Tt.id=\"chapter-scroll\";let Ot=Tt;function At(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function Ft(e,t){const s=e.origin.y,a=e.origin.y+e.size.height,n=t.origin.y,r=t.origin.y+t.size.height,o=Math.max(a,r)-Math.min(s,n);if(o<=0)return 0;return Math.max(0,Math.min(a,r)-Math.max(s,n))/o}function Nt(e,t){var s,a;if(e.chapterId!==t.chapterId||e.localPageIndex!==t.localPageIndex)return!1;const n=(null==(s=e.rectsPdfCoord)?void 0:s.length)?e.rectsPdfCoord:[e.rectPdfCoord],r=(null==(a=t.rectsPdfCoord)?void 0:a.length)?t.rectsPdfCoord:[t.rectPdfCoord],o=e.markerAnchor??At(n),i=t.markerAnchor??At(r);if(Math.hypot(o.x-i.x,o.y-i.y)<=6)return!0;for(const d of n)for(const e of r){if(Ft(d,e)<.5)continue;const t=Math.max(d.origin.x,e.origin.x);if(Math.min(d.origin.x+d.size.width,e.origin.x+e.size.width)-t>.25*Math.min(d.size.width,e.size.width))return!0}return!1}async function Gt(e,t,s){e.scrollToGlobalPageIndex(t),await function(e,t,s=2500){const a=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return a?Promise.resolve(a):new Promise(a=>{const n=setTimeout(()=>{r(),a(null)},s),r=e.onLayoutChange(e=>{const s=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);s&&(clearTimeout(n),r(),a(s))})})}(e,t),e.scrollToGlobalPdfPoint(t,s,{marginTop:80})}const zt=class s extends e{constructor(e,s){super(e,s),this.change$=t([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(Ot.id),this.chapterManager=this.registry.getPlugin(ut.id),this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){var t;if(this.config=e,null==(t=e.callbacks)?void 0:t.load)try{const t=await e.callbacks.load();for(const e of t)this.entries.set(e.id,e);this.change$.emit(this.list())}catch(a){this.logger.error(s.id,\"Load\",\"Failed to load paragraph bookmarks\",a)}}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 a of this.entries.values())if(Nt(a.anchor,e.anchor))return a;const t=e.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,s={id:t,label:e.label,anchor:e.anchor,metadata:e.metadata,createdAt:Date.now()};return this.entries.set(t,s),this.notifyAndPersist(),s}removeBookmark(e){var t,s,a;this.entries.delete(e)&&(this.notifyAndPersist(),null==(a=null==(s=null==(t=this.config)?void 0:t.callbacks)?void 0:s.onRemoveSuccess)||a.call(s,e))}async requestRemoveBookmark(e){var t,a;const n=this.entries.get(e);if(!n)return!1;const r=null==(a=null==(t=this.config)?void 0:t.callbacks)?void 0:a.onRequestRemove;if(r)try{if(!(await r(n)))return!1}catch(o){return this.logger.error(s.id,\"RequestRemove\",\"callback failed\",o),!1}return this.removeBookmark(e),!0}updateBookmark(e,t){const s=this.entries.get(e);s&&(this.entries.set(e,{...s,...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[s,a]of this.entries.entries())a.anchor.chapterId===e&&this.entries.delete(s);for(const s of t)s.anchor.chapterId===e&&this.entries.set(s.id,s);this.notifyAndPersist()}notifyAndPersist(){var e,t;const a=this.list();this.change$.emit(a),(null==(t=null==(e=this.config)?void 0:e.callbacks)?void 0:t.persist)&&Promise.resolve(this.config.callbacks.persist(a)).catch(e=>this.logger.error(s.id,\"Persist\",\"persist callback rejected\",e))}async scrollToBookmark(e){const t=this.entries.get(e);if(!t)return;const s=this.chapterScroll.provides(),a=this.chapterManager.provides();await a.ensureAllSegmentsLoaded(t.anchor.chapterId);let n=t.anchor.globalPageIndex;if(void 0===n){const e=this.chapterManager.provides().getVirtualPageMap().toGlobal(t.anchor.chapterId,t.anchor.localPageIndex);if(!e)return;n=e.globalPageIndex}const r=function(e){if(e.markerAnchor)return e.markerAnchor.y;const t=e.rectPdfCoord;return t.origin.y+t.size.height}(t.anchor);await Gt(s,n,r)}};zt.id=\"paragraph-bookmark\";let Et=zt;const Vt={manifest:Xe,create:e=>new Et(Ye,e),reducer:e=>e,initialState:{}},Ut={\"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 Rt{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(Ut);for(const t of this.specs){const s=e[t.toolbarSlot];if(!s)continue;const a={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??[]};s.items=_t(s.items,a,t.position)}return e}}function _t(e,t,s){return(null==s?void 0:s.after)||(null==s?void 0:s.before)?function(e,t,s){const a=e=>{const n=[];for(const r of e)\"group\"!==r.type?s.before&&r.id===s.before?n.push(t,r):(n.push(r),s.after&&r.id===s.after&&n.push(t)):n.push({...r,items:a(r.items)});return n};return a(e)}(e,t,s):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 Ht(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:e,documentId:t})=>{const s=e.getPlugin(\"ui\")?.provides(),a=e.getPlugin(\"interaction-manager\")?.provides();s&&a&&(a.forDocument(t)?.activateDefaultMode(),s.forDocument(t).closeToolbarSlot(\"top\",\"secondary\"),e.getPlugin(l)?.provides().forDocument(t).setLocked((e=>e.getPluginConfig(l).locked??{type:c.None})(e)))},active:({state:e,documentId:t})=>!C(e.plugins,t,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:e,documentId:t})=>{const s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",t),e.getPlugin(l)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",t),e.getPlugin(l)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",t),e.getPlugin(l)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",t),e.getPlugin(l)?.provides().forDocument(t).setLocked({type:c.None}))},active:({state:e,documentId:t})=>C(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",t),e.getPlugin(l)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(e.plugins,t,\"top\",\"secondary\",\"redaction-toolbar\")}}}function Bt(e){const t=e.toolbar??{},s=t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],n=s.length>0,{schema:l,operationRegistry:c}=function(e={}){var t,s,a,n,r,o;const i=new Set(e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),d=new Rt;(null==(t=e.customOperations)?void 0:t.length)&&d.registerAll(e.customOperations);const h=d.buildToolbars(),l={};for(const u of i){if(\"view\"===u)continue;const e=qt[u];h[e]&&(l[e]=h[e])}const c=function(e){if(0===e.size)return null;const t=(e,t,s)=>({type:\"command-button\",id:`${e}-mode`,commandId:s,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}]}}(i);return c&&(l[\"chapter-editor-main-toolbar\"]=c),(null==(s=e.extend)?void 0:s.toolbars)&&Object.assign(l,e.extend.toolbars),{schema:{id:\"chapter-pdf-editor-ui\",version:\"1.0.0\",toolbars:l,menus:(null==(a=e.extend)?void 0:a.menus)??{},sidebars:(null==(n=e.extend)?void 0:n.sidebars)??{},modals:(null==(r=e.extend)?void 0:r.modals)??{},selectionMenus:(null==(o=e.extend)?void 0:o.selectionMenus)??{}},operationRegistry:d}}({...t,enabledModes:s}),p={...n?Ht():{},...n?Wt(c.list()):{},...e.commands??{}},C=[a(r,{initialDocuments:[]}),a(R,{manifest:e.manifest,overlapStrategy:e.overlapStrategy,passwordProvider:e.passwordProvider,chapterPdfLoader:e.chapterPdfLoader,prefetchChapters:e.prefetchChapters,unloadTimeoutMs:e.unloadTimeoutMs}),a(le,{placeholderPageHeight:e.placeholderPageHeight,placeholderPageWidth:e.placeholderPageWidth}),a(o),a(i),a(d),a(h,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),a(g),a(u),a(m),a(f),a(v,!1===e.loadDefaultStampLibrary?{manifests:[]}:void 0),a(I),...Object.keys(p).length>0?[a(P,{commands:p})]:[],...n?[a(b),a(S,{schema:l})]:[]];return e.notes&&C.push(a(Qe,{callbacks:e.notes.callbacks,ui:e.features?.notes?.marker})),e.bookmarks&&C.push(a(Vt,{callbacks:e.bookmarks.callbacks,ui:e.features?.bookmarks?.marker,hover:e.features?.bookmarks?.hover})),{plugins:C,uiSchema:l,operationRegistry:c}}function Wt(e){const t={};for(const s of e)s.handler&&(t[s.commandId]={id:s.commandId,labelKey:s.i18nKey,label:s.label,icon:s.icon,categories:s.categories,action:({documentId:e})=>{s.handler?.({documentId:e,chapterId:e})}});return t}function jt(e,t){const s=e;return!1===e?{...t,enabled:!1}:!0===e||void 0===e?{...t,enabled:t.enabled??!0}:{...t,...s,enabled:!1!==(null==s?void 0:s.enabled)}}function Kt(e){var t;const s=jt(null==e?void 0:e.markup,{enabled:!0}),a=jt(null==e?void 0:e.bookmarks,{enabled:!0}),n=jt(null==e?void 0:e.notes,{enabled:!0}),r=jt(null==e?void 0:e.zoom,{enabled:!0,min:.5,max:3,initial:1}),o=jt(void 0===(null==e?void 0:e.selectionToolbar)?!1!==s.enabled||!1!==n.enabled:e.selectionToolbar,{enabled:!0});return{markup:s,bookmarks:a,notes:n,zoom:r,scrollViewport:{background:(null==(t=null==e?void 0:e.scrollViewport)?void 0:t.background)??\"#f1f5f9\"},selectionToolbar:o}}y.HIGHLIGHT,y.UNDERLINE,y.SQUIGGLY,y.STRIKEOUT,y.HIGHLIGHT,y.UNDERLINE,y.SQUIGGLY,y.STRIKEOUT;const Jt=Kt(),Qt={};function Yt(e){return Bt({...e,toolbar:e.toolbar??{enabledModes:[]},features:Kt(e.features)})}function Xt(e,t){return`${e}#s${t}`}function Zt(e){const t=e.source;if(!function(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}(t))return null;const s=t.segmentPageThreshold,a=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),n=[];for(let r=0;r<t.urls.length;r++){const o=r*s,i=Math.min(o+s-1,a-1);if(o>=a)break;n.push({index:r,url:t.urls[r],localPageStart:o,localPageEnd:i,documentId:Xt(e.chapterId,r)})}return{chapterId:e.chapterId,threshold:s,pageCount:a,segments:n}}function es(e,t){const s=Zt(e);if(!s)return 0;const a=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return a?.index??Math.floor(t/s.threshold)}const ts={overlapStrategy:{kind:\"first-wins\"},passwordProvider:new class{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]}};function ss(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 as(e){return{...ts,manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,overlapStrategy:e.overlapStrategy??ts.overlapStrategy,notes:{callbacks:e.notes},bookmarks:{callbacks:e.bookmarks},features:Kt(e.features)}}function ns(e){const t=as(ss(e)),{plugins:s}=Yt(t);return{plugins:s,features:t.features,editorOptions:t}}function rs(e){const{features:t,...s}=as(ss(e));return s}function os(e){return e.pdfDocumentId??e.chapterId}function is(e){return e.pdfPageIndex??e.localPageIndex}function ds(e,t){e.wait(t,()=>{})}async function hs(e){const t=e.trim();if(!t)return!1;try{if(\"undefined\"!=typeof navigator&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(t),!0}catch{}if(\"undefined\"==typeof document)return!1;try{const e=document.createElement(\"textarea\");e.value=t,e.setAttribute(\"readonly\",\"\"),e.style.position=\"fixed\",e.style.left=\"-9999px\",document.body.appendChild(e),e.select();const s=document.execCommand(\"copy\");return document.body.removeChild(e),s}catch{return!1}}function ls(e,t,s){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageIndex:e.globalPageIndex,globalPageNumber:e.globalPageNumber,rectsPdfCoord:t,selectedText:s}}const cs=1;function us(e){const t=new Uint8Array(e);let s=\"\";for(let a=0;a<t.length;a++)s+=String.fromCharCode(t[a]);return btoa(s)}function ps(e){return e.map(e=>{if(!(e.ctx&&\"data\"in e.ctx&&e.ctx.data instanceof ArrayBuffer))return{annotation:e.annotation};const t=e.ctx;return{annotation:e.annotation,ctx:{dataBase64:us(t.data),mimeType:t.mimeType}}})}function gs(e){return e.map(e=>{if(!e.ctx?.dataBase64)return{annotation:e.annotation};const t=function(e){const t=atob(e),s=new Uint8Array(t.length);for(let a=0;a<t.length;a++)s[a]=t.charCodeAt(a);return s.buffer}(e.ctx.dataBase64);return{annotation:e.annotation,ctx:{data:t,...e.ctx.mimeType?{mimeType:e.ctx.mimeType}:{}}}})}function ms(e){return{bookmarks:!1!==e?.bookmarks,notes:!1!==e?.notes,markup:!1!==e?.markup}}function fs(e){return new Promise((t,s)=>{e.wait(e=>t(e),e=>s(e))})}function vs(e){const t=e.getPlugin(p.id)?.provides(),s=e.getPlugin(Ke.id)?.provides(),a=e.getPlugin(Et.id)?.provides(),n=e.getPlugin(U.id)?.provides();return{annotation:t,note:s,bookmark:a,chapterManager:n}}async function Is(e,t,s){if(!s||!e)return;const a=e.getSegmentPlan(t)?await e.ensureAllSegmentsLoaded(t):await e.ensureChapterLoaded(t);if(\"loaded\"!==a)throw new Error(`章节 ${t} 未加载成功(${a}),无法导入/导出划线`)}async function Ps(e,t,s){const a=ms(s),{annotation:n,note:r,bookmark:o,chapterManager:i}=vs(e),d={chapterId:t};if(a.bookmarks){if(!o)throw new Error(\"paragraph-bookmark 插件未注册\");d.bookmarks=o.listBookmarksForChapter(t)}if(a.notes){if(!r)throw new Error(\"note 插件未注册\");d.notes=r.listNotesForChapter(t)}if(a.markup){if(!n)throw new Error(\"annotation 插件未注册\");await Is(i,t,!1!==s?.ensureChapterLoaded);const e=await async function(e,t,s){const a=t.getSegmentPlan(s);if(!a)return fs(e.forDocument(s).exportAnnotations());const n=[];for(const r of a.segments){if(!t.isSegmentLoaded(s,r.index))continue;const a=await fs(e.forDocument(r.documentId).exportAnnotations());for(const e of a){const t=e.annotation.pageIndex;n.push({...e,annotation:{...e.annotation,pageIndex:t+r.localPageStart}})}}return n}(n,i,t);d.markup=ps(e)}return d}async function bs(e,t,s){const a={};for(const n of t.chapters){const t=await Ps(e,n.chapterId,s),{chapterId:r,...o}=t;a[n.chapterId]=o}return{version:1,exportedAt:/* @__PURE__ */(new Date).toISOString(),chapters:a}}async function Cs(e,t,s){const a=ms(s),n=s?.mode??\"replace\",{annotation:r,note:o,bookmark:i,chapterManager:d}=vs(e),h=t.chapterId;if(a.bookmarks&&t.bookmarks){if(!i)throw new Error(\"paragraph-bookmark 插件未注册\");if(\"replace\"===n)i.replaceBookmarksForChapter(h,t.bookmarks);else for(const e of t.bookmarks)i.addBookmark(e)}if(a.notes&&t.notes){if(!o)throw new Error(\"note 插件未注册\");if(\"replace\"===n)o.replaceNotesForChapter(h,t.notes);else for(const e of t.notes)o.registerNote(e)}if(a.markup&&t.markup){if(!r)throw new Error(\"annotation 插件未注册\");await Is(d,h,!1!==s?.ensureChapterLoaded);!function(e,t,s,a,n){const r=t.getSegmentPlan(s);if(!r){const t=e.forDocument(s);return\"replace\"===n&&t.deleteAllAnnotations(),void t.importAnnotations(a)}const o=t.getChapter(s);if(!o)return;const i=/* @__PURE__ */new Map;for(const d of a){const e=d.annotation.pageIndex,t=es(o,e),s=r.segments[t];if(!s)continue;const a=i.get(t)??[];a.push({...d,annotation:{...d.annotation,pageIndex:e-s.localPageStart}}),i.set(t,a)}for(const d of r.segments){const t=e.forDocument(d.documentId),s=i.get(d.index)??[];\"replace\"===n&&t.deleteAllAnnotations(),s.length>0&&t.importAnnotations(s)}}(r,d,h,gs(t.markup),n)}s?.persistNotes&&o&&await s.persistNotes(o.listAllNotes()),s?.persistBookmarks&&i&&await s.persistBookmarks(i.listBookmarks())}async function Ss(e,t,s){if(1!==t.version)throw new Error(`不支持的归档版本 ${t.version},当前为 1`);for(const[a,n]of Object.entries(t.chapters))await Cs(e,{chapterId:a,...n},s)}function ws(e){return JSON.stringify(e,null,2)}function ys(e){const t=JSON.parse(e);if(!t||\"object\"!=typeof t||!t.chapters)throw new Error(\"无效的章节标注 JSON\");return t}function Ms(e){return JSON.stringify(e,null,2)}function xs(e){const t=JSON.parse(e);if(!t?.chapterId)throw new Error(\"无效的章节标注 JSON:缺少 chapterId\");return t}function Ls(e,t){const s=new Blob([t],{type:\"application/json;charset=utf-8\"}),a=URL.createObjectURL(s),n=document.createElement(\"a\");n.href=a,n.download=e,n.click(),URL.revokeObjectURL(a)}function $s(e,t=\"chapter-annotations.json\"){Ls(t,ws(e))}function Ds(e,t){Ls(t??`chapter-annotations-${e.chapterId}.json`,Ms(e))}export{cs as CHAPTER_ANNOTATIONS_ARCHIVE_VERSION,Qt as DEFAULT_CHAPTER_VIEWER_CONFIG,Jt as DEFAULT_CHAPTER_VIEWER_FEATURES,ls as buildChapterSelectionSnapshot,ws as chapterAnnotationsArchiveToJson,Ms as chapterAnnotationsSnapshotToJson,os as chapterDocumentIdForPage,is as chapterPdfPageIndexForPage,hs as copyTextToClipboard,Ht as createChapterEditorModeCommands,ns as createChapterViewerBundle,Yt as createChapterViewerEditor,rs as createChapterViewerEditorOptions,Bt as createPdfChapterEditor,gs as deserializeMarkupItems,$s as downloadChapterAnnotationsArchive,Ds as downloadChapterAnnotationsSnapshot,Ls as downloadJsonFile,bs as exportAllChapterAnnotations,Ps as exportChapterAnnotations,Cs as importChapterAnnotations,Ss as importChapterAnnotationsArchive,ys as parseChapterAnnotationsArchiveJson,xs as parseChapterAnnotationsSnapshotJson,ps as serializeMarkupItems,as as toCreatePdfChapterEditorOptions,ds as waitSelectedText};\n//# sourceMappingURL=index.js.map\n","import { BasePlugin, createBehaviorEmitter, createEmitter } from \"@embedpdf/core\";\nimport { PdfErrorCode } from \"@embedpdf/models\";\nimport { DocumentManagerPlugin } from \"@embedpdf/plugin-document-manager\";\nconst CHAPTER_MANAGER_PLUGIN_ID = \"chapter-manager\";\nconst manifest = {\n id: CHAPTER_MANAGER_PLUGIN_ID,\n name: \"Chapter Manager Plugin\",\n version: \"0.1.0\",\n provides: [\"chapter-manager\"],\n // 强依赖 document-manager 来真正打开每个章节 PDF\n requires: [\"document-manager\"],\n optional: [],\n defaultConfig: {\n manifest: { chapters: [] },\n prefetchChapters: 1,\n unloadTimeoutMs: 6e4,\n autoActivateOnLoad: true\n }\n};\nconst e = \"#s\";\nfunction t(e2) {\n const [t2, n2] = e2.localPageRange;\n return n2 - t2 + 1;\n}\nfunction n(e2) {\n return !!e2 && \"urls\" in e2 && Array.isArray(e2.urls);\n}\nfunction r(t2, n2) {\n return `${t2}${e}${n2}`;\n}\nfunction s(t2) {\n const n2 = t2.lastIndexOf(e);\n if (-1 === n2) return { chapterId: t2, segmentIndex: null };\n const r2 = t2.slice(0, n2), s2 = Number.parseInt(t2.slice(n2 + 2), 10);\n return !Number.isFinite(s2) || s2 < 0 ? { chapterId: t2, segmentIndex: null } : { chapterId: r2, segmentIndex: s2 };\n}\nfunction a(e2, t2) {\n return e2 <= 0 || t2 <= 0 ? 0 : Math.ceil(e2 / t2);\n}\nfunction o(e2) {\n const s2 = e2.source;\n if (!n(s2)) return null;\n const a2 = s2.segmentPageThreshold, o2 = t(e2), c2 = [];\n for (let t2 = 0; t2 < s2.urls.length; t2++) {\n const n2 = t2 * a2, l2 = Math.min(n2 + a2 - 1, o2 - 1);\n if (n2 >= o2) break;\n c2.push({ index: t2, url: s2.urls[t2], localPageStart: n2, localPageEnd: l2, documentId: r(e2.chapterId, t2) });\n }\n return { chapterId: e2.chapterId, threshold: a2, pageCount: o2, segments: c2 };\n}\nfunction c(e2, t2) {\n const n2 = o(e2);\n if (!n2) return { documentId: e2.chapterId, pageIndex: t2 };\n const r2 = n2.segments.find((e3) => t2 >= e3.localPageStart && t2 <= e3.localPageEnd);\n if (!r2) {\n const r3 = n2.segments[n2.segments.length - 1];\n return r3 ? { documentId: r3.documentId, pageIndex: t2 - r3.localPageStart } : { documentId: e2.chapterId, pageIndex: t2 };\n }\n return { documentId: r2.documentId, pageIndex: t2 - r2.localPageStart };\n}\nfunction l(e2, t2) {\n const n2 = o(e2);\n if (!n2) return 0;\n const r2 = n2.segments.find((e3) => t2 >= e3.localPageStart && t2 <= e3.localPageEnd);\n return (r2 == null ? void 0 : r2.index) ?? Math.floor(t2 / n2.threshold);\n}\nfunction u(e2) {\n var _a;\n const r2 = e2.source;\n if (!n(r2)) return [];\n const s2 = [], { chapterId: o2 } = e2, c2 = t(e2), l2 = r2.segmentPageThreshold;\n if (l2 <= 0 && s2.push(`${o2}: segmentPageThreshold must be > 0`), 0 === r2.urls.length && s2.push(`${o2}: source.urls must not be empty`), l2 > 0) {\n const e3 = a(c2, l2);\n r2.urls.length !== e3 && s2.push(`${o2}: source.urls.length (${r2.urls.length}) must equal ceil(pageCount/threshold) (${e3})`);\n }\n for (let t2 = 0; t2 < r2.urls.length; t2++) ((_a = r2.urls[t2]) == null ? void 0 : _a.trim()) || s2.push(`${o2}: source.urls[${t2}] is empty`);\n return s2;\n}\nfunction h(e2) {\n const t2 = [], n2 = /* @__PURE__ */ new Set();\n for (const r2 of e2.chapters) {\n n2.has(r2.chapterId) && t2.push(`Duplicate chapterId: ${r2.chapterId}`), n2.add(r2.chapterId);\n const [e3, s2] = r2.globalPageRange, [a2, o2] = r2.localPageRange;\n if (e3 > s2 && t2.push(`${r2.chapterId}: invalid globalPageRange [${e3},${s2}]`), a2 > o2 && t2.push(`${r2.chapterId}: invalid localPageRange [${a2},${o2}]`), s2 - e3 !== o2 - a2 && t2.push(`${r2.chapterId}: page-count mismatch (global ${s2 - e3 + 1} vs local ${o2 - a2 + 1})`), r2.ownedGlobalPages) for (const n3 of r2.ownedGlobalPages) (n3 < e3 || n3 > s2) && t2.push(`${r2.chapterId}: ownedGlobalPages contains ${n3} outside range`);\n t2.push(...u(r2));\n }\n return t2;\n}\nconst i = { kind: \"first-wins\" };\nfunction d(e2, t2 = i) {\n const n2 = /* @__PURE__ */ new Map();\n for (const s2 of e2.chapters) {\n const [e3, t3] = s2.globalPageRange;\n for (let r3 = e3; r3 <= t3; r3++) {\n const e4 = n2.get(r3);\n e4 ? e4.push(s2) : n2.set(r3, [s2]);\n }\n }\n const r2 = /* @__PURE__ */ new Map();\n for (const [s2, a2] of n2) r2.set(s2, g(s2, a2, t2));\n return r2;\n}\nfunction g(e2, t2, n2) {\n if (1 === t2.length) return t2[0].chapterId;\n switch (n2.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 n3 = t2.find((t3) => {\n var _a;\n return (_a = t3.ownedGlobalPages) == null ? void 0 : _a.includes(e2);\n });\n return n3 ? n3.chapterId : t2[0].chapterId;\n }\n case \"custom\":\n return n2.resolve(e2, t2);\n }\n}\nclass p {\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 n2 = this._byChapter.get(e2);\n return n2 ? n2.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 f(e2, t2 = i) {\n const n2 = d(e2, t2), r2 = /* @__PURE__ */ new Map();\n for (const c2 of e2.chapters) r2.set(c2.chapterId, c2);\n const s2 = Array.from(n2.keys()).sort((e3, t3) => e3 - t3), a2 = [];\n let o2 = 0;\n for (const c2 of s2) {\n const e3 = n2.get(c2), t3 = r2.get(e3);\n if (!t3) continue;\n const [s3] = t3.globalPageRange, [l2] = t3.localPageRange, u2 = l2 + (c2 - s3);\n a2.push({ globalPageIndex: o2++, globalPageNumber: c2, chapterId: e3, localPageIndex: u2 });\n }\n return new p(a2);\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 = i;\n this.chapterStatus = /* @__PURE__ */ new Map();\n this.chapterLastUsed = /* @__PURE__ */ new Map();\n this.passwordAttempts = /* @__PURE__ */ new Map();\n this.pendingChapterLoadPromises = /* @__PURE__ */ new Map();\n this.pendingSegmentLoadPromises = /* @__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 ?? i;\n this.documentManagerUnsubs.push(\n this.documentManager.provides().onDocumentOpened((docState) => {\n const { chapterId } = s(docState.id);\n if (!this.findChapter(chapterId)) return;\n this.passwordAttempts.delete(chapterId);\n this.syncChapterStatusFromDocuments(chapterId);\n }),\n this.documentManager.provides().onDocumentClosed((documentId) => {\n const { chapterId } = s(documentId);\n if (!this.findChapter(chapterId)) return;\n this.syncChapterStatusFromDocuments(chapterId);\n }),\n this.documentManager.provides().onDocumentError((evt) => {\n const { chapterId } = s(evt.documentId);\n if (!this.findChapter(chapterId)) return;\n void this.handleDocumentError(evt.documentId, chapterId, 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 ensureSegmentLoaded: (chapterId, segmentIndex) => this.ensureSegmentLoaded(chapterId, segmentIndex),\n ensureAllSegmentsLoaded: (chapterId) => this.ensureAllSegmentsLoaded(chapterId),\n resolvePageDocument: (chapterId, localPageIndex) => {\n const chapter = this.findChapter(chapterId);\n if (!chapter) return null;\n return c(chapter, localPageIndex);\n },\n getSegmentPlan: (chapterId) => {\n const chapter = this.findChapter(chapterId);\n return chapter ? o(chapter) : null;\n },\n isSegmentLoaded: (chapterId, segmentIndex) => this.isSegmentDocumentOpen(chapterId, segmentIndex),\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 u2 of this.documentManagerUnsubs) u2();\n this.documentManagerUnsubs = [];\n if (this.unloadTimer) clearInterval(this.unloadTimer);\n this.unloadTimer = null;\n this.statusChange$.clear();\n this.manifestChange$.clear();\n }\n setManifestInternal(manifest2) {\n const issues = h(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((c2) => c2.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 c2 of manifest2.chapters) {\n if (!this.chapterStatus.has(c2.chapterId)) {\n this.chapterStatus.set(c2.chapterId, \"idle\");\n }\n }\n this.manifest = manifest2;\n this.virtualPageMap = f(manifest2, this.overlapStrategy);\n this.manifestChange$.emit({ manifest: manifest2, map: this.virtualPageMap });\n this.eagerPrefetchFromManifest();\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 i2 = 0; i2 < count; i2++) {\n const chapterId = this.manifest.chapters[i2].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((c2) => c2.chapterId === chapterId) ?? null;\n }\n getSegmentPlanForChapter(chapterId) {\n const chapter = this.findChapter(chapterId);\n return chapter ? o(chapter) : null;\n }\n isSegmentDocumentOpen(chapterId, segmentIndex) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n const cap = this.documentManager.provides();\n if (!plan) {\n return segmentIndex === 0 && cap.isDocumentOpen(chapterId);\n }\n const seg = plan.segments[segmentIndex];\n return seg ? cap.isDocumentOpen(seg.documentId) : false;\n }\n syncChapterStatusFromDocuments(chapterId) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n const cap = this.documentManager.provides();\n if (!plan) {\n if (cap.isDocumentOpen(chapterId)) {\n this.updateStatus(chapterId, \"loaded\");\n } else if (this.chapterStatus.get(chapterId) === \"loaded\") {\n this.updateStatus(chapterId, \"closed\");\n }\n return;\n }\n const seg0 = plan.segments[0];\n if (seg0 && cap.isDocumentOpen(seg0.documentId)) {\n this.updateStatus(chapterId, \"loaded\");\n return;\n }\n const anyLoading = plan.segments.some((s2) => {\n const coreDoc = this.coreState.core.documents[s2.documentId];\n return (coreDoc == null ? void 0 : coreDoc.status) === \"loading\";\n });\n if (anyLoading) {\n this.updateStatus(chapterId, \"loading\");\n return;\n }\n const current = this.chapterStatus.get(chapterId);\n if (current === \"loaded\") return;\n if (current !== \"password-required\" && current !== \"error\") {\n this.updateStatus(chapterId, \"idle\");\n }\n }\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 const segmentsToLoad = /* @__PURE__ */ new Set();\n for (const idx of visibleGlobalPageIndices) {\n const loc = this.virtualPageMap.atIndex(idx);\n if (!loc) continue;\n visibleChapters.add(loc.chapterId);\n const chapter = this.findChapter(loc.chapterId);\n if (!chapter) continue;\n const seg = l(chapter, loc.localPageIndex);\n segmentsToLoad.add(`${loc.chapterId}:${seg}`);\n segmentsToLoad.add(`${loc.chapterId}:${seg + 1}`);\n }\n if (visibleChapters.size === 0) return;\n const orderedIds = this.manifest.chapters.map((c2) => c2.chapterId);\n const neededIdx = /* @__PURE__ */ new Set();\n for (const cid of visibleChapters) {\n const i2 = orderedIds.indexOf(cid);\n if (i2 === -1) continue;\n for (let k = i2 - prefetch; k <= i2 + prefetch; k++) {\n if (k >= 0 && k < orderedIds.length) neededIdx.add(k);\n }\n }\n for (const i2 of neededIdx) {\n const cid = orderedIds[i2];\n this.chapterLastUsed.set(cid, now);\n void this.ensureChapterLoaded(cid);\n }\n for (const key of segmentsToLoad) {\n const [chapterId, segStr] = key.split(\":\");\n const segmentIndex = Number.parseInt(segStr, 10);\n if (!chapterId || !Number.isFinite(segmentIndex)) continue;\n this.chapterLastUsed.set(chapterId, now);\n void this.ensureSegmentLoaded(chapterId, segmentIndex);\n }\n if (this.config.autoActivateOnLoad ?? true) {\n const firstIdx = visibleGlobalPageIndices[0];\n const firstLoc = firstIdx != null ? this.virtualPageMap.atIndex(firstIdx) : null;\n if (firstLoc) {\n const ref = c(\n this.findChapter(firstLoc.chapterId),\n firstLoc.localPageIndex\n );\n if (this.documentManager.provides().isDocumentOpen(ref.documentId)) {\n const currentActive = this.documentManager.provides().getActiveDocumentId();\n if (currentActive !== ref.documentId) {\n this.documentManager.provides().setActiveDocument(ref.documentId);\n }\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 ensureChapterLoaded(chapterId) {\n return this.ensureSegmentLoaded(chapterId, 0);\n }\n ensureAllSegmentsLoaded(chapterId) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n if (!plan) return this.ensureChapterLoaded(chapterId);\n return (async () => {\n for (const seg of plan.segments) {\n const st = await this.ensureSegmentLoaded(chapterId, seg.index);\n if (st !== \"loaded\") return st;\n }\n return \"loaded\";\n })();\n }\n ensureSegmentLoaded(chapterId, segmentIndex) {\n const chapter = this.findChapter(chapterId);\n if (!chapter) return Promise.resolve(\"error\");\n const plan = o(chapter);\n if (!plan) {\n if (segmentIndex !== 0) {\n return Promise.resolve(this.isSegmentDocumentOpen(chapterId, 0) ? \"loaded\" : \"error\");\n }\n return this.ensureSingleDocumentChapter(chapter);\n }\n if (segmentIndex < 0 || segmentIndex >= plan.segments.length) {\n return Promise.resolve(\"error\");\n }\n const segment = plan.segments[segmentIndex];\n const documentId = segment.documentId;\n const cap = this.documentManager.provides();\n if (cap.isDocumentOpen(documentId)) {\n this.chapterLastUsed.set(chapterId, Date.now());\n if (segmentIndex === 0) this.syncChapterStatusFromDocuments(chapterId);\n return Promise.resolve(\"loaded\");\n }\n const existing = this.pendingSegmentLoadPromises.get(documentId);\n if (existing) return existing;\n const promise = this.startLoadSegment(chapter, segment).finally(() => {\n this.pendingSegmentLoadPromises.delete(documentId);\n });\n this.pendingSegmentLoadPromises.set(documentId, promise);\n return promise;\n }\n ensureSingleDocumentChapter(chapter) {\n const chapterId = chapter.chapterId;\n const existing = this.pendingChapterLoadPromises.get(chapterId);\n if (existing) return existing;\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.startLoadSegment(chapter, null).finally(() => {\n this.pendingChapterLoadPromises.delete(chapterId);\n });\n this.pendingChapterLoadPromises.set(chapterId, promise);\n return promise;\n }\n async resolvePdfPayload(chapter, segmentIndex) {\n const src = chapter.source;\n if (src) {\n if (n(src)) {\n const url = src.urls[segmentIndex];\n if (!url) {\n throw new Error(\n `Chapter \"${chapter.chapterId}\" missing source.urls[${segmentIndex}]`\n );\n }\n return { url };\n }\n if (segmentIndex !== 0) {\n throw new Error(`Chapter \"${chapter.chapterId}\" is not segmented`);\n }\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, segmentIndex);\n throw new Error(\n `Chapter \"${chapter.chapterId}\" has no PDF source; set descriptor.source or chapterPdfLoader`\n );\n }\n async startLoadSegment(chapter, segment) {\n var _a;\n const chapterId = chapter.chapterId;\n const segmentIndex = (segment == null ? void 0 : segment.index) ?? 0;\n const documentId = (segment == null ? void 0 : segment.documentId) ?? chapterId;\n if (segmentIndex === 0) {\n this.updateStatus(chapterId, \"loading\");\n }\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, segmentIndex);\n const cap = this.documentManager.provides();\n const openTask = \"url\" in payload ? cap.openDocumentUrl({\n documentId,\n url: payload.url,\n name: segment ? `${chapter.title} (${segment.index + 1})` : chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n }) : cap.openDocumentBuffer({\n documentId,\n buffer: payload.buffer,\n name: segment ? `${chapter.title} (${segment.index + 1})` : 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(documentId)) {\n this.syncChapterStatusFromDocuments(chapterId);\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 if (segmentIndex === 0) {\n this.updateStatus(chapterId, \"error\", message);\n }\n }\n return this.chapterStatus.get(chapterId) ?? \"error\";\n }\n }\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(documentId, chapterId, code, _message) {\n if (code !== PdfErrorCode.Password) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n const { segmentIndex } = s(documentId);\n if (!plan || segmentIndex === 0 || segmentIndex === null) {\n this.updateStatus(chapterId, \"error\");\n }\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(documentId, { password });\n retryTask.wait(\n () => {\n },\n () => {\n }\n );\n }\n closeChapter(chapterId) {\n const chapter = this.findChapter(chapterId);\n const cap = this.documentManager.provides();\n const plan = chapter ? o(chapter) : null;\n const closeDoc = (documentId) => {\n if (cap.isDocumentOpen(documentId)) {\n const task = cap.closeDocument(documentId);\n task.wait(\n () => {\n },\n () => {\n }\n );\n }\n };\n if (plan) {\n for (const seg of plan.segments) {\n closeDoc(seg.documentId);\n }\n } else {\n closeDoc(chapterId);\n }\n this.updateStatus(chapterId, \"closed\");\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","const e=\"#s\";function t(e){const[t,n]=e.localPageRange;return n-t+1}function n(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function r(t,n){return`${t}${e}${n}`}function s(t){const n=t.lastIndexOf(e);if(-1===n)return{chapterId:t,segmentIndex:null};const r=t.slice(0,n),s=Number.parseInt(t.slice(n+2),10);return!Number.isFinite(s)||s<0?{chapterId:t,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function a(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function o(e){const s=e.source;if(!n(s))return null;const a=s.segmentPageThreshold,o=t(e),c=[];for(let t=0;t<s.urls.length;t++){const n=t*a,l=Math.min(n+a-1,o-1);if(n>=o)break;c.push({index:t,url:s.urls[t],localPageStart:n,localPageEnd:l,documentId:r(e.chapterId,t)})}return{chapterId:e.chapterId,threshold:a,pageCount:o,segments:c}}function c(e,t){const n=o(e);if(!n)return{documentId:e.chapterId,pageIndex:t};const r=n.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=n.segments[n.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function l(e,t){const n=o(e);if(!n)return 0;const r=n.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return r?.index??Math.floor(t/n.threshold)}function u(e){const r=e.source;if(!n(r))return[];const s=[],{chapterId:o}=e,c=t(e),l=r.segmentPageThreshold;if(l<=0&&s.push(`${o}: segmentPageThreshold must be > 0`),0===r.urls.length&&s.push(`${o}: source.urls must not be empty`),l>0){const e=a(c,l);r.urls.length!==e&&s.push(`${o}: source.urls.length (${r.urls.length}) must equal ceil(pageCount/threshold) (${e})`)}for(let t=0;t<r.urls.length;t++)r.urls[t]?.trim()||s.push(`${o}: source.urls[${t}] is empty`);return s}function h(e){const t=[],n=/* @__PURE__ */new Set;for(const r of e.chapters){n.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),n.add(r.chapterId);const[e,s]=r.globalPageRange,[a,o]=r.localPageRange;if(e>s&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${s}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),s-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${s-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const n of r.ownedGlobalPages)(n<e||n>s)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${n} outside range`);t.push(...u(r))}return t}const i={kind:\"first-wins\"};function d(e,t=i){const n=/* @__PURE__ */new Map;for(const s of e.chapters){const[e,t]=s.globalPageRange;for(let r=e;r<=t;r++){const e=n.get(r);e?e.push(s):n.set(r,[s])}}const r=/* @__PURE__ */new Map;for(const[s,a]of n)r.set(s,g(s,a,t));return r}function g(e,t,n){if(1===t.length)return t[0].chapterId;switch(n.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const n=t.find(t=>t.ownedGlobalPages?.includes(e));return n?n.chapterId:t[0].chapterId}case\"custom\":return n.resolve(e,t)}}class p{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 n=this._byChapter.get(e);return n?n.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){const t=this._byChapter.get(e)?.[0];return t?this._pages.indexOf(t):-1}}function f(e,t=i){const n=d(e,t),r=/* @__PURE__ */new Map;for(const c of e.chapters)r.set(c.chapterId,c);const s=Array.from(n.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const c of s){const e=n.get(c),t=r.get(e);if(!t)continue;const[s]=t.globalPageRange,[l]=t.localPageRange,u=l+(c-s);a.push({globalPageIndex:o++,globalPageNumber:c,chapterId:e,localPageIndex:u})}return new p(a)}class I{constructor(e){this.map=e}resolvePassword(e){return Promise.resolve(this.map[e.chapterId]??null)}getCachedPassword(e){return this.map[e]??null}}class m{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}class P{constructor(e){this.onPrompt=e,this.pending=/* @__PURE__ */new Map}resolvePassword(e,t){return new Promise(n=>{const r=this.pending.get(e.chapterId);r&&r.resolve(null),this.pending.set(e.chapterId,{resolve:n,attempt:t,chapter:e}),this.onPrompt(e,t)})}submit(e,t){const n=this.pending.get(e);n&&(this.pending.delete(e),n.resolve(t))}}function b(e){return\"last\"===e?{kind:\"last-wins\"}:{kind:\"first-wins\"}}function w(e){const t=e.endPage-e.startPage+1;return{chapterId:e.chapterId,title:e.title,globalPageRange:[e.startPage,e.endPage],localPageRange:[0,t-1],...e.source?{source:e.source}:{},...e.encrypted?{encrypted:e.encrypted}:{}}}function $(e){const t=[],n=e=>{for(const r of e)t.push(w(r)),r.children?.length&&n(r.children)};return n(e),t}function y(e){return e.map(e=>({id:e.chapterId,title:e.title,startPage:e.startPage,endPage:e.endPage,children:e.children?.length?y(e.children):void 0}))}function x(e){return{tree:y(e),manifest:{chapters:$(e)}}}export{m as CallbackPasswordProvider,I as StaticPasswordProvider,P as UiPromptPasswordProvider,p as VirtualPageMap,o as buildChapterSegmentPlan,x as buildChapterViewerCatalog,f as buildVirtualPageMap,w as chapterDescriptorFromTreeNode,r as chapterSegmentDocumentId,i as defaultOverlapStrategy,a as expectedSegmentCount,$ as flattenChapterTree,t as getChapterPageCount,n as isSegmentedChapterSource,b as overlapStrategyForSamePageOwner,s as parseChapterDocumentId,c as resolveChapterPageDocument,d as resolveOwners,l as segmentIndexForLocalPage,y as toChapterTreeNodes,h as validateChapterManifest,u as validateChapterSegmentSource};\n//# sourceMappingURL=index.js.map\n"],"names":["Pe","be","Ie","_a","Ce","Se","ye","A","we","e","t","xe","s","a","n","r","Me","o","i","l","d","h","c","k","u","N","F","$e","Le","De","ke","Te","Re","Ve","_e","Ue","qe","We","He","Be","je","Ze","Ke","Je","E","R","V","W","G","et","tt","st","at","nt","rt","ot","it","lt","dt","ht","ct","ut","pt","gt","mt","ft","vt","Pt","bt","It","Ct","St","yt","wt","xt","Mt","$t","Lt","Dt","kt","Tt","zt","Ot","At","Nt","Ft","Gt","Et","jt","Zt","Xt","Kt","es","hs","cs","us","ps","gs","ms","fs","vs","Ps","bs","Is","Cs","Ss","ys","ws","xs","Ms","$s","Ls","Ds","T","ie","_","H","B","j","Z","Y","ee","z","te","se","ae","ne","re","oe","le","Oe","w","x","p","g","f","b","U","q","y","m","fe","v","P","pe","X","de","I","C","ce","he","ue","me","ge","S","K","Q","J","$","L","D","O","_b","_c","M","_openBlock","_createBlock","_unref","$props","_createSlots","_renderSlot","$slots","e2","s2","a2","e3","e4","_ChapterManagerPlugin","ref"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../editor-engine/dist/vue/index.js","../src/ChapterPdfViewer.vue","../../editor-engine/dist/index.js","../../chapter-viewer/dist/index.js","../../plugin-chapter-manager/dist/index.js","../../chapter-core/dist/index.js"],"sourcesContent":["import{isRef as e,computed as t,ref as s,watch as r,onBeforeUnmount as n,defineComponent as a,onMounted as o,openBlock as i,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 P,h as I,withCtx as b,createVNode as C,resolveDynamicComponent as w,toDisplayString as y}from\"vue\";import{useRegistry as S,useCapability as x,EmbedPDF as M}from\"@embedpdf/core/vue\";import{EmbedPDF as $,useCapability as L,useRegistry as D}from\"@embedpdf/core/vue\";import{LockModeType as k,ANNOTATION_PLUGIN_ID as U,AnnotationPluginPackage as T,AnnotationPlugin as F}from\"@embedpdf/plugin-annotation\";import{PdfAnnotationSubtype as z,uuidV4 as A,PdfBlendMode as O,PdfErrorCode as N}from\"@embedpdf/models\";import{BasePlugin as E,createBehaviorEmitter as G,createEmitter as R,createPluginRegistration as V,setDefaultScale as _,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 X,glyphAt as K,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 se}from\"@embedpdf/plugin-form\";import{StampPluginPackage as re}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as ne}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as ae}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as oe}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as ie,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{useAnnotationCapability as pe,AnnotationLayer as ge}from\"@embedpdf/plugin-annotation/vue\";import{RedactionLayer as fe}from\"@embedpdf/plugin-redaction/vue\";import{RenderLayer as me}from\"@embedpdf/plugin-render/vue\";import{usePdfiumEngine as ve}from\"@embedpdf/engines/vue\";const Pe={position:\"relative\",height:\"100%\",width:\"100%\"},Ie={userSelect:\"none\",WebkitUserSelect:\"none\"};function be(){\"undefined\"!=typeof window&&window.getSelection()?.removeAllRanges()}const Ce=\"#f1f5f9\";const we={highlight:{offsetY:0},underline:{offsetY:2.5},squiggly:{offsetY:4},strikeout:{offsetY:0}},ye={highlight:z.HIGHLIGHT,underline:z.UNDERLINE,squiggly:z.SQUIGGLY,strikeout:z.STRIKEOUT};function Se(e,t){return 0===t?e:e.map(e=>({origin:{x:e.origin.x,y:e.origin.y+t},size:{...e.size}}))}function xe(e){let t=1/0,s=1/0,r=-1/0,n=-1/0;for(const a of e)t=Math.min(t,a.origin.x),s=Math.min(s,a.origin.y),r=Math.max(r,a.origin.x+a.size.width),n=Math.max(n,a.origin.y+a.size.height);return{origin:{x:t,y:s},size:{width:r-t,height:n-s}}}function Me(e,t,s,r,n){const a=s.forDocument(e),o=r.forDocument(e);if(!a||!o)return!1;const i=\"highlight\"===t?\"highlight\":\"underline\"===t?\"underline\":\"squiggly\"===t?\"squiggly\":\"strikeout\",l=s.getTool(i);if(!l)return!1;const h=l.defaults,d=function(e,t){return{...we[e],...null==t?void 0:t[e]}}(t,n),c=o.getFormattedSelection();if(0===c.length)return!1;a.setLocked({type:k.Exclude,categories:[\"markup\",\"shape\"]});for(const u of c){const e=A(),s=d.color??h.color??h.strokeColor,r=d.opacity??h.opacity,n=d.thickness??h.strokeWidth,o=d.offsetY??0,i=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?Se(u.segmentRects,o):u.segmentRects,l=\"underline\"===t||\"squiggly\"===t||\"strikeout\"===t?xe(i):u.rect;a.createAnnotation(u.pageIndex,{id:e,created:/* @__PURE__ */new Date,flags:[\"print\"],type:ye[t],...\"highlight\"===t?{blendMode:O.Multiply}:{},strokeColor:s,opacity:r,...null!=n?{strokeWidth:n}:{},pageIndex:u.pageIndex,rect:l,segmentRects:i})}return o.clear(),!0}const $e=/* @__PURE__ */new Set([z.HIGHLIGHT,z.UNDERLINE,z.SQUIGGLY,z.STRIKEOUT]);function Le(e,t){const s=e;return!1===e?{...t,enabled:!1}:!0===e||void 0===e?{...t,enabled:t.enabled??!0}:{...t,...s,enabled:!1!==(null==s?void 0:s.enabled)}}function De(e){var t;const s=Le(null==e?void 0:e.markup,{enabled:!0}),r=Le(null==e?void 0:e.bookmarks,{enabled:!0}),n=Le(null==e?void 0:e.notes,{enabled:!0}),a=Le(null==e?void 0:e.zoom,{enabled:!0,min:.5,max:3,initial:1}),o=Le(void 0===(null==e?void 0:e.selectionToolbar)?!1!==s.enabled||!1!==n.enabled:e.selectionToolbar,{enabled:!0});return{markup:s,bookmarks:r,notes:n,zoom:a,scrollViewport:{background:(null==(t=null==e?void 0:e.scrollViewport)?void 0:t.background)??Ce},selectionToolbar:o}}function ke(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Ue(e,t){return`${e}#s${t}`}function Te(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return ke(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const s=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),r=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(s,t),n=ke(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:n?.[o]??\"\",localPageStart:r,localPageEnd:i,documentId:Ue(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}const Fe={kind:\"first-wins\"};class ze{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}function Ae(e){return\"last\"===e?{kind:\"last-wins\"}:{kind:\"first-wins\"}}function Oe(e){const t=e.endPage-e.startPage+1;return{chapterId:e.chapterId,title:e.title,globalPageRange:[e.startPage,e.endPage],localPageRange:[0,t-1],...e.source?{source:e.source}:{},...null!=e.segmentPageThreshold?{segmentPageThreshold:e.segmentPageThreshold}:{},...e.encrypted?{encrypted:e.encrypted}:{}}}function Ne(e){const t=[],s=e=>{for(const r of e)t.push(Oe(r)),r.children?.length&&s(r.children)};return s(e),t}function Ee(e){return e.map(e=>({id:e.chapterId,title:e.title,startPage:e.startPage,endPage:e.endPage,children:e.children?.length?Ee(e.children):void 0}))}function Ge(e){return{tree:Ee(e),manifest:{chapters:Ne(e)}}}const Re=\"chapter-manager\",Ve={id:Re,name:\"Chapter Manager Plugin\",version:\"0.1.0\",provides:[\"chapter-manager\"],requires:[\"document-manager\"],optional:[],defaultConfig:{manifest:{chapters:[]},prefetchChapters:1,unloadTimeoutMs:6e4,autoActivateOnLoad:!0}};function _e(e){const[t,s]=e.localPageRange;return s-t+1}function qe(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function We(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return qe(t)?t.segmentPageThreshold:null}function He(e,t){return`${e}#s${t}`}function Be(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function je(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function Ze(e){const t=We(e);if(!t)return null;const s=_e(e),r=je(s,t),n=qe(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:He(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Ye(e,t){const s=Ze(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function Xe(e,t){const s=Ze(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function Ke(e){var t;const s=We(e);if(!s)return[];const r=[],{chapterId:n}=e,a=_e(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!qe(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=je(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const Qe={kind:\"first-wins\"};function Je(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let et=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function tt(e,t=Qe){const s=function(e,t=Qe){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,Je(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new et(a)}const st=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=Qe,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??Qe,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Be(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Be(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Be(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Ye(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Ze(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Ke(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=tt(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Ze(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Xe(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Ye(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=Ze(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(qe(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=We(t);if(a){const r=je(_e(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(qe(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=Be(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?Ze(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};st.id=\"chapter-manager\";let rt=st;const nt={manifest:Ve,create:e=>new rt(Re,e),reducer:e=>e,initialState:{}},at=\"chapter-scroll\",ot={id:at,name:\"Chapter Scroll Plugin\",version:\"0.1.0\",provides:[\"chapter-scroll\"],requires:[\"chapter-manager\"],optional:[],defaultConfig:{placeholderPageHeight:1200,placeholderPageWidth:900,bufferSize:2,pageGap:20}};function it(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function lt(e,t){return`${e}#s${t}`}function ht(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function dt(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return it(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const s=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),r=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(s,t),n=it(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:lt(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function ct(e){const[t,s]=e.localPageRange;return s-t+1}function ut(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function pt(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return ut(t)?t.segmentPageThreshold:null}function gt(e,t){return`${e}#s${t}`}function ft(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function mt(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function vt(e){const t=pt(e);if(!t)return null;const s=ct(e),r=mt(s,t),n=ut(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:gt(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Pt(e,t){const s=vt(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function It(e,t){const s=vt(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function bt(e){var t;const s=pt(e);if(!s)return[];const r=[],{chapterId:n}=e,a=ct(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!ut(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=mt(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const Ct={kind:\"first-wins\"};function wt(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function St(e,t=Ct){const s=function(e,t=Ct){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,wt(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new yt(a)}const xt=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=Ct,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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=>{const{chapterId:t}=ft(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=ft(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=ft(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Pt(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?vt(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...bt(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=St(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?vt(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=It(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Pt(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=vt(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(ut(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=pt(t);if(a){const r=mt(ct(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(ut(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=ft(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?vt(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};xt.id=\"chapter-manager\";let Mt=xt;function $t(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 s=0;s<e.items.length;s++){const r=e.items[s],n=t.items[s];if(r.globalPageIndex!==n.globalPageIndex||r.isPlaceholder!==n.isPlaceholder||r.chapterId!==n.chapterId||r.localPageIndex!==n.localPageIndex||r.pdfDocumentId!==n.pdfDocumentId||r.pdfPageIndex!==n.pdfPageIndex||r.offsetTop!==n.offsetTop||r.width!==n.width||r.height!==n.height)return!1}return!0}const Lt=class extends E{constructor(e,t){super(e,t),this.layoutChange$=G(void 0,$t),this.visibleChange$=G(),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.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),r=s.getChapterStatus(e);if(\"error\"===r||\"password-required\"===r)return!0;const n=s.getChapter(e);if(!n)return!0;const a=function(e,t){const s=dt(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,a)}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;const{chapterId:s}=ht(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const r=this.documentManager.provides();r.getActiveDocumentId()||r.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=ht(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let r=0;r<e;r++){const{width:e,height:n}=this.getPageSize(r);this.offsets[r]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const r of t){const t=this.virtualPageMap.toGlobal(e,r.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===r.width&&n.height===r.height||(this.pageSizes.set(t.globalPageIndex,{width:r.width,height:r.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),r=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!r||0===n.length)return;const a=dt(r),o=this.documentManager.provides(),i=[],l=(e,t,s,r)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<r;o++){const e=a.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(a)for(const h of a.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;l(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=ht(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),r=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),r.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),r.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,s=t+this.viewportEl.clientHeight,r=this.findFirstVisibleIndex(t);let n=r;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const a=[];let o=r,i=-1;for(let l=r;l<n;l++){a.push(l);const e=this.offsets[l],r=e+this.getPageSize(l).height,n=Math.max(0,Math.min(r,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,r=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(r=n,t=n+1):s=n-1}return r}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,r=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=r;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),r=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:r})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var r;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),l=i?null==(r=this.documentManager.provides().getDocument(i.documentId))?void 0:r.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const h=o.height/l.size.height,d=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};Lt.id=\"chapter-scroll\";let Dt=Lt;const kt={manifest:ot,create:e=>new Dt(at,e),reducer:e=>e,initialState:{}},Ut=\"note\",Tt={id:Ut,name:\"Note Plugin\",version:\"0.1.0\",provides:[\"note\"],requires:[\"selection\",\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{callbacks:{onCreateNote:async()=>null,onActivateNote:()=>{}},markerSize:18}};function Ft(e){const[t,s]=e.localPageRange;return s-t+1}function zt(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function At(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return zt(t)?t.segmentPageThreshold:null}function Ot(e,t){return`${e}#s${t}`}function Nt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function Et(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function Gt(e){const t=At(e);if(!t)return null;const s=Ft(e),r=Et(s,t),n=zt(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:Ot(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Rt(e,t){const s=Gt(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function Vt(e,t){const s=Gt(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function _t(e){var t;const s=At(e);if(!s)return[];const r=[],{chapterId:n}=e,a=Ft(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!zt(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=Et(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const qt={kind:\"first-wins\"};function Wt(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let Ht=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function Bt(e,t=qt){const s=function(e,t=qt){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,Wt(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new Ht(a)}const jt=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=qt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??qt,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Nt(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Nt(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Nt(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Rt(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Gt(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(..._t(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=Bt(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Gt(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Vt(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Rt(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=Gt(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(zt(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=At(t);if(a){const r=Et(Ft(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(zt(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=Nt(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?Gt(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};jt.id=\"chapter-manager\";let Zt=jt;function Yt(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Xt(e,t){return`${e}#s${t}`}function Kt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function Qt(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Yt(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const s=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),r=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(s,t),n=Yt(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:Xt(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Jt(e){const[t,s]=e.localPageRange;return s-t+1}function es(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function ts(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return es(t)?t.segmentPageThreshold:null}function ss(e,t){return`${e}#s${t}`}function rs(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function ns(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function as(e){const t=ts(e);if(!t)return null;const s=Jt(e),r=ns(s,t),n=es(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:ss(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function os(e,t){const s=as(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function is(e,t){const s=as(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function ls(e){var t;const s=ts(e);if(!s)return[];const r=[],{chapterId:n}=e,a=Jt(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!es(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=ns(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const hs={kind:\"first-wins\"};function ds(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let cs=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function us(e,t=hs){const s=function(e,t=hs){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,ds(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new cs(a)}const ps=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=hs,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??hs,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=rs(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=rs(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=rs(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?os(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?as(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...ls(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=us(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?as(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=is(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=os(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=as(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(es(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=ts(t);if(a){const r=ns(Jt(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(es(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=rs(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?as(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};ps.id=\"chapter-manager\";let gs=ps;function fs(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 s=0;s<e.items.length;s++){const r=e.items[s],n=t.items[s];if(r.globalPageIndex!==n.globalPageIndex||r.isPlaceholder!==n.isPlaceholder||r.chapterId!==n.chapterId||r.localPageIndex!==n.localPageIndex||r.pdfDocumentId!==n.pdfDocumentId||r.pdfPageIndex!==n.pdfPageIndex||r.offsetTop!==n.offsetTop||r.width!==n.width||r.height!==n.height)return!1}return!0}const ms=class extends E{constructor(e,t){super(e,t),this.layoutChange$=G(void 0,fs),this.visibleChange$=G(),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(gs.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),r=s.getChapterStatus(e);if(\"error\"===r||\"password-required\"===r)return!0;const n=s.getChapter(e);if(!n)return!0;const a=function(e,t){const s=Qt(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,a)}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;const{chapterId:s}=Kt(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const r=this.documentManager.provides();r.getActiveDocumentId()||r.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=Kt(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let r=0;r<e;r++){const{width:e,height:n}=this.getPageSize(r);this.offsets[r]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const r of t){const t=this.virtualPageMap.toGlobal(e,r.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===r.width&&n.height===r.height||(this.pageSizes.set(t.globalPageIndex,{width:r.width,height:r.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),r=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!r||0===n.length)return;const a=Qt(r),o=this.documentManager.provides(),i=[],l=(e,t,s,r)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<r;o++){const e=a.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(a)for(const h of a.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;l(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=Kt(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),r=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),r.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),r.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,s=t+this.viewportEl.clientHeight,r=this.findFirstVisibleIndex(t);let n=r;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const a=[];let o=r,i=-1;for(let l=r;l<n;l++){a.push(l);const e=this.offsets[l],r=e+this.getPageSize(l).height,n=Math.max(0,Math.min(r,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,r=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(r=n,t=n+1):s=n-1}return r}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,r=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=r;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),r=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:r})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var r;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),l=i?null==(r=this.documentManager.provides().getDocument(i.documentId))?void 0:r.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const h=o.height/l.size.height,d=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};ms.id=\"chapter-scroll\";let vs=ms;const Ps=class e extends E{constructor(e,t){super(e,t),this.notesChange$=G([]),this.noteActivated$=R(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(vs.id),this.chapterManager=this.registry.getPlugin(Zt.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(s){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",s)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(s=>s.chapterId===e&&s.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,s;const r=this.notes.get(e);r&&(null==(s=(t=this.config.callbacks).onActivateNote)||s.call(t,e,r),this.noteActivated$.emit({noteId:e,anchor:r}))}listAll(){return Array.from(this.notes.values())}listNotesForChapter(e){return this.listAll().filter(t=>t.chapterId===e)}replaceNotesForChapter(e,t){for(const[s,r]of this.notes.entries())r.chapterId===e&&this.notes.delete(s);for(const s of t)s.chapterId===e&&this.notes.set(s.noteId,s);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:bs(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:s,onCreateNote:r}=this.config.callbacks;return s?(s({draft:t,complete:async e=>{const s={...t,noteId:e};this.registerNote(s)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const s=this.buildDraft(t),r=this.config.callbacks.onCreateNote;if(!r)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let n=null;try{n=await r(s)}catch(o){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!n)return null;const a={...s,noteId:n.noteId};return this.registerNote(a),a}async deleteNote(t){var s,r;if(this.notes.has(t)){try{await(null==(r=(s=this.config.callbacks).onDeleteNote)?void 0:r.call(s,t))}catch(n){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",n)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,s){var r,n;const a=this.notes.get(t);if(!a)return;const o={...a,content:s};try{await(null==(n=(r=this.config.callbacks).onUpdateNote)?void 0:n.call(r,o))}catch(i){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",i)}this.notes.set(t,o),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const s=this.notes.get(e);if(!s)return;const r=this.chapterScroll.provides(),n=this.chapterManager.provides();await n.ensureAllSegmentsLoaded(s.chapterId);const a=n.resolvePageDocument(s.chapterId,s.localPageIndex);(null==(t=this.documentManager.provides().getDocument(a.documentId))?void 0:t.pages[a.pageIndex])?(r.scrollToGlobalPageIndex(s.globalPageIndex),await this.waitForPageInLayout(s.globalPageIndex),r.scrollToGlobalPdfPoint(s.globalPageIndex,s.endAnchor.y,{marginTop:80})):r.scrollToGlobalPageIndex(s.globalPageIndex)}waitForPageInLayout(e){const t=this.chapterScroll.provides(),s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const r=setTimeout(()=>{n(),s(null)},2500),n=t.onLayoutChange(t=>{const a=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);a&&(clearTimeout(r),n(),s(a))})})}};Ps.id=\"note\";let Is=Ps;function bs(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}const Cs={manifest:Tt,create:e=>new Is(Ut,e),reducer:e=>e,initialState:{}},ws=\"paragraph-bookmark\",ys={id:ws,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};function Ss(e){const[t,s]=e.localPageRange;return s-t+1}function xs(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Ms(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return xs(t)?t.segmentPageThreshold:null}function $s(e,t){return`${e}#s${t}`}function Ls(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function Ds(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function ks(e){const t=Ms(e);if(!t)return null;const s=Ss(e),r=Ds(s,t),n=xs(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:$s(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Us(e,t){const s=ks(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function Ts(e,t){const s=ks(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function Fs(e){var t;const s=Ms(e);if(!s)return[];const r=[],{chapterId:n}=e,a=Ss(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!xs(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=Ds(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const zs={kind:\"first-wins\"};function As(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let Os=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function Ns(e,t=zs){const s=function(e,t=zs){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,As(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new Os(a)}const Es=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=zs,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??zs,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Ls(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Ls(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Ls(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Us(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?ks(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Fs(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=Ns(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?ks(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Ts(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Us(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=ks(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(xs(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=Ms(t);if(a){const r=Ds(Ss(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(xs(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=Ls(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?ks(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};Es.id=\"chapter-manager\";let Gs=Es;function Rs(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Vs(e,t){return`${e}#s${t}`}function _s(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function qs(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Rs(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const s=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),r=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(s,t),n=Rs(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:Vs(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Ws(e){const[t,s]=e.localPageRange;return s-t+1}function Hs(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Bs(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Hs(t)?t.segmentPageThreshold:null}function js(e,t){return`${e}#s${t}`}function Zs(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function Ys(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function Xs(e){const t=Bs(e);if(!t)return null;const s=Ws(e),r=Ys(s,t),n=Hs(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:js(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Ks(e,t){const s=Xs(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function Qs(e,t){const s=Xs(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function Js(e){var t;const s=Bs(e);if(!s)return[];const r=[],{chapterId:n}=e,a=Ws(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!Hs(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=Ys(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const er={kind:\"first-wins\"};function tr(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let sr=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function rr(e,t=er){const s=function(e,t=er){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,tr(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new sr(a)}const nr=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=er,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??er,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Zs(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Zs(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Zs(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Ks(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Xs(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Js(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=rr(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Xs(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Qs(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Ks(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=Xs(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(Hs(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=Bs(t);if(a){const r=Ys(Ws(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(Hs(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=Zs(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?Xs(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};nr.id=\"chapter-manager\";let ar=nr;function or(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 s=0;s<e.items.length;s++){const r=e.items[s],n=t.items[s];if(r.globalPageIndex!==n.globalPageIndex||r.isPlaceholder!==n.isPlaceholder||r.chapterId!==n.chapterId||r.localPageIndex!==n.localPageIndex||r.pdfDocumentId!==n.pdfDocumentId||r.pdfPageIndex!==n.pdfPageIndex||r.offsetTop!==n.offsetTop||r.width!==n.width||r.height!==n.height)return!1}return!0}const ir=class extends E{constructor(e,t){super(e,t),this.layoutChange$=G(void 0,or),this.visibleChange$=G(),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(ar.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),r=s.getChapterStatus(e);if(\"error\"===r||\"password-required\"===r)return!0;const n=s.getChapter(e);if(!n)return!0;const a=function(e,t){const s=qs(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,a)}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;const{chapterId:s}=_s(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const r=this.documentManager.provides();r.getActiveDocumentId()||r.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=_s(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let r=0;r<e;r++){const{width:e,height:n}=this.getPageSize(r);this.offsets[r]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const r of t){const t=this.virtualPageMap.toGlobal(e,r.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===r.width&&n.height===r.height||(this.pageSizes.set(t.globalPageIndex,{width:r.width,height:r.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),r=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!r||0===n.length)return;const a=qs(r),o=this.documentManager.provides(),i=[],l=(e,t,s,r)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<r;o++){const e=a.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(a)for(const h of a.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;l(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=_s(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),r=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),r.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),r.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,s=t+this.viewportEl.clientHeight,r=this.findFirstVisibleIndex(t);let n=r;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const a=[];let o=r,i=-1;for(let l=r;l<n;l++){a.push(l);const e=this.offsets[l],r=e+this.getPageSize(l).height,n=Math.max(0,Math.min(r,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,r=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(r=n,t=n+1):s=n-1}return r}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,r=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=r;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),r=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:r})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var r;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),l=i?null==(r=this.documentManager.provides().getDocument(i.documentId))?void 0:r.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const h=o.height/l.size.height,d=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};ir.id=\"chapter-scroll\";let lr=ir;function hr(e){if(0===e.length)throw new Error(\"unionRects: empty rects\");let t=1/0,s=1/0,r=-1/0,n=-1/0;for(const a of e)t=Math.min(t,a.origin.x),s=Math.min(s,a.origin.y),r=Math.max(r,a.origin.x+a.size.width),n=Math.max(n,a.origin.y+a.size.height);return{origin:{x:t,y:s},size:{width:r-t,height:n-s}}}function dr(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function cr(e,t){const s=e.origin.y,r=e.origin.y+e.size.height,n=t.origin.y,a=t.origin.y+t.size.height,o=Math.max(r,a)-Math.min(s,n);if(o<=0)return 0;return Math.max(0,Math.min(r,a)-Math.max(s,n))/o}function ur(e,t){var s,r;if(e.chapterId!==t.chapterId||e.localPageIndex!==t.localPageIndex)return!1;const n=(null==(s=e.rectsPdfCoord)?void 0:s.length)?e.rectsPdfCoord:[e.rectPdfCoord],a=(null==(r=t.rectsPdfCoord)?void 0:r.length)?t.rectsPdfCoord:[t.rectPdfCoord],o=e.markerAnchor??dr(n),i=t.markerAnchor??dr(a);if(Math.hypot(o.x-i.x,o.y-i.y)<=6)return!0;for(const l of n)for(const e of a){if(cr(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 pr(e,t,s,r){const n=s.length>0?s:[];if(0===n.length)throw new Error(\"buildParagraphBookmarkAnchor: no rects\");return{chapterId:e,localPageIndex:t,globalPageIndex:null==r?void 0:r.globalPageIndex,globalPageNumber:null==r?void 0:r.globalPageNumber,rectPdfCoord:hr(n),rectsPdfCoord:n,markerAnchor:dr(n)}}async function gr(e,t,s){e.scrollToGlobalPageIndex(t),await function(e,t,s=2500){const r=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return r?Promise.resolve(r):new Promise(r=>{const n=setTimeout(()=>{a(),r(null)},s),a=e.onLayoutChange(e=>{const s=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);s&&(clearTimeout(n),a(),r(s))})})}(e,t),e.scrollToGlobalPdfPoint(t,s,{marginTop:80})}const fr=class e extends E{constructor(e,t){super(e,t),this.change$=G([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(lr.id),this.chapterManager=this.registry.getPlugin(Gs.id),this.documentManager=this.registry.getPlugin(W.id)}async initialize(t){var s;if(this.config=t,null==(s=t.callbacks)?void 0:s.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(r){this.logger.error(e.id,\"Load\",\"Failed to load paragraph bookmarks\",r)}}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 r of this.entries.values())if(ur(r.anchor,e.anchor))return r;const t=e.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,s={id:t,label:e.label,anchor:e.anchor,metadata:e.metadata,createdAt:Date.now()};return this.entries.set(t,s),this.notifyAndPersist(),s}removeBookmark(e){var t,s,r;this.entries.delete(e)&&(this.notifyAndPersist(),null==(r=null==(s=null==(t=this.config)?void 0:t.callbacks)?void 0:s.onRemoveSuccess)||r.call(s,e))}async requestRemoveBookmark(t){var s,r;const n=this.entries.get(t);if(!n)return!1;const a=null==(r=null==(s=this.config)?void 0:s.callbacks)?void 0:r.onRequestRemove;if(a)try{if(!(await a(n)))return!1}catch(o){return this.logger.error(e.id,\"RequestRemove\",\"callback failed\",o),!1}return this.removeBookmark(t),!0}updateBookmark(e,t){const s=this.entries.get(e);s&&(this.entries.set(e,{...s,...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[s,r]of this.entries.entries())r.anchor.chapterId===e&&this.entries.delete(s);for(const s of t)s.anchor.chapterId===e&&this.entries.set(s.id,s);this.notifyAndPersist()}notifyAndPersist(){var t,s;const r=this.list();this.change$.emit(r),(null==(s=null==(t=this.config)?void 0:t.callbacks)?void 0:s.persist)&&Promise.resolve(this.config.callbacks.persist(r)).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 s=this.chapterScroll.provides(),r=this.chapterManager.provides();await r.ensureAllSegmentsLoaded(t.anchor.chapterId);let n=t.anchor.globalPageIndex;if(void 0===n){const e=this.chapterManager.provides().getVirtualPageMap().toGlobal(t.anchor.chapterId,t.anchor.localPageIndex);if(!e)return;n=e.globalPageIndex}const a=function(e){if(e.markerAnchor)return e.markerAnchor.y;const t=e.rectPdfCoord;return t.origin.y+t.size.height}(t.anchor);await gr(s,n,a)}};fr.id=\"paragraph-bookmark\";let mr=fr;const vr={manifest:ys,create:e=>new mr(ws,e),reducer:e=>e,initialState:{}},Pr={\"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 Ir{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(Pr);for(const t of this.specs){const s=e[t.toolbarSlot];if(!s)continue;const r={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??[]};s.items=br(s.items,r,t.position)}return e}}function br(e,t,s){return(null==s?void 0:s.after)||(null==s?void 0:s.before)?function(e,t,s){const r=e=>{const n=[];for(const a of e)\"group\"!==a.type?s.before&&a.id===s.before?n.push(t,a):(n.push(a),s.after&&a.id===s.after&&n.push(t)):n.push({...a,items:r(a.items)});return n};return r(e)}(e,t,s):function(e,t){return e.map(e=>\"group\"===e.type?{...e,items:[...e.items,t]}:e)}(e,t)}const Cr={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function wr(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:e,documentId:t})=>{const s=e.getPlugin(\"ui\")?.provides(),r=e.getPlugin(\"interaction-manager\")?.provides();s&&r&&(r.forDocument(t)?.activateDefaultMode(),s.forDocument(t).closeToolbarSlot(\"top\",\"secondary\"),e.getPlugin(U)?.provides().forDocument(t).setLocked((e=>e.getPluginConfig(U).locked??{type:k.None})(e)))},active:({state:e,documentId:t})=>!ie(e.plugins,t,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:e,documentId:t})=>{const s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",t),e.getPlugin(U)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",t),e.getPlugin(U)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",t),e.getPlugin(U)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",t),e.getPlugin(U)?.provides().forDocument(t).setLocked({type:k.None}))},active:({state:e,documentId:t})=>ie(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 s=e.getPlugin(\"ui\")?.provides();s&&(s.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",t),e.getPlugin(U)?.provides().forDocument(t).setLocked({type:k.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>ie(e.plugins,t,\"top\",\"secondary\",\"redaction-toolbar\")}}}function yr(e){const t=e.toolbar??{},s=t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],r=s.length>0,{schema:n,operationRegistry:a}=function(e={}){var t,s,r,n,a,o;const i=new Set(e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),l=new Ir;(null==(t=e.customOperations)?void 0:t.length)&&l.registerAll(e.customOperations);const h=l.buildToolbars(),d={};for(const u of i){if(\"view\"===u)continue;const e=Cr[u];h[e]&&(d[e]=h[e])}const c=function(e){if(0===e.size)return null;const t=(e,t,s)=>({type:\"command-button\",id:`${e}-mode`,commandId:s,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}]}}(i);return c&&(d[\"chapter-editor-main-toolbar\"]=c),(null==(s=e.extend)?void 0:s.toolbars)&&Object.assign(d,e.extend.toolbars),{schema:{id:\"chapter-pdf-editor-ui\",version:\"1.0.0\",toolbars:d,menus:(null==(r=e.extend)?void 0:r.menus)??{},sidebars:(null==(n=e.extend)?void 0:n.sidebars)??{},modals:(null==(a=e.extend)?void 0:a.modals)??{},selectionMenus:(null==(o=e.extend)?void 0:o.selectionMenus)??{}},operationRegistry:l}}({...t,enabledModes:s}),o={...r?wr():{},...r?Sr(a.list()):{},...e.commands??{}},i=[V(H,{initialDocuments:[]}),V(nt,{manifest:e.manifest,overlapStrategy:e.overlapStrategy,passwordProvider:e.passwordProvider,chapterPdfLoader:e.chapterPdfLoader,prefetchChapters:e.prefetchChapters,unloadTimeoutMs:e.unloadTimeoutMs}),V(kt,{placeholderPageHeight:e.placeholderPageHeight,placeholderPageWidth:e.placeholderPageWidth}),V(B),V(j),V(Z),V(Y,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),V(ee),V(T),V(te),V(se),V(re,!1===e.loadDefaultStampLibrary?{manifests:[]}:void 0),V(ne),...Object.keys(o).length>0?[V(ae,{commands:o})]:[],...r?[V(oe),V(le,{schema:n})]:[]];return e.notes&&i.push(V(Cs,{callbacks:e.notes.callbacks,ui:e.features?.notes?.marker})),e.bookmarks&&i.push(V(vr,{callbacks:e.bookmarks.callbacks,ui:e.features?.bookmarks?.marker,hover:e.features?.bookmarks?.hover})),{plugins:i,uiSchema:n,operationRegistry:a}}function Sr(e){const t={};for(const s of e)s.handler&&(t[s.commandId]={id:s.commandId,labelKey:s.i18nKey,label:s.label,icon:s.icon,categories:s.categories,action:({documentId:e})=>{s.handler?.({documentId:e,chapterId:e})}});return t}const xr=De(),Mr={};function $r(e){return yr({...e,toolbar:e.toolbar??{enabledModes:[]},features:De(e.features)})}const Lr={overlapStrategy:{kind:\"first-wins\"},passwordProvider:new ze(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]}};function Dr(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 kr(e){return{...Lr,manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,overlapStrategy:e.overlapStrategy??Lr.overlapStrategy,notes:{callbacks:e.notes},bookmarks:{callbacks:e.bookmarks},features:De(e.features)}}function Ur(e){const t=kr(Dr(e)),{plugins:s}=$r(t);return{plugins:s,features:t.features,editorOptions:t}}function Tr(e){const{features:t,...s}=kr(Dr(e));return s}function Fr(e,t=.5,s=3){return Math.min(s,Math.max(t,e))}function zr(e,t){if(t<=0)return 1;let s=0;for(const r of e.pages){const e=r?.size?.width??0;e>s&&(s=e)}return s<=0?1:t/s}function Ar(e,t){return e<=0?t??0:null==t||t<=0?e:Math.min(t,e)}function Or(e,t,s,r){const n=Ar(t,s);if(n<=0)return r;const a=zr(e,n);return Math.min(r,a)}function Nr(e,t,s){const r=Te(t);if(r){for(const t of r.segments){const r=e.getDocument(t.documentId);r&&s(r,t.documentId)}return}const n=e.getDocument(t.chapterId);n&&s(n,t.chapterId)}function Er(e){return e instanceof HTMLElement?e.clientWidth:0}function Gr(a,o,i){const l=e(a)?a:t(()=>a),{registry:h}=S(),{provides:d}=x(W.id),{provides:c}=x(rt.id),u=s(v()),p=s(u.value),g=s(0),f=()=>o.value?.pageWidth,m=()=>function(e){return null!=e&&e>0}(f()),v=()=>o.value?.initial??1,P=t(()=>function(e,t,s,r,n){if(!e||s<=0)return n;let a=n;for(const o of t.chapters)Nr(e,o,e=>{a=Math.min(a,Or(e,s,r,n))});return a}(d.value,l.value,g.value,f(),o.value?.max??3)),I=t(()=>Math.min(o.value?.min??.5,P.value));let b;function C(e){const t=P.value,s=I.value,r=Fr(e,s,t);p.value=r,u.value=r,function(e,t,s,r=.5,n=3){const a=e?.getStore();if(!a)return;const o=Fr(s,r,n);a.dispatchToCore(_(o));for(const i of t.chapters){const e=Te(i);if(e)for(const t of e.segments)a.getState().core.documents[t.documentId]&&a.dispatchToCore(q(o,t.documentId));else a.getState().core.documents[i.chapterId]&&a.dispatchToCore(q(o,i.chapterId))}}(h.value,l.value,r,s,t)}function w(e){if(!d.value||!c.value)return;const t=c.value.resolvePageDocument(e,0),s=d.value.getDocument(t.documentId);if(!s)return;const r=Ar(g.value,f());r<=0||C(zr(s,r))}function y(e){m()?w(e):C(v())}return r(()=>i?.value,e=>{b?.(),b=e?function(e,t){if(!e||\"undefined\"==typeof ResizeObserver)return()=>{};let s=null;const r=new ResizeObserver(()=>{t(Er(s))}),n=()=>{const n=e.querySelector(\"[data-chapter-scroll-viewport]\");n!==s?(s&&r.unobserve(s),s=n,s?(r.observe(s),t(Er(s))):t(0)):t(Er(s))};n();const a=new MutationObserver(n);a.observe(e,{childList:!0,subtree:!0});const o=requestAnimationFrame(n);return()=>{cancelAnimationFrame(o),a.disconnect(),s&&r.unobserve(s),r.disconnect()}}(e,e=>{g.value=e}):void 0},{immediate:!0}),n(()=>b?.()),r([h,()=>v(),()=>m()],()=>{h.value&&(m()||C(v()))},{immediate:!0}),r(P,e=>{p.value>e&&C(e)}),r([c,l,()=>m(),()=>v()],()=>{const e=c.value;if(e){for(const t of l.value.chapters)\"loaded\"===e.getChapterStatus(t.chapterId)&&y(t.chapterId);return e.onChapterStatusChange(e=>{\"loaded\"===e.status&&y(e.chapterId)})}},{immediate:!0}),r([g,()=>m(),c,l],()=>{if(m()&&!(g.value<=0)&&c.value)for(const e of l.value.chapters)if(\"loaded\"===c.value.getChapterStatus(e.chapterId)){w(e.chapterId);break}}),{scale:u,setScale:C,zoomEnabled:()=>!1!==o.value?.enabled,minZoom:I,maxZoom:P}}function Rr(e,t,s){return Math.min(s,Math.max(t,e))}function Vr(e,t){if(!e||!1===t.enabled)return()=>{};let s=null,r=null,n=0;const a=()=>{const r=e.querySelector(\"[data-chapter-scroll-viewport]\");return!!r&&(s?.(),s=function({container:e,getScale:t,setScale:s,minZoom:r=.5,maxZoom:n=3}){let a=0,o=1,i=null,l=1,h=1;const d=e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),null===i?(h=t(),l=1):clearTimeout(i),l*=1-.01*e.deltaY,l=Rr(l,.1,10),s(Rr(h*l,r,n)),i=setTimeout(()=>{i=null},120))},c=/* @__PURE__ */new Map,u=e=>{if(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size){const[e,s]=[...c.values()];a=Math.hypot(s.x-e.x,s.y-e.y),o=t()}},p=e=>{if(c.has(e.pointerId)&&(c.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===c.size&&a>0)){e.preventDefault();const[t,i]=[...c.values()],l=Math.hypot(i.x-t.x,i.y-t.y);s(Rr(o*(l/a),r,n))}},g=e=>{c.delete(e.pointerId),c.size<2&&(a=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),i&&clearTimeout(i)}}({container:r,getScale:t.getScale,setScale:t.setScale,minZoom:t.minZoom,maxZoom:t.maxZoom}),!0)};return a()||(r=new MutationObserver(()=>{a()&&(r?.disconnect(),r=null)}),r.observe(e,{childList:!0,subtree:!0}),n=requestAnimationFrame(()=>a())),()=>{n&&cancelAnimationFrame(n),r?.disconnect(),s?.()}}const _r={chapters:[]};function qr(e){const a=s(null),{provides:o}=x(rt.id),i=t(()=>o.value?.getManifest()??_r),l=t(()=>e.value?.zoom),{scale:h,setScale:d,zoomEnabled:c,minZoom:u,maxZoom:p}=Gr(i,l,a);return function(e,t){let s=null;r([e,t],()=>{s?.();const r=t.value;s=Vr(e.value??null,{enabled:r.enabled,getScale:r.getScale,setScale:r.setScale,minZoom:r.minZoom,maxZoom:r.maxZoom})},{deep:!0,flush:\"post\"}),n(()=>s?.())}(a,t(()=>({enabled:c(),getScale:()=>h.value,setScale:d,minZoom:u.value,maxZoom:p.value}))),{hostRef:a,scale:h,setScale:d,zoomEnabled:c}}function Wr(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Hr(e,t){return`${e}#s${t}`}function Br(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function jr(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Wr(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const s=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),r=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(s,t),n=Wr(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:Hr(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Zr(e){const[t,s]=e.localPageRange;return s-t+1}function Yr(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Xr(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Yr(t)?t.segmentPageThreshold:null}function Kr(e,t){return`${e}#s${t}`}function Qr(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function Jr(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function en(e){const t=Xr(e);if(!t)return null;const s=Zr(e),r=Jr(s,t),n=Yr(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:Kr(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function tn(e,t){const s=en(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function sn(e,t){const s=en(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function rn(e){var t;const s=Xr(e);if(!s)return[];const r=[],{chapterId:n}=e,a=Zr(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!Yr(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=Jr(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const nn={kind:\"first-wins\"};function an(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}class on{constructor(e){this._pages=e,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const t of e){this._byGlobalNumber.set(t.globalPageNumber,t);let e=this._byChapter.get(t.chapterId);e||(e=[],this._byChapter.set(t.chapterId,e)),e.push(t)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(e){return this._pages[e]??null}byGlobalNumber(e){return this._byGlobalNumber.get(e)??null}toGlobal(e,t){const s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}}function ln(e,t=nn){const s=function(e,t=nn){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,an(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new on(a)}const hn=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=nn,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??nn,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Qr(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Qr(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Qr(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?tn(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?en(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...rn(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=ln(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?en(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=sn(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=tn(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=en(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(Yr(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=Xr(t);if(a){const r=Jr(Zr(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(Yr(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=Qr(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?en(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};hn.id=\"chapter-manager\";let dn=hn;function cn(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 s=0;s<e.items.length;s++){const r=e.items[s],n=t.items[s];if(r.globalPageIndex!==n.globalPageIndex||r.isPlaceholder!==n.isPlaceholder||r.chapterId!==n.chapterId||r.localPageIndex!==n.localPageIndex||r.pdfDocumentId!==n.pdfDocumentId||r.pdfPageIndex!==n.pdfPageIndex||r.offsetTop!==n.offsetTop||r.width!==n.width||r.height!==n.height)return!1}return!0}const un=class extends E{constructor(e,t){super(e,t),this.layoutChange$=G(void 0,cn),this.visibleChange$=G(),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(dn.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),r=s.getChapterStatus(e);if(\"error\"===r||\"password-required\"===r)return!0;const n=s.getChapter(e);if(!n)return!0;const a=function(e,t){const s=jr(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,a)}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;const{chapterId:s}=Br(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const r=this.documentManager.provides();r.getActiveDocumentId()||r.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=Br(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let r=0;r<e;r++){const{width:e,height:n}=this.getPageSize(r);this.offsets[r]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const r of t){const t=this.virtualPageMap.toGlobal(e,r.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===r.width&&n.height===r.height||(this.pageSizes.set(t.globalPageIndex,{width:r.width,height:r.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),r=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!r||0===n.length)return;const a=jr(r),o=this.documentManager.provides(),i=[],l=(e,t,s,r)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<r;o++){const e=a.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(a)for(const h of a.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;l(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=Br(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),r=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),r.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),r.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,s=t+this.viewportEl.clientHeight,r=this.findFirstVisibleIndex(t);let n=r;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const a=[];let o=r,i=-1;for(let l=r;l<n;l++){a.push(l);const e=this.offsets[l],r=e+this.getPageSize(l).height,n=Math.max(0,Math.min(r,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,r=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(r=n,t=n+1):s=n-1}return r}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,r=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=r;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),r=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:r})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var r;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),l=i?null==(r=this.documentManager.provides().getDocument(i.documentId))?void 0:r.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const h=o.height/l.size.height,d=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};un.id=\"chapter-scroll\";let pn=un;const gn=[\"data-global-page-index\",\"data-chapter-id\",\"data-local-page-index\"],fn=/* @__PURE__ */((e,t)=>{const s=e.__vccOpts||e;for(const[r,n]of t)s[r]=n;return s})(/* @__PURE__ */a({__name:\"ChapterScroller\",props:{class:{},style:{}},setup(e){const{provides:t}=x(pn.id),a=s(null),f=s(null);let m=null;const v=()=>{null==m||m(),m=null,t.value&&(t.value.registerViewport(a.value),m=t.value.onLayoutChange(e=>{f.value=e}))};return o(v),n(()=>{var e;null==m||m(),null==(e=t.value)||e.registerViewport(null)}),r(t,v),(e,t)=>{var s,r,n;return i(),l(\"div\",{ref_key:\"containerRef\",ref:a,\"data-chapter-scroll-viewport\":\"\",class:d(e.$props.class),style:h({overflow:\"auto\",overflowX:\"hidden\",position:\"relative\",width:\"100%\",height:\"100%\",...e.$props.style})},[c(\"div\",{style:h({position:\"relative\",width:`${(null==(s=f.value)?void 0:s.totalWidth)??0}px`,height:`${(null==(r=f.value)?void 0:r.totalHeight)??0}px`,margin:\"0 auto\"})},[(i(!0),l(u,null,p((null==(n=f.value)?void 0:n.items)??[],s=>(i(),l(\"div\",{key:s.globalPageIndex,\"data-global-page-index\":s.globalPageIndex,\"data-chapter-id\":s.chapterId,\"data-local-page-index\":s.localPageIndex,style:h({position:\"absolute\",top:`${s.offsetTop}px`,left:\"50%\",transform:\"translateX(-50%)\",width:`${s.width}px`,height:`${s.height}px`,backgroundColor:s.isPlaceholder?\"#f3f4f6\":\"#fff\",boxShadow:\"0 1px 4px rgba(0,0,0,0.08)\"})},[s.isPlaceholder?g(e.$slots,\"placeholder\",{key:0,item:s},()=>[t[0]||(t[0]=c(\"div\",{class:\"chapter-scroll-placeholder\"},\"Loading chapter…\",-1))],!0):g(e.$slots,\"page\",{key:1,item:s},void 0,!0)],12,gn))),128))],4)],6)}}}),[[\"__scopeId\",\"data-v-e9ab4da3\"]]),mn=/* @__PURE__ */a({__name:\"ChapterRenderLayer\",props:{chapterId:{},localPageIndex:{},pdfDocumentId:{},pdfPageIndex:{},scale:{},dpr:{},class:{}},setup(e){const t=e;return(s,r)=>(i(),f(m(me),{\"document-id\":t.pdfDocumentId??t.chapterId,\"page-index\":t.pdfPageIndex??t.localPageIndex,scale:e.scale,dpr:e.dpr,class:d(e.class),style:{pointerEvents:\"none\"}},null,8,[\"document-id\",\"page-index\",\"scale\",\"dpr\",\"class\"]))}});function vn(e){const[t,s]=e.localPageRange;return s-t+1}function Pn(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function In(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Pn(t)?t.segmentPageThreshold:null}function bn(e,t){return`${e}#s${t}`}function Cn(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function wn(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function yn(e){const t=In(e);if(!t)return null;const s=vn(e),r=wn(s,t),n=Pn(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:bn(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Sn(e,t){const s=yn(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function xn(e,t){const s=yn(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function Mn(e){var t;const s=In(e);if(!s)return[];const r=[],{chapterId:n}=e,a=vn(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!Pn(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=wn(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const $n={kind:\"first-wins\"};function Ln(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}let Dn=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 s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}};function kn(e,t=$n){const s=function(e,t=$n){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,Ln(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new Dn(a)}const Un=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=$n,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??$n,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Cn(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Cn(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Cn(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Sn(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?yn(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Mn(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=kn(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?yn(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=xn(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Sn(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=yn(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(Pn(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=In(t);if(a){const r=wn(vn(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(Pn(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=Cn(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?yn(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};Un.id=\"chapter-manager\";let Tn=Un;function Fn(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function zn(e,t){return`${e}#s${t}`}function An(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function On(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Fn(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const s=function(e){const[t,s]=e.localPageRange;return s-t+1}(e),r=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(s,t),n=Fn(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:zn(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Nn(e){const[t,s]=e.localPageRange;return s-t+1}function En(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Gn(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return En(t)?t.segmentPageThreshold:null}function Rn(e,t){return`${e}#s${t}`}function Vn(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const s=e.slice(0,t),r=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(r)||r<0?{chapterId:e,segmentIndex:null}:{chapterId:s,segmentIndex:r}}function _n(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function qn(e){const t=Gn(e);if(!t)return null;const s=Nn(e),r=_n(s,t),n=En(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<r;o++){const r=o*t,i=Math.min(r+t-1,s-1);if(r>=s)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:r,localPageEnd:i,documentId:Rn(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:s,segments:a}}function Wn(e,t){const s=qn(e);if(!s)return{documentId:e.chapterId,pageIndex:t};const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=s.segments[s.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function Hn(e,t){const s=qn(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}function Bn(e){var t;const s=Gn(e);if(!s)return[];const r=[],{chapterId:n}=e,a=Nn(e);s<=0&&r.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!En(o))return r;0===o.urls.length&&r.push(`${n}: source.urls must not be empty`);const i=_n(a,s);o.urls.length!==i&&r.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let l=0;l<o.urls.length;l++)(null==(t=o.urls[l])?void 0:t.trim())||r.push(`${n}: source.urls[${l}] is empty`);return r}const jn={kind:\"first-wins\"};function Zn(e,t,s){if(1===t.length)return t[0].chapterId;switch(s.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const s=t.find(t=>{var s;return null==(s=t.ownedGlobalPages)?void 0:s.includes(e)});return s?s.chapterId:t[0].chapterId}case\"custom\":return s.resolve(e,t)}}class Yn{constructor(e){this._pages=e,this._byChapter=/* @__PURE__ */new Map,this._byGlobalNumber=/* @__PURE__ */new Map;for(const t of e){this._byGlobalNumber.set(t.globalPageNumber,t);let e=this._byChapter.get(t.chapterId);e||(e=[],this._byChapter.set(t.chapterId,e)),e.push(t)}}get totalPages(){return this._pages.length}list(){return this._pages}atIndex(e){return this._pages[e]??null}byGlobalNumber(e){return this._byGlobalNumber.get(e)??null}toGlobal(e,t){const s=this._byChapter.get(e);return s?s.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const s=null==(t=this._byChapter.get(e))?void 0:t[0];return s?this._pages.indexOf(s):-1}}function Xn(e,t=jn){const s=function(e,t=jn){const s=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let r=e;r<=t;r++){const e=s.get(r);e?e.push(n):s.set(r,[n])}}const r=/* @__PURE__ */new Map;for(const[n,a]of s)r.set(n,Zn(n,a,t));return r}(e,t),r=/* @__PURE__ */new Map;for(const i of e.chapters)r.set(i.chapterId,i);const n=Array.from(s.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=s.get(i),t=r.get(e);if(!t)continue;const[n]=t.globalPageRange,[l]=t.localPageRange,h=l+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:h})}return new Yn(a)}const Kn=class e extends E{constructor(e,t){super(e,t),this.statusChange$=G(),this.manifestChange$=R(),this.overlapStrategy=jn,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__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??jn,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Vn(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Vn(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Vn(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const s=this.findChapter(e);return s?Wn(s,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?qn(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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 s=function(e){const t=function(e){const t=[],s=e=>{for(const r of e){const{children:e,...n}=r;t.push(n),(null==e?void 0:e.length)&&s(e)}};return s(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(t);(function(e){var t;for(const s of e)if(null==(t=s.children)?void 0:t.length)return!0;return!1})(t.chapters)&&this.logger.warn(e.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${s.chapters.length} 条(顶层 ${t.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],s=/* @__PURE__ */new Set;for(const r of e.chapters){s.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),s.add(r.chapterId);const[e,n]=r.globalPageRange,[a,o]=r.localPageRange;if(e>n&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const s of r.ownedGlobalPages)(s<e||s>n)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${s} outside range`);t.push(...Bn(r))}return t}(s);r.length>0&&this.logger.warn(e.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(s.chapters.map(e=>e.chapterId));for(const e of n)a.has(e)||(this.closeChapter(e),this.chapterStatus.delete(e),this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e));for(const e of s.chapters)this.chapterStatus.has(e.chapterId)||this.chapterStatus.set(e.chapterId,\"idle\");this.manifest=s,this.virtualPageMap=Xn(s,this.overlapStrategy),this.manifestChange$.emit({manifest:s,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(),s=Math.min(e,this.manifest.chapters.length);for(let r=0;r<s;r++){const e=this.manifest.chapters[r].chapterId;this.chapterLastUsed.set(e,t);const s=this.chapterStatus.get(e)??\"idle\";\"idle\"!==s&&\"closed\"!==s&&\"error\"!==s||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?qn(t):null}isSegmentDocumentOpen(e,t){const s=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!s)return 0===t&&r.isDocumentOpen(e);const n=s.segments[t];return!!n&&r.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!t)return void(s.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const r=t.segments[0];if(r&&s.isDocumentOpen(r.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),s=this.config.prefetchChapters??1,r=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;r.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const s=Hn(t,e.localPageIndex);n.add(`${e.chapterId}:${s}`),n.add(`${e.chapterId}:${s+1}`)}if(0===r.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of r){const e=a.indexOf(i);if(-1!==e)for(let t=e-s;t<=e+s;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,s]=i.split(\":\"),r=Number.parseInt(s,10);e&&Number.isFinite(r)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,r))}if(this.config.autoActivateOnLoad??1){const t=e[0],s=null!=t?this.virtualPageMap.atIndex(t):null;if(s){const e=Wn(this.findChapter(s.chapterId),s.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[s,r]of this.chapterStatus){if(\"loaded\"!==r)continue;t-(this.chapterLastUsed.get(s)??0)>e&&this.closeChapter(s)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const s of t.segments){const t=await this.ensureSegmentLoaded(e,s.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const s=this.findChapter(e);if(!s)return Promise.resolve(\"error\");const r=qn(s);if(!r)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(s);if(t<0||t>=r.segments.length)return Promise.resolve(\"error\");const n=r.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(s,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,s=this.pendingChapterLoadPromises.get(t);if(s)return s;const r=this.chapterStatus.get(t)??\"idle\";if(\"loaded\"===r)return this.chapterLastUsed.set(t,Date.now()),Promise.resolve(\"loaded\");if(\"loading\"===r)return this.waitForTerminalStatus(t);const n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,s=this.chapterUrlsCache.get(t);if(s)return s;const r=this.pendingChapterUrlsPromises.get(t);if(r)return r;const n=(async()=>{const s=e.source;if(En(s)){const e=[...s.urls];return this.chapterUrlsCache.set(t,e),e}const r=this.config.chapterPdfLoader;if(null==r?void 0:r.loadChapterUrls){const s=await r.loadChapterUrls(e);if(!Array.isArray(s)||0===s.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,s),s}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,s){const r=s[t];if(!(null==r?void 0:r.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:s.length,urls:s,url:r};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:r}}async resolvePdfPayload(t,s){const r=t.source,n=this.config.chapterPdfLoader,a=Gn(t);if(a){const r=_n(Nn(t),a);if(s<0||s>=r)throw new Error(`Chapter \"${t.chapterId}\" invalid segmentIndex ${s} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(t);return n.length!==r&&this.logger.warn(e.id,\"SegmentUrlCount\",`Chapter \"${t.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(t,s,n)}if(0!==s)throw new Error(`Chapter \"${t.chapterId}\" is not segmented`);if(r){if(En(r)){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,s,e)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const e=await this.resolveChapterUrls(t);return this.openPayloadFromUrl(t,0,e)}if(null==n?void 0:n.loadPdf)return n.loadPdf(t,s);throw new Error(`Chapter \"${t.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(t,s){var r;const n=t.chapterId,a=(null==s?void 0:s.index)??0,o=(null==s?void 0:s.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const e=t.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(t,a),l=this.documentManager.provides(),h=\"url\"in i?l.openDocumentUrl({documentId:o,url:i.url,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}):l.openDocumentBuffer({documentId:o,buffer:i.buffer,name:s?`${t.title} (${s.index+1})`:t.title,password:e??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{h.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),l.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const t=this.chapterStatus.get(n);if(\"loaded\"!==t&&\"password-required\"!==t){const t=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(e.id,\"LoadChapter\",t,i),0===a&&this.updateStatus(n,\"error\",t)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const s=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(s(this.chapterStatus.get(e)??\"idle\"))return;let r=null;r=this.statusChange$.on(t=>{t.chapterId===e&&s(t.status)&&(null==r||r(),r=null)})})}async handleDocumentError(t,s,r,n){if(r!==N.Password){const e=this.getSegmentPlanForChapter(s),{segmentIndex:r}=Vn(t);return void(e&&0!==r&&null!==r||this.updateStatus(s,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(s,\"password-required\");const a=this.findChapter(s);if(!a)return;const o=(this.passwordAttempts.get(s)??0)+1;this.passwordAttempts.set(s,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(l){this.logger.error(e.id,\"PasswordProvider\",`Provider rejected for ${s}`,l)}if(!i)return void this.updateStatus(s,\"password-required\");this.updateStatus(s,\"loading\");this.documentManager.provides().retryDocument(t,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),s=this.documentManager.provides(),r=t?qn(t):null,n=e=>{if(s.isDocumentOpen(e)){s.closeDocument(e).wait(()=>{},()=>{})}};if(r)for(const a of r.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,s){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&s?{error:{message:s}}:{}}))}};Kn.id=\"chapter-manager\";let Qn=Kn;function Jn(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 s=0;s<e.items.length;s++){const r=e.items[s],n=t.items[s];if(r.globalPageIndex!==n.globalPageIndex||r.isPlaceholder!==n.isPlaceholder||r.chapterId!==n.chapterId||r.localPageIndex!==n.localPageIndex||r.pdfDocumentId!==n.pdfDocumentId||r.pdfPageIndex!==n.pdfPageIndex||r.offsetTop!==n.offsetTop||r.width!==n.width||r.height!==n.height)return!1}return!0}const ea=class extends E{constructor(e,t){super(e,t),this.layoutChange$=G(void 0,Jn),this.visibleChange$=G(),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(Qn.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const s=this.chapterManager.provides(),r=s.getChapterStatus(e);if(\"error\"===r||\"password-required\"===r)return!0;const n=s.getChapter(e);if(!n)return!0;const a=function(e,t){const s=On(e);if(!s)return 0;const r=s.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==r?void 0:r.index)??Math.floor(t/s.threshold)}(n,t);return!s.isSegmentLoaded(e,a)}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;const{chapterId:s}=An(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0))return;const r=this.documentManager.provides();r.getActiveDocumentId()||r.setActiveDocument(e),this.harvestChapterSizes(s),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:s}=An(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(s).length)??0)&&(this.dropChapterSizes(s),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,s)=>this.scrollToGlobalPdfPoint(e,t,s),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,s=0;for(let r=0;r<e;r++){const{width:e,height:n}=this.getPageSize(r);this.offsets[r]=t,t+=n+this.config.pageGap,e>s&&(s=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=s,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let s=!1;for(const r of t){const t=this.virtualPageMap.toGlobal(e,r.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===r.width&&n.height===r.height||(this.pageSizes.set(t.globalPageIndex,{width:r.width,height:r.height}),s=!0)}if(s){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const s=(this.offsets[e]??0)-t;0!==s&&(this.viewportEl.scrollTop+=s)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const s=this.chapterManager.provides(),r=s.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!r||0===n.length)return;const a=On(r),o=this.documentManager.provides(),i=[],l=(e,t,s,r)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const l=this.getDocumentScale(e);for(let o=0;o<r;o++){const e=a.pages[s+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*l,height:e.size.height*l})}return i.length>0};if(a)for(const h of a.segments){if(!s.isSegmentLoaded(e,h.index))continue;const t=h.localPageEnd-h.localPageStart+1;l(h.documentId,h.localPageStart,0,t)}else s.isSegmentLoaded(e,0)&&l(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:s}=An(e);this.chapterManager.provides().getChapter(s)&&this.harvestChapterSizes(s)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const s of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(s.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 s=()=>this.recomputeVisible(),r=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",s,{passive:!0}),r.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",s),r.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,s=t+this.viewportEl.clientHeight,r=this.findFirstVisibleIndex(t);let n=r;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=s)break;n++}const a=[];let o=r,i=-1;for(let l=r;l<n;l++){a.push(l);const e=this.offsets[l],r=e+this.getPageSize(l).height,n=Math.max(0,Math.min(r,s)-Math.max(e,t));n>i&&(i=n,o=l)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,s=this.offsets.length-1,r=0;for(;t<=s;){const n=t+s>>1;this.offsets[n]<=e?(r=n,t=n+1):s=n-1}return r}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),s=this.currentVisible[this.currentVisible.length-1]??-1,r=Math.min(this.offsets.length-1,(s>=0?s:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=r;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),s=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),r=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==s?void 0:s.documentId,pdfPageIndex:null==s?void 0:s.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:r})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const s=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:s,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,s){var r;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==s?void 0:s.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,s);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),l=i?null==(r=this.documentManager.provides().getDocument(i.documentId))?void 0:r.pages[i.pageIndex]:void 0;if(!o||!l)return void this.scrollToIndex(e,s);const h=o.height/l.size.height,d=(this.offsets[e]??0)+t*h-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==s?void 0:s.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.firstIndexOfChapter(e);s<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(s,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const s=this.virtualPageMap.byGlobalNumber(e);s&&this.scrollToIndex(s.globalPageIndex,t)}};ea.id=\"chapter-scroll\";let ta=ea;const sa=class e extends E{constructor(e,t){super(e,t),this.notesChange$=G([]),this.noteActivated$=R(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(ta.id),this.chapterManager=this.registry.getPlugin(Tn.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(s){this.logger.error(e.id,\"LoadNotes\",\"Failed to load notes\",s)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(s=>s.chapterId===e&&s.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,s;const r=this.notes.get(e);r&&(null==(s=(t=this.config.callbacks).onActivateNote)||s.call(t,e,r),this.noteActivated$.emit({noteId:e,anchor:r}))}listAll(){return Array.from(this.notes.values())}listNotesForChapter(e){return this.listAll().filter(t=>t.chapterId===e)}replaceNotesForChapter(e,t){for(const[s,r]of this.notes.entries())r.chapterId===e&&this.notes.delete(s);for(const s of t)s.chapterId===e&&this.notes.set(s.noteId,s);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:na(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:s,onCreateNote:r}=this.config.callbacks;return s?(s({draft:t,complete:async e=>{const s={...t,noteId:e};this.registerNote(s)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(t){if(0===t.rectsPdfCoord.length)return null;const s=this.buildDraft(t),r=this.config.callbacks.onCreateNote;if(!r)return this.logger.error(e.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let n=null;try{n=await r(s)}catch(o){return this.logger.error(e.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!n)return null;const a={...s,noteId:n.noteId};return this.registerNote(a),a}async deleteNote(t){var s,r;if(this.notes.has(t)){try{await(null==(r=(s=this.config.callbacks).onDeleteNote)?void 0:r.call(s,t))}catch(n){return void this.logger.error(e.id,\"OnDeleteNote\",\"Callback failed\",n)}this.notes.delete(t),this.notesChange$.emit(this.listAll())}}async updateNoteContent(t,s){var r,n;const a=this.notes.get(t);if(!a)return;const o={...a,content:s};try{await(null==(n=(r=this.config.callbacks).onUpdateNote)?void 0:n.call(r,o))}catch(i){return void this.logger.error(e.id,\"OnUpdateNote\",\"Callback failed\",i)}this.notes.set(t,o),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const s=this.notes.get(e);if(!s)return;const r=this.chapterScroll.provides(),n=this.chapterManager.provides();await n.ensureAllSegmentsLoaded(s.chapterId);const a=n.resolvePageDocument(s.chapterId,s.localPageIndex);(null==(t=this.documentManager.provides().getDocument(a.documentId))?void 0:t.pages[a.pageIndex])?(r.scrollToGlobalPageIndex(s.globalPageIndex),await this.waitForPageInLayout(s.globalPageIndex),r.scrollToGlobalPdfPoint(s.globalPageIndex,s.endAnchor.y,{marginTop:80})):r.scrollToGlobalPageIndex(s.globalPageIndex)}waitForPageInLayout(e){const t=this.chapterScroll.provides(),s=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const r=setTimeout(()=>{n(),s(null)},2500),n=t.onLayoutChange(t=>{const a=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);a&&(clearTimeout(r),n(),s(a))})})}};sa.id=\"note\";let ra=sa;function na(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function aa(e){const{markerPdf:t,lineRects:s,sx:r,sy:n,cssPageWidth:a,iconSize:o,gapPx:i=6}=e,l=s?.length?s[s.length-1]:void 0;let h,d;l?(h=(l.origin.x+l.size.width)*r+i,d=l.origin.y*n+(l.size.height*n-o)/2):(h=t.x*r-o/2,d=t.y*n-o-i);const c=Math.max(0,a-o-2);return h>c&&(h=c),d<0&&(d=0),{left:h,top:d}}const oa={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\",zIndex:25}},ia=[\"onMouseenter\"],la=[\"data-note-marker-zone\",\"onMouseenter\",\"onMouseleave\"],ha=[\"onClick\"],da=[\"onClick\"],ca=[\"onClick\"],ua=/* @__PURE__ */a({__name:\"NoteMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const a=e,{provides:o}=x(ra.id),d=s([]),g=s(null),f=s(null);r(o,e=>{if(e)return e.onNotesChange(e=>{d.value=e.filter(e=>e.chapterId===a.chapterId&&e.localPageIndex===a.localPageIndex)})},{immediate:!0});let I=null;r(f,e=>{I&&(document.removeEventListener(\"mousedown\",I),I=null),e&&(I=t=>{const s=t.target;s.closest?.(`[data-note-marker-zone=\"${e}\"]`)||(f.value=null,g.value=null)},document.addEventListener(\"mousedown\",I))}),n(()=>{I&&document.removeEventListener(\"mousedown\",I)});const b=t(()=>a.ui?.iconSize??16),C=t(()=>a.ui?.highlightColor??\"rgba(245, 158, 11, 0.08)\");function w(e){const t=a.cssPageWidth/a.pdfPageWidth,s=a.cssPageHeight/a.pdfPageHeight,r=b.value,{left:n,top:o}=aa({markerPdf:e.endAnchor,lineRects:e.rectsPdfCoord,sx:t,sy:s,cssPageWidth:a.cssPageWidth,iconSize:r}),i=function(e,t,s){let r=1/0,n=1/0,a=-1/0,o=-1/0;for(const i of e)r=Math.min(r,i.origin.x*t),n=Math.min(n,i.origin.y*s),a=Math.max(a,(i.origin.x+i.size.width)*t),o=Math.max(o,(i.origin.y+i.size.height)*s);return{left:r,top:n,width:a-r,height:o-n}}(e.rectsPdfCoord,t,s),l=f.value===e.noteId?72:0,h=Math.max(0,Math.min(i.left,n)-8),d=Math.max(0,Math.min(i.top,o)-8);return{zoneLeft:h,zoneTop:d,zoneW:Math.min(a.cssPageWidth,Math.max(i.left+i.width,n+r)+8)-h,zoneH:Math.max(i.top+i.height,o+r+6+l)+8-d,iconLeft:n,iconTop:o,sx:t,sy:s}}return(t,s)=>m(o)&&d.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(i(),l(\"div\",oa,[(i(!0),l(u,null,p(d.value,e=>(i(),l(u,{key:e.noteId},[(i(!0),l(u,null,p(e.rectsPdfCoord,(t,s)=>(i(),l(\"div\",{key:`${e.noteId}-bg-${s}`,style:h({position:\"absolute\",left:t.origin.x*w(e).sx+\"px\",top:t.origin.y*w(e).sy+\"px\",width:t.size.width*w(e).sx+\"px\",height:t.size.height*w(e).sy+\"px\",background:C.value,borderRadius:\"2px\",pointerEvents:\"auto\"}),onMouseenter:t=>g.value=e.noteId},null,44,ia))),128)),g.value===e.noteId||f.value===e.noteId?(i(),l(\"div\",{key:0,\"data-note-marker-zone\":e.noteId,style:h({position:\"absolute\",left:`${w(e).zoneLeft}px`,top:`${w(e).zoneTop}px`,width:`${w(e).zoneW}px`,height:`${w(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:w(e).iconLeft-w(e).zoneLeft+\"px\",top:w(e).iconTop-w(e).zoneTop+\"px\",width:`${b.value}px`,height:`${b.value}px`,border:\"none\",borderRadius:\"50%\",background:\"#f59e0b\",color:\"#fff\",cursor:\"pointer\",fontSize:\"11px\",padding:0}),onMousedown:s[0]||(s[0]=v(()=>{},[\"stop\"])),onClick:v(t=>f.value=f.value===e.noteId?null:e.noteId,[\"stop\"])},\" 💬 \",44,ha),f.value===e.noteId?(i(),l(\"div\",{key:0,style:h({position:\"absolute\",left:w(e).iconLeft-w(e).zoneLeft+\"px\",top:`${w(e).iconTop-w(e).zoneTop+b.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:s[1]||(s[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){o.value?.requestEditNote(e.noteId,e)}(e)},\" 编辑 \",8,da),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 s=e.noteId,o.value?.requestDeleteNote(s),void(f.value=null);var s}},\" 删除 \",8,ca)],36)):P(\"\",!0)],44,la)):P(\"\",!0)],64))),128))])):P(\"\",!0)}}),pa={key:0,style:{position:\"absolute\",inset:\"0\",pointerEvents:\"none\"}},ga=[\"title\",\"onClick\"],fa=[\"onClick\"],ma=/* @__PURE__ */a({__name:\"BookmarkMarkerLayer\",props:{chapterId:{},localPageIndex:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},ui:{}},setup(e){const a=e,{provides:o}=x(mr.id),d=s([]),g=s(null),f=s(null);function I(){const e=o.value;e&&(d.value=e.listBookmarks().filter(e=>e.anchor.chapterId===a.chapterId&&e.anchor.localPageIndex===a.localPageIndex))}r(o,e=>{if(e)return I(),e.onBookmarksChange(I)},{immediate:!0});let b=null;r(g,e=>{b&&(document.removeEventListener(\"mousedown\",b),b=null),e&&(b=e=>{f.value?.contains(e.target)||(g.value=null)},document.addEventListener(\"mousedown\",b))}),n(()=>{b&&document.removeEventListener(\"mousedown\",b)});const C=t(()=>a.ui?.iconSize??16);function w(e){const{left:t,top:s}=function(e){const t=a.cssPageWidth/a.pdfPageWidth,s=a.cssPageHeight/a.pdfPageHeight,r=e.anchor.rectsPdfCoord?.length?e.anchor.rectsPdfCoord:[e.anchor.rectPdfCoord];return aa({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:r,sx:t,sy:s,cssPageWidth:a.cssPageWidth,iconSize:C.value})}(e);return{position:\"absolute\",left:`${Math.max(0,t-6)}px`,top:`${Math.max(0,s-6)}px`,width:`${C.value+12}px`,height:`${C.value+12}px`,pointerEvents:\"auto\",zIndex:20}}return(t,s)=>m(o)&&d.value.length&&e.pdfPageWidth&&e.pdfPageHeight?(i(),l(\"div\",pa,[(i(!0),l(u,null,p(d.value,e=>(i(),l(\"div\",{key:e.id,style:h(w(e)),onMousedown:s[1]||(s[1]=v(()=>{},[\"stop\"]))},[c(\"button\",{type:\"button\",title:e.label,style:h({position:\"absolute\",left:\"6px\",top:\"6px\",width:`${C.value}px`,height:`${C.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,ga),g.value===e.id?(i(),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:s[0]||(s[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=o.value;if(!t)return;await t.requestRemoveBookmark(e)&&(g.value=null)}(e.id)},\" 删除书签 \",8,fa)],512)):P(\"\",!0)],36))),128))])):P(\"\",!0)}});function va(e){return e.pdfDocumentId??e.chapterId}function Pa(e){return e.pdfPageIndex??e.localPageIndex}function Ia(e,t){e.wait(t,()=>{})}async function ba(e){const t=e.trim();if(!t)return!1;try{if(\"undefined\"!=typeof navigator&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(t),!0}catch{}if(\"undefined\"==typeof document)return!1;try{const e=document.createElement(\"textarea\");e.value=t,e.setAttribute(\"readonly\",\"\"),e.style.position=\"fixed\",e.style.left=\"-9999px\",document.body.appendChild(e),e.select();const s=document.execCommand(\"copy\");return document.body.removeChild(e),s}catch{return!1}}const Ca={display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"4px 8px\",borderRadius:\"8px\",background:\"#ffffff\",border:\"1px solid rgba(15, 23, 42, 0.08)\",boxShadow:\"0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 10px 24px -4px rgba(15, 23, 42, 0.12)\"},wa={padding:\"6px 12px\",fontSize:\"12px\",fontWeight:\"500\",border:\"none\",borderRadius:\"6px\",background:\"transparent\",color:\"#dc2626\",cursor:\"pointer\"};function ya(e,s){const{provides:r}=pe(),n=s?.markup?.annotationMenu,a=!1!==s?.markup?.enabled,o=!1!==n?.enabled;return t(()=>{const t=\"string\"==typeof e?e:e.value;if(a&&o&&r.value)return e=>{const{context:s,rect:a,placement:o,menuWrapperProps:i,selected:l}=e;if(!l||\"annotation\"!==s.type)return I(\"span\",i);if(s.structurallyLocked)return I(\"span\",i);if(h=s.annotation.object.type,!$e.has(h))return I(\"span\",i);var h;const d=r.value.forDocument(t),{pageIndex:c,id:u}=s.annotation.object,p=()=>{d?.deleteAnnotation(c,u)},g={position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:o?.suggestTop?void 0:`${a.size.height+8}px`,bottom:o?.suggestTop?`${a.size.height+8}px`:void 0},f=n?.renderMenu?n.renderMenu({pageIndex:c,annotationId:u,onDelete:p}):I(\"button\",{type:\"button\",style:wa,onClick:p},\"删除\");return I(\"div\",i,[I(\"div\",{style:g},[I(\"div\",{style:Ca,role:\"toolbar\",\"aria-label\":\"划线标注\"},[f])])])}})}const Sa=/* @__PURE__ */a({__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 s=e,n=t(()=>va(s.item)),a=t(()=>Pa(s.item));!function(e){const{provides:t}=x(W.id);r([t,e],([e,t])=>{e&&t&&e.isDocumentOpen(t)&&e.setActiveDocument(t)},{immediate:!0})}(n);const{provides:o}=x(W.id),{provides:l}=x(X.id),d=t(()=>o.value?.getDocument(n.value)?.pages[a.value]);function c(e,t){const r=s.createNote.value;if(r&&!1!==s.features?.notes?.enabled&&!1!==s.features?.selectionToolbar?.enabled)return s=>{const n={position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:s.placement?.suggestTop?-40:s.rect.size.height+8};return I(\"div\",s.menuWrapperProps,[I(\"div\",{style:n},I(\"button\",{type:\"button\",style:{padding:\"6px 10px\",fontSize:\"12px\",border:\"1px solid #e2e8f0\",borderRadius:\"6px\",background:\"#fff\",cursor:\"pointer\"},onClick:()=>{if(!l.value)return;const s=l.value.getHighlightRectsForPage(Pa(e),t);Ia(l.value.getSelectedText(t),t=>{r(function(e,t,s){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageIndex:e.globalPageIndex,globalPageNumber:e.globalPageNumber,rectsPdfCoord:t,selectedText:s}}(e,s,t.join(\"\\n\")))})}},\"添加附注\"))])}}const u=t(()=>{const e=s.buildSelectionMenu,t={item:s.item,defaultMenu:c(s.item,n.value),createNote:s.createNote.value};if(e){const s=e(t);if(s)return s}return t.defaultMenu}),p=ya(n,s.features),v=t(()=>function(e,t){if(e||t)return s=>{if(e){const t=e(s);if(null!=t)return t}return t?.(s)??null}}(s.annotationSelectionMenu,p.value)),y=t(()=>s.renderPageOverlay?.(s.item)),S=t(()=>function(e){const t=null==e?void 0:e.selectionBackground;if(t)return{background:t}}(s.features?.selectionToolbar));return(t,s)=>e.item.isPlaceholder?P(\"\",!0):(i(),f(m(he),{key:0,\"document-id\":n.value},{default:b(()=>[C(m(ce),{\"document-id\":n.value,\"page-index\":a.value,style:{backgroundColor:\"#fff\"}},{default:b(()=>[C(m(de),{\"document-id\":n.value,\"page-index\":a.value,style:h(m(Ie)),onPointerdown:m(be)},{default:b(()=>[C(m(mn),{\"chapter-id\":e.item.chapterId,\"local-page-index\":e.item.localPageIndex,\"pdf-document-id\":n.value,\"pdf-page-index\":a.value},null,8,[\"chapter-id\",\"local-page-index\",\"pdf-document-id\",\"pdf-page-index\"]),C(m(ue),{\"document-id\":n.value,\"page-index\":a.value,\"text-style\":S.value,\"selection-menu\":u.value},null,8,[\"document-id\",\"page-index\",\"text-style\",\"selection-menu\"]),e.showRedactionLayer?(i(),f(m(fe),{key:0,\"document-id\":n.value,\"page-index\":a.value,\"selection-menu\":e.redactionSelectionMenu},null,8,[\"document-id\",\"page-index\",\"selection-menu\"])):P(\"\",!0),C(m(ge),{\"document-id\":n.value,\"page-index\":a.value,\"selection-menu\":v.value},null,8,[\"document-id\",\"page-index\",\"selection-menu\"]),e.showBookmarkMarkers&&d.value?(i(),f(ma,{key:1,\"chapter-id\":e.item.chapterId,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":d.value.size.width,\"pdf-page-height\":d.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\"])):P(\"\",!0),y.value?(i(),f(w(y.value),{key:2})):P(\"\",!0),e.showNoteMarkers&&d.value?(i(),f(ua,{key:3,\"chapter-id\":e.item.chapterId,\"local-page-index\":e.item.localPageIndex,\"pdf-page-width\":d.value.size.width,\"pdf-page-height\":d.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\"])):P(\"\",!0),g(t.$slots,\"default\")]),_:3},8,[\"document-id\",\"page-index\",\"style\",\"onPointerdown\"])]),_:3},8,[\"document-id\",\"page-index\"])]),_:3},8,[\"document-id\"]))}});const xa=/* @__PURE__ */a({__name:\"HoverBookmarkLayer\",props:{item:{},pdfPageWidth:{},pdfPageHeight:{},cssPageWidth:{},cssPageHeight:{},hoverUi:{}},setup(e){const a=e,o=t(()=>va(a.item)),{provides:d}=x(X.id),{provides:u}=x(mr.id),p=s(null),g=s(null),f=s(null),I=s(null),b=t(()=>a.hoverUi?.iconSize??16),C=t(()=>I.value??f.value);let w=null,y=0;function S(){const e=d.value;if(!e)return;const t=e.forDocument(o.value).getState().geometry[a.item.localPageIndex];t&&(g.value=t)}r([d,o,()=>a.item.localPageIndex],([e])=>{if(w?.(),w=null,cancelAnimationFrame(y),g.value=null,!e)return;const t=e.forDocument(o.value);w=t.onSelectionChange(S);let s=!1;const r=()=>{if(!s){try{if(S(),t.getState().geometry[a.item.localPageIndex])return}catch{}y=requestAnimationFrame(r)}};return r(),()=>{s=!0,cancelAnimationFrame(y),w?.(),w=null}},{immediate:!0});let M=null;r([g,()=>a.pdfPageWidth,I,d],()=>{M&&(document.removeEventListener(\"mousemove\",M),M=null),g.value&&a.pdfPageWidth&&(M=e=>{if(I.value)return;const t=d.value;if(t)try{if(t.forDocument(o.value).getState().selecting)return void(f.value=null)}catch{}const s=p.value;if(!s)return;const r=s.getBoundingClientRect();if(e.clientX<r.left||e.clientX>r.right||e.clientY<r.top||e.clientY>r.bottom)return void(f.value=null);const n=function(e,t){const s=K(e,t);if(s<0)return null;const r=Q(e,s);if(!r)return null;const n=J(e,r.from,r.to);return 0===n.length?null:{lineRects:n,charFrom:r.from,charTo:r.to}}(g.value,{x:(e.clientX-r.left)/(a.cssPageWidth/a.pdfPageWidth),y:(e.clientY-r.top)/(a.cssPageHeight/a.pdfPageHeight)});f.value=n?.lineRects??null},document.addEventListener(\"mousemove\",M))},{immediate:!0}),n(()=>{M&&document.removeEventListener(\"mousemove\",M),cancelAnimationFrame(y),w?.()});const $=t(()=>{const e=C.value;return e?.length?pr(a.item.chapterId,a.item.localPageIndex,e,{globalPageIndex:a.item.globalPageIndex,globalPageNumber:a.item.globalPageNumber}):null}),L=t(()=>{const e=$.value,t=u.value;return!(!e||!t)&&t.listBookmarks().some(t=>ur(t.anchor,e))});function D(){const e=u.value,t=$.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,I.value=null)}const k=t(()=>{const e=C.value,t=e?.[e.length-1];if(!t||!a.pdfPageWidth)return null;const s=a.cssPageWidth/a.pdfPageWidth,r=a.cssPageHeight/a.pdfPageHeight,n=b.value;return{iconLeft:Math.min((t.origin.x+t.size.width)*s+6,Math.max(0,a.cssPageWidth-n-2)),iconTop:t.origin.y*r+(t.size.height*r-n)/2,zoneLeft:Math.max(0,(t.origin.x+t.size.width)*s-4),zoneTop:Math.max(0,t.origin.y*r-4),size:n}});return(t,s)=>m(u)&&e.pdfPageWidth&&e.pdfPageHeight?(i(),l(\"div\",{key:0,ref_key:\"rootRef\",ref:p,style:{position:\"absolute\",inset:\"0\",zIndex:14,pointerEvents:\"none\"}},[k.value&&C.value&&!L.value?(i(),l(\"div\",{key:0,style:h({position:\"absolute\",left:`${k.value.zoneLeft}px`,top:`${k.value.zoneTop}px`,width:`${k.value.size+20}px`,height:`${(C.value[C.value.length-1]?.size.height??0)*(e.cssPageHeight/e.pdfPageHeight)+k.value.size+12}px`,pointerEvents:\"auto\"}),onMouseenter:s[0]||(s[0]=e=>I.value=C.value),onMouseleave:s[1]||(s[1]=e=>I.value=null)},[c(\"button\",{type:\"button\",title:\"添加书签\",style:h({position:\"absolute\",left:k.value.iconLeft-k.value.zoneLeft+\"px\",top:k.value.iconTop-k.value.zoneTop+\"px\",width:`${k.value.size}px`,height:`${k.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(D,[\"stop\"])},\" 🔖 \",4)],36)):P(\"\",!0)],512)):P(\"\",!0)}}),Ma={key:0,width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"\"},$a={key:1,width:\"24\",height:\"24\",viewBox:\"0 0 28 28\",fill:\"none\",\"aria-hidden\":\"\"},La={key:0,x:\"5\",y:\"4\",width:\"18\",height:\"20\",rx:\"3\",fill:\"#fde047\"},Da={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\"},Ua={key:3,d:\"M5 14h18\",stroke:\"#dc2626\",\"stroke-width\":\"2.2\",\"stroke-linecap\":\"round\"},Ta={key:2,width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"\"},Fa=/* @__PURE__ */a({__name:\"SelectionToolbarIcons\",props:{kind:{}},setup:e=>(t,s)=>\"copy\"===e.kind?(i(),l(\"svg\",Ma,[...s[0]||(s[0]=[c(\"rect\",{x:\"8.5\",y:\"8.5\",width:\"11\",height:\"13\",rx:\"2.25\",fill:\"#f1f5f9\",stroke:\"#94a3b8\",\"stroke-width\":\"1.35\"},null,-1),c(\"rect\",{x:\"4.5\",y:\"3.5\",width:\"11\",height:\"13\",rx:\"2.25\",fill:\"#ffffff\",stroke:\"#334155\",\"stroke-width\":\"1.5\"},null,-1),c(\"path\",{d:\"M7.5 7h5.5a1.5 1.5 0 0 1 1.5 1.5V14\",stroke:\"#64748b\",\"stroke-width\":\"1.2\",\"stroke-linecap\":\"round\"},null,-1)])])):\"note\"!==e.kind?(i(),l(\"svg\",$a,[\"highlight\"===e.kind?(i(),l(\"rect\",La)):P(\"\",!0),s[1]||(s[1]=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?(i(),l(\"path\",Da)):\"squiggly\"===e.kind?(i(),l(\"path\",ka)):\"strikeout\"===e.kind?(i(),l(\"path\",Ua)):P(\"\",!0)])):(i(),l(\"svg\",Ta,[...s[2]||(s[2]=[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)])]))}),za=[\"title\",\"aria-label\",\"onMouseenter\",\"onClick\"],Aa=[\"title\",\"onMouseenter\",\"onClick\"],Oa={style:{\"font-size\":\"11px\",\"font-weight\":\"600\"}},Na=/* @__PURE__ */a({__name:\"SelectionToolbarCard\",props:{placementAbove:{type:Boolean},anchorHeight:{},hiddenBuiltinActions:{},extraActions:{},renderCopyIcon:{type:Function}},emits:[\"action\"],setup(e,{emit:r}){const n=e,a=r,o=[{id:\"highlight\",label:\"高亮背景\"},{id:\"underline\",label:\"下划线\"},{id:\"squiggly\",label:\"波浪线\"},{id:\"strikeout\",label:\"删除线\"}],d=t(()=>new Set(n.hiddenBuiltinActions??[])),g=t(()=>!d.value.has(\"copy\")),m=t(()=>o.filter(e=>!d.value.has(e.id))),v=t(()=>!d.value.has(\"note\")),I=t(()=>[...n.extraActions??[]].sort((e,t)=>(e.order??0)-(t.order??0))),b=t(()=>m.value.length>0||I.value.length>0),S=s(null),x=t(()=>({position:\"absolute\",pointerEvents:\"auto\",left:\"50%\",transform:\"translateX(-50%)\",top:n.placementAbove?void 0:`${n.anchorHeight+10}px`,bottom:n.placementAbove?`${n.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 M(e,t=!1){return{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"32px\",height:\"32px\",padding:0,margin:0,border:\"none\",borderRadius:\"8px\",background:S.value===e?t?\"#fffbeb\":\"#f1f5f9\":\"transparent\",color:t?\"#b45309\":\"#334155\",cursor:\"pointer\",flexShrink:0,WebkitAppearance:\"none\",appearance:\"none\"}}const $={width:\"1px\",height:\"20px\",margin:\"0 4px\",background:\"rgba(15, 23, 42, 0.1)\",flexShrink:0};return(t,s)=>(i(),l(\"div\",{role:\"toolbar\",\"aria-label\":\"选区工具\",style:h(x.value)},[g.value?(i(),l(u,{key:0},[c(\"button\",{type:\"button\",title:\"复制\",\"aria-label\":\"复制\",style:h(M(\"copy\")),onMouseenter:s[0]||(s[0]=e=>S.value=\"copy\"),onMouseleave:s[1]||(s[1]=e=>S.value=null),onClick:s[2]||(s[2]=e=>a(\"action\",\"copy\"))},[e.renderCopyIcon?(i(),f(w(e.renderCopyIcon),{key:0})):(i(),f(Fa,{key:1,kind:\"copy\"}))],36),b.value?(i(),l(\"span\",{key:0,style:$,\"aria-hidden\":\"\"})):P(\"\",!0)],64)):P(\"\",!0),(i(!0),l(u,null,p(m.value,e=>(i(),l(\"button\",{key:e.id,type:\"button\",title:e.label,\"aria-label\":e.label,style:h(M(e.id)),onMouseenter:t=>S.value=e.id,onMouseleave:s[3]||(s[3]=e=>S.value=null),onClick:t=>a(\"action\",e.id)},[C(Fa,{kind:e.id},null,8,[\"kind\"])],44,za))),128)),(i(!0),l(u,null,p(I.value,e=>(i(),l(\"button\",{key:e.id,type:\"button\",title:e.label,style:h(M(e.id)),onMouseenter:t=>S.value=e.id,onMouseleave:s[4]||(s[4]=e=>S.value=null),onClick:t=>a(\"action\",e.id)},[c(\"span\",Oa,y(e.label.slice(0,2)),1)],44,Aa))),128)),v.value?(i(),l(u,{key:1},[b.value||g.value?(i(),l(\"span\",{key:0,style:$,\"aria-hidden\":\"\"})):P(\"\",!0),c(\"button\",{type:\"button\",title:\"添加笔记\",\"aria-label\":\"添加笔记\",style:h(M(\"note\",!0)),onMouseenter:s[5]||(s[5]=e=>S.value=\"note\"),onMouseleave:s[6]||(s[6]=e=>S.value=null),onClick:s[7]||(s[7]=e=>a(\"action\",\"note\"))},[C(Fa,{kind:\"note\"})],36)],64)):P(\"\",!0)],4))}}),Ea={highlight:\"highlight\",underline:\"underline\",squiggly:\"squiggly\",strikeout:\"strikeout\"};const Ga=/* @__PURE__ */a({__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 s=e,r=t(()=>s.features),{hostRef:n}=qr(r),a=t(()=>({background:s.features?.scrollViewport?.background??Ce})),o=function(){const{registry:e}=S();return t(()=>{const t=e.value?.getPlugin(Is.id)?.provides?.();return t?e=>t.createNoteFromSelection(e):null})}(),c=function(){const{registry:e}=S();return t(()=>!!e.value?.getPlugin(Is.id))}(),u=function(){const{registry:e}=S();return t(()=>!!e.value?.getPlugin(mr.id))}(),p=t(()=>s.showNoteMarkers&&c.value&&!1!==s.features?.notes?.enabled),f=t(()=>s.showBookmarkMarkers&&u.value&&!1!==s.features?.bookmarks?.enabled),v=t(()=>u.value&&!1!==s.features?.bookmarks?.enabled),P=function(e,s){const r=t(()=>e()?.selectionToolbar),n=t(()=>!1!==e()?.markup?.enabled),a=t(()=>!1!==e()?.notes?.enabled),o=t(()=>!r.value?.hiddenBuiltinActions?.includes(\"copy\")),{provides:i}=x(X.id),{provides:l}=x(F.id),{provides:h}=x(Is.id);return t(()=>{if(!1!==r.value?.enabled&&(n.value||a.value||o.value||r.value?.extraActions?.length))return t=>{const d=va(t.item),c=Pa(t.item);return u=>I(\"div\",u.menuWrapperProps,I(Na,{placementAbove:!!u.placement?.suggestTop,anchorHeight:u.rect.size.height,hiddenBuiltinActions:r.value?.hiddenBuiltinActions,extraActions:r.value?.extraActions,renderCopyIcon:r.value?.renderCopyIcon,onAction:r=>{if(\"copy\"!==r)if(\"highlight\"!==r&&\"underline\"!==r&&\"squiggly\"!==r&&\"strikeout\"!==r){if(\"note\"===r){if(!i.value||!h.value||!a.value)return;const e=i.value.getHighlightRectsForPage(c,d);return void Ia(i.value.getSelectedText(d),s=>{h.value?.requestCreateFromSelection({chapterId:t.item.chapterId,localPageIndex:t.item.localPageIndex,globalPageIndex:t.item.globalPageIndex,globalPageNumber:t.item.globalPageNumber,rectsPdfCoord:e,selectedText:s.join(\"\\n\")})})}s?.onExtraAction?.(r,t)}else{if(!i.value||!l.value||!n.value)return;Me(d,Ea[r],l.value,i.value,e()?.markup?.styles)}else{if(!i.value||!o.value)return;Ia(i.value.getSelectedText(d),e=>{ba(e.join(\"\\n\"))})}}}))}})}(()=>s.features,{onExtraAction:s.onExtraSelectionAction}),w=t(()=>{if(s.buildSelectionMenu||P.value)return e=>{const t=P.value?P.value(e):e.defaultMenu;return s.buildSelectionMenu?s.buildSelectionMenu({...e,defaultMenu:t}):t}}),{provides:y}=x(W.id);function M(e){const t=[];if(v.value){const r=function(e){const t=va(e),r=Pa(e),n=y.value?.getDocument(t)?.pages[r];return e.isPlaceholder||!n?null:I(xa,{item:e,pdfPageWidth:n.size.width,pdfPageHeight:n.size.height,cssPageWidth:e.width,cssPageHeight:e.height,hoverUi:s.features?.bookmarks?.hover})}(e);r&&t.push(r)}const r=s.renderPageOverlay?.(e);if(r&&t.push(r),t.length)return I(\"div\",t)}return(t,s)=>(i(),l(\"div\",{ref_key:\"hostRef\",ref:n,class:d(e.className),style:h(e.className?void 0:m(Pe))},[C(m(fn),{class:d(e.className),style:h(a.value)},{page:b(({item:t})=>[C(Sa,{item:t,features:e.features,\"show-note-markers\":p.value,\"show-bookmark-markers\":f.value,\"show-redaction-layer\":e.showRedactionLayer,\"note-marker-ui\":e.features?.notes?.marker,\"bookmark-marker-ui\":e.features?.bookmarks?.marker,\"build-selection-menu\":w.value,\"create-note\":m(o),\"annotation-selection-menu\":e.annotationSelectionMenu,\"redaction-selection-menu\":e.redactionSelectionMenu,\"render-page-overlay\":M},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\",\"style\"]),g(t.$slots,\"default\")],6))}}),Ra={key:0,style:{display:\"flex\",flexDirection:\"column\",height:\"100%\",minHeight:0,width:\"100%\"}},Va=/* @__PURE__ */a({__name:\"ChapterPdfViewer\",props:{engine:{},options:{},editorOptions:{},features:{},className:{},viewportClassName:{},onExtraSelectionAction:{type:Function}},setup(e){const s=e,r=t(()=>function(e){if(e.options)return Ur(e.options);if(!e.editorOptions)throw new Error(\"ChapterPdfViewer: 请传入 `options`(推荐),或同时传入 `editorOptions` 与 `features`\");const t=De(e.features),{plugins:s}=$r({...e.editorOptions,features:t});return{plugins:s,features:t,editorOptions:{...e.editorOptions,features:t}}}({engine:s.engine,options:s.options,editorOptions:s.editorOptions,features:s.features}));return(t,s)=>(i(),l(\"div\",{class:d(e.className),style:h(e.className?void 0:m(Pe))},[C(m(M),{engine:e.engine,plugins:r.value.plugins},{default:b(({pluginsReady:s})=>[s?(i(),l(\"div\",Ra,[g(t.$slots,\"prepend\"),C(Ga,{class:d(e.viewportClassName),style:{flex:1,minHeight:0},features:r.value.features,\"on-extra-selection-action\":e.onExtraSelectionAction},null,8,[\"class\",\"features\",\"on-extra-selection-action\"]),g(t.$slots,\"default\")])):P(\"\",!0)]),_:3},8,[\"engine\",\"plugins\"])],6))}}),_a={class:\"chapter-tree-row\"},qa=[\"aria-expanded\"],Wa={key:1,class:\"chapter-tree-toggle-spacer\",\"aria-hidden\":\"\"},Ha={class:\"chapter-tree-label\"},Ba={class:\"chapter-tree-meta\"},ja={key:0},Za=(e,t)=>{const s=e.__vccOpts||e;for(const[r,n]of t)s[r]=n;return s},Ya=/* @__PURE__ */Za(/* @__PURE__ */a({__name:\"ChapterTreeItem\",props:{node:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup(e){const r={idle:\"未加载\",loading:\"加载中\",loaded:\"已加载\",closed:\"已卸载\",error:\"失败\",\"password-required\":\"需密码\"},n=e,a=t(()=>n.node.children??[]),o=t(()=>a.value.length>0),h=s(n.depth<1),u=t(()=>n.activeChapterId===n.node.id),p=t(()=>n.chapterStatus[n.node.id]??\"idle\"),g=t(()=>!o.value);return(t,s)=>(i(),l(\"li\",null,[c(\"div\",_a,[o.value?(i(),l(\"button\",{key:0,type:\"button\",class:\"chapter-tree-toggle\",\"aria-expanded\":h.value,onClick:s[0]||(s[0]=e=>h.value=!h.value)},y(h.value?\"▼\":\"▶\"),9,qa)):(i(),l(\"span\",Wa)),c(\"button\",{type:\"button\",class:d([\"chapter-tree-btn\",{\"chapter-tree-btn-active\":u.value}]),onClick:s[1]||(s[1]=s=>t.$emit(\"select\",e.node.id))},[c(\"div\",Ha,y(e.node.title),1),c(\"div\",Ba,[c(\"span\",null,\" 第 \"+y(e.node.startPage)+y(e.node.endPage!==e.node.startPage?`–${e.node.endPage}`:\"\")+\" 页 \",1),g.value?(i(),l(\"span\",ja,y(r[p.value]),1)):P(\"\",!0)])],2)]),o.value&&h.value?(i(),f(Xa,{key:0,nodes:a.value,depth:e.depth+1,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:s[2]||(s[2]=e=>t.$emit(\"select\",e))},null,8,[\"nodes\",\"depth\",\"active-chapter-id\",\"chapter-status\"])):P(\"\",!0)]))}}),[[\"__scopeId\",\"data-v-315bbf7a\"]]),Xa=/* @__PURE__ */Za(/* @__PURE__ */a({__name:\"ChapterTreeList\",props:{nodes:{},depth:{},activeChapterId:{},chapterStatus:{}},emits:[\"select\"],setup:e=>(t,s)=>(i(),l(\"ul\",{class:\"chapter-tree-list\",style:h({marginLeft:e.depth>0?\"12px\":\"0\"})},[(i(!0),l(u,null,p(e.nodes,r=>(i(),f(Ya,{key:r.id,node:r,depth:e.depth,\"active-chapter-id\":e.activeChapterId,\"chapter-status\":e.chapterStatus,onSelect:s[0]||(s[0]=e=>t.$emit(\"select\",e))},null,8,[\"node\",\"depth\",\"active-chapter-id\",\"chapter-status\"]))),128))],4))}),[[\"__scopeId\",\"data-v-eb742e4f\"]]),Ka={class:\"chapter-tree\"},Qa={class:\"chapter-tree-nav\",\"aria-label\":\"章节目录\"},Ja=/* @__PURE__ */Za(/* @__PURE__ */a({__name:\"ChapterTreePanel\",props:{tree:{},activeChapterId:{}},emits:[\"active-chapter-change\"],setup(e,{emit:t}){const a=e,o=t,{provides:h}=x(Dt.id),{provides:d}=x(rt.id),u=s({});function p(){if(!d.value)return;const e={},t=s=>{for(const r of s)e[r.id]=d.value.getChapterStatus(r.id),r.children?.length&&t(r.children)};t(a.tree),u.value=e}r([d,()=>a.tree],p,{immediate:!0});let g=null;function f(e){o(\"active-chapter-change\",e),h.value?.scrollToChapter(e)}return r(d,e=>{g?.(),g=e?e.onChapterStatusChange(p):null},{immediate:!0}),n(()=>g?.()),(t,s)=>(i(),l(\"aside\",Ka,[s[0]||(s[0]=c(\"h2\",{class:\"chapter-tree-title\"},\"章节目录\",-1)),c(\"nav\",Qa,[C(Xa,{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{ze as CallbackPasswordProvider,Va as ChapterPdfViewer,Ja as ChapterTreePanel,Mr as DEFAULT_CHAPTER_VIEWER_CONFIG,xr as DEFAULT_CHAPTER_VIEWER_FEATURES,$ as EmbedPDF,Ga as PdfChapterViewport,Me as applySelectionMarkup,Ge as buildChapterViewerCatalog,pr as buildParagraphBookmarkAnchor,Oe as chapterDescriptorFromTreeNode,ba as copyTextToClipboard,Ur as createChapterViewerBundle,$r as createChapterViewerEditor,Tr as createChapterViewerEditorOptions,yr as createPdfChapterEditor,Fe as defaultOverlapStrategy,Ne as flattenChapterTree,Ae as overlapStrategyForSamePageOwner,Ee as toChapterTreeNodes,L as useCapability,ve as usePdfiumEngine,D 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 as e,createBehaviorEmitter as t,createEmitter as r,createPluginRegistration as s}from\"@embedpdf/core\";import{DocumentManagerPlugin as n,DocumentManagerPluginPackage as a}from\"@embedpdf/plugin-document-manager\";import{InteractionManagerPluginPackage as o}from\"@embedpdf/plugin-interaction-manager\";import{RenderPluginPackage as i}from\"@embedpdf/plugin-render\";import{RotatePluginPackage as h}from\"@embedpdf/plugin-rotate\";import{SelectionPluginPackage as l}from\"@embedpdf/plugin-selection\";import{ANNOTATION_PLUGIN_ID as d,LockModeType as c,AnnotationPluginPackage as u,AnnotationPlugin as p}from\"@embedpdf/plugin-annotation\";import{HistoryPluginPackage as g}from\"@embedpdf/plugin-history\";import{RedactionPluginPackage as m}from\"@embedpdf/plugin-redaction\";import{FormPluginPackage as f}from\"@embedpdf/plugin-form\";import{StampPluginPackage as v}from\"@embedpdf/plugin-stamp\";import{SignaturePluginPackage as P}from\"@embedpdf/plugin-signature\";import{CommandsPluginPackage as I}from\"@embedpdf/plugin-commands\";import{I18nPluginPackage as b}from\"@embedpdf/plugin-i18n\";import{isToolbarOpen as C,UIPluginPackage as w}from\"@embedpdf/plugin-ui\";import{PdfErrorCode as y,PdfAnnotationSubtype as S}from\"@embedpdf/models\";const M=\"chapter-manager\",x={id:M,name:\"Chapter Manager Plugin\",version:\"0.1.0\",provides:[\"chapter-manager\"],requires:[\"document-manager\"],optional:[],defaultConfig:{manifest:{chapters:[]},prefetchChapters:1,unloadTimeoutMs:6e4,autoActivateOnLoad:!0}};function $(e){const[t,r]=e.localPageRange;return r-t+1}function L(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function D(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return L(t)?t.segmentPageThreshold:null}function U(e,t){return`${e}#s${t}`}function k(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function T(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function F(e){const t=D(e);if(!t)return null;const r=$(e),s=T(r,t),n=L(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:U(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function O(e,t){const r=F(e);if(!r)return{documentId:e.chapterId,pageIndex:t};const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!s){const s=r.segments[r.segments.length-1];return s?{documentId:s.documentId,pageIndex:t-s.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:s.documentId,pageIndex:t-s.localPageStart}}function A(e,t){const r=F(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}function N(e){var t;const r=D(e);if(!r)return[];const s=[],{chapterId:n}=e,a=$(e);r<=0&&s.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!L(o))return s;0===o.urls.length&&s.push(`${n}: source.urls must not be empty`);const i=T(a,r);o.urls.length!==i&&s.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let h=0;h<o.urls.length;h++)(null==(t=o.urls[h])?void 0:t.trim())||s.push(`${n}: source.urls[${h}] is empty`);return s}const G={kind:\"first-wins\"};function E(e,t,r){if(1===t.length)return t[0].chapterId;switch(r.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const r=t.find(t=>{var r;return null==(r=t.ownedGlobalPages)?void 0:r.includes(e)});return r?r.chapterId:t[0].chapterId}case\"custom\":return r.resolve(e,t)}}let z=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 r=this._byChapter.get(e);return r?r.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const r=null==(t=this._byChapter.get(e))?void 0:t[0];return r?this._pages.indexOf(r):-1}};function R(e,t=G){const r=function(e,t=G){const r=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let s=e;s<=t;s++){const e=r.get(s);e?e.push(n):r.set(s,[n])}}const s=/* @__PURE__ */new Map;for(const[n,a]of r)s.set(n,E(n,a,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const i of e.chapters)s.set(i.chapterId,i);const n=Array.from(r.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=r.get(i),t=s.get(e);if(!t)continue;const[n]=t.globalPageRange,[h]=t.localPageRange,l=h+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:l})}return new z(a)}const V=class s extends e{constructor(e,s){super(e,s),this.statusChange$=t(),this.manifestChange$=r(),this.overlapStrategy=G,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??G,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=k(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=k(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=k(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const r=this.findChapter(e);return r?O(r,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?F(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=function(e){const t=[],r=e=>{for(const s of e){const{children:e,...n}=s;t.push(n),(null==e?void 0:e.length)&&r(e)}};return r(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(e);(function(e){var t;for(const r of e)if(null==(t=r.children)?void 0:t.length)return!0;return!1})(e.chapters)&&this.logger.warn(s.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${t.chapters.length} 条(顶层 ${e.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],r=/* @__PURE__ */new Set;for(const s of e.chapters){r.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),r.add(s.chapterId);const[e,n]=s.globalPageRange,[a,o]=s.localPageRange;if(e>n&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${s.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${s.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),s.ownedGlobalPages)for(const r of s.ownedGlobalPages)(r<e||r>n)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${r} outside range`);t.push(...N(s))}return t}(t);r.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(t.chapters.map(e=>e.chapterId));for(const s of n)a.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s),this.chapterUrlsCache.delete(s),this.pendingChapterUrlsPromises.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=R(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(),r=Math.min(e,this.manifest.chapters.length);for(let s=0;s<r;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const r=this.chapterStatus.get(e)??\"idle\";\"idle\"!==r&&\"closed\"!==r&&\"error\"!==r||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?F(t):null}isSegmentDocumentOpen(e,t){const r=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!r)return 0===t&&s.isDocumentOpen(e);const n=r.segments[t];return!!n&&s.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!t)return void(r.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const s=t.segments[0];if(s&&r.isDocumentOpen(s.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),r=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;s.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const r=A(t,e.localPageIndex);n.add(`${e.chapterId}:${r}`),n.add(`${e.chapterId}:${r+1}`)}if(0===s.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of s){const e=a.indexOf(i);if(-1!==e)for(let t=e-r;t<=e+r;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,r]=i.split(\":\"),s=Number.parseInt(r,10);e&&Number.isFinite(s)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,s))}if(this.config.autoActivateOnLoad??1){const t=e[0],r=null!=t?this.virtualPageMap.atIndex(t):null;if(r){const e=O(this.findChapter(r.chapterId),r.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[r,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(r)??0)>e&&this.closeChapter(r)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const r of t.segments){const t=await this.ensureSegmentLoaded(e,r.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const r=this.findChapter(e);if(!r)return Promise.resolve(\"error\");const s=F(r);if(!s)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(r);if(t<0||t>=s.segments.length)return Promise.resolve(\"error\");const n=s.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(r,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,r=this.pendingChapterLoadPromises.get(t);if(r)return r;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 n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,r=this.chapterUrlsCache.get(t);if(r)return r;const s=this.pendingChapterUrlsPromises.get(t);if(s)return s;const n=(async()=>{const r=e.source;if(L(r)){const e=[...r.urls];return this.chapterUrlsCache.set(t,e),e}const s=this.config.chapterPdfLoader;if(null==s?void 0:s.loadChapterUrls){const r=await s.loadChapterUrls(e);if(!Array.isArray(r)||0===r.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,r),r}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,r){const s=r[t];if(!(null==s?void 0:s.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:r.length,urls:r,url:s};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:s}}async resolvePdfPayload(e,t){const r=e.source,n=this.config.chapterPdfLoader,a=D(e);if(a){const r=T($(e),a);if(t<0||t>=r)throw new Error(`Chapter \"${e.chapterId}\" invalid segmentIndex ${t} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(e);return n.length!==r&&this.logger.warn(s.id,\"SegmentUrlCount\",`Chapter \"${e.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(e,t,n)}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(r){if(L(r)){const r=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,t,r)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const t=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,0,t)}if(null==n?void 0:n.loadPdf)return n.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(e,t){var r;const n=e.chapterId,a=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const s=e.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,a),h=this.documentManager.provides(),l=\"url\"in i?h.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}):h.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{l.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),h.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(s.id,\"LoadChapter\",e,i),0===a&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const r=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(r(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&r(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(e,t,r,n){if(r!==y.Password){const r=this.getSegmentPlanForChapter(t),{segmentIndex:s}=k(e);return void(r&&0!==s&&null!==s||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const a=this.findChapter(t);if(!a)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(h){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,h)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),r=this.documentManager.provides(),s=t?F(t):null,n=e=>{if(r.isDocumentOpen(e)){r.closeDocument(e).wait(()=>{},()=>{})}};if(s)for(const a of s.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,r){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&r?{error:{message:r}}:{}}))}};V.id=\"chapter-manager\";let _=V;const q={manifest:x,create:e=>new _(M,e),reducer:e=>e,initialState:{}},H=\"chapter-scroll\",B={id:H,name:\"Chapter Scroll Plugin\",version:\"0.1.0\",provides:[\"chapter-scroll\"],requires:[\"chapter-manager\"],optional:[],defaultConfig:{placeholderPageHeight:1200,placeholderPageWidth:900,bufferSize:2,pageGap:20}};function W(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function j(e,t){return`${e}#s${t}`}function K(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function J(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return W(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const r=function(e){const[t,r]=e.localPageRange;return r-t+1}(e),s=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,t),n=W(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:j(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function Q(e){const[t,r]=e.localPageRange;return r-t+1}function Y(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function X(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Y(t)?t.segmentPageThreshold:null}function Z(e,t){return`${e}#s${t}`}function ee(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function te(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function re(e){const t=X(e);if(!t)return null;const r=Q(e),s=te(r,t),n=Y(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:Z(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function se(e,t){const r=re(e);if(!r)return{documentId:e.chapterId,pageIndex:t};const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!s){const s=r.segments[r.segments.length-1];return s?{documentId:s.documentId,pageIndex:t-s.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:s.documentId,pageIndex:t-s.localPageStart}}function ne(e,t){const r=re(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}function ae(e){var t;const r=X(e);if(!r)return[];const s=[],{chapterId:n}=e,a=Q(e);r<=0&&s.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!Y(o))return s;0===o.urls.length&&s.push(`${n}: source.urls must not be empty`);const i=te(a,r);o.urls.length!==i&&s.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let h=0;h<o.urls.length;h++)(null==(t=o.urls[h])?void 0:t.trim())||s.push(`${n}: source.urls[${h}] is empty`);return s}const oe={kind:\"first-wins\"};function ie(e,t,r){if(1===t.length)return t[0].chapterId;switch(r.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const r=t.find(t=>{var r;return null==(r=t.ownedGlobalPages)?void 0:r.includes(e)});return r?r.chapterId:t[0].chapterId}case\"custom\":return r.resolve(e,t)}}class he{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 r=this._byChapter.get(e);return r?r.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const r=null==(t=this._byChapter.get(e))?void 0:t[0];return r?this._pages.indexOf(r):-1}}function le(e,t=oe){const r=function(e,t=oe){const r=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let s=e;s<=t;s++){const e=r.get(s);e?e.push(n):r.set(s,[n])}}const s=/* @__PURE__ */new Map;for(const[n,a]of r)s.set(n,ie(n,a,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const i of e.chapters)s.set(i.chapterId,i);const n=Array.from(r.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=r.get(i),t=s.get(e);if(!t)continue;const[n]=t.globalPageRange,[h]=t.localPageRange,l=h+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:l})}return new he(a)}const de=class s extends e{constructor(e,s){super(e,s),this.statusChange$=t(),this.manifestChange$=r(),this.overlapStrategy=oe,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??oe,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=ee(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=ee(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=ee(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const r=this.findChapter(e);return r?se(r,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?re(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=function(e){const t=[],r=e=>{for(const s of e){const{children:e,...n}=s;t.push(n),(null==e?void 0:e.length)&&r(e)}};return r(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(e);(function(e){var t;for(const r of e)if(null==(t=r.children)?void 0:t.length)return!0;return!1})(e.chapters)&&this.logger.warn(s.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${t.chapters.length} 条(顶层 ${e.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],r=/* @__PURE__ */new Set;for(const s of e.chapters){r.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),r.add(s.chapterId);const[e,n]=s.globalPageRange,[a,o]=s.localPageRange;if(e>n&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${s.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${s.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),s.ownedGlobalPages)for(const r of s.ownedGlobalPages)(r<e||r>n)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${r} outside range`);t.push(...ae(s))}return t}(t);r.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(t.chapters.map(e=>e.chapterId));for(const s of n)a.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s),this.chapterUrlsCache.delete(s),this.pendingChapterUrlsPromises.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=le(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(),r=Math.min(e,this.manifest.chapters.length);for(let s=0;s<r;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const r=this.chapterStatus.get(e)??\"idle\";\"idle\"!==r&&\"closed\"!==r&&\"error\"!==r||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?re(t):null}isSegmentDocumentOpen(e,t){const r=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!r)return 0===t&&s.isDocumentOpen(e);const n=r.segments[t];return!!n&&s.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!t)return void(r.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const s=t.segments[0];if(s&&r.isDocumentOpen(s.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),r=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;s.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const r=ne(t,e.localPageIndex);n.add(`${e.chapterId}:${r}`),n.add(`${e.chapterId}:${r+1}`)}if(0===s.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of s){const e=a.indexOf(i);if(-1!==e)for(let t=e-r;t<=e+r;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,r]=i.split(\":\"),s=Number.parseInt(r,10);e&&Number.isFinite(s)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,s))}if(this.config.autoActivateOnLoad??1){const t=e[0],r=null!=t?this.virtualPageMap.atIndex(t):null;if(r){const e=se(this.findChapter(r.chapterId),r.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[r,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(r)??0)>e&&this.closeChapter(r)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const r of t.segments){const t=await this.ensureSegmentLoaded(e,r.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const r=this.findChapter(e);if(!r)return Promise.resolve(\"error\");const s=re(r);if(!s)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(r);if(t<0||t>=s.segments.length)return Promise.resolve(\"error\");const n=s.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(r,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,r=this.pendingChapterLoadPromises.get(t);if(r)return r;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 n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,r=this.chapterUrlsCache.get(t);if(r)return r;const s=this.pendingChapterUrlsPromises.get(t);if(s)return s;const n=(async()=>{const r=e.source;if(Y(r)){const e=[...r.urls];return this.chapterUrlsCache.set(t,e),e}const s=this.config.chapterPdfLoader;if(null==s?void 0:s.loadChapterUrls){const r=await s.loadChapterUrls(e);if(!Array.isArray(r)||0===r.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,r),r}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,r){const s=r[t];if(!(null==s?void 0:s.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:r.length,urls:r,url:s};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:s}}async resolvePdfPayload(e,t){const r=e.source,n=this.config.chapterPdfLoader,a=X(e);if(a){const r=te(Q(e),a);if(t<0||t>=r)throw new Error(`Chapter \"${e.chapterId}\" invalid segmentIndex ${t} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(e);return n.length!==r&&this.logger.warn(s.id,\"SegmentUrlCount\",`Chapter \"${e.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(e,t,n)}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(r){if(Y(r)){const r=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,t,r)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const t=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,0,t)}if(null==n?void 0:n.loadPdf)return n.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(e,t){var r;const n=e.chapterId,a=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const s=e.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,a),h=this.documentManager.provides(),l=\"url\"in i?h.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}):h.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{l.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),h.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(s.id,\"LoadChapter\",e,i),0===a&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const r=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(r(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&r(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(e,t,r,n){if(r!==y.Password){const r=this.getSegmentPlanForChapter(t),{segmentIndex:s}=ee(e);return void(r&&0!==s&&null!==s||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const a=this.findChapter(t);if(!a)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(h){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,h)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),r=this.documentManager.provides(),s=t?re(t):null,n=e=>{if(r.isDocumentOpen(e)){r.closeDocument(e).wait(()=>{},()=>{})}};if(s)for(const a of s.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,r){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&r?{error:{message:r}}:{}}))}};de.id=\"chapter-manager\";let ce=de;function ue(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 r=0;r<e.items.length;r++){const s=e.items[r],n=t.items[r];if(s.globalPageIndex!==n.globalPageIndex||s.isPlaceholder!==n.isPlaceholder||s.chapterId!==n.chapterId||s.localPageIndex!==n.localPageIndex||s.pdfDocumentId!==n.pdfDocumentId||s.pdfPageIndex!==n.pdfPageIndex||s.offsetTop!==n.offsetTop||s.width!==n.width||s.height!==n.height)return!1}return!0}const pe=class extends e{constructor(e,r){super(e,r),this.layoutChange$=t(void 0,ue),this.visibleChange$=t(),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(ce.id),this.documentManager=this.registry.getPlugin(n.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const r=this.chapterManager.provides(),s=r.getChapterStatus(e);if(\"error\"===s||\"password-required\"===s)return!0;const n=r.getChapter(e);if(!n)return!0;const a=function(e,t){const r=J(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}(n,t);return!r.isSegmentLoaded(e,a)}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;const{chapterId:r}=K(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(r).length)??0))return;const s=this.documentManager.provides();s.getActiveDocumentId()||s.setActiveDocument(e),this.harvestChapterSizes(r),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:r}=K(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(r).length)??0)&&(this.dropChapterSizes(r),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,r)=>this.scrollToGlobalPdfPoint(e,t,r),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,r=0;for(let s=0;s<e;s++){const{width:e,height:n}=this.getPageSize(s);this.offsets[s]=t,t+=n+this.config.pageGap,e>r&&(r=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=r,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let r=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===s.width&&n.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),r=!0)}if(r){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const r=(this.offsets[e]??0)-t;0!==r&&(this.viewportEl.scrollTop+=r)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const r=this.chapterManager.provides(),s=r.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!s||0===n.length)return;const a=J(s),o=this.documentManager.provides(),i=[],h=(e,t,r,s)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const h=this.getDocumentScale(e);for(let o=0;o<s;o++){const e=a.pages[r+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*h,height:e.size.height*h})}return i.length>0};if(a)for(const l of a.segments){if(!r.isSegmentLoaded(e,l.index))continue;const t=l.localPageEnd-l.localPageStart+1;h(l.documentId,l.localPageStart,0,t)}else r.isSegmentLoaded(e,0)&&h(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:r}=K(e);this.chapterManager.provides().getChapter(r)&&this.harvestChapterSizes(r)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const r of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(r.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 r=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",r,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",r),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,r=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let n=s;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=r)break;n++}const a=[];let o=s,i=-1;for(let h=s;h<n;h++){a.push(h);const e=this.offsets[h],s=e+this.getPageSize(h).height,n=Math.max(0,Math.min(s,r)-Math.max(e,t));n>i&&(i=n,o=h)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,r=this.offsets.length-1,s=0;for(;t<=r;){const n=t+r>>1;this.offsets[n]<=e?(s=n,t=n+1):r=n-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),r=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(r>=0?r:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=s;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),r=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),s=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==r?void 0:r.documentId,pdfPageIndex:null==r?void 0:r.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:s})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const r=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:r,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,r){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==r?void 0:r.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,r);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),h=i?null==(s=this.documentManager.provides().getDocument(i.documentId))?void 0:s.pages[i.pageIndex]:void 0;if(!o||!h)return void this.scrollToIndex(e,r);const l=o.height/h.size.height,d=(this.offsets[e]??0)+t*l-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==r?void 0:r.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const r=this.virtualPageMap.firstIndexOfChapter(e);r<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(r,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const r=this.virtualPageMap.byGlobalNumber(e);r&&this.scrollToIndex(r.globalPageIndex,t)}};pe.id=\"chapter-scroll\";let ge=pe;const me={manifest:B,create:e=>new ge(H,e),reducer:e=>e,initialState:{}},fe=\"note\",ve={id:fe,name:\"Note Plugin\",version:\"0.1.0\",provides:[\"note\"],requires:[\"selection\",\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{callbacks:{onCreateNote:async()=>null,onActivateNote:()=>{}},markerSize:18}};function Pe(e){const[t,r]=e.localPageRange;return r-t+1}function Ie(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function be(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Ie(t)?t.segmentPageThreshold:null}function Ce(e,t){return`${e}#s${t}`}function we(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function ye(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function Se(e){const t=be(e);if(!t)return null;const r=Pe(e),s=ye(r,t),n=Ie(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:Ce(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function Me(e,t){const r=Se(e);if(!r)return{documentId:e.chapterId,pageIndex:t};const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!s){const s=r.segments[r.segments.length-1];return s?{documentId:s.documentId,pageIndex:t-s.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:s.documentId,pageIndex:t-s.localPageStart}}function xe(e,t){const r=Se(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}function $e(e){var t;const r=be(e);if(!r)return[];const s=[],{chapterId:n}=e,a=Pe(e);r<=0&&s.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!Ie(o))return s;0===o.urls.length&&s.push(`${n}: source.urls must not be empty`);const i=ye(a,r);o.urls.length!==i&&s.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let h=0;h<o.urls.length;h++)(null==(t=o.urls[h])?void 0:t.trim())||s.push(`${n}: source.urls[${h}] is empty`);return s}const Le={kind:\"first-wins\"};function De(e,t,r){if(1===t.length)return t[0].chapterId;switch(r.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const r=t.find(t=>{var r;return null==(r=t.ownedGlobalPages)?void 0:r.includes(e)});return r?r.chapterId:t[0].chapterId}case\"custom\":return r.resolve(e,t)}}let Ue=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 r=this._byChapter.get(e);return r?r.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const r=null==(t=this._byChapter.get(e))?void 0:t[0];return r?this._pages.indexOf(r):-1}};function ke(e,t=Le){const r=function(e,t=Le){const r=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let s=e;s<=t;s++){const e=r.get(s);e?e.push(n):r.set(s,[n])}}const s=/* @__PURE__ */new Map;for(const[n,a]of r)s.set(n,De(n,a,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const i of e.chapters)s.set(i.chapterId,i);const n=Array.from(r.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=r.get(i),t=s.get(e);if(!t)continue;const[n]=t.globalPageRange,[h]=t.localPageRange,l=h+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:l})}return new Ue(a)}const Te=class s extends e{constructor(e,s){super(e,s),this.statusChange$=t(),this.manifestChange$=r(),this.overlapStrategy=Le,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.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=>{const{chapterId:t}=we(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=we(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=we(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const r=this.findChapter(e);return r?Me(r,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?Se(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=function(e){const t=[],r=e=>{for(const s of e){const{children:e,...n}=s;t.push(n),(null==e?void 0:e.length)&&r(e)}};return r(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(e);(function(e){var t;for(const r of e)if(null==(t=r.children)?void 0:t.length)return!0;return!1})(e.chapters)&&this.logger.warn(s.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${t.chapters.length} 条(顶层 ${e.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],r=/* @__PURE__ */new Set;for(const s of e.chapters){r.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),r.add(s.chapterId);const[e,n]=s.globalPageRange,[a,o]=s.localPageRange;if(e>n&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${s.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${s.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),s.ownedGlobalPages)for(const r of s.ownedGlobalPages)(r<e||r>n)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${r} outside range`);t.push(...$e(s))}return t}(t);r.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(t.chapters.map(e=>e.chapterId));for(const s of n)a.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s),this.chapterUrlsCache.delete(s),this.pendingChapterUrlsPromises.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.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(),r=Math.min(e,this.manifest.chapters.length);for(let s=0;s<r;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const r=this.chapterStatus.get(e)??\"idle\";\"idle\"!==r&&\"closed\"!==r&&\"error\"!==r||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?Se(t):null}isSegmentDocumentOpen(e,t){const r=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!r)return 0===t&&s.isDocumentOpen(e);const n=r.segments[t];return!!n&&s.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!t)return void(r.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const s=t.segments[0];if(s&&r.isDocumentOpen(s.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),r=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;s.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const r=xe(t,e.localPageIndex);n.add(`${e.chapterId}:${r}`),n.add(`${e.chapterId}:${r+1}`)}if(0===s.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of s){const e=a.indexOf(i);if(-1!==e)for(let t=e-r;t<=e+r;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,r]=i.split(\":\"),s=Number.parseInt(r,10);e&&Number.isFinite(s)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,s))}if(this.config.autoActivateOnLoad??1){const t=e[0],r=null!=t?this.virtualPageMap.atIndex(t):null;if(r){const e=Me(this.findChapter(r.chapterId),r.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[r,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(r)??0)>e&&this.closeChapter(r)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const r of t.segments){const t=await this.ensureSegmentLoaded(e,r.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const r=this.findChapter(e);if(!r)return Promise.resolve(\"error\");const s=Se(r);if(!s)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(r);if(t<0||t>=s.segments.length)return Promise.resolve(\"error\");const n=s.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(r,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,r=this.pendingChapterLoadPromises.get(t);if(r)return r;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 n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,r=this.chapterUrlsCache.get(t);if(r)return r;const s=this.pendingChapterUrlsPromises.get(t);if(s)return s;const n=(async()=>{const r=e.source;if(Ie(r)){const e=[...r.urls];return this.chapterUrlsCache.set(t,e),e}const s=this.config.chapterPdfLoader;if(null==s?void 0:s.loadChapterUrls){const r=await s.loadChapterUrls(e);if(!Array.isArray(r)||0===r.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,r),r}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,r){const s=r[t];if(!(null==s?void 0:s.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:r.length,urls:r,url:s};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:s}}async resolvePdfPayload(e,t){const r=e.source,n=this.config.chapterPdfLoader,a=be(e);if(a){const r=ye(Pe(e),a);if(t<0||t>=r)throw new Error(`Chapter \"${e.chapterId}\" invalid segmentIndex ${t} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(e);return n.length!==r&&this.logger.warn(s.id,\"SegmentUrlCount\",`Chapter \"${e.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(e,t,n)}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(r){if(Ie(r)){const r=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,t,r)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const t=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,0,t)}if(null==n?void 0:n.loadPdf)return n.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(e,t){var r;const n=e.chapterId,a=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const s=e.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,a),h=this.documentManager.provides(),l=\"url\"in i?h.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}):h.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{l.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),h.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(s.id,\"LoadChapter\",e,i),0===a&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const r=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(r(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&r(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(e,t,r,n){if(r!==y.Password){const r=this.getSegmentPlanForChapter(t),{segmentIndex:s}=we(e);return void(r&&0!==s&&null!==s||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const a=this.findChapter(t);if(!a)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(h){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,h)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),r=this.documentManager.provides(),s=t?Se(t):null,n=e=>{if(r.isDocumentOpen(e)){r.closeDocument(e).wait(()=>{},()=>{})}};if(s)for(const a of s.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,r){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&r?{error:{message:r}}:{}}))}};Te.id=\"chapter-manager\";let Fe=Te;function Oe(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Ae(e,t){return`${e}#s${t}`}function Ne(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function Ge(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Oe(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const r=function(e){const[t,r]=e.localPageRange;return r-t+1}(e),s=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,t),n=Oe(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:Ae(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function Ee(e){const[t,r]=e.localPageRange;return r-t+1}function ze(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function Re(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return ze(t)?t.segmentPageThreshold:null}function Ve(e,t){return`${e}#s${t}`}function _e(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function qe(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function He(e){const t=Re(e);if(!t)return null;const r=Ee(e),s=qe(r,t),n=ze(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:Ve(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function Be(e,t){const r=He(e);if(!r)return{documentId:e.chapterId,pageIndex:t};const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!s){const s=r.segments[r.segments.length-1];return s?{documentId:s.documentId,pageIndex:t-s.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:s.documentId,pageIndex:t-s.localPageStart}}function We(e,t){const r=He(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}function je(e){var t;const r=Re(e);if(!r)return[];const s=[],{chapterId:n}=e,a=Ee(e);r<=0&&s.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!ze(o))return s;0===o.urls.length&&s.push(`${n}: source.urls must not be empty`);const i=qe(a,r);o.urls.length!==i&&s.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let h=0;h<o.urls.length;h++)(null==(t=o.urls[h])?void 0:t.trim())||s.push(`${n}: source.urls[${h}] is empty`);return s}const Ke={kind:\"first-wins\"};function Je(e,t,r){if(1===t.length)return t[0].chapterId;switch(r.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const r=t.find(t=>{var r;return null==(r=t.ownedGlobalPages)?void 0:r.includes(e)});return r?r.chapterId:t[0].chapterId}case\"custom\":return r.resolve(e,t)}}let Qe=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 r=this._byChapter.get(e);return r?r.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const r=null==(t=this._byChapter.get(e))?void 0:t[0];return r?this._pages.indexOf(r):-1}};function Ye(e,t=Ke){const r=function(e,t=Ke){const r=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let s=e;s<=t;s++){const e=r.get(s);e?e.push(n):r.set(s,[n])}}const s=/* @__PURE__ */new Map;for(const[n,a]of r)s.set(n,Je(n,a,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const i of e.chapters)s.set(i.chapterId,i);const n=Array.from(r.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=r.get(i),t=s.get(e);if(!t)continue;const[n]=t.globalPageRange,[h]=t.localPageRange,l=h+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:l})}return new Qe(a)}const Xe=class s extends e{constructor(e,s){super(e,s),this.statusChange$=t(),this.manifestChange$=r(),this.overlapStrategy=Ke,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??Ke,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=_e(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=_e(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=_e(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const r=this.findChapter(e);return r?Be(r,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?He(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=function(e){const t=[],r=e=>{for(const s of e){const{children:e,...n}=s;t.push(n),(null==e?void 0:e.length)&&r(e)}};return r(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(e);(function(e){var t;for(const r of e)if(null==(t=r.children)?void 0:t.length)return!0;return!1})(e.chapters)&&this.logger.warn(s.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${t.chapters.length} 条(顶层 ${e.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],r=/* @__PURE__ */new Set;for(const s of e.chapters){r.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),r.add(s.chapterId);const[e,n]=s.globalPageRange,[a,o]=s.localPageRange;if(e>n&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${s.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${s.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),s.ownedGlobalPages)for(const r of s.ownedGlobalPages)(r<e||r>n)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${r} outside range`);t.push(...je(s))}return t}(t);r.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(t.chapters.map(e=>e.chapterId));for(const s of n)a.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s),this.chapterUrlsCache.delete(s),this.pendingChapterUrlsPromises.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=Ye(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(),r=Math.min(e,this.manifest.chapters.length);for(let s=0;s<r;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const r=this.chapterStatus.get(e)??\"idle\";\"idle\"!==r&&\"closed\"!==r&&\"error\"!==r||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?He(t):null}isSegmentDocumentOpen(e,t){const r=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!r)return 0===t&&s.isDocumentOpen(e);const n=r.segments[t];return!!n&&s.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!t)return void(r.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const s=t.segments[0];if(s&&r.isDocumentOpen(s.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),r=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;s.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const r=We(t,e.localPageIndex);n.add(`${e.chapterId}:${r}`),n.add(`${e.chapterId}:${r+1}`)}if(0===s.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of s){const e=a.indexOf(i);if(-1!==e)for(let t=e-r;t<=e+r;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,r]=i.split(\":\"),s=Number.parseInt(r,10);e&&Number.isFinite(s)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,s))}if(this.config.autoActivateOnLoad??1){const t=e[0],r=null!=t?this.virtualPageMap.atIndex(t):null;if(r){const e=Be(this.findChapter(r.chapterId),r.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[r,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(r)??0)>e&&this.closeChapter(r)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const r of t.segments){const t=await this.ensureSegmentLoaded(e,r.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const r=this.findChapter(e);if(!r)return Promise.resolve(\"error\");const s=He(r);if(!s)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(r);if(t<0||t>=s.segments.length)return Promise.resolve(\"error\");const n=s.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(r,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,r=this.pendingChapterLoadPromises.get(t);if(r)return r;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 n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,r=this.chapterUrlsCache.get(t);if(r)return r;const s=this.pendingChapterUrlsPromises.get(t);if(s)return s;const n=(async()=>{const r=e.source;if(ze(r)){const e=[...r.urls];return this.chapterUrlsCache.set(t,e),e}const s=this.config.chapterPdfLoader;if(null==s?void 0:s.loadChapterUrls){const r=await s.loadChapterUrls(e);if(!Array.isArray(r)||0===r.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,r),r}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,r){const s=r[t];if(!(null==s?void 0:s.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:r.length,urls:r,url:s};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:s}}async resolvePdfPayload(e,t){const r=e.source,n=this.config.chapterPdfLoader,a=Re(e);if(a){const r=qe(Ee(e),a);if(t<0||t>=r)throw new Error(`Chapter \"${e.chapterId}\" invalid segmentIndex ${t} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(e);return n.length!==r&&this.logger.warn(s.id,\"SegmentUrlCount\",`Chapter \"${e.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(e,t,n)}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(r){if(ze(r)){const r=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,t,r)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const t=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,0,t)}if(null==n?void 0:n.loadPdf)return n.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(e,t){var r;const n=e.chapterId,a=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const s=e.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,a),h=this.documentManager.provides(),l=\"url\"in i?h.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}):h.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{l.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),h.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(s.id,\"LoadChapter\",e,i),0===a&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const r=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(r(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&r(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(e,t,r,n){if(r!==y.Password){const r=this.getSegmentPlanForChapter(t),{segmentIndex:s}=_e(e);return void(r&&0!==s&&null!==s||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const a=this.findChapter(t);if(!a)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(h){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,h)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),r=this.documentManager.provides(),s=t?He(t):null,n=e=>{if(r.isDocumentOpen(e)){r.closeDocument(e).wait(()=>{},()=>{})}};if(s)for(const a of s.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,r){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&r?{error:{message:r}}:{}}))}};Xe.id=\"chapter-manager\";let Ze=Xe;function et(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 r=0;r<e.items.length;r++){const s=e.items[r],n=t.items[r];if(s.globalPageIndex!==n.globalPageIndex||s.isPlaceholder!==n.isPlaceholder||s.chapterId!==n.chapterId||s.localPageIndex!==n.localPageIndex||s.pdfDocumentId!==n.pdfDocumentId||s.pdfPageIndex!==n.pdfPageIndex||s.offsetTop!==n.offsetTop||s.width!==n.width||s.height!==n.height)return!1}return!0}const tt=class extends e{constructor(e,r){super(e,r),this.layoutChange$=t(void 0,et),this.visibleChange$=t(),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(Ze.id),this.documentManager=this.registry.getPlugin(n.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const r=this.chapterManager.provides(),s=r.getChapterStatus(e);if(\"error\"===s||\"password-required\"===s)return!0;const n=r.getChapter(e);if(!n)return!0;const a=function(e,t){const r=Ge(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}(n,t);return!r.isSegmentLoaded(e,a)}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;const{chapterId:r}=Ne(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(r).length)??0))return;const s=this.documentManager.provides();s.getActiveDocumentId()||s.setActiveDocument(e),this.harvestChapterSizes(r),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:r}=Ne(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(r).length)??0)&&(this.dropChapterSizes(r),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,r)=>this.scrollToGlobalPdfPoint(e,t,r),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,r=0;for(let s=0;s<e;s++){const{width:e,height:n}=this.getPageSize(s);this.offsets[s]=t,t+=n+this.config.pageGap,e>r&&(r=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=r,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let r=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===s.width&&n.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),r=!0)}if(r){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const r=(this.offsets[e]??0)-t;0!==r&&(this.viewportEl.scrollTop+=r)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const r=this.chapterManager.provides(),s=r.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!s||0===n.length)return;const a=Ge(s),o=this.documentManager.provides(),i=[],h=(e,t,r,s)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const h=this.getDocumentScale(e);for(let o=0;o<s;o++){const e=a.pages[r+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*h,height:e.size.height*h})}return i.length>0};if(a)for(const l of a.segments){if(!r.isSegmentLoaded(e,l.index))continue;const t=l.localPageEnd-l.localPageStart+1;h(l.documentId,l.localPageStart,0,t)}else r.isSegmentLoaded(e,0)&&h(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:r}=Ne(e);this.chapterManager.provides().getChapter(r)&&this.harvestChapterSizes(r)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const r of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(r.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 r=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",r,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",r),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,r=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let n=s;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=r)break;n++}const a=[];let o=s,i=-1;for(let h=s;h<n;h++){a.push(h);const e=this.offsets[h],s=e+this.getPageSize(h).height,n=Math.max(0,Math.min(s,r)-Math.max(e,t));n>i&&(i=n,o=h)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,r=this.offsets.length-1,s=0;for(;t<=r;){const n=t+r>>1;this.offsets[n]<=e?(s=n,t=n+1):r=n-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),r=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(r>=0?r:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=s;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),r=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),s=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==r?void 0:r.documentId,pdfPageIndex:null==r?void 0:r.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:s})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const r=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:r,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,r){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==r?void 0:r.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,r);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),h=i?null==(s=this.documentManager.provides().getDocument(i.documentId))?void 0:s.pages[i.pageIndex]:void 0;if(!o||!h)return void this.scrollToIndex(e,r);const l=o.height/h.size.height,d=(this.offsets[e]??0)+t*l-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==r?void 0:r.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const r=this.virtualPageMap.firstIndexOfChapter(e);r<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(r,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const r=this.virtualPageMap.byGlobalNumber(e);r&&this.scrollToIndex(r.globalPageIndex,t)}};tt.id=\"chapter-scroll\";let rt=tt;const st=class s extends e{constructor(e,s){super(e,s),this.notesChange$=t([]),this.noteActivated$=r(),this.notes=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(rt.id),this.chapterManager=this.registry.getPlugin(Fe.id),this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,e.callbacks.loadNotes)try{const t=await e.callbacks.loadNotes();for(const e of t)this.notes.set(e.noteId,e);this.notesChange$.emit(this.listAll())}catch(t){this.logger.error(s.id,\"LoadNotes\",\"Failed to load notes\",t)}}buildCapability(){return{createNoteFromSelection:e=>this.createNoteFromSelection(e),requestCreateFromSelection:e=>this.requestCreateFromSelection(e),registerNote:e=>this.registerNote(e),listNotesForPage:(e,t)=>this.listAll().filter(r=>r.chapterId===e&&r.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,r;const s=this.notes.get(e);s&&(null==(r=(t=this.config.callbacks).onActivateNote)||r.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[r,s]of this.notes.entries())s.chapterId===e&&this.notes.delete(r);for(const r of t)r.chapterId===e&&this.notes.set(r.noteId,r);this.notesChange$.emit(this.listAll())}buildDraft(e){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageNumber:e.globalPageNumber,globalPageIndex:e.globalPageIndex,rectsPdfCoord:e.rectsPdfCoord,endAnchor:at(e.rectsPdfCoord),selectedText:e.selectedText,content:e.content}}async requestCreateFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),{onRequestCreateNote:r,onCreateNote:s}=this.config.callbacks;return r?(r({draft:t,complete:async e=>{const r={...t,noteId:e};this.registerNote(r)}}),null):this.createNoteFromSelection(e)}async createNoteFromSelection(e){if(0===e.rectsPdfCoord.length)return null;const t=this.buildDraft(e),r=this.config.callbacks.onCreateNote;if(!r)return this.logger.error(s.id,\"CreateNote\",\"Missing onCreateNote / onRequestCreateNote\"),null;let n=null;try{n=await r(t)}catch(o){return this.logger.error(s.id,\"OnCreateNote\",\"Callback failed\",o),null}if(!n)return null;const a={...t,noteId:n.noteId};return this.registerNote(a),a}async deleteNote(e){var t,r;if(this.notes.has(e)){try{await(null==(r=(t=this.config.callbacks).onDeleteNote)?void 0:r.call(t,e))}catch(n){return void this.logger.error(s.id,\"OnDeleteNote\",\"Callback failed\",n)}this.notes.delete(e),this.notesChange$.emit(this.listAll())}}async updateNoteContent(e,t){var r,n;const a=this.notes.get(e);if(!a)return;const o={...a,content:t};try{await(null==(n=(r=this.config.callbacks).onUpdateNote)?void 0:n.call(r,o))}catch(i){return void this.logger.error(s.id,\"OnUpdateNote\",\"Callback failed\",i)}this.notes.set(e,o),this.notesChange$.emit(this.listAll())}async scrollToNote(e){var t;const r=this.notes.get(e);if(!r)return;const s=this.chapterScroll.provides(),n=this.chapterManager.provides();await n.ensureAllSegmentsLoaded(r.chapterId);const a=n.resolvePageDocument(r.chapterId,r.localPageIndex);(null==(t=this.documentManager.provides().getDocument(a.documentId))?void 0:t.pages[a.pageIndex])?(s.scrollToGlobalPageIndex(r.globalPageIndex),await this.waitForPageInLayout(r.globalPageIndex),s.scrollToGlobalPdfPoint(r.globalPageIndex,r.endAnchor.y,{marginTop:80})):s.scrollToGlobalPageIndex(r.globalPageIndex)}waitForPageInLayout(e){const t=this.chapterScroll.provides(),r=t.getLayout().items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);return r?Promise.resolve(r):new Promise(r=>{const s=setTimeout(()=>{n(),r(null)},2500),n=t.onLayoutChange(t=>{const a=t.items.find(t=>t.globalPageIndex===e&&!t.isPlaceholder);a&&(clearTimeout(s),n(),r(a))})})}};st.id=\"note\";let nt=st;function at(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}const ot={manifest:ve,create:e=>new nt(fe,e),reducer:e=>e,initialState:{}},it=\"paragraph-bookmark\",ht={id:it,name:\"Paragraph Bookmark Plugin\",version:\"0.1.0\",provides:[\"paragraph-bookmark\"],requires:[\"chapter-scroll\",\"chapter-manager\"],optional:[],defaultConfig:{}};function lt(e){const[t,r]=e.localPageRange;return r-t+1}function dt(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function ct(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return dt(t)?t.segmentPageThreshold:null}function ut(e,t){return`${e}#s${t}`}function pt(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function gt(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function mt(e){const t=ct(e);if(!t)return null;const r=lt(e),s=gt(r,t),n=dt(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:ut(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function ft(e,t){const r=mt(e);if(!r)return{documentId:e.chapterId,pageIndex:t};const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!s){const s=r.segments[r.segments.length-1];return s?{documentId:s.documentId,pageIndex:t-s.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:s.documentId,pageIndex:t-s.localPageStart}}function vt(e,t){const r=mt(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}function Pt(e){var t;const r=ct(e);if(!r)return[];const s=[],{chapterId:n}=e,a=lt(e);r<=0&&s.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!dt(o))return s;0===o.urls.length&&s.push(`${n}: source.urls must not be empty`);const i=gt(a,r);o.urls.length!==i&&s.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let h=0;h<o.urls.length;h++)(null==(t=o.urls[h])?void 0:t.trim())||s.push(`${n}: source.urls[${h}] is empty`);return s}const It={kind:\"first-wins\"};function bt(e,t,r){if(1===t.length)return t[0].chapterId;switch(r.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const r=t.find(t=>{var r;return null==(r=t.ownedGlobalPages)?void 0:r.includes(e)});return r?r.chapterId:t[0].chapterId}case\"custom\":return r.resolve(e,t)}}let Ct=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 r=this._byChapter.get(e);return r?r.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const r=null==(t=this._byChapter.get(e))?void 0:t[0];return r?this._pages.indexOf(r):-1}};function wt(e,t=It){const r=function(e,t=It){const r=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let s=e;s<=t;s++){const e=r.get(s);e?e.push(n):r.set(s,[n])}}const s=/* @__PURE__ */new Map;for(const[n,a]of r)s.set(n,bt(n,a,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const i of e.chapters)s.set(i.chapterId,i);const n=Array.from(r.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=r.get(i),t=s.get(e);if(!t)continue;const[n]=t.globalPageRange,[h]=t.localPageRange,l=h+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:l})}return new Ct(a)}const yt=class s extends e{constructor(e,s){super(e,s),this.statusChange$=t(),this.manifestChange$=r(),this.overlapStrategy=It,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??It,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=pt(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=pt(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=pt(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const r=this.findChapter(e);return r?ft(r,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?mt(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=function(e){const t=[],r=e=>{for(const s of e){const{children:e,...n}=s;t.push(n),(null==e?void 0:e.length)&&r(e)}};return r(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(e);(function(e){var t;for(const r of e)if(null==(t=r.children)?void 0:t.length)return!0;return!1})(e.chapters)&&this.logger.warn(s.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${t.chapters.length} 条(顶层 ${e.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],r=/* @__PURE__ */new Set;for(const s of e.chapters){r.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),r.add(s.chapterId);const[e,n]=s.globalPageRange,[a,o]=s.localPageRange;if(e>n&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${s.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${s.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),s.ownedGlobalPages)for(const r of s.ownedGlobalPages)(r<e||r>n)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${r} outside range`);t.push(...Pt(s))}return t}(t);r.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(t.chapters.map(e=>e.chapterId));for(const s of n)a.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s),this.chapterUrlsCache.delete(s),this.pendingChapterUrlsPromises.delete(s));for(const s of t.chapters)this.chapterStatus.has(s.chapterId)||this.chapterStatus.set(s.chapterId,\"idle\");this.manifest=t,this.virtualPageMap=wt(t,this.overlapStrategy),this.manifestChange$.emit({manifest:t,map:this.virtualPageMap}),this.eagerPrefetchFromManifest()}eagerPrefetchFromManifest(){const e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),r=Math.min(e,this.manifest.chapters.length);for(let s=0;s<r;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const r=this.chapterStatus.get(e)??\"idle\";\"idle\"!==r&&\"closed\"!==r&&\"error\"!==r||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?mt(t):null}isSegmentDocumentOpen(e,t){const r=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!r)return 0===t&&s.isDocumentOpen(e);const n=r.segments[t];return!!n&&s.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!t)return void(r.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const s=t.segments[0];if(s&&r.isDocumentOpen(s.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),r=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;s.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const r=vt(t,e.localPageIndex);n.add(`${e.chapterId}:${r}`),n.add(`${e.chapterId}:${r+1}`)}if(0===s.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of s){const e=a.indexOf(i);if(-1!==e)for(let t=e-r;t<=e+r;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,r]=i.split(\":\"),s=Number.parseInt(r,10);e&&Number.isFinite(s)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,s))}if(this.config.autoActivateOnLoad??1){const t=e[0],r=null!=t?this.virtualPageMap.atIndex(t):null;if(r){const e=ft(this.findChapter(r.chapterId),r.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[r,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(r)??0)>e&&this.closeChapter(r)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const r of t.segments){const t=await this.ensureSegmentLoaded(e,r.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const r=this.findChapter(e);if(!r)return Promise.resolve(\"error\");const s=mt(r);if(!s)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(r);if(t<0||t>=s.segments.length)return Promise.resolve(\"error\");const n=s.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(r,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,r=this.pendingChapterLoadPromises.get(t);if(r)return r;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 n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,r=this.chapterUrlsCache.get(t);if(r)return r;const s=this.pendingChapterUrlsPromises.get(t);if(s)return s;const n=(async()=>{const r=e.source;if(dt(r)){const e=[...r.urls];return this.chapterUrlsCache.set(t,e),e}const s=this.config.chapterPdfLoader;if(null==s?void 0:s.loadChapterUrls){const r=await s.loadChapterUrls(e);if(!Array.isArray(r)||0===r.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,r),r}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,r){const s=r[t];if(!(null==s?void 0:s.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:r.length,urls:r,url:s};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:s}}async resolvePdfPayload(e,t){const r=e.source,n=this.config.chapterPdfLoader,a=ct(e);if(a){const r=gt(lt(e),a);if(t<0||t>=r)throw new Error(`Chapter \"${e.chapterId}\" invalid segmentIndex ${t} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(e);return n.length!==r&&this.logger.warn(s.id,\"SegmentUrlCount\",`Chapter \"${e.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(e,t,n)}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(r){if(dt(r)){const r=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,t,r)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const t=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,0,t)}if(null==n?void 0:n.loadPdf)return n.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(e,t){var r;const n=e.chapterId,a=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const s=e.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,a),h=this.documentManager.provides(),l=\"url\"in i?h.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}):h.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{l.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),h.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(s.id,\"LoadChapter\",e,i),0===a&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const r=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(r(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&r(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(e,t,r,n){if(r!==y.Password){const r=this.getSegmentPlanForChapter(t),{segmentIndex:s}=pt(e);return void(r&&0!==s&&null!==s||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const a=this.findChapter(t);if(!a)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(h){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,h)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),r=this.documentManager.provides(),s=t?mt(t):null,n=e=>{if(r.isDocumentOpen(e)){r.closeDocument(e).wait(()=>{},()=>{})}};if(s)for(const a of s.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,r){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&r?{error:{message:r}}:{}}))}};yt.id=\"chapter-manager\";let St=yt;function Mt(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function xt(e,t){return`${e}#s${t}`}function $t(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function Lt(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Mt(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const r=function(e){const[t,r]=e.localPageRange;return r-t+1}(e),s=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,t),n=Mt(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:xt(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function Dt(e){const[t,r]=e.localPageRange;return r-t+1}function Ut(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function kt(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return Ut(t)?t.segmentPageThreshold:null}function Tt(e,t){return`${e}#s${t}`}function Ft(e){const t=e.lastIndexOf(\"#s\");if(-1===t)return{chapterId:e,segmentIndex:null};const r=e.slice(0,t),s=Number.parseInt(e.slice(t+2),10);return!Number.isFinite(s)||s<0?{chapterId:e,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function Ot(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function At(e){const t=kt(e);if(!t)return null;const r=Dt(e),s=Ot(r,t),n=Ut(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:(null==n?void 0:n[o])??\"\",localPageStart:s,localPageEnd:i,documentId:Tt(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function Nt(e,t){const r=At(e);if(!r)return{documentId:e.chapterId,pageIndex:t};const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!s){const s=r.segments[r.segments.length-1];return s?{documentId:s.documentId,pageIndex:t-s.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:s.documentId,pageIndex:t-s.localPageStart}}function Gt(e,t){const r=At(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}function Et(e){var t;const r=kt(e);if(!r)return[];const s=[],{chapterId:n}=e,a=Dt(e);r<=0&&s.push(`${n}: segmentPageThreshold must be > 0`);const o=e.source;if(!Ut(o))return s;0===o.urls.length&&s.push(`${n}: source.urls must not be empty`);const i=Ot(a,r);o.urls.length!==i&&s.push(`${n}: source.urls.length (${o.urls.length}) must equal ceil(pageCount/threshold) (${i})`);for(let h=0;h<o.urls.length;h++)(null==(t=o.urls[h])?void 0:t.trim())||s.push(`${n}: source.urls[${h}] is empty`);return s}const zt={kind:\"first-wins\"};function Rt(e,t,r){if(1===t.length)return t[0].chapterId;switch(r.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const r=t.find(t=>{var r;return null==(r=t.ownedGlobalPages)?void 0:r.includes(e)});return r?r.chapterId:t[0].chapterId}case\"custom\":return r.resolve(e,t)}}class Vt{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 r=this._byChapter.get(e);return r?r.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){var t;const r=null==(t=this._byChapter.get(e))?void 0:t[0];return r?this._pages.indexOf(r):-1}}function _t(e,t=zt){const r=function(e,t=zt){const r=/* @__PURE__ */new Map;for(const n of e.chapters){const[e,t]=n.globalPageRange;for(let s=e;s<=t;s++){const e=r.get(s);e?e.push(n):r.set(s,[n])}}const s=/* @__PURE__ */new Map;for(const[n,a]of r)s.set(n,Rt(n,a,t));return s}(e,t),s=/* @__PURE__ */new Map;for(const i of e.chapters)s.set(i.chapterId,i);const n=Array.from(r.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const i of n){const e=r.get(i),t=s.get(e);if(!t)continue;const[n]=t.globalPageRange,[h]=t.localPageRange,l=h+(i-n);a.push({globalPageIndex:o++,globalPageNumber:i,chapterId:e,localPageIndex:l})}return new Vt(a)}const qt=class s extends e{constructor(e,s){super(e,s),this.statusChange$=t(),this.manifestChange$=r(),this.overlapStrategy=zt,this.chapterStatus=/* @__PURE__ */new Map,this.chapterLastUsed=/* @__PURE__ */new Map,this.passwordAttempts=/* @__PURE__ */new Map,this.pendingChapterLoadPromises=/* @__PURE__ */new Map,this.pendingSegmentLoadPromises=/* @__PURE__ */new Map,this.chapterUrlsCache=/* @__PURE__ */new Map,this.pendingChapterUrlsPromises=/* @__PURE__ */new Map,this.unloadTimer=null,this.documentManagerUnsubs=[],this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){if(this.config=e,this.passwordProvider=e.passwordProvider,this.overlapStrategy=e.overlapStrategy??zt,this.documentManagerUnsubs.push(this.documentManager.provides().onDocumentOpened(e=>{const{chapterId:t}=Ft(e.id);this.findChapter(t)&&(this.passwordAttempts.delete(t),this.syncChapterStatusFromDocuments(t))}),this.documentManager.provides().onDocumentClosed(e=>{const{chapterId:t}=Ft(e);this.findChapter(t)&&this.syncChapterStatusFromDocuments(t)}),this.documentManager.provides().onDocumentError(e=>{const{chapterId:t}=Ft(e.documentId);this.findChapter(t)&&this.handleDocumentError(e.documentId,t,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),ensureSegmentLoaded:(e,t)=>this.ensureSegmentLoaded(e,t),ensureAllSegmentsLoaded:e=>this.ensureAllSegmentsLoaded(e),resolvePageDocument:(e,t)=>{const r=this.findChapter(e);return r?Nt(r,t):null},getSegmentPlan:e=>{const t=this.findChapter(e);return t?At(t):null},isSegmentLoaded:(e,t)=>this.isSegmentDocumentOpen(e,t),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(e){const t=function(e){const t=function(e){const t=[],r=e=>{for(const s of e){const{children:e,...n}=s;t.push(n),(null==e?void 0:e.length)&&r(e)}};return r(e),t}(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}(e);(function(e){var t;for(const r of e)if(null==(t=r.children)?void 0:t.length)return!0;return!1})(e.chapters)&&this.logger.warn(s.id,\"ManifestFlatten\",`manifest.chapters 含嵌套 children,已自动展开为 ${t.chapters.length} 条(顶层 ${e.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`);const r=function(e){const t=[],r=/* @__PURE__ */new Set;for(const s of e.chapters){r.has(s.chapterId)&&t.push(`Duplicate chapterId: ${s.chapterId}`),r.add(s.chapterId);const[e,n]=s.globalPageRange,[a,o]=s.localPageRange;if(e>n&&t.push(`${s.chapterId}: invalid globalPageRange [${e},${n}]`),a>o&&t.push(`${s.chapterId}: invalid localPageRange [${a},${o}]`),n-e!==o-a&&t.push(`${s.chapterId}: page-count mismatch (global ${n-e+1} vs local ${o-a+1})`),s.ownedGlobalPages)for(const r of s.ownedGlobalPages)(r<e||r>n)&&t.push(`${s.chapterId}: ownedGlobalPages contains ${r} outside range`);t.push(...Et(s))}return t}(t);r.length>0&&this.logger.warn(s.id,\"ManifestValidation\",`Chapter manifest has issues: ${r.join(\"; \")}`);const n=new Set(this.chapterStatus.keys()),a=new Set(t.chapters.map(e=>e.chapterId));for(const s of n)a.has(s)||(this.closeChapter(s),this.chapterStatus.delete(s),this.chapterUrlsCache.delete(s),this.pendingChapterUrlsPromises.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 e=this.config.prefetchChapters??0;if(e<=0||0===this.manifest.chapters.length)return;const t=Date.now(),r=Math.min(e,this.manifest.chapters.length);for(let s=0;s<r;s++){const e=this.manifest.chapters[s].chapterId;this.chapterLastUsed.set(e,t);const r=this.chapterStatus.get(e)??\"idle\";\"idle\"!==r&&\"closed\"!==r&&\"error\"!==r||this.ensureChapterLoaded(e)}}findChapter(e){return this.manifest.chapters.find(t=>t.chapterId===e)??null}getSegmentPlanForChapter(e){const t=this.findChapter(e);return t?At(t):null}isSegmentDocumentOpen(e,t){const r=this.getSegmentPlanForChapter(e),s=this.documentManager.provides();if(!r)return 0===t&&s.isDocumentOpen(e);const n=r.segments[t];return!!n&&s.isDocumentOpen(n.documentId)}syncChapterStatusFromDocuments(e){const t=this.getSegmentPlanForChapter(e),r=this.documentManager.provides();if(!t)return void(r.isDocumentOpen(e)?this.updateStatus(e,\"loaded\"):\"loaded\"===this.chapterStatus.get(e)&&this.updateStatus(e,\"closed\"));const s=t.segments[0];if(s&&r.isDocumentOpen(s.documentId))return void this.updateStatus(e,\"loaded\");if(t.segments.some(e=>{const t=this.coreState.core.documents[e.documentId];return\"loading\"===(null==t?void 0:t.status)}))return void this.updateStatus(e,\"loading\");const n=this.chapterStatus.get(e);\"loaded\"!==n&&\"password-required\"!==n&&\"error\"!==n&&this.updateStatus(e,\"idle\")}handleVisibleChange(e){if(!this.virtualPageMap)return;const t=Date.now(),r=this.config.prefetchChapters??1,s=/* @__PURE__ */new Set,n=/* @__PURE__ */new Set;for(const i of e){const e=this.virtualPageMap.atIndex(i);if(!e)continue;s.add(e.chapterId);const t=this.findChapter(e.chapterId);if(!t)continue;const r=Gt(t,e.localPageIndex);n.add(`${e.chapterId}:${r}`),n.add(`${e.chapterId}:${r+1}`)}if(0===s.size)return;const a=this.manifest.chapters.map(e=>e.chapterId),o=/* @__PURE__ */new Set;for(const i of s){const e=a.indexOf(i);if(-1!==e)for(let t=e-r;t<=e+r;t++)t>=0&&t<a.length&&o.add(t)}for(const i of o){const e=a[i];this.chapterLastUsed.set(e,t),this.ensureChapterLoaded(e)}for(const i of n){const[e,r]=i.split(\":\"),s=Number.parseInt(r,10);e&&Number.isFinite(s)&&(this.chapterLastUsed.set(e,t),this.ensureSegmentLoaded(e,s))}if(this.config.autoActivateOnLoad??1){const t=e[0],r=null!=t?this.virtualPageMap.atIndex(t):null;if(r){const e=Nt(this.findChapter(r.chapterId),r.localPageIndex);if(this.documentManager.provides().isDocumentOpen(e.documentId)){this.documentManager.provides().getActiveDocumentId()!==e.documentId&&this.documentManager.provides().setActiveDocument(e.documentId)}}}}collectIdleChapters(){const e=this.config.unloadTimeoutMs??6e4;if(e<=0)return;const t=Date.now();for(const[r,s]of this.chapterStatus){if(\"loaded\"!==s)continue;t-(this.chapterLastUsed.get(r)??0)>e&&this.closeChapter(r)}}ensureChapterLoaded(e){return this.ensureSegmentLoaded(e,0)}ensureAllSegmentsLoaded(e){const t=this.getSegmentPlanForChapter(e);return t?(async()=>{for(const r of t.segments){const t=await this.ensureSegmentLoaded(e,r.index);if(\"loaded\"!==t)return t}return\"loaded\"})():this.ensureChapterLoaded(e)}ensureSegmentLoaded(e,t){const r=this.findChapter(e);if(!r)return Promise.resolve(\"error\");const s=At(r);if(!s)return 0!==t?Promise.resolve(this.isSegmentDocumentOpen(e,0)?\"loaded\":\"error\"):this.ensureSingleDocumentChapter(r);if(t<0||t>=s.segments.length)return Promise.resolve(\"error\");const n=s.segments[t],a=n.documentId;if(this.documentManager.provides().isDocumentOpen(a))return this.chapterLastUsed.set(e,Date.now()),0===t&&this.syncChapterStatusFromDocuments(e),Promise.resolve(\"loaded\");const o=this.pendingSegmentLoadPromises.get(a);if(o)return o;const i=this.startLoadSegment(r,n).finally(()=>{this.pendingSegmentLoadPromises.delete(a)});return this.pendingSegmentLoadPromises.set(a,i),i}ensureSingleDocumentChapter(e){const t=e.chapterId,r=this.pendingChapterLoadPromises.get(t);if(r)return r;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 n=this.startLoadSegment(e,null).finally(()=>{this.pendingChapterLoadPromises.delete(t)});return this.pendingChapterLoadPromises.set(t,n),n}async resolveChapterUrls(e){const{chapterId:t}=e,r=this.chapterUrlsCache.get(t);if(r)return r;const s=this.pendingChapterUrlsPromises.get(t);if(s)return s;const n=(async()=>{const r=e.source;if(Ut(r)){const e=[...r.urls];return this.chapterUrlsCache.set(t,e),e}const s=this.config.chapterPdfLoader;if(null==s?void 0:s.loadChapterUrls){const r=await s.loadChapterUrls(e);if(!Array.isArray(r)||0===r.length)throw new Error(`Chapter \"${t}\" loadChapterUrls returned no URLs`);return this.chapterUrlsCache.set(t,r),r}throw new Error(`Chapter \"${t}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`)})();this.pendingChapterUrlsPromises.set(t,n);try{return await n}finally{this.pendingChapterUrlsPromises.delete(t)}}async openPayloadFromUrl(e,t,r){const s=r[t];if(!(null==s?void 0:s.trim()))throw new Error(`Chapter \"${e.chapterId}\" missing URL for segment ${t}`);const n=this.config.chapterPdfLoader,a={chapter:e,segmentIndex:t,segmentCount:r.length,urls:r,url:s};return(null==n?void 0:n.openPdf)?n.openPdf(a):{url:s}}async resolvePdfPayload(e,t){const r=e.source,n=this.config.chapterPdfLoader,a=kt(e);if(a){const r=Ot(Dt(e),a);if(t<0||t>=r)throw new Error(`Chapter \"${e.chapterId}\" invalid segmentIndex ${t} (expected 0..${r-1})`);const n=await this.resolveChapterUrls(e);return n.length!==r&&this.logger.warn(s.id,\"SegmentUrlCount\",`Chapter \"${e.chapterId}\" urls.length (${n.length}) != expected (${r})`),this.openPayloadFromUrl(e,t,n)}if(0!==t)throw new Error(`Chapter \"${e.chapterId}\" is not segmented`);if(r){if(Ut(r)){const r=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,t,r)}if(\"url\"in r)return{url:r.url};if(\"buffer\"in r)return{buffer:r.buffer};if(\"load\"in r)return r.load()}if(null==n?void 0:n.loadChapterUrls){const t=await this.resolveChapterUrls(e);return this.openPayloadFromUrl(e,0,t)}if(null==n?void 0:n.loadPdf)return n.loadPdf(e,t);throw new Error(`Chapter \"${e.chapterId}\" has no PDF source; configure source or chapterPdfLoader`)}async startLoadSegment(e,t){var r;const n=e.chapterId,a=(null==t?void 0:t.index)??0,o=(null==t?void 0:t.documentId)??n;0===a&&this.updateStatus(n,\"loading\"),this.chapterLastUsed.set(n,Date.now());try{const s=e.encrypted&&(null==(r=this.passwordProvider)?void 0:r.getCachedPassword)?this.passwordProvider.getCachedPassword(n):null,i=await this.resolvePdfPayload(e,a),h=this.documentManager.provides(),l=\"url\"in i?h.openDocumentUrl({documentId:o,url:i.url,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}):h.openDocumentBuffer({documentId:o,buffer:i.buffer,name:t?`${e.title} (${t.index+1})`:e.title,password:s??void 0,autoActivate:!1}),d=await new Promise((e,t)=>{l.wait(t=>e(t),e=>t(e))});return await new Promise((e,t)=>{d.task.wait(()=>e(),e=>t(e))}),h.isDocumentOpen(o)&&this.syncChapterStatusFromDocuments(n),this.waitForTerminalStatus(n)}catch(i){const e=this.chapterStatus.get(n);if(\"loaded\"!==e&&\"password-required\"!==e){const e=i instanceof Error?i.message:`Failed to load chapter \"${n}\"`;this.logger.error(s.id,\"LoadChapter\",e,i),0===a&&this.updateStatus(n,\"error\",e)}return this.chapterStatus.get(n)??\"error\"}}waitForTerminalStatus(e){return new Promise(t=>{const r=e=>(\"loaded\"===e||\"error\"===e||\"password-required\"===e||\"closed\"===e)&&(t(e),!0);if(r(this.chapterStatus.get(e)??\"idle\"))return;let s=null;s=this.statusChange$.on(t=>{t.chapterId===e&&r(t.status)&&(null==s||s(),s=null)})})}async handleDocumentError(e,t,r,n){if(r!==y.Password){const r=this.getSegmentPlanForChapter(t),{segmentIndex:s}=Ft(e);return void(r&&0!==s&&null!==s||this.updateStatus(t,\"error\"))}if(!this.passwordProvider)return void this.updateStatus(t,\"password-required\");const a=this.findChapter(t);if(!a)return;const o=(this.passwordAttempts.get(t)??0)+1;this.passwordAttempts.set(t,o);let i=null;try{i=await this.passwordProvider.resolvePassword(a,o-1)}catch(h){this.logger.error(s.id,\"PasswordProvider\",`Provider rejected for ${t}`,h)}if(!i)return void this.updateStatus(t,\"password-required\");this.updateStatus(t,\"loading\");this.documentManager.provides().retryDocument(e,{password:i}).wait(()=>{},()=>{})}closeChapter(e){const t=this.findChapter(e),r=this.documentManager.provides(),s=t?At(t):null,n=e=>{if(r.isDocumentOpen(e)){r.closeDocument(e).wait(()=>{},()=>{})}};if(s)for(const a of s.segments)n(a.documentId);else n(e);this.chapterUrlsCache.delete(e),this.pendingChapterUrlsPromises.delete(e),this.updateStatus(e,\"closed\")}updateStatus(e,t,r){this.chapterStatus.get(e)!==t&&(this.chapterStatus.set(e,t),this.statusChange$.emit({chapterId:e,status:t,...\"error\"===t&&r?{error:{message:r}}:{}}))}};qt.id=\"chapter-manager\";let Ht=qt;function Bt(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 r=0;r<e.items.length;r++){const s=e.items[r],n=t.items[r];if(s.globalPageIndex!==n.globalPageIndex||s.isPlaceholder!==n.isPlaceholder||s.chapterId!==n.chapterId||s.localPageIndex!==n.localPageIndex||s.pdfDocumentId!==n.pdfDocumentId||s.pdfPageIndex!==n.pdfPageIndex||s.offsetTop!==n.offsetTop||s.width!==n.width||s.height!==n.height)return!1}return!0}const Wt=class extends e{constructor(e,r){super(e,r),this.layoutChange$=t(void 0,Bt),this.visibleChange$=t(),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(Ht.id),this.documentManager=this.registry.getPlugin(n.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){return this.chapterManager.provides().isSegmentLoaded(e,0)}isChapterPagePlaceholder(e,t){const r=this.chapterManager.provides(),s=r.getChapterStatus(e);if(\"error\"===s||\"password-required\"===s)return!0;const n=r.getChapter(e);if(!n)return!0;const a=function(e,t){const r=Lt(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return(null==s?void 0:s.index)??Math.floor(t/r.threshold)}(n,t);return!r.isSegmentLoaded(e,a)}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;const{chapterId:r}=$t(e);if(0===((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(r).length)??0))return;const s=this.documentManager.provides();s.getActiveDocumentId()||s.setActiveDocument(e),this.harvestChapterSizes(r),this.refreshLayout()}onDocumentClosed(e){var t;const{chapterId:r}=$t(e);0!==((null==(t=this.virtualPageMap)?void 0:t.pagesOfChapter(r).length)??0)&&(this.dropChapterSizes(r),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,r)=>this.scrollToGlobalPdfPoint(e,t,r),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,r=0;for(let s=0;s<e;s++){const{width:e,height:n}=this.getPageSize(s);this.offsets[s]=t,t+=n+this.config.pageGap,e>r&&(r=e)}this.totalHeight=e>0?t-this.config.pageGap:0,this.totalWidth=r,this.layoutChange$.emit(this.computeLayout())}applyChapterPageSizes(e,t){if(!this.virtualPageMap)return;let r=!1;for(const s of t){const t=this.virtualPageMap.toGlobal(e,s.localPageIndex);if(!t)continue;const n=this.pageSizes.get(t.globalPageIndex);n&&n.width===s.width&&n.height===s.height||(this.pageSizes.set(t.globalPageIndex,{width:s.width,height:s.height}),r=!0)}if(r){const e=this.currentGlobalPageIndex,t=this.offsets[e]??0;if(this.rebuildOffsets(),this.viewportEl){const r=(this.offsets[e]??0)-t;0!==r&&(this.viewportEl.scrollTop+=r)}this.recomputeVisible()}}getDocumentScale(e){var t;return(null==(t=this.coreState.core.documents[e])?void 0:t.scale)??1}harvestChapterSizes(e,t=0){if(!this.virtualPageMap)return;const r=this.chapterManager.provides(),s=r.getChapter(e),n=this.virtualPageMap.pagesOfChapter(e);if(!s||0===n.length)return;const a=Lt(s),o=this.documentManager.provides(),i=[],h=(e,t,r,s)=>{var n;const a=o.getDocument(e);if(!(null==(n=null==a?void 0:a.pages)?void 0:n.length))return!1;const h=this.getDocumentScale(e);for(let o=0;o<s;o++){const e=a.pages[r+o];(null==e?void 0:e.size)&&i.push({localPageIndex:t+o,width:e.size.width*h,height:e.size.height*h})}return i.length>0};if(a)for(const l of a.segments){if(!r.isSegmentLoaded(e,l.index))continue;const t=l.localPageEnd-l.localPageStart+1;h(l.documentId,l.localPageStart,0,t)}else r.isSegmentLoaded(e,0)&&h(e,0,0,n.length);0!==i.length?this.applyChapterPageSizes(e,i):t<60&&requestAnimationFrame(()=>this.harvestChapterSizes(e,t+1))}onScaleChanged(e){const t=this.coreState.core.documents[e];if(!t||\"loaded\"!==t.status)return;const{chapterId:r}=$t(e);this.chapterManager.provides().getChapter(r)&&this.harvestChapterSizes(r)}dropChapterSizes(e){if(!this.virtualPageMap)return;let t=!1;for(const r of this.virtualPageMap.pagesOfChapter(e))this.pageSizes.delete(r.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 r=()=>this.recomputeVisible(),s=new ResizeObserver(()=>this.recomputeVisible());e.addEventListener(\"scroll\",r,{passive:!0}),s.observe(e),this.viewportObservers={unbind:()=>{e.removeEventListener(\"scroll\",r),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,r=t+this.viewportEl.clientHeight,s=this.findFirstVisibleIndex(t);let n=s;for(;n<e;){const e=this.getPageSize(n),t=this.offsets[n];if(e.height,t>=r)break;n++}const a=[];let o=s,i=-1;for(let h=s;h<n;h++){a.push(h);const e=this.offsets[h],s=e+this.getPageSize(h).height,n=Math.max(0,Math.min(s,r)-Math.max(e,t));n>i&&(i=n,o=h)}this.currentVisible=a,this.currentGlobalPageIndex=o,this.visibleChange$.emit({visibleGlobalPageIndices:a,currentGlobalPageIndex:o}),this.chapterManager.provides().setVisibleGlobalPages(a),this.layoutChange$.emit(this.computeLayout())}findFirstVisibleIndex(e){let t=0,r=this.offsets.length-1,s=0;for(;t<=r;){const n=t+r>>1;this.offsets[n]<=e?(s=n,t=n+1):r=n-1}return s}computeLayout(){const e=this.config.bufferSize,t=Math.max(0,(this.currentVisible[0]??0)-e),r=this.currentVisible[this.currentVisible.length-1]??-1,s=Math.min(this.offsets.length-1,(r>=0?r:0)+e),n=[];if(this.virtualPageMap&&this.offsets.length>0)for(let a=t;a<=s;a++){const e=this.virtualPageMap.atIndex(a);if(!e)continue;const t=this.getPageSize(a),r=this.chapterManager.provides().resolvePageDocument(e.chapterId,e.localPageIndex),s=this.isChapterPagePlaceholder(e.chapterId,e.localPageIndex);n.push({globalPageIndex:a,globalPageNumber:e.globalPageNumber,chapterId:e.chapterId,localPageIndex:e.localPageIndex,pdfDocumentId:null==r?void 0:r.documentId,pdfPageIndex:null==r?void 0:r.pageIndex,width:t.width,height:t.height,offsetTop:this.offsets[a]??0,isPlaceholder:s})}return{totalHeight:this.totalHeight,totalWidth:this.totalWidth||this.config.placeholderPageWidth,items:n,pageGap:this.config.pageGap}}scrollToIndex(e,t){if(!this.viewportEl||e<0||e>=this.offsets.length)return;const r=(this.offsets[e]??0)-((null==t?void 0:t.topOffset)??0);this.viewportEl.scrollTo({top:r,behavior:(null==t?void 0:t.behavior)??\"auto\"})}scrollToGlobalPdfPoint(e,t,r){var s;if(!this.viewportEl||e<0||e>=this.offsets.length||!this.virtualPageMap)return;const n=(null==r?void 0:r.marginTop)??80,a=this.virtualPageMap.atIndex(e);if(!a)return void this.scrollToIndex(e,r);const o=this.pageSizes.get(e),i=this.chapterManager.provides().resolvePageDocument(a.chapterId,a.localPageIndex),h=i?null==(s=this.documentManager.provides().getDocument(i.documentId))?void 0:s.pages[i.pageIndex]:void 0;if(!o||!h)return void this.scrollToIndex(e,r);const l=o.height/h.size.height,d=(this.offsets[e]??0)+t*l-n;this.viewportEl.scrollTo({top:Math.max(0,d),behavior:(null==r?void 0:r.behavior)??\"auto\"})}scrollToChapter(e,t){if(!this.virtualPageMap)return;const r=this.virtualPageMap.firstIndexOfChapter(e);r<0||(this.chapterManager.provides().ensureChapterLoaded(e),this.scrollToIndex(r,t))}scrollToGlobalNumber(e,t){if(!this.virtualPageMap)return;const r=this.virtualPageMap.byGlobalNumber(e);r&&this.scrollToIndex(r.globalPageIndex,t)}};Wt.id=\"chapter-scroll\";let jt=Wt;function Kt(e){const t=e[e.length-1];return{x:t.origin.x+t.size.width,y:t.origin.y+t.size.height}}function Jt(e,t){const r=e.origin.y,s=e.origin.y+e.size.height,n=t.origin.y,a=t.origin.y+t.size.height,o=Math.max(s,a)-Math.min(r,n);if(o<=0)return 0;return Math.max(0,Math.min(s,a)-Math.max(r,n))/o}function Qt(e,t){var r,s;if(e.chapterId!==t.chapterId||e.localPageIndex!==t.localPageIndex)return!1;const n=(null==(r=e.rectsPdfCoord)?void 0:r.length)?e.rectsPdfCoord:[e.rectPdfCoord],a=(null==(s=t.rectsPdfCoord)?void 0:s.length)?t.rectsPdfCoord:[t.rectPdfCoord],o=e.markerAnchor??Kt(n),i=t.markerAnchor??Kt(a);if(Math.hypot(o.x-i.x,o.y-i.y)<=6)return!0;for(const h of n)for(const e of a){if(Jt(h,e)<.5)continue;const t=Math.max(h.origin.x,e.origin.x);if(Math.min(h.origin.x+h.size.width,e.origin.x+e.size.width)-t>.25*Math.min(h.size.width,e.size.width))return!0}return!1}async function Yt(e,t,r){e.scrollToGlobalPageIndex(t),await function(e,t,r=2500){const s=e.getLayout().items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);return s?Promise.resolve(s):new Promise(s=>{const n=setTimeout(()=>{a(),s(null)},r),a=e.onLayoutChange(e=>{const r=e.items.find(e=>e.globalPageIndex===t&&!e.isPlaceholder);r&&(clearTimeout(n),a(),s(r))})})}(e,t),e.scrollToGlobalPdfPoint(t,r,{marginTop:80})}const Xt=class r extends e{constructor(e,r){super(e,r),this.change$=t([]),this.entries=/* @__PURE__ */new Map,this.chapterScroll=this.registry.getPlugin(jt.id),this.chapterManager=this.registry.getPlugin(St.id),this.documentManager=this.registry.getPlugin(n.id)}async initialize(e){var t;if(this.config=e,null==(t=e.callbacks)?void 0:t.load)try{const t=await e.callbacks.load();for(const e of t)this.entries.set(e.id,e);this.change$.emit(this.list())}catch(s){this.logger.error(r.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(Qt(s.anchor,e.anchor))return s;const t=e.id??`bm-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r={id:t,label:e.label,anchor:e.anchor,metadata:e.metadata,createdAt:Date.now()};return this.entries.set(t,r),this.notifyAndPersist(),r}removeBookmark(e){var t,r,s;this.entries.delete(e)&&(this.notifyAndPersist(),null==(s=null==(r=null==(t=this.config)?void 0:t.callbacks)?void 0:r.onRemoveSuccess)||s.call(r,e))}async requestRemoveBookmark(e){var t,s;const n=this.entries.get(e);if(!n)return!1;const a=null==(s=null==(t=this.config)?void 0:t.callbacks)?void 0:s.onRequestRemove;if(a)try{if(!(await a(n)))return!1}catch(o){return this.logger.error(r.id,\"RequestRemove\",\"callback failed\",o),!1}return this.removeBookmark(e),!0}updateBookmark(e,t){const r=this.entries.get(e);r&&(this.entries.set(e,{...r,...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[r,s]of this.entries.entries())s.anchor.chapterId===e&&this.entries.delete(r);for(const r of t)r.anchor.chapterId===e&&this.entries.set(r.id,r);this.notifyAndPersist()}notifyAndPersist(){var e,t;const s=this.list();this.change$.emit(s),(null==(t=null==(e=this.config)?void 0:e.callbacks)?void 0:t.persist)&&Promise.resolve(this.config.callbacks.persist(s)).catch(e=>this.logger.error(r.id,\"Persist\",\"persist callback rejected\",e))}async scrollToBookmark(e){const t=this.entries.get(e);if(!t)return;const r=this.chapterScroll.provides(),s=this.chapterManager.provides();await s.ensureAllSegmentsLoaded(t.anchor.chapterId);let n=t.anchor.globalPageIndex;if(void 0===n){const e=this.chapterManager.provides().getVirtualPageMap().toGlobal(t.anchor.chapterId,t.anchor.localPageIndex);if(!e)return;n=e.globalPageIndex}const a=function(e){if(e.markerAnchor)return e.markerAnchor.y;const t=e.rectPdfCoord;return t.origin.y+t.size.height}(t.anchor);await Yt(r,n,a)}};Xt.id=\"paragraph-bookmark\";let Zt=Xt;const er={manifest:ht,create:e=>new Zt(it,e),reducer:e=>e,initialState:{}},tr={\"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 rr{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(tr);for(const t of this.specs){const r=e[t.toolbarSlot];if(!r)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??[]};r.items=sr(r.items,s,t.position)}return e}}function sr(e,t,r){return(null==r?void 0:r.after)||(null==r?void 0:r.before)?function(e,t,r){const s=e=>{const n=[];for(const a of e)\"group\"!==a.type?r.before&&a.id===r.before?n.push(t,a):(n.push(a),r.after&&a.id===r.after&&n.push(t)):n.push({...a,items:s(a.items)});return n};return s(e)}(e,t,r):function(e,t){return e.map(e=>\"group\"===e.type?{...e,items:[...e.items,t]}:e)}(e,t)}const nr={annotate:\"annotation-toolbar\",shapes:\"shapes-toolbar\",insert:\"insert-toolbar\",form:\"form-toolbar\",redact:\"redaction-toolbar\"};function ar(){return{\"mode:view\":{id:\"mode:view\",label:\"View\",categories:[\"mode\",\"mode-view\"],action:({registry:e,documentId:t})=>{const r=e.getPlugin(\"ui\")?.provides(),s=e.getPlugin(\"interaction-manager\")?.provides();r&&s&&(s.forDocument(t)?.activateDefaultMode(),r.forDocument(t).closeToolbarSlot(\"top\",\"secondary\"),e.getPlugin(d)?.provides().forDocument(t).setLocked((e=>e.getPluginConfig(d).locked??{type:c.None})(e)))},active:({state:e,documentId:t})=>!C(e.plugins,t,\"top\",\"secondary\")},\"mode:annotate\":{id:\"mode:annotate\",label:\"Annotate\",categories:[\"mode\",\"mode-annotate\",\"annotation\"],action:({registry:e,documentId:t})=>{const r=e.getPlugin(\"ui\")?.provides();r&&(r.setActiveToolbar(\"top\",\"secondary\",\"annotation-toolbar\",t),e.getPlugin(d)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(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 r=e.getPlugin(\"ui\")?.provides();r&&(r.setActiveToolbar(\"top\",\"secondary\",\"shapes-toolbar\",t),e.getPlugin(d)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(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 r=e.getPlugin(\"ui\")?.provides();r&&(r.setActiveToolbar(\"top\",\"secondary\",\"insert-toolbar\",t),e.getPlugin(d)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(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 r=e.getPlugin(\"ui\")?.provides();r&&(r.setActiveToolbar(\"top\",\"secondary\",\"form-toolbar\",t),e.getPlugin(d)?.provides().forDocument(t).setLocked({type:c.None}))},active:({state:e,documentId:t})=>C(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 r=e.getPlugin(\"ui\")?.provides();r&&(r.setActiveToolbar(\"top\",\"secondary\",\"redaction-toolbar\",t),e.getPlugin(d)?.provides().forDocument(t).setLocked({type:c.Include,categories:[\"form\"]}))},active:({state:e,documentId:t})=>C(e.plugins,t,\"top\",\"secondary\",\"redaction-toolbar\")}}}function or(e){const t=e.toolbar??{},r=t.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"],n=r.length>0,{schema:d,operationRegistry:c}=function(e={}){var t,r,s,n,a,o;const i=new Set(e.enabledModes??[\"view\",\"annotate\",\"shapes\",\"insert\",\"form\",\"redact\"]),h=new rr;(null==(t=e.customOperations)?void 0:t.length)&&h.registerAll(e.customOperations);const l=h.buildToolbars(),d={};for(const u of i){if(\"view\"===u)continue;const e=nr[u];l[e]&&(d[e]=l[e])}const c=function(e){if(0===e.size)return null;const t=(e,t,r)=>({type:\"command-button\",id:`${e}-mode`,commandId:r,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}]}}(i);return c&&(d[\"chapter-editor-main-toolbar\"]=c),(null==(r=e.extend)?void 0:r.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==(n=e.extend)?void 0:n.sidebars)??{},modals:(null==(a=e.extend)?void 0:a.modals)??{},selectionMenus:(null==(o=e.extend)?void 0:o.selectionMenus)??{}},operationRegistry:h}}({...t,enabledModes:r}),p={...n?ar():{},...n?ir(c.list()):{},...e.commands??{}},C=[s(a,{initialDocuments:[]}),s(q,{manifest:e.manifest,overlapStrategy:e.overlapStrategy,passwordProvider:e.passwordProvider,chapterPdfLoader:e.chapterPdfLoader,prefetchChapters:e.prefetchChapters,unloadTimeoutMs:e.unloadTimeoutMs}),s(me,{placeholderPageHeight:e.placeholderPageHeight,placeholderPageWidth:e.placeholderPageWidth}),s(o),s(i),s(h),s(l,{marquee:{enabled:!1},toleranceFactor:1.2,minSelectionDragDistance:4}),s(g),s(u),s(m),s(f),s(v,!1===e.loadDefaultStampLibrary?{manifests:[]}:void 0),s(P),...Object.keys(p).length>0?[s(I,{commands:p})]:[],...n?[s(b),s(w,{schema:d})]:[]];return e.notes&&C.push(s(ot,{callbacks:e.notes.callbacks,ui:e.features?.notes?.marker})),e.bookmarks&&C.push(s(er,{callbacks:e.bookmarks.callbacks,ui:e.features?.bookmarks?.marker,hover:e.features?.bookmarks?.hover})),{plugins:C,uiSchema:d,operationRegistry:c}}function ir(e){const t={};for(const r of e)r.handler&&(t[r.commandId]={id:r.commandId,labelKey:r.i18nKey,label:r.label,icon:r.icon,categories:r.categories,action:({documentId:e})=>{r.handler?.({documentId:e,chapterId:e})}});return t}function hr(e,t){const r=e;return!1===e?{...t,enabled:!1}:!0===e||void 0===e?{...t,enabled:t.enabled??!0}:{...t,...r,enabled:!1!==(null==r?void 0:r.enabled)}}function lr(e){var t;const r=hr(null==e?void 0:e.markup,{enabled:!0}),s=hr(null==e?void 0:e.bookmarks,{enabled:!0}),n=hr(null==e?void 0:e.notes,{enabled:!0}),a=hr(null==e?void 0:e.zoom,{enabled:!0,min:.5,max:3,initial:1}),o=hr(void 0===(null==e?void 0:e.selectionToolbar)?!1!==r.enabled||!1!==n.enabled:e.selectionToolbar,{enabled:!0});return{markup:r,bookmarks:s,notes:n,zoom:a,scrollViewport:{background:(null==(t=null==e?void 0:e.scrollViewport)?void 0:t.background)??\"#f1f5f9\"},selectionToolbar:o}}S.HIGHLIGHT,S.UNDERLINE,S.SQUIGGLY,S.STRIKEOUT,S.HIGHLIGHT,S.UNDERLINE,S.SQUIGGLY,S.STRIKEOUT;const dr=lr(),cr={};function ur(e){return or({...e,toolbar:e.toolbar??{enabledModes:[]},features:lr(e.features)})}function pr(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function gr(e,t){return`${e}#s${t}`}function mr(e){const t=function(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return pr(t)?t.segmentPageThreshold:null}(e);if(!t)return null;const r=function(e){const[t,r]=e.localPageRange;return r-t+1}(e),s=function(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}(r,t),n=pr(e.source)?e.source.urls:void 0,a=[];for(let o=0;o<s;o++){const s=o*t,i=Math.min(s+t-1,r-1);if(s>=r)break;a.push({index:o,url:n?.[o]??\"\",localPageStart:s,localPageEnd:i,documentId:gr(e.chapterId,o)})}return{chapterId:e.chapterId,threshold:t,pageCount:r,segments:a}}function fr(e,t){const r=mr(e);if(!r)return 0;const s=r.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return s?.index??Math.floor(t/r.threshold)}const vr={overlapStrategy:{kind:\"first-wins\"},passwordProvider:new class{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}(async()=>null),prefetchChapters:1,loadDefaultStampLibrary:!1,unloadTimeoutMs:12e4,toolbar:{enabledModes:[]}};function Pr(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 Ir(e){return{...vr,manifest:e.manifest,chapterPdfLoader:e.chapterPdfLoader,overlapStrategy:e.overlapStrategy??vr.overlapStrategy,notes:{callbacks:e.notes},bookmarks:{callbacks:e.bookmarks},features:lr(e.features)}}function br(e){const t=Ir(Pr(e)),{plugins:r}=ur(t);return{plugins:r,features:t.features,editorOptions:t}}function Cr(e){const{features:t,...r}=Ir(Pr(e));return r}function wr(e){return e.pdfDocumentId??e.chapterId}function yr(e){return e.pdfPageIndex??e.localPageIndex}function Sr(e,t){e.wait(t,()=>{})}async function Mr(e){const t=e.trim();if(!t)return!1;try{if(\"undefined\"!=typeof navigator&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(t),!0}catch{}if(\"undefined\"==typeof document)return!1;try{const e=document.createElement(\"textarea\");e.value=t,e.setAttribute(\"readonly\",\"\"),e.style.position=\"fixed\",e.style.left=\"-9999px\",document.body.appendChild(e),e.select();const r=document.execCommand(\"copy\");return document.body.removeChild(e),r}catch{return!1}}function xr(e,t,r){return{chapterId:e.chapterId,localPageIndex:e.localPageIndex,globalPageIndex:e.globalPageIndex,globalPageNumber:e.globalPageNumber,rectsPdfCoord:t,selectedText:r}}const $r=1;function Lr(e){const t=new Uint8Array(e);let r=\"\";for(let s=0;s<t.length;s++)r+=String.fromCharCode(t[s]);return btoa(r)}function Dr(e){return e.map(e=>{if(!(e.ctx&&\"data\"in e.ctx&&e.ctx.data instanceof ArrayBuffer))return{annotation:e.annotation};const t=e.ctx;return{annotation:e.annotation,ctx:{dataBase64:Lr(t.data),mimeType:t.mimeType}}})}function Ur(e){return e.map(e=>{if(!e.ctx?.dataBase64)return{annotation:e.annotation};const t=function(e){const t=atob(e),r=new Uint8Array(t.length);for(let s=0;s<t.length;s++)r[s]=t.charCodeAt(s);return r.buffer}(e.ctx.dataBase64);return{annotation:e.annotation,ctx:{data:t,...e.ctx.mimeType?{mimeType:e.ctx.mimeType}:{}}}})}function kr(e){return{bookmarks:!1!==e?.bookmarks,notes:!1!==e?.notes,markup:!1!==e?.markup}}function Tr(e){return new Promise((t,r)=>{e.wait(e=>t(e),e=>r(e))})}function Fr(e){const t=e.getPlugin(p.id)?.provides(),r=e.getPlugin(nt.id)?.provides(),s=e.getPlugin(Zt.id)?.provides(),n=e.getPlugin(_.id)?.provides();return{annotation:t,note:r,bookmark:s,chapterManager:n}}async function Or(e,t,r){if(!r||!e)return;const s=e.getSegmentPlan(t)?await e.ensureAllSegmentsLoaded(t):await e.ensureChapterLoaded(t);if(\"loaded\"!==s)throw new Error(`章节 ${t} 未加载成功(${s}),无法导入/导出划线`)}async function Ar(e,t,r){const s=kr(r),{annotation:n,note:a,bookmark:o,chapterManager:i}=Fr(e),h={chapterId:t};if(s.bookmarks){if(!o)throw new Error(\"paragraph-bookmark 插件未注册\");h.bookmarks=o.listBookmarksForChapter(t)}if(s.notes){if(!a)throw new Error(\"note 插件未注册\");h.notes=a.listNotesForChapter(t)}if(s.markup){if(!n)throw new Error(\"annotation 插件未注册\");await Or(i,t,!1!==r?.ensureChapterLoaded);const e=await async function(e,t,r){const s=t.getSegmentPlan(r);if(!s)return Tr(e.forDocument(r).exportAnnotations());const n=[];for(const a of s.segments){if(!t.isSegmentLoaded(r,a.index))continue;const s=await Tr(e.forDocument(a.documentId).exportAnnotations());for(const e of s){const t=e.annotation.pageIndex;n.push({...e,annotation:{...e.annotation,pageIndex:t+a.localPageStart}})}}return n}(n,i,t);h.markup=Dr(e)}return h}async function Nr(e,t,r){const s={};for(const n of t.chapters){const t=await Ar(e,n.chapterId,r),{chapterId:a,...o}=t;s[n.chapterId]=o}return{version:1,exportedAt:/* @__PURE__ */(new Date).toISOString(),chapters:s}}async function Gr(e,t,r){const s=kr(r),n=r?.mode??\"replace\",{annotation:a,note:o,bookmark:i,chapterManager:h}=Fr(e),l=t.chapterId;if(s.bookmarks&&t.bookmarks){if(!i)throw new Error(\"paragraph-bookmark 插件未注册\");if(\"replace\"===n)i.replaceBookmarksForChapter(l,t.bookmarks);else for(const e of t.bookmarks)i.addBookmark(e)}if(s.notes&&t.notes){if(!o)throw new Error(\"note 插件未注册\");if(\"replace\"===n)o.replaceNotesForChapter(l,t.notes);else for(const e of t.notes)o.registerNote(e)}if(s.markup&&t.markup){if(!a)throw new Error(\"annotation 插件未注册\");await Or(h,l,!1!==r?.ensureChapterLoaded);!function(e,t,r,s,n){const a=t.getSegmentPlan(r);if(!a){const t=e.forDocument(r);return\"replace\"===n&&t.deleteAllAnnotations(),void t.importAnnotations(s)}const o=t.getChapter(r);if(!o)return;const i=/* @__PURE__ */new Map;for(const h of s){const e=h.annotation.pageIndex,t=fr(o,e),r=a.segments[t];if(!r)continue;const s=i.get(t)??[];s.push({...h,annotation:{...h.annotation,pageIndex:e-r.localPageStart}}),i.set(t,s)}for(const h of a.segments){const t=e.forDocument(h.documentId),r=i.get(h.index)??[];\"replace\"===n&&t.deleteAllAnnotations(),r.length>0&&t.importAnnotations(r)}}(a,h,l,Ur(t.markup),n)}r?.persistNotes&&o&&await r.persistNotes(o.listAllNotes()),r?.persistBookmarks&&i&&await r.persistBookmarks(i.listBookmarks())}async function Er(e,t,r){if(1!==t.version)throw new Error(`不支持的归档版本 ${t.version},当前为 1`);for(const[s,n]of Object.entries(t.chapters))await Gr(e,{chapterId:s,...n},r)}function zr(e){return JSON.stringify(e,null,2)}function Rr(e){const t=JSON.parse(e);if(!t||\"object\"!=typeof t||!t.chapters)throw new Error(\"无效的章节标注 JSON\");return t}function Vr(e){return JSON.stringify(e,null,2)}function _r(e){const t=JSON.parse(e);if(!t?.chapterId)throw new Error(\"无效的章节标注 JSON:缺少 chapterId\");return t}function qr(e,t){const r=new Blob([t],{type:\"application/json;charset=utf-8\"}),s=URL.createObjectURL(r),n=document.createElement(\"a\");n.href=s,n.download=e,n.click(),URL.revokeObjectURL(s)}function Hr(e,t=\"chapter-annotations.json\"){qr(t,zr(e))}function Br(e,t){qr(t??`chapter-annotations-${e.chapterId}.json`,Vr(e))}export{$r as CHAPTER_ANNOTATIONS_ARCHIVE_VERSION,cr as DEFAULT_CHAPTER_VIEWER_CONFIG,dr as DEFAULT_CHAPTER_VIEWER_FEATURES,xr as buildChapterSelectionSnapshot,zr as chapterAnnotationsArchiveToJson,Vr as chapterAnnotationsSnapshotToJson,wr as chapterDocumentIdForPage,yr as chapterPdfPageIndexForPage,Mr as copyTextToClipboard,ar as createChapterEditorModeCommands,br as createChapterViewerBundle,ur as createChapterViewerEditor,Cr as createChapterViewerEditorOptions,or as createPdfChapterEditor,Ur as deserializeMarkupItems,Hr as downloadChapterAnnotationsArchive,Br as downloadChapterAnnotationsSnapshot,qr as downloadJsonFile,Nr as exportAllChapterAnnotations,Ar as exportChapterAnnotations,Gr as importChapterAnnotations,Er as importChapterAnnotationsArchive,Rr as parseChapterAnnotationsArchiveJson,_r as parseChapterAnnotationsSnapshotJson,Dr as serializeMarkupItems,Ir as toCreatePdfChapterEditorOptions,Sr as waitSelectedText};\n//# sourceMappingURL=index.js.map\n","import { LockModeType } from \"@embedpdf/plugin-annotation\";\nimport { PdfAnnotationSubtype, uuidV4, PdfBlendMode } from \"@embedpdf/models\";\nconst DEFAULT_CHAPTER_TEXT_SELECTION_BACKGROUND = \"rgba(33, 150, 243)\";\nconst DEFAULT_CHAPTER_SCROLL_VIEWPORT_BACKGROUND = \"#f1f5f9\";\nfunction chapterTextSelectionStyle(toolbar) {\n const bg = toolbar == null ? void 0 : toolbar.selectionBackground;\n if (!bg) return void 0;\n return { background: bg };\n}\nconst DEFAULT_STYLES = {\n highlight: { offsetY: 0 },\n underline: { offsetY: 2.5 },\n squiggly: { offsetY: 4 },\n strikeout: { offsetY: 0 }\n};\nconst SUBTYPE = {\n highlight: PdfAnnotationSubtype.HIGHLIGHT,\n underline: PdfAnnotationSubtype.UNDERLINE,\n squiggly: PdfAnnotationSubtype.SQUIGGLY,\n strikeout: PdfAnnotationSubtype.STRIKEOUT\n};\nfunction offsetRectsDown(rects, dy) {\n if (dy === 0) return rects;\n return rects.map((r) => ({\n origin: { x: r.origin.x, y: r.origin.y + dy },\n size: { ...r.size }\n }));\n}\nfunction unionRects(rects) {\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const r of rects) {\n minX = Math.min(minX, r.origin.x);\n minY = Math.min(minY, r.origin.y);\n maxX = Math.max(maxX, r.origin.x + r.size.width);\n maxY = Math.max(maxY, r.origin.y + r.size.height);\n }\n return {\n origin: { x: minX, y: minY },\n size: { width: maxX - minX, height: maxY - minY }\n };\n}\nfunction resolveStyle(kind, styles) {\n return {\n ...DEFAULT_STYLES[kind],\n ...styles == null ? void 0 : styles[kind]\n };\n}\nfunction applySelectionMarkup(documentId, kind, annotation, selection, styles) {\n const annotationScope = annotation.forDocument(documentId);\n const selectionScope = selection.forDocument(documentId);\n if (!annotationScope || !selectionScope) return false;\n const toolId = kind === \"highlight\" ? \"highlight\" : kind === \"underline\" ? \"underline\" : kind === \"squiggly\" ? \"squiggly\" : \"strikeout\";\n const tool = annotation.getTool(toolId);\n if (!tool) return false;\n const defaults = tool.defaults;\n const style = resolveStyle(kind, styles);\n const formatted = selectionScope.getFormattedSelection();\n if (formatted.length === 0) return false;\n annotationScope.setLocked({ type: LockModeType.Exclude, categories: [\"markup\", \"shape\"] });\n for (const sel of formatted) {\n const id = uuidV4();\n const strokeColor = style.color ?? defaults.color ?? defaults.strokeColor;\n const opacity = style.opacity ?? defaults.opacity;\n const strokeWidth = style.thickness ?? defaults.strokeWidth;\n const offsetY = style.offsetY ?? 0;\n const needsOffset = kind === \"underline\" || kind === \"squiggly\" || kind === \"strikeout\";\n const segmentRects = needsOffset ? offsetRectsDown(sel.segmentRects, offsetY) : sel.segmentRects;\n const rect = kind === \"underline\" || kind === \"squiggly\" || kind === \"strikeout\" ? unionRects(segmentRects) : sel.rect;\n annotationScope.createAnnotation(sel.pageIndex, {\n id,\n created: /* @__PURE__ */ new Date(),\n flags: [\"print\"],\n type: SUBTYPE[kind],\n ...kind === \"highlight\" ? { blendMode: PdfBlendMode.Multiply } : {},\n strokeColor,\n opacity,\n ...strokeWidth != null ? { strokeWidth } : {},\n pageIndex: sel.pageIndex,\n rect,\n segmentRects\n });\n }\n selectionScope.clear();\n return true;\n}\nconst CHAPTER_MARKUP_SUBTYPES = /* @__PURE__ */ new Set([\n PdfAnnotationSubtype.HIGHLIGHT,\n PdfAnnotationSubtype.UNDERLINE,\n PdfAnnotationSubtype.SQUIGGLY,\n PdfAnnotationSubtype.STRIKEOUT\n]);\nfunction isChapterMarkupAnnotationType(type) {\n return CHAPTER_MARKUP_SUBTYPES.has(type);\n}\nfunction isPlainObject(value) {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction mergeMarkupStyles(prev, next) {\n if (!prev) return next;\n if (!next) return prev;\n const out = { ...prev };\n for (const kind of [\"highlight\", \"underline\", \"squiggly\", \"strikeout\"]) {\n if (next[kind]) {\n out[kind] = { ...prev[kind], ...next[kind] };\n }\n }\n return out;\n}\nfunction mergeFeatureModule(prev, next) {\n if (typeof next === \"boolean\") return next;\n if (typeof prev === \"boolean\" || prev === void 0) return { ...next };\n if (isPlainObject(prev) && isPlainObject(next)) {\n const merged = { ...prev, ...next };\n if (isPlainObject(prev.styles) && isPlainObject(next.styles)) {\n merged.styles = mergeMarkupStyles(\n prev.styles,\n next.styles\n );\n }\n return merged;\n }\n return next;\n}\nfunction mergeChapterViewerConfig(...configs) {\n const merged = {};\n for (const cfg of configs) {\n if (!cfg) continue;\n if (cfg.markup !== void 0) {\n merged.markup = mergeFeatureModule(merged.markup, cfg.markup);\n }\n if (cfg.bookmarks !== void 0) {\n merged.bookmarks = mergeFeatureModule(merged.bookmarks, cfg.bookmarks);\n }\n if (cfg.notes !== void 0) {\n merged.notes = mergeFeatureModule(merged.notes, cfg.notes);\n }\n if (cfg.zoom !== void 0) {\n merged.zoom = mergeFeatureModule(merged.zoom, cfg.zoom);\n }\n if (cfg.selectionToolbar !== void 0) {\n merged.selectionToolbar = mergeFeatureModule(merged.selectionToolbar, cfg.selectionToolbar);\n }\n if (cfg.scrollViewport !== void 0) {\n merged.scrollViewport = { ...merged.scrollViewport, ...cfg.scrollViewport };\n }\n }\n return merged;\n}\nfunction featureOn(value, defaults) {\n const partial = value;\n if (value === false) return { ...defaults, enabled: false };\n if (value === true || value === void 0) {\n return { ...defaults, enabled: defaults.enabled ?? true };\n }\n return { ...defaults, ...partial, enabled: (partial == null ? void 0 : partial.enabled) !== false };\n}\nfunction normalizeChapterViewerConfig(config) {\n var _a;\n const markup = featureOn(config == null ? void 0 : config.markup, { enabled: true });\n const bookmarks = featureOn(config == null ? void 0 : config.bookmarks, { enabled: true });\n const notes = featureOn(config == null ? void 0 : config.notes, { enabled: true });\n const zoom = featureOn(config == null ? void 0 : config.zoom, {\n enabled: true,\n min: 0.5,\n max: 3,\n initial: 1\n });\n const selectionToolbarDefault = (config == null ? void 0 : config.selectionToolbar) === void 0 ? markup.enabled !== false || notes.enabled !== false : config.selectionToolbar;\n const selectionToolbar = featureOn(selectionToolbarDefault, {\n enabled: true\n });\n const scrollViewport = {\n background: ((_a = config == null ? void 0 : config.scrollViewport) == null ? void 0 : _a.background) ?? DEFAULT_CHAPTER_SCROLL_VIEWPORT_BACKGROUND\n };\n return {\n markup,\n bookmarks,\n notes,\n zoom,\n scrollViewport,\n selectionToolbar\n };\n}\nexport {\n DEFAULT_CHAPTER_SCROLL_VIEWPORT_BACKGROUND,\n DEFAULT_CHAPTER_TEXT_SELECTION_BACKGROUND,\n applySelectionMarkup,\n chapterTextSelectionStyle,\n isChapterMarkupAnnotationType,\n mergeChapterViewerConfig,\n normalizeChapterViewerConfig\n};\n//# sourceMappingURL=index.js.map\n","import { BasePlugin, createBehaviorEmitter, createEmitter } from \"@embedpdf/core\";\nimport { PdfErrorCode } from \"@embedpdf/models\";\nimport { DocumentManagerPlugin } from \"@embedpdf/plugin-document-manager\";\nconst CHAPTER_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};\nconst e = \"#s\";\nfunction t(e2) {\n const [t2, n2] = e2.localPageRange;\n return n2 - t2 + 1;\n}\nfunction n(e2) {\n return !!e2 && \"urls\" in e2 && Array.isArray(e2.urls);\n}\nfunction r(e2) {\n if (null != e2.segmentPageThreshold && e2.segmentPageThreshold > 0) return e2.segmentPageThreshold;\n const t2 = e2.source;\n return n(t2) ? t2.segmentPageThreshold : null;\n}\nfunction a(t2, n2) {\n return `${t2}${e}${n2}`;\n}\nfunction o(t2) {\n const n2 = t2.lastIndexOf(e);\n if (-1 === n2) return { chapterId: t2, segmentIndex: null };\n const r2 = t2.slice(0, n2), s = Number.parseInt(t2.slice(n2 + 2), 10);\n return !Number.isFinite(s) || s < 0 ? { chapterId: t2, segmentIndex: null } : { chapterId: r2, segmentIndex: s };\n}\nfunction c(e2, t2) {\n return e2 <= 0 || t2 <= 0 ? 0 : Math.ceil(e2 / t2);\n}\nfunction l(e2) {\n const s = r(e2);\n if (!s) return null;\n const o2 = t(e2), l2 = c(o2, s), u2 = n(e2.source) ? e2.source.urls : void 0, h2 = [];\n for (let t2 = 0; t2 < l2; t2++) {\n const n2 = t2 * s, r2 = Math.min(n2 + s - 1, o2 - 1);\n if (n2 >= o2) break;\n h2.push({ index: t2, url: (u2 == null ? void 0 : u2[t2]) ?? \"\", localPageStart: n2, localPageEnd: r2, documentId: a(e2.chapterId, t2) });\n }\n return { chapterId: e2.chapterId, threshold: s, pageCount: o2, segments: h2 };\n}\nfunction u(e2, t2) {\n const n2 = l(e2);\n if (!n2) return { documentId: e2.chapterId, pageIndex: t2 };\n const r2 = n2.segments.find((e3) => t2 >= e3.localPageStart && t2 <= e3.localPageEnd);\n if (!r2) {\n const r3 = n2.segments[n2.segments.length - 1];\n return r3 ? { documentId: r3.documentId, pageIndex: t2 - r3.localPageStart } : { documentId: e2.chapterId, pageIndex: t2 };\n }\n return { documentId: r2.documentId, pageIndex: t2 - r2.localPageStart };\n}\nfunction h(e2, t2) {\n const n2 = l(e2);\n if (!n2) return 0;\n const r2 = n2.segments.find((e3) => t2 >= e3.localPageStart && t2 <= e3.localPageEnd);\n return (r2 == null ? void 0 : r2.index) ?? Math.floor(t2 / n2.threshold);\n}\nfunction i(e2) {\n var _a;\n const s = r(e2);\n if (!s) return [];\n const a2 = [], { chapterId: o2 } = e2, l2 = t(e2);\n s <= 0 && a2.push(`${o2}: segmentPageThreshold must be > 0`);\n const u2 = e2.source;\n if (!n(u2)) return a2;\n 0 === u2.urls.length && a2.push(`${o2}: source.urls must not be empty`);\n const h2 = c(l2, s);\n u2.urls.length !== h2 && a2.push(`${o2}: source.urls.length (${u2.urls.length}) must equal ceil(pageCount/threshold) (${h2})`);\n for (let t2 = 0; t2 < u2.urls.length; t2++) ((_a = u2.urls[t2]) == null ? void 0 : _a.trim()) || a2.push(`${o2}: source.urls[${t2}] is empty`);\n return a2;\n}\nfunction g(e2) {\n const t2 = [], n2 = /* @__PURE__ */ new Set();\n for (const r2 of e2.chapters) {\n n2.has(r2.chapterId) && t2.push(`Duplicate chapterId: ${r2.chapterId}`), n2.add(r2.chapterId);\n const [e3, s] = r2.globalPageRange, [a2, o2] = r2.localPageRange;\n if (e3 > s && t2.push(`${r2.chapterId}: invalid globalPageRange [${e3},${s}]`), a2 > o2 && t2.push(`${r2.chapterId}: invalid localPageRange [${a2},${o2}]`), s - e3 !== o2 - a2 && t2.push(`${r2.chapterId}: page-count mismatch (global ${s - e3 + 1} vs local ${o2 - a2 + 1})`), r2.ownedGlobalPages) for (const n3 of r2.ownedGlobalPages) (n3 < e3 || n3 > s) && t2.push(`${r2.chapterId}: ownedGlobalPages contains ${n3} outside range`);\n t2.push(...i(r2));\n }\n return t2;\n}\nfunction d(e2) {\n const t2 = [], n2 = (e3) => {\n for (const r2 of e3) {\n const { children: e4, ...s } = r2;\n t2.push(s), (e4 == null ? void 0 : e4.length) && n2(e4);\n }\n };\n return n2(e2), t2;\n}\nfunction p(e2) {\n var _a;\n for (const t2 of e2) if ((_a = t2.children) == null ? void 0 : _a.length) return true;\n return false;\n}\nfunction f(e2) {\n const t2 = d(e2.chapters);\n return t2.length === e2.chapters.length ? e2 : { ...e2, chapters: t2 };\n}\nconst P = { kind: \"first-wins\" };\nfunction m(e2, t2 = P) {\n const n2 = /* @__PURE__ */ new Map();\n for (const s of e2.chapters) {\n const [e3, t3] = s.globalPageRange;\n for (let r3 = e3; r3 <= t3; r3++) {\n const e4 = n2.get(r3);\n e4 ? e4.push(s) : n2.set(r3, [s]);\n }\n }\n const r2 = /* @__PURE__ */ new Map();\n for (const [s, a2] of n2) r2.set(s, I(s, a2, t2));\n return r2;\n}\nfunction I(e2, t2, n2) {\n if (1 === t2.length) return t2[0].chapterId;\n switch (n2.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 n3 = t2.find((t3) => {\n var _a;\n return (_a = t3.ownedGlobalPages) == null ? void 0 : _a.includes(e2);\n });\n return n3 ? n3.chapterId : t2[0].chapterId;\n }\n case \"custom\":\n return n2.resolve(e2, t2);\n }\n}\nclass b {\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 n2 = this._byChapter.get(e2);\n return n2 ? n2.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 w(e2, t2 = P) {\n const n2 = m(e2, t2), r2 = /* @__PURE__ */ new Map();\n for (const c2 of e2.chapters) r2.set(c2.chapterId, c2);\n const s = Array.from(n2.keys()).sort((e3, t3) => e3 - t3), a2 = [];\n let o2 = 0;\n for (const c2 of s) {\n const e3 = n2.get(c2), t3 = r2.get(e3);\n if (!t3) continue;\n const [s2] = t3.globalPageRange, [l2] = t3.localPageRange, u2 = l2 + (c2 - s2);\n a2.push({ globalPageIndex: o2++, globalPageNumber: c2, chapterId: e3, localPageIndex: u2 });\n }\n return new b(a2);\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 = P;\n this.chapterStatus = /* @__PURE__ */ new Map();\n this.chapterLastUsed = /* @__PURE__ */ new Map();\n this.passwordAttempts = /* @__PURE__ */ new Map();\n this.pendingChapterLoadPromises = /* @__PURE__ */ new Map();\n this.pendingSegmentLoadPromises = /* @__PURE__ */ new Map();\n this.chapterUrlsCache = /* @__PURE__ */ new Map();\n this.pendingChapterUrlsPromises = /* @__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 ?? P;\n this.documentManagerUnsubs.push(\n this.documentManager.provides().onDocumentOpened((docState) => {\n const { chapterId } = o(docState.id);\n if (!this.findChapter(chapterId)) return;\n this.passwordAttempts.delete(chapterId);\n this.syncChapterStatusFromDocuments(chapterId);\n }),\n this.documentManager.provides().onDocumentClosed((documentId) => {\n const { chapterId } = o(documentId);\n if (!this.findChapter(chapterId)) return;\n this.syncChapterStatusFromDocuments(chapterId);\n }),\n this.documentManager.provides().onDocumentError((evt) => {\n const { chapterId } = o(evt.documentId);\n if (!this.findChapter(chapterId)) return;\n void this.handleDocumentError(evt.documentId, chapterId, 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: (m2, s) => {\n if (s) this.overlapStrategy = s;\n this.setManifestInternal(m2);\n },\n getManifest: () => this.manifest,\n getVirtualPageMap: () => this.virtualPageMap,\n setVisibleGlobalPages: (visible) => this.handleVisibleChange(visible),\n ensureChapterLoaded: (chapterId) => this.ensureChapterLoaded(chapterId),\n ensureSegmentLoaded: (chapterId, segmentIndex) => this.ensureSegmentLoaded(chapterId, segmentIndex),\n ensureAllSegmentsLoaded: (chapterId) => this.ensureAllSegmentsLoaded(chapterId),\n resolvePageDocument: (chapterId, localPageIndex) => {\n const chapter = this.findChapter(chapterId);\n if (!chapter) return null;\n return u(chapter, localPageIndex);\n },\n getSegmentPlan: (chapterId) => {\n const chapter = this.findChapter(chapterId);\n return chapter ? l(chapter) : null;\n },\n isSegmentLoaded: (chapterId, segmentIndex) => this.isSegmentDocumentOpen(chapterId, segmentIndex),\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 u2 of this.documentManagerUnsubs) u2();\n this.documentManagerUnsubs = [];\n if (this.unloadTimer) clearInterval(this.unloadTimer);\n this.unloadTimer = null;\n this.statusChange$.clear();\n this.manifestChange$.clear();\n }\n setManifestInternal(manifest2) {\n const normalizedManifest = f(manifest2);\n if (p(manifest2.chapters)) {\n this.logger.warn(\n _ChapterManagerPlugin.id,\n \"ManifestFlatten\",\n `manifest.chapters 含嵌套 children,已自动展开为 ${normalizedManifest.chapters.length} 条(顶层 ${manifest2.chapters.length} 条)。侧栏树请单独传入,勿依赖 children 渲染 PDF。`\n );\n }\n const issues = g(normalizedManifest);\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(normalizedManifest.chapters.map((c2) => c2.chapterId));\n for (const oldId of prevIds) {\n if (!nextIds.has(oldId)) {\n this.closeChapter(oldId);\n this.chapterStatus.delete(oldId);\n this.chapterUrlsCache.delete(oldId);\n this.pendingChapterUrlsPromises.delete(oldId);\n }\n }\n for (const c2 of normalizedManifest.chapters) {\n if (!this.chapterStatus.has(c2.chapterId)) {\n this.chapterStatus.set(c2.chapterId, \"idle\");\n }\n }\n this.manifest = normalizedManifest;\n this.virtualPageMap = w(normalizedManifest, this.overlapStrategy);\n this.manifestChange$.emit({ manifest: normalizedManifest, map: this.virtualPageMap });\n this.eagerPrefetchFromManifest();\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 i2 = 0; i2 < count; i2++) {\n const chapterId = this.manifest.chapters[i2].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((c2) => c2.chapterId === chapterId) ?? null;\n }\n getSegmentPlanForChapter(chapterId) {\n const chapter = this.findChapter(chapterId);\n return chapter ? l(chapter) : null;\n }\n isSegmentDocumentOpen(chapterId, segmentIndex) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n const cap = this.documentManager.provides();\n if (!plan) {\n return segmentIndex === 0 && cap.isDocumentOpen(chapterId);\n }\n const seg = plan.segments[segmentIndex];\n return seg ? cap.isDocumentOpen(seg.documentId) : false;\n }\n syncChapterStatusFromDocuments(chapterId) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n const cap = this.documentManager.provides();\n if (!plan) {\n if (cap.isDocumentOpen(chapterId)) {\n this.updateStatus(chapterId, \"loaded\");\n } else if (this.chapterStatus.get(chapterId) === \"loaded\") {\n this.updateStatus(chapterId, \"closed\");\n }\n return;\n }\n const seg0 = plan.segments[0];\n if (seg0 && cap.isDocumentOpen(seg0.documentId)) {\n this.updateStatus(chapterId, \"loaded\");\n return;\n }\n const anyLoading = plan.segments.some((s) => {\n const coreDoc = this.coreState.core.documents[s.documentId];\n return (coreDoc == null ? void 0 : coreDoc.status) === \"loading\";\n });\n if (anyLoading) {\n this.updateStatus(chapterId, \"loading\");\n return;\n }\n const current = this.chapterStatus.get(chapterId);\n if (current === \"loaded\") return;\n if (current !== \"password-required\" && current !== \"error\") {\n this.updateStatus(chapterId, \"idle\");\n }\n }\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 const segmentsToLoad = /* @__PURE__ */ new Set();\n for (const idx of visibleGlobalPageIndices) {\n const loc = this.virtualPageMap.atIndex(idx);\n if (!loc) continue;\n visibleChapters.add(loc.chapterId);\n const chapter = this.findChapter(loc.chapterId);\n if (!chapter) continue;\n const seg = h(chapter, loc.localPageIndex);\n segmentsToLoad.add(`${loc.chapterId}:${seg}`);\n segmentsToLoad.add(`${loc.chapterId}:${seg + 1}`);\n }\n if (visibleChapters.size === 0) return;\n const orderedIds = this.manifest.chapters.map((c2) => c2.chapterId);\n const neededIdx = /* @__PURE__ */ new Set();\n for (const cid of visibleChapters) {\n const i2 = orderedIds.indexOf(cid);\n if (i2 === -1) continue;\n for (let k = i2 - prefetch; k <= i2 + prefetch; k++) {\n if (k >= 0 && k < orderedIds.length) neededIdx.add(k);\n }\n }\n for (const i2 of neededIdx) {\n const cid = orderedIds[i2];\n this.chapterLastUsed.set(cid, now);\n void this.ensureChapterLoaded(cid);\n }\n for (const key of segmentsToLoad) {\n const [chapterId, segStr] = key.split(\":\");\n const segmentIndex = Number.parseInt(segStr, 10);\n if (!chapterId || !Number.isFinite(segmentIndex)) continue;\n this.chapterLastUsed.set(chapterId, now);\n void this.ensureSegmentLoaded(chapterId, segmentIndex);\n }\n if (this.config.autoActivateOnLoad ?? true) {\n const firstIdx = visibleGlobalPageIndices[0];\n const firstLoc = firstIdx != null ? this.virtualPageMap.atIndex(firstIdx) : null;\n if (firstLoc) {\n const ref = u(\n this.findChapter(firstLoc.chapterId),\n firstLoc.localPageIndex\n );\n if (this.documentManager.provides().isDocumentOpen(ref.documentId)) {\n const currentActive = this.documentManager.provides().getActiveDocumentId();\n if (currentActive !== ref.documentId) {\n this.documentManager.provides().setActiveDocument(ref.documentId);\n }\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 ensureChapterLoaded(chapterId) {\n return this.ensureSegmentLoaded(chapterId, 0);\n }\n ensureAllSegmentsLoaded(chapterId) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n if (!plan) return this.ensureChapterLoaded(chapterId);\n return (async () => {\n for (const seg of plan.segments) {\n const st = await this.ensureSegmentLoaded(chapterId, seg.index);\n if (st !== \"loaded\") return st;\n }\n return \"loaded\";\n })();\n }\n ensureSegmentLoaded(chapterId, segmentIndex) {\n const chapter = this.findChapter(chapterId);\n if (!chapter) return Promise.resolve(\"error\");\n const plan = l(chapter);\n if (!plan) {\n if (segmentIndex !== 0) {\n return Promise.resolve(this.isSegmentDocumentOpen(chapterId, 0) ? \"loaded\" : \"error\");\n }\n return this.ensureSingleDocumentChapter(chapter);\n }\n if (segmentIndex < 0 || segmentIndex >= plan.segments.length) {\n return Promise.resolve(\"error\");\n }\n const segment = plan.segments[segmentIndex];\n const documentId = segment.documentId;\n const cap = this.documentManager.provides();\n if (cap.isDocumentOpen(documentId)) {\n this.chapterLastUsed.set(chapterId, Date.now());\n if (segmentIndex === 0) this.syncChapterStatusFromDocuments(chapterId);\n return Promise.resolve(\"loaded\");\n }\n const existing = this.pendingSegmentLoadPromises.get(documentId);\n if (existing) return existing;\n const promise = this.startLoadSegment(chapter, segment).finally(() => {\n this.pendingSegmentLoadPromises.delete(documentId);\n });\n this.pendingSegmentLoadPromises.set(documentId, promise);\n return promise;\n }\n ensureSingleDocumentChapter(chapter) {\n const chapterId = chapter.chapterId;\n const existing = this.pendingChapterLoadPromises.get(chapterId);\n if (existing) return existing;\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.startLoadSegment(chapter, null).finally(() => {\n this.pendingChapterLoadPromises.delete(chapterId);\n });\n this.pendingChapterLoadPromises.set(chapterId, promise);\n return promise;\n }\n async resolveChapterUrls(chapter) {\n const { chapterId } = chapter;\n const cached = this.chapterUrlsCache.get(chapterId);\n if (cached) return cached;\n const pending = this.pendingChapterUrlsPromises.get(chapterId);\n if (pending) return pending;\n const promise = (async () => {\n const src = chapter.source;\n if (n(src)) {\n const urls = [...src.urls];\n this.chapterUrlsCache.set(chapterId, urls);\n return urls;\n }\n const loader = this.config.chapterPdfLoader;\n if (loader == null ? void 0 : loader.loadChapterUrls) {\n const urls = await loader.loadChapterUrls(chapter);\n if (!Array.isArray(urls) || urls.length === 0) {\n throw new Error(\n `Chapter \"${chapterId}\" loadChapterUrls returned no URLs`\n );\n }\n this.chapterUrlsCache.set(chapterId, urls);\n return urls;\n }\n throw new Error(\n `Chapter \"${chapterId}\" requires chapterPdfLoader.loadChapterUrls, static source.urls, or source.url`\n );\n })();\n this.pendingChapterUrlsPromises.set(chapterId, promise);\n try {\n return await promise;\n } finally {\n this.pendingChapterUrlsPromises.delete(chapterId);\n }\n }\n async openPayloadFromUrl(chapter, segmentIndex, urls) {\n const url = urls[segmentIndex];\n if (!(url == null ? void 0 : url.trim())) {\n throw new Error(\n `Chapter \"${chapter.chapterId}\" missing URL for segment ${segmentIndex}`\n );\n }\n const loader = this.config.chapterPdfLoader;\n const ctx = {\n chapter,\n segmentIndex,\n segmentCount: urls.length,\n urls,\n url\n };\n if (loader == null ? void 0 : loader.openPdf) {\n return loader.openPdf(ctx);\n }\n return { url };\n }\n async resolvePdfPayload(chapter, segmentIndex) {\n const src = chapter.source;\n const loader = this.config.chapterPdfLoader;\n const threshold = r(chapter);\n if (threshold) {\n const pageCount = t(chapter);\n const segmentCount = c(pageCount, threshold);\n if (segmentIndex < 0 || segmentIndex >= segmentCount) {\n throw new Error(\n `Chapter \"${chapter.chapterId}\" invalid segmentIndex ${segmentIndex} (expected 0..${segmentCount - 1})`\n );\n }\n const urls = await this.resolveChapterUrls(chapter);\n if (urls.length !== segmentCount) {\n this.logger.warn(\n _ChapterManagerPlugin.id,\n \"SegmentUrlCount\",\n `Chapter \"${chapter.chapterId}\" urls.length (${urls.length}) != expected (${segmentCount})`\n );\n }\n return this.openPayloadFromUrl(chapter, segmentIndex, urls);\n }\n if (segmentIndex !== 0) {\n throw new Error(`Chapter \"${chapter.chapterId}\" is not segmented`);\n }\n if (src) {\n if (n(src)) {\n const urls = await this.resolveChapterUrls(chapter);\n return this.openPayloadFromUrl(chapter, segmentIndex, urls);\n }\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 if (loader == null ? void 0 : loader.loadChapterUrls) {\n const urls = await this.resolveChapterUrls(chapter);\n return this.openPayloadFromUrl(chapter, 0, urls);\n }\n if (loader == null ? void 0 : loader.loadPdf) {\n return loader.loadPdf(chapter, segmentIndex);\n }\n throw new Error(\n `Chapter \"${chapter.chapterId}\" has no PDF source; configure source or chapterPdfLoader`\n );\n }\n async startLoadSegment(chapter, segment) {\n var _a;\n const chapterId = chapter.chapterId;\n const segmentIndex = (segment == null ? void 0 : segment.index) ?? 0;\n const documentId = (segment == null ? void 0 : segment.documentId) ?? chapterId;\n if (segmentIndex === 0) {\n this.updateStatus(chapterId, \"loading\");\n }\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, segmentIndex);\n const cap = this.documentManager.provides();\n const openTask = \"url\" in payload ? cap.openDocumentUrl({\n documentId,\n url: payload.url,\n name: segment ? `${chapter.title} (${segment.index + 1})` : chapter.title,\n password: cachedPwd ?? void 0,\n autoActivate: false\n }) : cap.openDocumentBuffer({\n documentId,\n buffer: payload.buffer,\n name: segment ? `${chapter.title} (${segment.index + 1})` : 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(documentId)) {\n this.syncChapterStatusFromDocuments(chapterId);\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 if (segmentIndex === 0) {\n this.updateStatus(chapterId, \"error\", message);\n }\n }\n return this.chapterStatus.get(chapterId) ?? \"error\";\n }\n }\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(documentId, chapterId, code, _message) {\n if (code !== PdfErrorCode.Password) {\n const plan = this.getSegmentPlanForChapter(chapterId);\n const { segmentIndex } = o(documentId);\n if (!plan || segmentIndex === 0 || segmentIndex === null) {\n this.updateStatus(chapterId, \"error\");\n }\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(documentId, { password });\n retryTask.wait(\n () => {\n },\n () => {\n }\n );\n }\n closeChapter(chapterId) {\n const chapter = this.findChapter(chapterId);\n const cap = this.documentManager.provides();\n const plan = chapter ? l(chapter) : null;\n const closeDoc = (documentId) => {\n if (cap.isDocumentOpen(documentId)) {\n const task = cap.closeDocument(documentId);\n task.wait(\n () => {\n },\n () => {\n }\n );\n }\n };\n if (plan) {\n for (const seg of plan.segments) {\n closeDoc(seg.documentId);\n }\n } else {\n closeDoc(chapterId);\n }\n this.chapterUrlsCache.delete(chapterId);\n this.pendingChapterUrlsPromises.delete(chapterId);\n this.updateStatus(chapterId, \"closed\");\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","const e=\"#s\";function t(e){const[t,n]=e.localPageRange;return n-t+1}function n(e){return!!e&&\"urls\"in e&&Array.isArray(e.urls)}function r(e){if(null!=e.segmentPageThreshold&&e.segmentPageThreshold>0)return e.segmentPageThreshold;const t=e.source;return n(t)?t.segmentPageThreshold:null}function s(e){return null!=r(e)}function a(t,n){return`${t}${e}${n}`}function o(t){const n=t.lastIndexOf(e);if(-1===n)return{chapterId:t,segmentIndex:null};const r=t.slice(0,n),s=Number.parseInt(t.slice(n+2),10);return!Number.isFinite(s)||s<0?{chapterId:t,segmentIndex:null}:{chapterId:r,segmentIndex:s}}function c(e,t){return e<=0||t<=0?0:Math.ceil(e/t)}function l(e){const s=r(e);if(!s)return null;const o=t(e),l=c(o,s),u=n(e.source)?e.source.urls:void 0,h=[];for(let t=0;t<l;t++){const n=t*s,r=Math.min(n+s-1,o-1);if(n>=o)break;h.push({index:t,url:u?.[t]??\"\",localPageStart:n,localPageEnd:r,documentId:a(e.chapterId,t)})}return{chapterId:e.chapterId,threshold:s,pageCount:o,segments:h}}function u(e,t){const n=l(e);if(!n)return{documentId:e.chapterId,pageIndex:t};const r=n.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);if(!r){const r=n.segments[n.segments.length-1];return r?{documentId:r.documentId,pageIndex:t-r.localPageStart}:{documentId:e.chapterId,pageIndex:t}}return{documentId:r.documentId,pageIndex:t-r.localPageStart}}function h(e,t){const n=l(e);if(!n)return 0;const r=n.segments.find(e=>t>=e.localPageStart&&t<=e.localPageEnd);return r?.index??Math.floor(t/n.threshold)}function i(e){const s=r(e);if(!s)return[];const a=[],{chapterId:o}=e,l=t(e);s<=0&&a.push(`${o}: segmentPageThreshold must be > 0`);const u=e.source;if(!n(u))return a;0===u.urls.length&&a.push(`${o}: source.urls must not be empty`);const h=c(l,s);u.urls.length!==h&&a.push(`${o}: source.urls.length (${u.urls.length}) must equal ceil(pageCount/threshold) (${h})`);for(let t=0;t<u.urls.length;t++)u.urls[t]?.trim()||a.push(`${o}: source.urls[${t}] is empty`);return a}function g(e){const t=[],n=/* @__PURE__ */new Set;for(const r of e.chapters){n.has(r.chapterId)&&t.push(`Duplicate chapterId: ${r.chapterId}`),n.add(r.chapterId);const[e,s]=r.globalPageRange,[a,o]=r.localPageRange;if(e>s&&t.push(`${r.chapterId}: invalid globalPageRange [${e},${s}]`),a>o&&t.push(`${r.chapterId}: invalid localPageRange [${a},${o}]`),s-e!==o-a&&t.push(`${r.chapterId}: page-count mismatch (global ${s-e+1} vs local ${o-a+1})`),r.ownedGlobalPages)for(const n of r.ownedGlobalPages)(n<e||n>s)&&t.push(`${r.chapterId}: ownedGlobalPages contains ${n} outside range`);t.push(...i(r))}return t}function d(e){const t=[],n=e=>{for(const r of e){const{children:e,...s}=r;t.push(s),e?.length&&n(e)}};return n(e),t}function p(e){for(const t of e)if(t.children?.length)return!0;return!1}function f(e){const t=d(e.chapters);return t.length===e.chapters.length?e:{...e,chapters:t}}const P={kind:\"first-wins\"};function m(e,t=P){const n=/* @__PURE__ */new Map;for(const s of e.chapters){const[e,t]=s.globalPageRange;for(let r=e;r<=t;r++){const e=n.get(r);e?e.push(s):n.set(r,[s])}}const r=/* @__PURE__ */new Map;for(const[s,a]of n)r.set(s,I(s,a,t));return r}function I(e,t,n){if(1===t.length)return t[0].chapterId;switch(n.kind){case\"first-wins\":return t[0].chapterId;case\"last-wins\":return t[t.length-1].chapterId;case\"explicit\":{const n=t.find(t=>t.ownedGlobalPages?.includes(e));return n?n.chapterId:t[0].chapterId}case\"custom\":return n.resolve(e,t)}}class b{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 n=this._byChapter.get(e);return n?n.find(e=>e.localPageIndex===t)??null:null}pagesOfChapter(e){return this._byChapter.get(e)??[]}firstIndexOfChapter(e){const t=this._byChapter.get(e)?.[0];return t?this._pages.indexOf(t):-1}}function w(e,t=P){const n=m(e,t),r=/* @__PURE__ */new Map;for(const c of e.chapters)r.set(c.chapterId,c);const s=Array.from(n.keys()).sort((e,t)=>e-t),a=[];let o=0;for(const c of s){const e=n.get(c),t=r.get(e);if(!t)continue;const[s]=t.globalPageRange,[l]=t.localPageRange,u=l+(c-s);a.push({globalPageIndex:o++,globalPageNumber:c,chapterId:e,localPageIndex:u})}return new b(a)}class ${constructor(e){this.map=e}resolvePassword(e){return Promise.resolve(this.map[e.chapterId]??null)}getCachedPassword(e){return this.map[e]??null}}class y{constructor(e){this.cb=e}resolvePassword(e,t){return this.cb(e,t)}}class x{constructor(e){this.onPrompt=e,this.pending=/* @__PURE__ */new Map}resolvePassword(e,t){return new Promise(n=>{const r=this.pending.get(e.chapterId);r&&r.resolve(null),this.pending.set(e.chapterId,{resolve:n,attempt:t,chapter:e}),this.onPrompt(e,t)})}submit(e,t){const n=this.pending.get(e);n&&(this.pending.delete(e),n.resolve(t))}}function v(e){return\"last\"===e?{kind:\"last-wins\"}:{kind:\"first-wins\"}}function _(e){const t=e.endPage-e.startPage+1;return{chapterId:e.chapterId,title:e.title,globalPageRange:[e.startPage,e.endPage],localPageRange:[0,t-1],...e.source?{source:e.source}:{},...null!=e.segmentPageThreshold?{segmentPageThreshold:e.segmentPageThreshold}:{},...e.encrypted?{encrypted:e.encrypted}:{}}}function R(e){const t=[],n=e=>{for(const r of e)t.push(_(r)),r.children?.length&&n(r.children)};return n(e),t}function C(e){return e.map(e=>({id:e.chapterId,title:e.title,startPage:e.startPage,endPage:e.endPage,children:e.children?.length?C(e.children):void 0}))}function G(e){return{tree:C(e),manifest:{chapters:R(e)}}}function M(e){return e.map(e=>({id:e.chapterId,title:e.title,startPage:e.globalPageRange[0],endPage:e.globalPageRange[1],children:e.children?.length?M(e.children):void 0}))}export{y as CallbackPasswordProvider,$ as StaticPasswordProvider,x as UiPromptPasswordProvider,b as VirtualPageMap,l as buildChapterSegmentPlan,G as buildChapterViewerCatalog,w as buildVirtualPageMap,_ as chapterDescriptorFromTreeNode,a as chapterSegmentDocumentId,M as chapterTreeNodesFromDescriptors,P as defaultOverlapStrategy,c as expectedSegmentCount,R as flattenChapterTree,d as flattenManifestChapters,t as getChapterPageCount,r as getChapterSegmentThreshold,s as isSegmentedChapter,n as isSegmentedChapterSource,p as manifestHasNestedChapters,f as normalizeChapterManifest,v as overlapStrategyForSamePageOwner,o as parseChapterDocumentId,u as resolveChapterPageDocument,m as resolveOwners,h as segmentIndexForLocalPage,C as toChapterTreeNodes,g as validateChapterManifest,i as validateChapterSegmentSource};\n//# sourceMappingURL=index.js.map\n"],"names":["Pe","Ie","be","_a","Ce","we","ye","z","Se","e","t","xe","s","r","n","a","Me","o","i","l","h","d","c","k","u","A","O","$e","Le","De","ke","Ue","Te","Re","Ve","_e","qe","We","He","Be","je","Ze","Ye","Xe","Ke","Qe","Je","et","tt","st","E","G","R","W","N","rt","nt","at","lt","dt","ct","ut","pt","gt","ft","mt","vt","Pt","It","bt","Ct","wt","yt","St","xt","Mt","$t","Lt","Dt","kt","Ut","Tt","Ft","zt","At","Ot","Nt","Et","Gt","Rt","Vt","_t","qt","Wt","Ht","Bt","jt","Zt","Yt","Xt","Kt","Qt","Jt","lr","hr","pr","gr","fr","mr","U","ie","V","H","B","j","Z","Y","ee","T","te","se","re","ne","ae","oe","le","Mr","$r","Lr","ze","Dr","kr","Ur","Tr","Fr","zr","Ar","Or","Nr","Er","Gr","S","x","v","p","g","f","m","P","I","b","C","_","q","w","Rr","Vr","_r","qr","Hr","Br","me","pe","X","he","ce","de","ue","fe","ge","K","Q","J","$","L","D","y","F","_b","_c","M","_openBlock","_createBlock","_unref","$props","_createSlots","_renderSlot","$slots","e2","r2","e3","e4","s2","_ChapterManagerPlugin","ref"],"mappings":"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"}