@fudanda/admin-antd 2.20261109.1-beta.1 → 2.20261109.1-beta.2
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/chunks/ApiTokensPage-w3JGRNQC.js +2 -0
- package/dist/chunks/ApiTokensPage-w3JGRNQC.js.map +1 -0
- package/dist/chunks/{App-CfQx7jWq.js → App-nh6_qOo8.js} +5 -5
- package/dist/chunks/{App-CfQx7jWq.js.map → App-nh6_qOo8.js.map} +1 -1
- package/dist/chunks/{AppModal-CVoUC2t3.js → AppModal-CEouaU03.js} +2 -2
- package/dist/chunks/{AppModal-CVoUC2t3.js.map → AppModal-CEouaU03.js.map} +1 -1
- package/dist/chunks/{ArcBaseAdmin-DQyddbFC.js → ArcBaseAdmin-CX7fQz4x.js} +2 -2
- package/dist/chunks/{ArcBaseAdmin-DQyddbFC.js.map → ArcBaseAdmin-CX7fQz4x.js.map} +1 -1
- package/dist/chunks/{DepartmentsPage-CQx53QGE.js → DepartmentsPage-BdD9VfDI.js} +2 -2
- package/dist/chunks/{DepartmentsPage-CQx53QGE.js.map → DepartmentsPage-BdD9VfDI.js.map} +1 -1
- package/dist/chunks/{DictsPage-BGnamkWk.js → DictsPage-fxBdV1-3.js} +2 -2
- package/dist/chunks/{DictsPage-BGnamkWk.js.map → DictsPage-fxBdV1-3.js.map} +1 -1
- package/dist/chunks/{EntityContextRuntime-CbzeMNXR.js → EntityContextRuntime-CMhoj6qe.js} +2 -2
- package/dist/chunks/{EntityContextRuntime-CbzeMNXR.js.map → EntityContextRuntime-CMhoj6qe.js.map} +1 -1
- package/dist/chunks/EntityContextRuntime-Dc89ZSnM.js +1 -0
- package/dist/chunks/{ExportButton-sMPAV2hd.js → ExportButton-DGxB2tcu.js} +2 -2
- package/dist/chunks/{ExportButton-sMPAV2hd.js.map → ExportButton-DGxB2tcu.js.map} +1 -1
- package/dist/chunks/{FileViewerPreviewPanel-Rti7pUhU.js → FileViewerPreviewPanel-BMZ7FdKV.js} +3 -3
- package/dist/chunks/{FileViewerPreviewPanel-Rti7pUhU.js.map → FileViewerPreviewPanel-BMZ7FdKV.js.map} +1 -1
- package/dist/chunks/{FilesPage-D_iYsUwl.js → FilesPage-DrgWELKy.js} +3 -3
- package/dist/chunks/{FilesPage-D_iYsUwl.js.map → FilesPage-DrgWELKy.js.map} +1 -1
- package/dist/chunks/{IdentitySecurityPage-rDYX5ksX.js → IdentitySecurityPage-BjTKvr-O.js} +2 -2
- package/dist/chunks/{IdentitySecurityPage-rDYX5ksX.js.map → IdentitySecurityPage-BjTKvr-O.js.map} +1 -1
- package/dist/chunks/{LogStatsScaffold-CMIz4z0a.js → LogStatsScaffold-DaB0JeAN.js} +2 -2
- package/dist/chunks/{LogStatsScaffold-CMIz4z0a.js.map → LogStatsScaffold-DaB0JeAN.js.map} +1 -1
- package/dist/chunks/{LoginLogsPage-Bv5pPJb2.js → LoginLogsPage-VmYC7i6q.js} +2 -2
- package/dist/chunks/{LoginLogsPage-Bv5pPJb2.js.map → LoginLogsPage-VmYC7i6q.js.map} +1 -1
- package/dist/chunks/{LoginLogsTable-DYcTx2oR.js → LoginLogsTable-CULcc_e8.js} +2 -2
- package/dist/chunks/{LoginLogsTable-DYcTx2oR.js.map → LoginLogsTable-CULcc_e8.js.map} +1 -1
- package/dist/chunks/{MarkdownPreviewPanel-lqs6AsoN.js → MarkdownPreviewPanel-CBcPc7Wv.js} +2 -2
- package/dist/chunks/{MarkdownPreviewPanel-lqs6AsoN.js.map → MarkdownPreviewPanel-CBcPc7Wv.js.map} +1 -1
- package/dist/chunks/{MasterDetailLayout-B5uqvh98.js → MasterDetailLayout-ByIBpmkZ.js} +2 -2
- package/dist/chunks/{MasterDetailLayout-B5uqvh98.js.map → MasterDetailLayout-ByIBpmkZ.js.map} +1 -1
- package/dist/chunks/{McpSettingsPage-Cdej9Evi.js → McpSettingsPage-C5V_rj2V.js} +2 -2
- package/dist/chunks/{McpSettingsPage-Cdej9Evi.js.map → McpSettingsPage-C5V_rj2V.js.map} +1 -1
- package/dist/chunks/{MemberAssignmentSheet-AKvLbbYW.js → MemberAssignmentSheet-DL0fg1Yf.js} +2 -2
- package/dist/chunks/{MemberAssignmentSheet-AKvLbbYW.js.map → MemberAssignmentSheet-DL0fg1Yf.js.map} +1 -1
- package/dist/chunks/{MenuCommandPalette-ia0pSIFg.js → MenuCommandPalette-C2PvK3Gh.js} +2 -2
- package/dist/chunks/{MenuCommandPalette-ia0pSIFg.js.map → MenuCommandPalette-C2PvK3Gh.js.map} +1 -1
- package/dist/chunks/{MenusPage-Bh55bvKH.js → MenusPage-Bytd1HlW.js} +2 -2
- package/dist/chunks/{MenusPage-Bh55bvKH.js.map → MenusPage-Bytd1HlW.js.map} +1 -1
- package/dist/chunks/{MonacoPreviewPanel-CT_sjf7Z.js → MonacoPreviewPanel-BZrNIcFZ.js} +2 -2
- package/dist/chunks/{MonacoPreviewPanel-CT_sjf7Z.js.map → MonacoPreviewPanel-BZrNIcFZ.js.map} +1 -1
- package/dist/chunks/{NavListPanel-DMIUMh7q.js → NavListPanel-zwUDIYSP.js} +2 -2
- package/dist/chunks/{NavListPanel-DMIUMh7q.js.map → NavListPanel-zwUDIYSP.js.map} +1 -1
- package/dist/chunks/{OperationLogsPage-7XVfmhxP.js → OperationLogsPage-D2BQdGNp.js} +2 -2
- package/dist/chunks/{OperationLogsPage-7XVfmhxP.js.map → OperationLogsPage-D2BQdGNp.js.map} +1 -1
- package/dist/chunks/{OperationLogsTable-gp-WZxiF.js → OperationLogsTable-DaaON4QR.js} +3 -3
- package/dist/chunks/{OperationLogsTable-gp-WZxiF.js.map → OperationLogsTable-DaaON4QR.js.map} +1 -1
- package/dist/chunks/{PDFPreviewPanel-CyfhyWav.js → PDFPreviewPanel-CMmnWBKW.js} +3 -3
- package/dist/chunks/{PDFPreviewPanel-CyfhyWav.js.map → PDFPreviewPanel-CMmnWBKW.js.map} +1 -1
- package/dist/chunks/{PositionsPage-Bwua1vNV.js → PositionsPage-CBZITssT.js} +2 -2
- package/dist/chunks/{PositionsPage-Bwua1vNV.js.map → PositionsPage-CBZITssT.js.map} +1 -1
- package/dist/chunks/{PreferencesSheetBody-C80D3dOM.js → PreferencesSheetBody-B0poTPEA.js} +2 -2
- package/dist/chunks/{PreferencesSheetBody-C80D3dOM.js.map → PreferencesSheetBody-B0poTPEA.js.map} +1 -1
- package/dist/chunks/{ProfilePage-DeTw-59a.js → ProfilePage-DLhacdWt.js} +2 -2
- package/dist/chunks/{ProfilePage-DeTw-59a.js.map → ProfilePage-DLhacdWt.js.map} +1 -1
- package/dist/chunks/{ProjectInfoPage-Bqn3gfXa.js → ProjectInfoPage-CJpGxpu5.js} +2 -2
- package/dist/chunks/{ProjectInfoPage-Bqn3gfXa.js.map → ProjectInfoPage-CJpGxpu5.js.map} +1 -1
- package/dist/chunks/{RelationPanel-Bio-ig-l.js → RelationPanel-BsbfEDo2.js} +2 -2
- package/dist/chunks/{RelationPanel-Bio-ig-l.js.map → RelationPanel-BsbfEDo2.js.map} +1 -1
- package/dist/chunks/{RolesPage-fwUSs2HR.js → RolesPage-46dzdiah.js} +2 -2
- package/dist/chunks/{RolesPage-fwUSs2HR.js.map → RolesPage-46dzdiah.js.map} +1 -1
- package/dist/chunks/{SessionConflictModal-Dw4opoNP.js → SessionConflictModal-Bm38eExL.js} +2 -2
- package/dist/chunks/{SessionConflictModal-Dw4opoNP.js.map → SessionConflictModal-Bm38eExL.js.map} +1 -1
- package/dist/chunks/SettingModuleDetail-BjxUJeH5.js +17 -0
- package/dist/chunks/SettingModuleDetail-BjxUJeH5.js.map +1 -0
- package/dist/chunks/{SettingsPage-Cy5-q-P6.js → SettingsPage-C32Vuizm.js} +2 -2
- package/dist/chunks/{SettingsPage-Cy5-q-P6.js.map → SettingsPage-C32Vuizm.js.map} +1 -1
- package/dist/chunks/{StatCard-BROG4NSp.js → StatCard-CRPfkSBY.js} +2 -2
- package/dist/chunks/{StatCard-BROG4NSp.js.map → StatCard-CRPfkSBY.js.map} +1 -1
- package/dist/chunks/{UserGroupsPage-CsTBkUPy.js → UserGroupsPage-08G5MdGm.js} +2 -2
- package/dist/chunks/{UserGroupsPage-CsTBkUPy.js.map → UserGroupsPage-08G5MdGm.js.map} +1 -1
- package/dist/chunks/{UserLogsPanels-3u8Z93YU.js → UserLogsPanels-nbIrMym9.js} +2 -2
- package/dist/chunks/{UserLogsPanels-3u8Z93YU.js.map → UserLogsPanels-nbIrMym9.js.map} +1 -1
- package/dist/chunks/{UserTransferSelect-ChLj4EkS.js → UserTransferSelect-C8betaWG.js} +2 -2
- package/dist/chunks/{UserTransferSelect-ChLj4EkS.js.map → UserTransferSelect-C8betaWG.js.map} +1 -1
- package/dist/chunks/{UsersPage-CfNnQJi4.js → UsersPage-BjTiNEqF.js} +2 -2
- package/dist/chunks/{UsersPage-CfNnQJi4.js.map → UsersPage-BjTiNEqF.js.map} +1 -1
- package/dist/chunks/{browser-BKLM0ThC-D0TgzKTC.js → browser-BKLM0ThC-Cp7Gi4-F.js} +1 -1
- package/dist/chunks/{code-BkkeN2fd.js → code-LswxAr98.js} +1 -1
- package/dist/chunks/{direct-engine-m32m22nx.js → direct-engine-Dv_6v4sx.js} +1 -1
- package/dist/chunks/{html-BGNWR_Bp.js → html-BokjxlLb.js} +1 -1
- package/dist/chunks/{line-CsTeuEcK.js → line-Bqh6atHH.js} +1 -1
- package/dist/chunks/{lrc-D6gjnGZ5.js → lrc-T5e1svZG.js} +1 -1
- package/dist/chunks/{markdown-BglUe9j8.js → markdown-BpWokN1s.js} +1 -1
- package/dist/chunks/{patch-C97Yl3jr.js → patch-BYVX5C9G.js} +1 -1
- package/dist/chunks/{worker-engine-B7_3qQVS.js → worker-engine-CtUAeI4G.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{src-DAkFn9SG.js → src-D6UlLiVN.js} +2 -2
- package/dist/{src-DAkFn9SG.js.map → src-D6UlLiVN.js.map} +1 -1
- package/package.json +9 -9
- package/dist/chunks/ApiTokensPage-DiRMgViD.js +0 -2
- package/dist/chunks/ApiTokensPage-DiRMgViD.js.map +0 -1
- package/dist/chunks/EntityContextRuntime-C9q95WDf.js +0 -1
- package/dist/chunks/SettingModuleDetail-I9CSJ-fh.js +0 -17
- package/dist/chunks/SettingModuleDetail-I9CSJ-fh.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,n as t,o as n,r}from"./rolldown-runtime-Bruge11p.js";import{n as i,t as a}from"./preload-helper-mKj9XlrD.js";import{It as o,M as s,Ut as c,bt as l,m as u,xt as d}from"./clipboard-dpqHdCyy.js";import{i as f,n as p,r as m,t as h}from"./chevron-right-B9ihyQx-.js";import{n as g,t as _}from"./rotate-cw-BBq-LUa4.js";import{R as v,_ as y,c as b,g as x,s as ee,z as te}from"./App-
|
|
1
|
+
import{a as e,n as t,o as n,r}from"./rolldown-runtime-Bruge11p.js";import{n as i,t as a}from"./preload-helper-mKj9XlrD.js";import{It as o,M as s,Ut as c,bt as l,m as u,xt as d}from"./clipboard-dpqHdCyy.js";import{i as f,n as p,r as m,t as h}from"./chevron-right-B9ihyQx-.js";import{n as g,t as _}from"./rotate-cw-BBq-LUa4.js";import{R as v,_ as y,c as b,g as x,s as ee,z as te}from"./App-nh6_qOo8.js";import{n as ne,t as re}from"./FileTypeIcon-Db__-4Tw.js";import{Fragment as ie,createContext as ae,useCallback as oe,useContext as se,useEffect as S,useId as ce,useLayoutEffect as le,useMemo as C,useRef as w,useState as T}from"react";import{Fragment as ue,jsx as E,jsxs as D}from"react/jsx-runtime";import de from"react-dom";var fe,pe;function me(){return(me=t((()=>{
|
|
2
2
|
/**
|
|
3
3
|
* @license lucide-react v1.67.0 - ISC
|
|
4
4
|
*
|
|
@@ -33,6 +33,6 @@ d(),xe={name:`panel-left`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:
|
|
|
33
33
|
* This source code is licensed under the ISC license.
|
|
34
34
|
* See the LICENSE file in the root directory of this source tree.
|
|
35
35
|
*/
|
|
36
|
-
d(),we={name:`printer`,size:24,node:[[`path`,{d:`M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2`,key:`143wyd`}],[`path`,{d:`M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6`,key:`1itne7`}],[`rect`,{x:`6`,y:`14`,width:`12`,height:`8`,rx:`1`,key:`1ue0tg`}]]},we.node,Te=l(we)})))()}var De=/* @__PURE__ */ r({randomBytes:()=>Oe});function Oe(e){let t=new Uint8Array(e);for(let n=0;n<e;n+=65536)globalThis.crypto.getRandomValues(t.subarray(n,n+65536));return t}t((()=>{}));function ke(e){return{x:Math.floor(e.x),y:Math.floor(e.y)}}function Ae(e){return{width:Math.ceil(e.width),height:Math.ceil(e.height)}}function je(e){return{origin:ke(e.origin),size:Ae(e.size)}}function Me(e){let{width:t,height:n}=e;return{width:n,height:t}}function Ne(e,t,n){return e=t%2==0?e:Me(e),{width:e.width*n,height:e.height*n}}function Pe(e){let t=[e.p1.x,e.p2.x,e.p3.x,e.p4.x],n=[e.p1.y,e.p2.y,e.p3.y,e.p4.y];return{origin:{x:Math.min(...t),y:Math.min(...n)},size:{width:Math.max(...t)-Math.min(...t),height:Math.max(...n)-Math.min(...n)}}}function Fe(e){return{p1:{x:e.origin.x,y:e.origin.y},p2:{x:e.origin.x+e.size.width,y:e.origin.y},p3:{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height},p4:{x:e.origin.x,y:e.origin.y+e.size.height}}}function Ie(e,t,n){let r=t.x,i=t.y;switch(n){case 0:r=t.x,i=t.y;break;case 1:r=e.height-t.y,i=t.x;break;case 2:r=e.width-t.x,i=e.height-t.y;break;case 3:r=t.y,i=e.width-t.x}return{x:r,y:i}}function Le(e,t){return{x:e.x*t,y:e.y*t}}function Re(e,t,n,r){return Le(Ie(e,t,n),r)}function ze(e,t,n,r){return Le(Ie(e,t,(4-n)%4),1/r)}function Be(e,t,n){let r=t.origin.x,i=t.origin.y,a=t.size;switch(n){case 0:break;case 1:r=e.height-t.origin.y-t.size.height,i=t.origin.x,a=Me(t.size);break;case 2:r=e.width-t.origin.x-t.size.width,i=e.height-t.origin.y-t.size.height;break;case 3:r=t.origin.y,i=e.width-t.origin.x-t.size.width,a=Me(t.size)}return{origin:{x:r,y:i},size:{width:a.width,height:a.height}}}function Ve(e,t){return{origin:{x:e.origin.x*t,y:e.origin.y*t},size:{width:e.size.width*t,height:e.size.height*t}}}function He(e,t,n,r){return Ve(Be(e,t,n),r)}function Ue(e){if(e.length===0)return null;let t=e[0].origin.x,n=e[0].origin.y,r=e[0].origin.x+e[0].size.width,i=e[0].origin.y+e[0].size.height;for(let a of e)t=Math.min(t,a.origin.x),n=Math.min(n,a.origin.y),r=Math.max(r,a.origin.x+a.size.width),i=Math.max(i,a.origin.y+a.size.height);return{origin:{x:t,y:n},size:{width:r-t,height:i-n}}}function We(e,t,n,r){let i=e.origin.x,a=e.origin.y,o=e.size.width,s=e.size.height,c=n/o,l=r/s,u=n/s,d=r/o;switch(t){case 0:return{a:c,b:0,c:0,d:l,e:-c*i,f:-l*a};case 3:return{a:0,b:-d,c:u,d:0,e:-u*a,f:d*(i+o)};case 2:return{a:-c,b:0,c:0,d:-l,e:c*(i+o),f:l*(a+s)};case 1:return{a:0,b:d,c:-u,d:0,e:u*(a+s),f:-d*i}}}function Ge(e){return e.replace(ht,``)}function Ke(e){return Object.keys(jt).filter(t=>(e&t)!==0).map(e=>jt[e])}function qe(e){return e.reduce((e,t)=>e|Mt[t],0)}function Je(e){let t=e=>Math.max(0,Math.min(255,e)),n=e=>t(e).toString(16).padStart(2,`0`);return`#${n(e.red)}${n(e.green)}${n(e.blue)}`}function Ye(e){/^#?[0-9a-f]{3}$/i.test(e)&&(e=e.replace(/^#?([0-9a-f])([0-9a-f])([0-9a-f])$/i,`#$1$1$2$2$3$3`).toLowerCase());let[,t,n,r]=/^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(e)??(()=>{throw Error(`Invalid hex colour: "${e}"`)})();return{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16)}}function Xe(e){return(e=>Math.max(0,Math.min(255,e)))(e)/255}function Ze(e){return((e,t=255)=>Math.max(0,Math.min(t,e)))(Math.round(e*255))}function Qe(e){if(!e?.startsWith(`D:`)||e.length<16)return;let t=+e.slice(2,6),n=e.slice(6,8)-1,r=+e.slice(8,10),i=+e.slice(10,12),a=+e.slice(12,14),o=+e.slice(14,16);return new Date(Date.UTC(t,n,r,i,a,o))}function $e(e=/* @__PURE__ */ new Date){let t=(e,t=2)=>e.toString().padStart(t,`0`);return`D:${e.getUTCFullYear()}${t(e.getUTCMonth()+1)}${t(e.getUTCDate())}${t(e.getUTCHours())}${t(e.getUTCMinutes())}${t(e.getUTCSeconds())}`}function et(e){if(e instanceof st)return{type:`noop`};if(e instanceof ct)return{type:`console`};if(e instanceof ut)return{type:`perf`};if(e instanceof lt){let t=e;return{type:`level`,config:{level:t.level,logger:et(t.logger)}}}return e instanceof dt?{type:`all`,config:{loggers:e.loggers.map(et)}}:{type:`noop`}}function tt(t){if(typeof globalThis.crypto?.getRandomValues==`function`)return globalThis.crypto.getRandomValues(new Uint8Array(t));if(typeof e==`function`)try{let{randomBytes:e}=n(De);return e(t)}catch{}let r=new Uint8Array(t);for(let e=0;e<t;e++)r[e]=Math.floor(Math.random()*256);return r}function nt(){if(typeof globalThis.crypto?.randomUUID==`function`)return globalThis.crypto.randomUUID();let e=tt(16);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function rt(e){if(e.byteLength<4)return null;let t=new Uint8Array(e);return t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71?it(e):t[0]===255&&t[1]===216&&t[2]===255?at(e):t[0]===37&&t[1]===80&&t[2]===68&&t[3]===70?{mimeType:`application/pdf`}:null}function it(e){if(e.byteLength<24)return null;let t=new DataView(e),n=t.getUint32(16),r=t.getUint32(20);return n===0||r===0?null:{mimeType:`image/png`,width:n,height:r}}function at(e){let t=new Uint8Array(e),n=2;for(;n+4<t.byteLength;){if(t[n]!==255)return null;let r=t[n+1];if(r>=192&&r<=195){if(n+9>t.byteLength)return null;let r=new DataView(e,n+5),i=r.getUint16(0),a=r.getUint16(2);return a===0||i===0?null:{mimeType:`image/jpeg`,width:a,height:i}}if(r===216||r===217)n+=2;else if(r===255)n+=1;else{let e=t[n+2]<<8|t[n+3];n+=2+e}}return null}function O(){}var ot,st,ct,lt,ut,dt,k,ft,pt,A,mt,ht,gt,_t,j,vt,M,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,N,Lt,Rt,P,F,zt,Bt,Vt,Ht,Ut,Wt,Gt;function I(){return(I=t((()=>{ot=/* @__PURE__ */ (e=>(e[e.Degree0=0]=`Degree0`,e[e.Degree90=1]=`Degree90`,e[e.Degree180=2]=`Degree180`,e[e.Degree270=3]=`Degree270`,e))(ot||{}),st=class{isEnabled(){return!1}debug(){}info(){}warn(){}error(){}perf(){}},ct=class{isEnabled(){return!0}debug(e,t,...n){console.debug(`${e}.${t}`,...n)}info(e,t,...n){console.info(`${e}.${t}`,...n)}warn(e,t,...n){console.warn(`${e}.${t}`,...n)}error(e,t,...n){console.error(`${e}.${t}`,...n)}perf(e,t,n,r,...i){console.info(`${e}.${t}.${n}.${r}`,...i)}},lt=class{constructor(e,t){this.logger=e,this.level=t}isEnabled(e){return this.level<={debug:0,info:1,warn:2,error:3}[e]}debug(e,t,...n){this.level<=0&&this.logger.debug(e,t,...n)}info(e,t,...n){this.level<=1&&this.logger.info(e,t,...n)}warn(e,t,...n){this.level<=2&&this.logger.warn(e,t,...n)}error(e,t,...n){this.level<=3&&this.logger.error(e,t,...n)}perf(e,t,n,r,...i){this.logger.perf(e,t,n,r,...i)}},ut=class{constructor(){this.marks=/* @__PURE__ */ new Map}isEnabled(){return!1}debug(e,t,...n){}info(e,t,...n){}warn(e,t,...n){}error(e,t,...n){}perf(e,t,n,r,i,...a){let o=`${e}.${t}.${n}.${r}.${i}`;switch(r){case`Begin`:globalThis.performance.mark(o,{detail:a}),this.marks.set(`${e}.${t}.${n}.${i}`,Date.now());break;case`End`:globalThis.performance.mark(o,{detail:a});let r=`${e}.${t}.${n}.Measure.${i}`,s=`${e}.${t}.${n}.Begin.${i}`;globalThis.performance.measure(r,s,o);let c=this.marks.get(`${e}.${t}.${n}.${i}`);if(c){let r=Date.now()-c;console.info(`⏱️ ${e}.${t}.${n}.${i}: ${r}ms`),this.marks.delete(`${e}.${t}.${n}.${i}`)}}}},dt=class{constructor(e){this.loggers=e}isEnabled(e){return this.loggers.some(t=>t.isEnabled(e))}debug(e,t,...n){for(let r of this.loggers)r.debug(e,t,...n)}info(e,t,...n){for(let r of this.loggers)r.info(e,t,...n)}warn(e,t,...n){for(let r of this.loggers)r.warn(e,t,...n)}error(e,t,...n){for(let r of this.loggers)r.error(e,t,...n)}perf(e,t,n,r,...i){for(let a of this.loggers)a.perf(e,t,n,r,...i)}},k=/* @__PURE__ */ (e=>(e[e.Pending=0]=`Pending`,e[e.Resolved=1]=`Resolved`,e[e.Rejected=2]=`Rejected`,e[e.Aborted=3]=`Aborted`,e))(k||{}),ft=class extends Error{constructor(e){super(`Task aborted: ${JSON.stringify(e)}`),this.name=`TaskAbortedError`,this.reason=e}},pt=class extends Error{constructor(e){super(`Task rejected: ${JSON.stringify(e)}`),this.name=`TaskRejectedError`,this.reason=e}},A=class e{constructor(){this.state={stage:0},this.resolvedCallbacks=[],this.rejectedCallbacks=[],this._promise=null,this.progressCbs=[]}toPromise(){return this._promise||=new Promise((e,t)=>{this.wait(t=>e(t),e=>{e.type===`abort`?t(new ft(e.reason)):t(new pt(e.reason))})}),this._promise}wait(e,t){switch(this.state.stage){case 0:this.resolvedCallbacks.push(e),this.rejectedCallbacks.push(t);break;case 1:e(this.state.result);break;case 2:t({type:`reject`,reason:this.state.reason});break;case 3:t({type:`abort`,reason:this.state.reason})}}resolve(e){if(this.state.stage===0){this.state={stage:1,result:e};for(let t of this.resolvedCallbacks)try{t(e)}catch{}this.resolvedCallbacks=[],this.rejectedCallbacks=[]}}reject(e){if(this.state.stage===0){this.state={stage:2,reason:e};for(let t of this.rejectedCallbacks)try{t({type:`reject`,reason:e})}catch{}this.resolvedCallbacks=[],this.rejectedCallbacks=[]}}abort(e){if(this.state.stage===0){this.state={stage:3,reason:e};for(let t of this.rejectedCallbacks)try{t({type:`abort`,reason:e})}catch{}this.resolvedCallbacks=[],this.rejectedCallbacks=[]}}fail(e){e.type===`abort`?this.abort(e.reason):this.reject(e.reason)}onProgress(e){this.progressCbs.push(e)}progress(e){for(let t of this.progressCbs)t(e)}static all(t){let n=new e;if(t.length===0)return n.resolve([]),n;let r=Array(t.length),i=0,a=!1;return t.forEach((e,o)=>{e.wait(e=>{a||(r[o]=e,i++,i===t.length&&(a=!0,n.resolve(r)))},e=>{a||(a=!0,e.type===`abort`?n.abort(e.reason):n.reject(e.reason))})}),n}static allSettled(t){let n=new e;if(t.length===0)return n.resolve([]),n;let r=Array(t.length),i=0;return t.forEach((e,a)=>{e.wait(e=>{r[a]={status:`resolved`,value:e},i++,i===t.length&&n.resolve(r)},e=>{r[a]={status:e.type===`abort`?`aborted`:`rejected`,reason:e.reason},i++,i===t.length&&n.resolve(r)})}),n}static race(t){let n=new e;if(t.length===0)return n.reject(`No tasks provided`),n;let r=!1;return t.forEach(e=>{e.wait(e=>{r||(r=!0,n.resolve(e))},e=>{r||(r=!0,e.type===`abort`?n.abort(e.reason):n.reject(e.reason))})}),n}static withProgress(t,n){let r=e.all(t);if(n){let e=0;t.forEach(r=>{r.wait(()=>{e++,n(e,t.length)},()=>{e++,n(e,t.length)})})}return r}},mt=Object.freeze([``,``,``,``,``,``]),ht=RegExp(`[${mt.join(``)}]`,`g`),gt=/* @__PURE__ */ (e=>(e[e.Unknown=0]=`Unknown`,e[e.XYZ=1]=`XYZ`,e[e.FitPage=2]=`FitPage`,e[e.FitHorizontal=3]=`FitHorizontal`,e[e.FitVertical=4]=`FitVertical`,e[e.FitRectangle=5]=`FitRectangle`,e[e.FitBoundingBox=6]=`FitBoundingBox`,e[e.FitBoundingBoxHorizontal=7]=`FitBoundingBoxHorizontal`,e[e.FitBoundingBoxVertical=8]=`FitBoundingBoxVertical`,e))(gt||{}),_t=/* @__PURE__ */ (e=>(e[e.NotSet=0]=`NotSet`,e[e.True=1]=`True`,e[e.False=2]=`False`,e[e.Unknown=3]=`Unknown`,e))(_t||{}),j=/* @__PURE__ */ (e=>(e[e.Unknown=-1]=`Unknown`,e[e.Courier=0]=`Courier`,e[e.Courier_Bold=1]=`Courier_Bold`,e[e.Courier_BoldOblique=2]=`Courier_BoldOblique`,e[e.Courier_Oblique=3]=`Courier_Oblique`,e[e.Helvetica=4]=`Helvetica`,e[e.Helvetica_Bold=5]=`Helvetica_Bold`,e[e.Helvetica_BoldOblique=6]=`Helvetica_BoldOblique`,e[e.Helvetica_Oblique=7]=`Helvetica_Oblique`,e[e.Times_Roman=8]=`Times_Roman`,e[e.Times_Bold=9]=`Times_Bold`,e[e.Times_BoldItalic=10]=`Times_BoldItalic`,e[e.Times_Italic=11]=`Times_Italic`,e[e.Symbol=12]=`Symbol`,e[e.ZapfDingbats=13]=`ZapfDingbats`,e))(j||{}),vt=/* @__PURE__ */ (e=>(e[e.Left=0]=`Left`,e[e.Center=1]=`Center`,e[e.Right=2]=`Right`,e))(vt||{}),M=/* @__PURE__ */ (e=>(e[e.Normal=0]=`Normal`,e[e.Multiply=1]=`Multiply`,e[e.Screen=2]=`Screen`,e[e.Overlay=3]=`Overlay`,e[e.Darken=4]=`Darken`,e[e.Lighten=5]=`Lighten`,e[e.ColorDodge=6]=`ColorDodge`,e[e.ColorBurn=7]=`ColorBurn`,e[e.HardLight=8]=`HardLight`,e[e.SoftLight=9]=`SoftLight`,e[e.Difference=10]=`Difference`,e[e.Exclusion=11]=`Exclusion`,e[e.Hue=12]=`Hue`,e[e.Saturation=13]=`Saturation`,e[e.Color=14]=`Color`,e[e.Luminosity=15]=`Luminosity`,e))(M||{}),yt=/* @__PURE__ */ (e=>(e[e.Contain=0]=`Contain`,e[e.Cover=1]=`Cover`,e[e.Stretch=2]=`Stretch`,e))(yt||{}),bt=/* @__PURE__ */ (e=>(e[e.Unsupported=0]=`Unsupported`,e[e.Goto=1]=`Goto`,e[e.RemoteGoto=2]=`RemoteGoto`,e[e.URI=3]=`URI`,e[e.LaunchAppOrOpenFile=4]=`LaunchAppOrOpenFile`,e))(bt||{}),xt=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.TEXT=1]=`TEXT`,e[e.LINK=2]=`LINK`,e[e.FREETEXT=3]=`FREETEXT`,e[e.LINE=4]=`LINE`,e[e.SQUARE=5]=`SQUARE`,e[e.CIRCLE=6]=`CIRCLE`,e[e.POLYGON=7]=`POLYGON`,e[e.POLYLINE=8]=`POLYLINE`,e[e.HIGHLIGHT=9]=`HIGHLIGHT`,e[e.UNDERLINE=10]=`UNDERLINE`,e[e.SQUIGGLY=11]=`SQUIGGLY`,e[e.STRIKEOUT=12]=`STRIKEOUT`,e[e.STAMP=13]=`STAMP`,e[e.CARET=14]=`CARET`,e[e.INK=15]=`INK`,e[e.POPUP=16]=`POPUP`,e[e.FILEATTACHMENT=17]=`FILEATTACHMENT`,e[e.SOUND=18]=`SOUND`,e[e.MOVIE=19]=`MOVIE`,e[e.WIDGET=20]=`WIDGET`,e[e.SCREEN=21]=`SCREEN`,e[e.PRINTERMARK=22]=`PRINTERMARK`,e[e.TRAPNET=23]=`TRAPNET`,e[e.WATERMARK=24]=`WATERMARK`,e[e.THREED=25]=`THREED`,e[e.RICHMEDIA=26]=`RICHMEDIA`,e[e.XFAWIDGET=27]=`XFAWIDGET`,e[e.REDACT=28]=`REDACT`,e))(xt||{}),St=/* @__PURE__ */ (e=>(e[e.Normal=0]=`Normal`,e[e.Rollover=1]=`Rollover`,e[e.Down=2]=`Down`,e))(St||{}),Ct=/* @__PURE__ */ (e=>(e[e.Unknown=-1]=`Unknown`,e[e.Comment=0]=`Comment`,e[e.Key=1]=`Key`,e[e.Note=2]=`Note`,e[e.Help=3]=`Help`,e[e.NewParagraph=4]=`NewParagraph`,e[e.Paragraph=5]=`Paragraph`,e[e.Insert=6]=`Insert`,e[e.Graph=7]=`Graph`,e[e.PushPin=8]=`PushPin`,e[e.Paperclip=9]=`Paperclip`,e[e.Tag=10]=`Tag`,e[e.Speaker=11]=`Speaker`,e[e.Mic=12]=`Mic`,e[e.Approved=13]=`Approved`,e[e.Experimental=14]=`Experimental`,e[e.NotApproved=15]=`NotApproved`,e[e.AsIs=16]=`AsIs`,e[e.Expired=17]=`Expired`,e[e.NotForPublicRelease=18]=`NotForPublicRelease`,e[e.Confidential=19]=`Confidential`,e[e.Final=20]=`Final`,e[e.Sold=21]=`Sold`,e[e.Departmental=22]=`Departmental`,e[e.ForComment=23]=`ForComment`,e[e.TopSecret=24]=`TopSecret`,e[e.Draft=25]=`Draft`,e[e.ForPublicRelease=26]=`ForPublicRelease`,e[e.Completed=27]=`Completed`,e[e.Void=28]=`Void`,e[e.PreliminaryResults=29]=`PreliminaryResults`,e[e.InformationOnly=30]=`InformationOnly`,e[e.Rejected=31]=`Rejected`,e[e.Witness=32]=`Witness`,e[e.InitialHere=33]=`InitialHere`,e[e.SignHere=34]=`SignHere`,e[e.Accepted=35]=`Accepted`,e[e.Custom=36]=`Custom`,e[e.Image=37]=`Image`,e))(Ct||{}),wt=/* @__PURE__ */ (e=>(e[e.None=0]=`None`,e[e.Square=1]=`Square`,e[e.Circle=2]=`Circle`,e[e.Diamond=3]=`Diamond`,e[e.OpenArrow=4]=`OpenArrow`,e[e.ClosedArrow=5]=`ClosedArrow`,e[e.Butt=6]=`Butt`,e[e.ROpenArrow=7]=`ROpenArrow`,e[e.RClosedArrow=8]=`RClosedArrow`,e[e.Slash=9]=`Slash`,e[e.Unknown=10]=`Unknown`,e))(wt||{}),Tt=/* @__PURE__ */ (e=>(e[e.Unknown=0]=`Unknown`,e[e.Reply=1]=`Reply`,e[e.Group=2]=`Group`,e))(Tt||{}),Et=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.PUSHBUTTON=1]=`PUSHBUTTON`,e[e.CHECKBOX=2]=`CHECKBOX`,e[e.RADIOBUTTON=3]=`RADIOBUTTON`,e[e.COMBOBOX=4]=`COMBOBOX`,e[e.LISTBOX=5]=`LISTBOX`,e[e.TEXTFIELD=6]=`TEXTFIELD`,e[e.SIGNATURE=7]=`SIGNATURE`,e[e.XFA=8]=`XFA`,e[e.XFA_CHECKBOX=9]=`XFA_CHECKBOX`,e[e.XFA_COMBOBOX=10]=`XFA_COMBOBOX`,e[e.XFA_IMAGEFIELD=11]=`XFA_IMAGEFIELD`,e[e.XFA_LISTBOX=12]=`XFA_LISTBOX`,e[e.XFA_PUSHBUTTON=13]=`XFA_PUSHBUTTON`,e[e.XFA_SIGNATURE=14]=`XFA_SIGNATURE`,e[e.XFA_TEXTFIELD=15]=`XFA_TEXTFIELD`,e))(Et||{}),Dt=/* @__PURE__ */ (e=>(e[e.Color=0]=`Color`,e[e.InteriorColor=1]=`InteriorColor`,e[e.OverlayColor=2]=`OverlayColor`,e[e.TextColor=3]=`TextColor`,e))(Dt||{}),Ot=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.SOLID=1]=`SOLID`,e[e.DASHED=2]=`DASHED`,e[e.BEVELED=3]=`BEVELED`,e[e.INSET=4]=`INSET`,e[e.UNDERLINE=5]=`UNDERLINE`,e[e.CLOUDY=6]=`CLOUDY`,e))(Ot||{}),kt=/* @__PURE__ */ (e=>(e[e.NONE=0]=`NONE`,e[e.READONLY=1]=`READONLY`,e[e.REQUIRED=2]=`REQUIRED`,e[e.NOEXPORT=4]=`NOEXPORT`,e[e.TEXT_MULTIPLINE=4096]=`TEXT_MULTIPLINE`,e[e.TEXT_PASSWORD=8192]=`TEXT_PASSWORD`,e[e.TEXT_FILESELECT=1048576]=`TEXT_FILESELECT`,e[e.TEXT_DONOTSPELLCHECK=4194304]=`TEXT_DONOTSPELLCHECK`,e[e.TEXT_DONOTSCROLL=8388608]=`TEXT_DONOTSCROLL`,e[e.TEXT_COMB=16777216]=`TEXT_COMB`,e[e.TEXT_RICHTEXT=33554432]=`TEXT_RICHTEXT`,e[e.BUTTON_NOTOGGLETOOFF=16384]=`BUTTON_NOTOGGLETOOFF`,e[e.BUTTON_RADIO=32768]=`BUTTON_RADIO`,e[e.BUTTON_PUSHBUTTON=65536]=`BUTTON_PUSHBUTTON`,e[e.BUTTON_RADIOSINUNISON=33554432]=`BUTTON_RADIOSINUNISON`,e[e.CHOICE_COMBO=131072]=`CHOICE_COMBO`,e[e.CHOICE_EDIT=262144]=`CHOICE_EDIT`,e[e.CHOICE_SORT=524288]=`CHOICE_SORT`,e[e.CHOICE_MULTL_SELECT=2097152]=`CHOICE_MULTL_SELECT`,e[e.CHOICE_DONOTSPELLCHECK=4194304]=`CHOICE_DONOTSPELLCHECK`,e[e.CHOICE_COMMITONSELCHANGE=67108864]=`CHOICE_COMMITONSELCHANGE`,e))(kt||{}),At=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.TEXT=1]=`TEXT`,e[e.PATH=2]=`PATH`,e[e.IMAGE=3]=`IMAGE`,e[e.SHADING=4]=`SHADING`,e[e.FORM=5]=`FORM`,e))(At||{}),jt=Object.freeze({1:`invisible`,2:`hidden`,4:`print`,8:`noZoom`,16:`noRotate`,32:`noView`,64:`readOnly`,128:`locked`,256:`toggleNoView`,512:`lockedContents`}),Mt=Object.entries(jt).reduce((e,[t,n])=>(e[n]=Number(t),e),{}),Nt=/* @__PURE__ */ (e=>(e[e.KEY_STROKE=12]=`KEY_STROKE`,e[e.FORMAT=13]=`FORMAT`,e[e.VALIDATE=14]=`VALIDATE`,e[e.CALCULATE=15]=`CALCULATE`,e))(Nt||{}),Pt=/* @__PURE__ */ (e=>(e.Keystroke=`keystroke`,e.Format=`format`,e.Validate=`validate`,e.Calculate=`calculate`,e))(Pt||{}),Ft=/* @__PURE__ */ (e=>(e.DocumentNamed=`document_named`,e.WidgetKeystroke=`widget_keystroke`,e.WidgetFormat=`widget_format`,e.WidgetValidate=`widget_validate`,e.WidgetCalculate=`widget_calculate`,e))(Ft||{}),It=/* @__PURE__ */ (e=>(e[e.Create=0]=`Create`,e[e.Read=1]=`Read`,e[e.Update=2]=`Update`,e[e.Delete=3]=`Delete`,e))(It||{}),N=/* @__PURE__ */ (e=>(e[e.Print=4]=`Print`,e[e.ModifyContents=8]=`ModifyContents`,e[e.CopyContents=16]=`CopyContents`,e[e.ModifyAnnotations=32]=`ModifyAnnotations`,e[e.FillForms=256]=`FillForms`,e[e.ExtractForAccessibility=512]=`ExtractForAccessibility`,e[e.AssembleDocument=1024]=`AssembleDocument`,e[e.PrintHighQuality=2048]=`PrintHighQuality`,e[e.AllowAll=3900]=`AllowAll`,e))(N||{}),Lt=class extends Error{constructor(e,t){let n=e.map(e=>N[e]).join(`, `);super(`Permission denied. Required: ${n}`),this.requiredFlags=e,this.currentPermissions=t,this.name=`PermissionDeniedError`}},Rt=/* @__PURE__ */ (e=>(e[e.Display=0]=`Display`,e[e.Print=1]=`Print`,e))(Rt||{}),P=/* @__PURE__ */ (e=>(e[e.Ok=0]=`Ok`,e[e.Unknown=1]=`Unknown`,e[e.NotFound=2]=`NotFound`,e[e.WrongFormat=3]=`WrongFormat`,e[e.Password=4]=`Password`,e[e.Security=5]=`Security`,e[e.PageError=6]=`PageError`,e[e.XFALoad=7]=`XFALoad`,e[e.XFALayout=8]=`XFALayout`,e[e.Cancelled=9]=`Cancelled`,e[e.Initialization=10]=`Initialization`,e[e.NotReady=11]=`NotReady`,e[e.NotSupport=12]=`NotSupport`,e[e.LoadDoc=13]=`LoadDoc`,e[e.DocNotOpen=14]=`DocNotOpen`,e[e.CantCloseDoc=15]=`CantCloseDoc`,e[e.CantCreateNewDoc=16]=`CantCreateNewDoc`,e[e.CantImportPages=17]=`CantImportPages`,e[e.CantCreateAnnot=18]=`CantCreateAnnot`,e[e.CantSetAnnotRect=19]=`CantSetAnnotRect`,e[e.CantSetAnnotContent=20]=`CantSetAnnotContent`,e[e.CantRemoveInkList=21]=`CantRemoveInkList`,e[e.CantAddInkStoke=22]=`CantAddInkStoke`,e[e.CantReadAttachmentSize=23]=`CantReadAttachmentSize`,e[e.CantReadAttachmentContent=24]=`CantReadAttachmentContent`,e[e.CantFocusAnnot=25]=`CantFocusAnnot`,e[e.CantSelectText=26]=`CantSelectText`,e[e.CantSelectOption=27]=`CantSelectOption`,e[e.CantCheckField=28]=`CantCheckField`,e[e.CantSetAnnotString=29]=`CantSetAnnotString`,e[e.CantDeletePage=30]=`CantDeletePage`,e))(P||{}),F=class{static create(){return new A}static resolve(e){let t=new A;return t.resolve(e),t}static reject(e){let t=new A;return t.reject(e),t}static abort(e){let t=new A;return t.reject(e),t}},zt=Object.freeze([{id:vt.Left,label:`Left`,css:`left`},{id:vt.Center,label:`Center`,css:`center`},{id:vt.Right,label:`Right`,css:`right`}]),zt.reduce((e,t)=>(e[t.id]=t,e),{}),zt.reduce((e,t)=>(e[t.css]=t.id,e),{}),zt.map(e=>({value:e.id,label:e.label})),Bt=/* @__PURE__ */ (e=>(e.Courier=`Courier`,e.Helvetica=`Helvetica`,e.Times=`Times`,e.Symbol=`Symbol`,e.ZapfDingbats=`ZapfDingbats`,e.Unknown=`Unknown`,e))(Bt||{}),j.Helvetica,Vt={id:j.Helvetica,family:`Helvetica`,bold:!1,italic:!1,label:`Helvetica`,css:`Helvetica, Arial, sans-serif`},Ht=Object.freeze([{id:j.Courier,family:`Courier`,bold:!1,italic:!1,label:`Courier`,css:`Courier, monospace`},{id:j.Courier_Bold,family:`Courier`,bold:!0,italic:!1,label:`Courier Bold`,css:`Courier, monospace`},{id:j.Courier_BoldOblique,family:`Courier`,bold:!0,italic:!0,label:`Courier Bold Oblique`,css:`Courier, monospace`},{id:j.Courier_Oblique,family:`Courier`,bold:!1,italic:!0,label:`Courier Oblique`,css:`Courier, monospace`},Vt,{id:j.Helvetica_Bold,family:`Helvetica`,bold:!0,italic:!1,label:`Helvetica Bold`,css:`Helvetica, Arial, sans-serif`},{id:j.Helvetica_BoldOblique,family:`Helvetica`,bold:!0,italic:!0,label:`Helvetica Bold Oblique`,css:`Helvetica, Arial, sans-serif`},{id:j.Helvetica_Oblique,family:`Helvetica`,bold:!1,italic:!0,label:`Helvetica Oblique`,css:`Helvetica, Arial, sans-serif`},{id:j.Times_Roman,family:`Times`,bold:!1,italic:!1,label:`Times Roman`,css:`"Times New Roman", Times, serif`},{id:j.Times_Bold,family:`Times`,bold:!0,italic:!1,label:`Times Bold`,css:`"Times New Roman", Times, serif`},{id:j.Times_BoldItalic,family:`Times`,bold:!0,italic:!0,label:`Times Bold Italic`,css:`"Times New Roman", Times, serif`},{id:j.Times_Italic,family:`Times`,bold:!1,italic:!0,label:`Times Italic`,css:`"Times New Roman", Times, serif`},{id:j.Symbol,family:`Symbol`,bold:!1,italic:!1,label:`Symbol`,css:`Symbol, serif`},{id:j.ZapfDingbats,family:`ZapfDingbats`,bold:!1,italic:!1,label:`Zapf Dingbats`,css:`ZapfDingbats, serif`}]),Ht.reduce((e,t)=>(e[t.id]=t,e),{}),Ut=/* @__PURE__ */ new Map;for(let e of Ht)Ut.set(`${e.family}_${e.bold}_${e.italic}`,e.id);Object.values(Bt).filter(e=>e!==`Unknown`).map(e=>({value:e,label:e})),[...new Set(Ht.map(e=>e.family))],Wt=Object.freeze([{id:M.Normal,label:`Normal`,css:`normal`},{id:M.Multiply,label:`Multiply`,css:`multiply`},{id:M.Screen,label:`Screen`,css:`screen`},{id:M.Overlay,label:`Overlay`,css:`overlay`},{id:M.Darken,label:`Darken`,css:`darken`},{id:M.Lighten,label:`Lighten`,css:`lighten`},{id:M.ColorDodge,label:`Color Dodge`,css:`color-dodge`},{id:M.ColorBurn,label:`Color Burn`,css:`color-burn`},{id:M.HardLight,label:`Hard Light`,css:`hard-light`},{id:M.SoftLight,label:`Soft Light`,css:`soft-light`},{id:M.Difference,label:`Difference`,css:`difference`},{id:M.Exclusion,label:`Exclusion`,css:`exclusion`},{id:M.Hue,label:`Hue`,css:`hue`},{id:M.Saturation,label:`Saturation`,css:`saturation`},{id:M.Color,label:`Color`,css:`color`},{id:M.Luminosity,label:`Luminosity`,css:`luminosity`}]),Wt.reduce((e,t)=>(e[t.id]=t,e),{}),Wt.reduce((e,t)=>(e[t.css]=t.id,e),{}),Wt.map(e=>({value:e.id,label:e.label})),Wt.map(e=>e.id),Gt=class e extends A{constructor(e={}){super(),this.children=/* @__PURE__ */ new Map,this.childResults=[],this.completedCount=0,this.expectedCount=0,this.isFinalized=!1,this.config={aggregate:e.aggregate??(e=>e),onChildComplete:e.onChildComplete??(()=>{}),failFast:e.failFast??!0}}addChild(e,t){if(this.state.stage!==k.Pending)return this.state.stage===k.Aborted&&e.abort(this.state.reason),this;let n=t??this.expectedCount;return this.expectedCount=Math.max(this.expectedCount,n+1),this.children.set(e,n),e.wait(t=>this.handleChildSuccess(e,t,n),t=>this.handleChildError(e,t,n)),this}finalize(){return this.isFinalized||(this.isFinalized=!0,this.expectedCount===0&&this.resolve(this.config.aggregate([]))),this}handleChildSuccess(e,t,n){if(this.state.stage!==k.Pending)return;this.childResults[n]=t,this.completedCount++,this.children.delete(e);let r=this.config.onChildComplete(this.completedCount,this.expectedCount,t,n);if(r!==void 0&&this.progress(r),this.completedCount===this.expectedCount){let e=this.config.aggregate(this.childResults);this.resolve(e)}}handleChildError(e,t,n){if(this.state.stage===k.Pending){if(this.children.delete(e),this.config.failFast){for(let[e]of this.children)e.abort(`Sibling task failed`);this.children.clear(),this.fail(t)}else if(this.childResults[n]=void 0,this.completedCount++,this.completedCount===this.expectedCount){let e=this.config.aggregate(this.childResults);this.resolve(e)}}}abort(e){for(let[t]of this.children)t.abort(e);this.children.clear(),super.abort(e)}reject(e){for(let[t]of this.children)t.abort(e);this.children.clear(),super.reject(e)}getPendingCount(){return this.children.size}getCompletedCount(){return this.completedCount}static gather(t){let n=new e({aggregate:e=>e,onChildComplete:(e,t)=>({completed:e,total:t})});return t.forEach((e,t)=>n.addChild(e,t)),n.finalize(),n}static gatherIndexed(t){let n=new e({aggregate:e=>{let t={};return e.forEach((e,n)=>{t[n]=e}),t},onChildComplete:(e,t,n,r)=>({page:r,result:n})});return t.forEach((e,t)=>n.addChild(e,t)),n.finalize(),n}static gatherFrom(t,n){let r=new e(n);return t.forEach((e,t)=>r.addChild(e,t)),r.finalize(),r}static first(t){let n=!1,r=new e({aggregate:e=>e[0],failFast:!1});return r.handleChildSuccess=(e,t)=>{if(!n){n=!0;for(let[t]of r.children)t!==e&&t.abort(`Race won by sibling`);r.resolve(t)}},t.forEach((e,t)=>r.addChild(e,t)),r.finalize(),r}}})))()}function Kt(e,t){if(!e)return;if(t in e)return e[t];let n=Hn[t];if(n&&n in e)return e[n]}function qt(e,t,n){let r=e.documents[t],i=r?.permissions,a=e.globalPermissions,o=r?.document?.permissions??N.AllowAll,s=Kt(i?.overrides,n);if(s!==void 0)return s;let c=Kt(a?.overrides,n);return c===void 0?i?.enforceDocumentPermissions??a?.enforceDocumentPermissions??!0?(o&n)!==0:!0:c}function Jt(e,t){return Vn.reduce((n,r)=>qt(e,t,r)?n|r:n,0)}function Yt(e,t,n){let r=e.activeDocumentId;if(r!==t)return r;if(n!==void 0)return n&&e.documents[n]?n:null;let i=e.documentOrder.indexOf(t);return i===-1?null:i>0?e.documentOrder[i-1]:i<e.documentOrder.length-1?e.documentOrder[i+1]:null}function Xt(e,t,n){let r=e.indexOf(t);if(r===-1||n<0||n>=e.length||r===n)return null;let i=[...e];return i.splice(r,1),i.splice(n,0,t),i}function L(e,t){return{package:e,config:t}}function Zt(e){return`autoMountElements`in e&&typeof e.autoMountElements==`function`}function Qt(e){return`keyExtractor`in e}function R(e,t,n){return e<t?t:e>n?n:e}function $t(e,t,n){if(e===t)return!0;if(e==null||t==null)return e===t;let r=typeof e;if(r!==typeof t)return!1;if(r===`object`){n||=/* @__PURE__ */ new Set;let r=en(e,t);if(n.has(r))return!0;n.add(r);let i=Array.isArray(e),a=Array.isArray(t);return i&&a?nn(e,t,n):!i&&!a&&rn(e,t,n)}return!1}function en(e,t){return`${tn(e)}__${tn(t)}`}function tn(e){return Jn.has(e)||Jn.set(e,++qn),Jn.get(e)}function nn(e,t,n){if(e.length!==t.length)return!1;let r=Array(t.length).fill(!1);outer:for(let i=0;i<e.length;i++){let a=e[i];for(let e=0;e<t.length;e++)if(!r[e]&&$t(a,t[e],n)){r[e]=!0;continue outer}return!1}return!0}function rn(e,t,n){let r=Object.keys(e).sort(),i=Object.keys(t).sort();if(r.length!==i.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==i[e])return!1;for(let i of r){let r=e[i],a=t[i];if(!$t(r,a,n))return!1}return!0}function z(){let e=/* @__PURE__ */ new Set;return{emit:(t=void 0)=>e.forEach(e=>e(t)),on:t=>(e.add(t),()=>e.delete(t)),off:t=>e.delete(t),clear:()=>e.clear()}}function B(e,t=$t){let n=/* @__PURE__ */ new Set,r=/* @__PURE__ */ new Map,i=e,a=e=>n.forEach(t=>t(e)),o=(e,t)=>{let a=e,o=()=>{};if(t){if(Qt(t)){let n=new Kn(e,t);a=n.handle,o=()=>n.destroy()}else{let n=new Gn(e,t);a=n.handle,o=()=>n.destroy()}r.set(e,{wrapped:a,destroy:o})}return i!==void 0&&a(i),n.add(a),()=>{n.delete(a),o(),r.delete(e)}};return{get value(){return i},emit(e=void 0){i!==void 0&&t(i,e)||(i=e,a(e))},on:o,off(e){let t=r.get(e);t?(n.delete(t.wrapped),t.destroy(),r.delete(e)):n.delete(e)},clear(){n.clear(),r.forEach(e=>e.destroy()),r.clear()},select(e,t=$t){return(n,r)=>{let a;if(i!==void 0){let t=e(i);a=t,n(t)}return o(r=>{let i=e(r);a!==void 0&&t(a,i)||(a=i,n(i))},r)}}}}function V(e,t){let n=t?.cache??!0,r=t?.equality??$t,i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Map,s=/* @__PURE__ */ new Set,c=/* @__PURE__ */ new Map,l=e=>String(e),u=e=>{let t=a.get(e);return t||(t=/* @__PURE__ */ new Set,a.set(e,t)),t},d=e=>{let t=o.get(e);return t||(t=/* @__PURE__ */ new Map,o.set(e,t)),t};return{emit(t,o){let c=l(t);if(n){let e=i.get(c);if(e!==void 0&&r(e,o))return;i.set(c,o)}let u=a.get(c);u&&u.forEach(e=>e(o));let d=e(t,o);s.forEach(e=>e(d))},forScope(e){let t=l(e);return(e,r)=>{let s=u(t),c=d(t),l=e,f=()=>{};if(r){if(Qt(r)){let t=new Kn(e,r);l=t.handle,f=()=>t.destroy()}else{let t=new Gn(e,r);l=t.handle,f=()=>t.destroy()}c.set(e,{wrapped:l,destroy:f})}if(n){let e=i.get(t);e!==void 0&&l(e)}return s.add(l),()=>{s.delete(l),f(),c.delete(e),s.size===0&&a.delete(t),c.size===0&&o.delete(t)}}},onGlobal:(e,t)=>{let n=e,r=()=>{};if(t){if(Qt(t)){let i=new Kn(e,t);n=i.handle,r=()=>i.destroy()}else{let i=new Gn(e,t);n=i.handle,r=()=>i.destroy()}c.set(e,{wrapped:n,destroy:r})}return s.add(n),()=>{s.delete(n),r(),c.delete(e)}},getValue(e){return n?i.get(l(e)):void 0},getScopes(){return n?Array.from(i.keys()):Array.from(a.keys())},clearScope(e){let t=l(e);n&&i.delete(t);let r=a.get(t);r&&(r.clear(),a.delete(t));let s=o.get(t);s&&(s.forEach(e=>e.destroy()),s.clear(),o.delete(t))},clear(){n&&i.clear(),a.forEach(e=>e.clear()),a.clear(),o.forEach(e=>{e.forEach(e=>e.destroy()),e.clear()}),o.clear(),s.clear(),c.forEach(e=>e.destroy()),c.clear()}}}function an(e){return new Yn(e)}var on,H,U,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,W,Gn,Kn,qn,Jn,Yn;function G(){return(G=t((()=>{I(),on=class{constructor(){this.dependencyGraph=/* @__PURE__ */ new Map}addNode(e,t=[]){this.dependencyGraph.set(e,new Set(t))}hasCircularDependencies(){let e=/* @__PURE__ */ new Set,t=/* @__PURE__ */ new Set,n=r=>{e.add(r),t.add(r);let i=this.dependencyGraph.get(r)||/* @__PURE__ */ new Set;for(let r of i)if(!e.has(r)){if(n(r))return!0}else if(t.has(r))return!0;return t.delete(r),!1};for(let t of this.dependencyGraph.keys())if(!e.has(t)&&n(t))return!0;return!1}resolveLoadOrder(){if(this.hasCircularDependencies())throw Error(`Circular dependencies detected`);let e=[],t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Set,r=i=>{if(n.has(i))throw Error(`Circular dependency`);if(t.has(i))return;n.add(i);let a=this.dependencyGraph.get(i)||/* @__PURE__ */ new Set;for(let e of a)r(e);n.delete(i),t.add(i),e.push(i)};for(let e of this.dependencyGraph.keys())t.has(e)||r(e);return e}},H=class extends Error{constructor(e){super(e),this.name=`PluginRegistrationError`}},U=class extends Error{constructor(e){super(e),this.name=`PluginNotFoundError`}},sn=class extends Error{constructor(e){super(e),this.name=`CircularDependencyError`}},cn=class extends Error{constructor(e){super(e),this.name=`PluginConfigurationError`}},ln=class{constructor(e,t){this.store=e,this.pluginId=t}getState(){return this.store.getState().plugins[this.pluginId]}dispatch(e){return this.store.dispatchToPlugin(this.pluginId,e)}subscribeToState(e){return this.store.subscribeToPlugin(this.pluginId,(t,n,r)=>{e(t,n,r)})}onAction(e,t){return this.store.onAction(e,(e,n,r)=>{t(e,n.plugins[this.pluginId],r.plugins[this.pluginId])})}},un=`START_LOADING_DOCUMENT`,dn=`UPDATE_DOCUMENT_LOADING_PROGRESS`,fn=`SET_DOCUMENT_LOADED`,pn=`SET_DOCUMENT_ERROR`,mn=`RETRY_LOADING_DOCUMENT`,hn=`CLOSE_DOCUMENT`,gn=`SET_ACTIVE_DOCUMENT`,_n=`REORDER_DOCUMENTS`,vn=`MOVE_DOCUMENT`,yn=`UPDATE_DOCUMENT_SECURITY`,bn=`REFRESH_DOCUMENT`,xn=`REFRESH_PAGES`,Sn=`SET_PAGES`,Cn=`SET_SCALE`,wn=`SET_ROTATION`,Tn=`SET_DEFAULT_SCALE`,En=`SET_DEFAULT_ROTATION`,Dn=[un,dn,fn,hn,gn,pn,mn,bn,xn,Sn,Cn,wn,Tn,En,_n,vn,yn],On=(e,t,n,r,i,a,o)=>({type:un,payload:{documentId:e,name:t,scale:n,rotation:r,passwordProvided:i,autoActivate:a,permissions:o}}),kn=(e,t)=>({type:fn,payload:{documentId:e,document:t}}),An=(e,t,n,r)=>({type:pn,payload:{documentId:e,error:t,errorCode:n,errorDetails:r}}),jn=(e,t)=>({type:mn,payload:{documentId:e,passwordProvided:t}}),Mn=(e,t)=>({type:hn,payload:{documentId:e,nextActiveDocumentId:t}}),Nn=e=>({type:gn,payload:e}),Pn=(e,t)=>({type:Cn,payload:{scale:e,documentId:t}}),Fn=(e,t)=>({type:wn,payload:{rotation:e,documentId:t}}),In=e=>({type:_n,payload:e}),Ln=(e,t)=>({type:vn,payload:{documentId:e,toIndex:t}}),Rn=(e,t,n)=>({type:yn,payload:{documentId:e,permissions:t,isOwnerUnlocked:n}}),zn=class{constructor(e,t){this.initialCoreState=t,this.pluginReducers={},this.listeners=[],this.pluginListeners={},this.isDispatching=!1,this.state={core:t,plugins:{}},this.coreReducer=e}addPluginReducer(e,t,n){this.state.plugins[e]=n,this.pluginReducers[e]=t}dispatchToCore(e){if(!this.coreReducer)return this.getState();if(this.isDispatching)throw Error(`Reducers may not dispatch actions. To trigger cascading actions, dispatch from a listener callback instead.`);let t=this.getState();try{this.isDispatching=!0,this.state.core=this.coreReducer(this.state.core,e)}finally{this.isDispatching=!1}return this.listeners.forEach(n=>{n(e,this.getState(),t)}),this.getState()}dispatchToPlugin(e,t,n=!0){if(this.isDispatching)throw Error(`Reducers may not dispatch actions. To trigger cascading actions, dispatch from a listener callback instead.`);let r=this.getState(),i=this.pluginReducers[e];if(!i)return r.plugins[e];let a=r.plugins[e];try{this.isDispatching=!0;let n=i(a,t);this.state.plugins[e]=n}finally{this.isDispatching=!1}return n&&this.listeners.forEach(e=>{e(t,this.getState(),r)}),this.pluginListeners[e]&&this.pluginListeners[e].forEach(n=>{let r=this.getState().plugins[e];n(t,r,a)}),this.getState().plugins[e]}dispatch(e){if(this.isDispatching)throw Error(`Reducers may not dispatch actions. To trigger cascading actions, dispatch from a listener callback instead.`);let t=this.getState();try{this.isDispatching=!0,this.isCoreAction(e)&&(this.state.core=this.coreReducer(this.state.core,e));for(let n in this.pluginReducers){let r=this.pluginReducers[n],i=t.plugins[n];r&&(this.state.plugins[n]=r(i,e))}}finally{this.isDispatching=!1}return this.listeners.forEach(n=>{n(e,this.getState(),t)}),this.getState()}getState(){if(this.isDispatching)throw Error(`You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.`);return{core:{...this.state.core},plugins:{...this.state.plugins}}}subscribe(e){if(this.isDispatching)throw Error(`You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state.`);return this.listeners.push(e),()=>{if(this.isDispatching)throw Error(`You may not unsubscribe from a store listener while the reducer is executing.`);this.listeners=this.listeners.filter(t=>t!==e)}}subscribeToPlugin(e,t){if(!(e in this.state.plugins))throw Error(`Plugin state not found for plugin "${e}". Did you forget to call addPluginReducer?`);if(this.isDispatching)throw Error(`You may not call store.subscribeToPlugin() while the reducer is executing.`);return this.pluginListeners[e]||(this.pluginListeners[e]=[]),this.pluginListeners[e].push(t),()=>{if(this.isDispatching)throw Error(`You may not unsubscribe from a store listener while the reducer is executing.`);this.pluginListeners[e]=this.pluginListeners[e].filter(e=>e!==t),this.pluginListeners[e].length===0&&delete this.pluginListeners[e]}}onAction(e,t){return this.subscribe((n,r,i)=>{n.type===e&&t(n,r,i)})}getPluginStore(e){if(!(e in this.state.plugins))throw Error(`Plugin state not found for plugin "${e}". Did you forget to call addPluginReducer?`);return new ln(this,e)}isCoreAction(e){return Dn.includes(e.type)}destroy(){var e,t;this.listeners.length=0;for(let n in this.pluginListeners)(t=(e=this.pluginListeners[n])?.splice)==null||t.call(e,0);this.pluginListeners={},this.pluginReducers={},this.state.plugins={},this.state.core={...this.initialCoreState}}},Bn=e=>({documents:{},documentOrder:[],activeDocumentId:null,defaultScale:e?.defaultScale??1,defaultRotation:e?.defaultRotation??ot.Degree0,globalPermissions:e?.permissions}),N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality,Vn=[N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality],Hn={[N.Print]:`print`,[N.ModifyContents]:`modifyContents`,[N.CopyContents]:`copyContents`,[N.ModifyAnnotations]:`modifyAnnotations`,[N.FillForms]:`fillForms`,[N.ExtractForAccessibility]:`extractForAccessibility`,[N.AssembleDocument]:`assembleDocument`,[N.PrintHighQuality]:`printHighQuality`},Un=(e,t)=>{switch(t.type){case un:{let{documentId:n,name:r,scale:i,rotation:a,passwordProvided:o,autoActivate:s=!0,permissions:c}=t.payload,l={id:n,name:r,status:`loading`,loadingProgress:0,error:null,document:null,scale:i??e.defaultScale,rotation:a??e.defaultRotation,passwordProvided:o??!1,pageRefreshVersions:{},permissions:c,loadStartedAt:Date.now()};return{...e,documents:{...e.documents,[n]:l},documentOrder:[...e.documentOrder,n],activeDocumentId:s||!e.activeDocumentId?n:e.activeDocumentId}}case dn:{let{documentId:n,progress:r}=t.payload,i=e.documents[n];return!i||i.status!==`loading`?e:{...e,documents:{...e.documents,[n]:{...i,loadingProgress:r}}}}case fn:{let{documentId:n,document:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,status:`loaded`,document:r,error:null,errorCode:void 0,errorDetails:void 0,passwordProvided:void 0,loadedAt:Date.now()}}}:e}case pn:{let{documentId:n,error:r,errorCode:i,errorDetails:a}=t.payload,o=e.documents[n];return o?{...e,documents:{...e.documents,[n]:{...o,status:`error`,error:r,errorCode:i,errorDetails:a}}}:e}case mn:{let{documentId:n,passwordProvided:r}=t.payload,i=e.documents[n];return!i||i.status!==`error`?e:{...e,documents:{...e.documents,[n]:{...i,status:`loading`,loadingProgress:0,error:null,errorCode:void 0,errorDetails:void 0,passwordProvided:r??!1,loadStartedAt:Date.now()}}}}case hn:{let{documentId:n,nextActiveDocumentId:r}=t.payload,{[n]:i,...a}=e.documents;return{...e,documents:a,documentOrder:e.documentOrder.filter(e=>e!==n),activeDocumentId:Yt(e,n,r)}}case vn:{let{documentId:n,toIndex:r}=t.payload,i=Xt(e.documentOrder,n,r);return i?{...e,documentOrder:i}:e}case _n:return{...e,documentOrder:t.payload};case gn:return{...e,activeDocumentId:t.payload};case Cn:{let{scale:n,documentId:r}=t.payload,i=r??e.activeDocumentId;if(!i)return e;let a=e.documents[i];return a?{...e,documents:{...e.documents,[i]:{...a,scale:n}}}:e}case wn:{let{rotation:n,documentId:r}=t.payload,i=r??e.activeDocumentId;if(!i)return e;let a=e.documents[i];return a?{...e,documents:{...e.documents,[i]:{...a,rotation:n}}}:e}case xn:{let{documentId:n,pageIndexes:r}=t.payload,i=e.documents[n];if(!i)return e;let a={...i.pageRefreshVersions};for(let e of r)a[e]=(a[e]||0)+1;return{...e,documents:{...e.documents,[n]:{...i,pageRefreshVersions:a}}}}case yn:{let{documentId:n,permissions:r,isOwnerUnlocked:i}=t.payload,a=e.documents[n];return a?.document?{...e,documents:{...e.documents,[n]:{...a,document:{...a.document,permissions:r,isOwnerUnlocked:i}}}}:e}default:return e}},Wn=class{constructor(e,t){this.plugins=/* @__PURE__ */ new Map,this.manifests=/* @__PURE__ */ new Map,this.capabilities=/* @__PURE__ */ new Map,this.status=/* @__PURE__ */ new Map,this.configurations=/* @__PURE__ */ new Map,this.initPromise=null,this.pendingRegistrations=[],this.processingRegistrations=[],this.initialized=!1,this.isInitializing=!1,this.pluginsReadyPromise=null,this.destroyed=!1,this.resolver=new on,this.engine=e,this.initialCoreState=Bn(t),this.store=new zn(Un,this.initialCoreState),this.logger=t?.logger??new st}getLogger(){return this.logger}registerPlugin(e,t){if(this.initialized&&!this.isInitializing)throw new H(`Cannot register plugins after initialization`);this.validateManifest(e.manifest),this.store.addPluginReducer(e.manifest.id,e.reducer,typeof e.initialState==`function`?e.initialState(this.initialCoreState,{...e.manifest.defaultConfig,...t}):e.initialState),this.pendingRegistrations.push({package:e,config:t})}getStore(){return this.store}getEngine(){return this.engine}pluginsReady(){return this.pluginsReadyPromise||=(async()=>{this.initialized||await this.initialize();let e=Array.from(this.plugins.values()).map(e=>typeof e.ready==`function`?e.ready():Promise.resolve());await Promise.all(e)})(),this.pluginsReadyPromise}async initialize(){if(this.destroyed)throw new H(`Registry has been destroyed`);return this.initPromise||=(async()=>{if(this.initialized)throw new H(`Registry is already initialized`);this.isInitializing=!0;try{if(this.destroyed)return;for(;this.pendingRegistrations.length>0;){if(this.destroyed)return;this.processingRegistrations=[...this.pendingRegistrations],this.pendingRegistrations=[];for(let e of this.processingRegistrations){let t=/* @__PURE__ */ new Set,n=[...e.package.manifest.requires,...e.package.manifest.optional];for(let e of n){let n=this.processingRegistrations.find(t=>t.package.manifest.provides.includes(e));n&&t.add(n.package.manifest.id)}this.resolver.addNode(e.package.manifest.id,[...t])}let e=this.resolver.resolveLoadOrder();for(let t of e){let e=this.processingRegistrations.find(e=>e.package.manifest.id===t);this.instantiatePlugin(e.package.manifest,e.package.create,e.config)}for(let t of e)await this.runPluginInitialization(t);this.processingRegistrations=[],this.resolver=new on}this.initialized=!0}catch(e){throw e instanceof Error?new sn(`Failed to resolve plugin dependencies: ${e.message}`):e}finally{this.isInitializing=!1}})(),this.initPromise}instantiatePlugin(e,t,n){let r={...e.defaultConfig,...n};this.validateConfig(e.id,r,e.defaultConfig);let i=t(this,r);this.validatePlugin(i);for(let t of e.provides){if(this.capabilities.has(t))throw new H(`Capability ${t} is already provided by plugin ${this.capabilities.get(t)}`);this.capabilities.set(t,e.id)}this.plugins.set(e.id,i),this.manifests.set(e.id,e),this.status.set(e.id,`registered`),this.configurations.set(e.id,r)}async runPluginInitialization(e){let t=this.plugins.get(e);if(!t)return;let n=this.manifests.get(e),r=this.configurations.get(e);for(let t of n.requires)if(!this.capabilities.has(t))throw new H(`Missing required capability: ${t} for plugin ${e}`);this.logger.debug(`PluginRegistry`,`InitializePlugin`,`Initializing plugin ${e}`);try{t.initialize&&await t.initialize(r),this.status.set(e,`active`),this.logger.info(`PluginRegistry`,`PluginInitialized`,`Plugin ${e} initialized successfully`)}catch(t){throw this.status.set(e,`error`),this.logger.error(`PluginRegistry`,`InitializationFailed`,`Plugin ${e} initialization failed`,{error:t}),t}}getPluginConfig(e){let t=this.configurations.get(e);if(!t)throw new U(`Configuration for plugin ${e} not found`);return t}validateConfig(e,t,n){let r=Object.keys(n).filter(e=>!t.hasOwnProperty(e));if(r.length>0)throw new cn(`Missing required configuration keys for plugin ${e}: ${r.join(`, `)}`)}async updatePluginConfig(e,t){let n=this.getPlugin(e);if(!n)throw new U(`Plugin ${e} not found`);let r=this.manifests.get(e),i=this.configurations.get(e);if(!r||!i)throw new U(`Plugin ${e} not found`);let a={...i,...t};this.validateConfig(e,a,r.defaultConfig),this.configurations.set(e,a),n.initialize&&await n.initialize(a)}registerPluginBatch(e){for(let t of e)this.registerPlugin(t.package,t.config)}async unregisterPlugin(e){let t=this.plugins.get(e);if(!t)throw new U(`Plugin ${e} is not registered`);let n=this.manifests.get(e);if(!n)throw new U(`Manifest for plugin ${e} not found`);for(let[t,r]of this.manifests.entries())if(t!==e&&[...r.requires,...r.optional].some(e=>n.provides.includes(e)))throw new H(`Cannot unregister plugin ${e}: plugin ${t} depends on it`);try{t.destroy&&await t.destroy();for(let e of n.provides)this.capabilities.delete(e);this.plugins.delete(e),this.manifests.delete(e),this.status.delete(e)}catch(t){throw t instanceof Error?Error(`Failed to unregister plugin ${e}: ${t.message}`):t}}getPlugin(e){return this.plugins.get(e)||null}getCapabilityProvider(e){let t=this.capabilities.get(e);return t?this.getPlugin(t):null}hasCapability(e){return this.capabilities.has(e)}getAllPlugins(){return Array.from(this.plugins.values())}getPluginStatus(e){let t=this.status.get(e);if(!t)throw new U(`Plugin ${e} not found`);return t}validatePlugin(e){if(!e.id)throw new H(`Plugin must have an id`)}validateManifest(e){if(!e.id)throw new H(`Manifest must have an id`);if(!e.name)throw new H(`Manifest must have a name`);if(!e.version)throw new H(`Manifest must have a version`);if(!Array.isArray(e.provides))throw new H(`Manifest must have a provides array`);if(!Array.isArray(e.requires))throw new H(`Manifest must have a requires array`);if(!Array.isArray(e.optional))throw new H(`Manifest must have an optional array`)}isDestroyed(){return this.destroyed}async destroy(){if(this.destroyed)throw new H(`Registry has already been destroyed`);this.destroyed=!0;try{await this.initPromise}catch{}for(let e of Array.from(this.plugins.values()).reverse())await e.destroy?.call(e);this.store.destroy(),this.plugins.clear(),this.manifests.clear(),this.capabilities.clear(),this.status.clear(),this.pendingRegistrations.length=0,this.processingRegistrations.length=0}},W=class{constructor(e,t){if(this.id=e,this.registry=t,this.cooldownActions={},this.debouncedTimeouts={},this.unsubscribeFromState=null,this.unsubscribeFromCoreStore=null,this.unsubscribeFromStartLoadingDocument=null,this.unsubscribeFromSetDocumentLoaded=null,this.unsubscribeFromCloseDocument=null,this.unsubscribeFromSetScale=null,this.unsubscribeFromSetRotation=null,e!==this.constructor.id)throw Error(`Plugin ID mismatch: ${e} !== ${this.constructor.id}`);this.engine=this.registry.getEngine(),this.logger=this.registry.getLogger(),this.coreStore=this.registry.getStore(),this.pluginStore=this.coreStore.getPluginStore(this.id),this.unsubscribeFromState=this.pluginStore.subscribeToState((e,t,n)=>{this.onStoreUpdated(n,t)}),this.unsubscribeFromCoreStore=this.coreStore.subscribe((e,t,n)=>{this.onCoreStoreUpdated(n,t),t.core.activeDocumentId!==n.core.activeDocumentId&&this.onActiveDocumentChanged(n.core.activeDocumentId,t.core.activeDocumentId)}),this.unsubscribeFromStartLoadingDocument=this.coreStore.onAction(un,e=>{this.onDocumentLoadingStarted(e.payload.documentId)}),this.unsubscribeFromSetDocumentLoaded=this.coreStore.onAction(fn,e=>{this.onDocumentLoaded(e.payload.documentId)}),this.unsubscribeFromCloseDocument=this.coreStore.onAction(hn,e=>{this.onDocumentClosed(e.payload.documentId)}),this.unsubscribeFromSetScale=this.coreStore.onAction(Cn,(e,t)=>{let n=e.payload.documentId??t.core.activeDocumentId;n&&this.onScaleChanged(n,e.payload.scale)}),this.unsubscribeFromSetRotation=this.coreStore.onAction(wn,(e,t)=>{let n=e.payload.documentId??t.core.activeDocumentId;n&&this.onRotationChanged(n,e.payload.rotation)}),this.readyPromise=new Promise(e=>{this.readyResolve=e}),this.readyResolve()}provides(){if(!this._capability){let e=this.buildCapability();this._capability=Object.freeze(e)}return this._capability}get state(){return this.pluginStore.getState()}get coreState(){return this.coreStore.getState()}getState(){return this.pluginStore.getState()}getCoreState(){return this.coreStore.getState()}dispatchCoreAction(e){return this.coreStore.dispatchToCore(e)}dispatchToAllPlugins(e){return this.coreStore.dispatch(e)}dispatch(e){return this.pluginStore.dispatch(e)}cooldownDispatch(e,t=100){let n=Date.now();return n-(this.cooldownActions[e.type]||0)>=t&&(this.cooldownActions[e.type]=n,this.dispatch(e),!0)}debouncedDispatch(e,t=100){let n=e.type;this.debouncedTimeouts[n]&&clearTimeout(this.debouncedTimeouts[n]),this.debouncedTimeouts[n]=setTimeout(()=>{this.dispatch(e),delete this.debouncedTimeouts[n]},t)}cancelDebouncedDispatch(e){this.debouncedTimeouts[e]&&(clearTimeout(this.debouncedTimeouts[e]),delete this.debouncedTimeouts[e])}subscribe(e){return this.pluginStore.subscribeToState(e)}subscribeToCoreStore(e){return this.coreStore.subscribe(e)}onStoreUpdated(e,t){}onCoreStoreUpdated(e,t){}onDocumentLoadingStarted(e){}onDocumentLoaded(e){}onDocumentClosed(e){}onActiveDocumentChanged(e,t){}onScaleChanged(e,t){}onRotationChanged(e,t){}destroy(){Object.values(this.debouncedTimeouts).forEach(e=>{clearTimeout(e)}),this.debouncedTimeouts={},this.unsubscribeFromState&&=(this.unsubscribeFromState(),null),this.unsubscribeFromCoreStore&&=(this.unsubscribeFromCoreStore(),null),this.unsubscribeFromStartLoadingDocument&&=(this.unsubscribeFromStartLoadingDocument(),null),this.unsubscribeFromSetDocumentLoaded&&=(this.unsubscribeFromSetDocumentLoaded(),null),this.unsubscribeFromCloseDocument&&=(this.unsubscribeFromCloseDocument(),null),this.unsubscribeFromSetScale&&=(this.unsubscribeFromSetScale(),null),this.unsubscribeFromSetRotation&&=(this.unsubscribeFromSetRotation(),null)}ready(){return this.readyPromise}markReady(){this.readyResolve()}resetReady(){this.readyPromise=new Promise(e=>{this.readyResolve=e})}getActiveDocumentId(){let e=this.coreState.core.activeDocumentId;if(!e)throw Error(`No active document`);return e}getActiveDocumentIdOrNull(){return this.coreState.core.activeDocumentId}getCoreDocument(e){let t=e??this.getActiveDocumentIdOrNull();return t?this.coreState.core.documents[t]??null:null}getCoreDocumentOrThrow(e){let t=this.getCoreDocument(e);if(!t)throw Error(`Document not found: ${e??`active`}`);return t}getDocumentPermissions(e){let t=e??this.coreState.core.activeDocumentId;return t?Jt(this.coreState.core,t):N.AllowAll}checkPermission(e,...t){let n=e??this.coreState.core.activeDocumentId;return!n||t.every(e=>qt(this.coreState.core,n,e))}requirePermission(e,...t){let n=e??this.coreState.core.activeDocumentId;if(!n)return;let r=[];for(let e of t)qt(this.coreState.core,n,e)||r.push(e);if(r.length>0){let e=Jt(this.coreState.core,n);throw new Lt(r,e)}}},Gn=class{constructor(e,t){this.handler=e,this.options=t,this.lastRun=0,this.handle=e=>{this.options.mode===`debounce`?this.debounce(e):this.throttle(e)}}debounce(e){this.timeoutId&&window.clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>{this.handler(e),this.timeoutId=void 0},this.options.wait)}throttle(e){if(this.options.mode===`debounce`)return;let t=Date.now(),n=this.options.throttleMode||`leading-trailing`;t-this.lastRun>=this.options.wait&&(n===`leading-trailing`&&this.handler(e),this.lastRun=t),this.timeoutId&&window.clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>{this.handler(e),this.lastRun=Date.now(),this.timeoutId=void 0},this.options.wait-(t-this.lastRun))}destroy(){this.timeoutId&&window.clearTimeout(this.timeoutId)}},Kn=class{constructor(e,t){this.handler=e,this.options=t,this.controls=/* @__PURE__ */ new Map,this.handle=e=>{let t=String(this.options.keyExtractor(e)),n=this.controls.get(t);n||(n=new Gn(this.handler,this.baseOptions),this.controls.set(t,n)),n.handle(e)},this.baseOptions={mode:t.mode,wait:t.wait,...t.mode===`throttle`&&`throttleMode`in t?{throttleMode:t.throttleMode}:{}}}destroy(){for(let e of this.controls.values())e.destroy();this.controls.clear()}},qn=0,Jn=/* @__PURE__ */ new WeakMap,Yn=class{constructor(e){this.autoMountElements=[],this.package=e}addUtility(e){return this.autoMountElements.push({component:e,type:`utility`}),this}addWrapper(e){return this.autoMountElements.push({component:e,type:`wrapper`}),this}build(){return{...this.package,autoMountElements:()=>this.autoMountElements}}}})))()}function Xn({plugins:e,children:t}){let{utilities:n,wrappers:r}=C(()=>{let t=[],n=[];for(let r of e){let e=r.package;if(Zt(e)){let r=e.autoMountElements()||[];for(let e of r)e.type===`utility`?t.push(e.component):e.type===`wrapper`&&n.push(e.component)}}return{utilities:t,wrappers:n}},[e]),i=/* @__PURE__ */ D(ie,{children:[t,n.map((e,t)=>/* @__PURE__ */ E(e,{},`utility-${t}`))]}),a=r.reduce((e,t)=>/* @__PURE__ */ E(t,{children:e}),i);return/* @__PURE__ */ E(ie,{children:a})}function Zn({engine:e,config:t,logger:n,onInitialized:r,plugins:i,children:a,autoMountDomElements:o=!0}){let[s,c]=T(null),[l,u]=T(null),[d,f]=T(!0),[p,m]=T(!1),h=w(r);S(()=>{h.current=r},[r]),S(()=>{let r={...t,logger:t?.logger??n},a=new Wn(e,r);a.registerPluginBatch(i);let o=async()=>{if(await a.initialize(),a.isDestroyed())return;let e=a.getStore();u(e.getState().core);let t=e.subscribe((t,n,r)=>{e.isCoreAction(t)&&n.core!==r.core&&u(n.core)});if(await h.current?.call(h,a),a.isDestroyed())t();else return a.pluginsReady().then(()=>{a.isDestroyed()||m(!0)}),c(a),f(!1),t},s;return o().then(e=>{s=e}).catch(console.error),()=>{s?.(),a.destroy(),c(null),u(null),f(!0),m(!1)}},[e,i]);let g=C(()=>{let e=l?.activeDocumentId??null,t=l?.documents??{},n=l?.documentOrder??[],r=e&&t[e]?t[e]:null,i=n.map(e=>t[e]).filter(e=>e!=null);return{registry:s,coreState:l,isInitializing:d,pluginsReady:p,activeDocumentId:e,activeDocument:r,documents:t,documentStates:i}},[s,l,d,p]),_=typeof a==`function`?a(g):a;return/* @__PURE__ */ E(tr.Provider,{value:g,children:p&&o?/* @__PURE__ */ E(Xn,{plugins:i,children:_}):_})}function Qn(){let e=se(tr);if(e===void 0)throw Error(`useCapability must be used within a PDFContext.Provider`);let{registry:t,isInitializing:n}=e;if(n)return e;if(t===null)throw Error(`PDF registry failed to initialize properly`);return e}function K(e){let{registry:t}=Qn();if(t===null)return{plugin:null,isLoading:!0,ready:new Promise(()=>{})};let n=t.getPlugin(e);if(!n)throw Error(`Plugin ${e} not found`);return{plugin:n,isLoading:!1,ready:n.ready()}}function q(e){let{plugin:t,isLoading:n,ready:r}=K(e);if(!t)return{provides:null,isLoading:n,ready:r};if(!t.provides)throw Error(`Plugin ${e} does not provide a capability`);return{provides:t.provides(),isLoading:n,ready:r}}function $n(){let{coreState:e}=se(tr);return e}function er(e){let t=$n();return C(()=>!t||!e?null:t.documents[e]??null,[t,e])}var tr;function J(){return(J=t((()=>{G(),I(),tr=ae({registry:null,coreState:null,isInitializing:!0,pluginsReady:!1,activeDocumentId:null,activeDocument:null,documents:{},documentStates:[]}),N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality,N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality,N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality})))()}function nr(e){let{wasmUrl:t=rr,worker:n=!0,logger:r,encoderPoolSize:i,fontFallback:o}=e??{},[s,c]=T(null),[l,u]=T(!0),[d,f]=T(null),p=w(null);return S(()=>{let e=!1;return(async()=>{try{let{createPdfiumEngine:e}=n?await a(()=>import(`./worker-engine-B7_3qQVS.js`),[],import.meta.url):await a(()=>import(`./direct-engine-m32m22nx.js`),[],import.meta.url),s=await e(t,{logger:r,encoderPoolSize:i,fontFallback:o});p.current=s,c(s),u(!1)}catch(t){e||(f(t),u(!1))}})(),()=>{var t,n;e=!0,(n=(t=p.current)?.closeAllDocuments)==null||n.call(t).wait(()=>{var e,t;(t=(e=p.current)?.destroy)==null||t.call(e),p.current=null},O)}},[t,n,r,o]),{engine:s,isLoading:l,error:d}}var rr;function ir(){return(ir=t((()=>{I(),i(),rr=`https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.15.1/dist/pdfium.wasm`,ae(void 0)})))()}var ar,or,sr,cr,lr;function ur(){return(ur=t((()=>{G(),I(),ar=class extends W{constructor(e,t,n){super(e,t),this.id=e,this.documentOpened$=B(),this.documentClosed$=B(),this.activeDocumentChanged$=B(),this.documentError$=B(),this.documentOrderChanged$=B(),this.openFileRequest$=z(),this.loadOptions=/* @__PURE__ */ new Map,this.maxDocuments=n?.maxDocuments}buildCapability(){return{openFileDialog:e=>this.openFileDialog(e),openDocumentUrl:e=>this.openDocumentUrl(e),openDocumentBuffer:e=>this.openDocumentBuffer(e),retryDocument:(e,t)=>this.retryDocument(e,t),closeDocument:e=>this.closeDocument(e),closeAllDocuments:()=>this.closeAllDocuments(),setActiveDocument:e=>{if(!this.isDocumentOpen(e))throw Error(`Cannot set active document: ${e} is not open`);this.dispatchCoreAction(Nn(e))},getActiveDocumentId:()=>this.coreState.core.activeDocumentId,getActiveDocument:()=>{let e=this.coreState.core.activeDocumentId;return e?this.coreState.core.documents[e]?.document??null:null},getDocumentOrder:()=>this.coreState.core.documentOrder,moveDocument:(e,t)=>{this.dispatchCoreAction(Ln(e,t))},swapDocuments:(e,t)=>{let n=this.coreState.core.documentOrder,r=n.indexOf(e),i=n.indexOf(t);if(r===-1||i===-1)throw Error(`One or both documents not found in order`);let a=[...n];[a[r],a[i]]=[a[i],a[r]],this.dispatchCoreAction(In(a))},getDocument:e=>this.coreState.core.documents[e]?.document??null,getDocumentState:e=>this.coreState.core.documents[e]??null,getOpenDocuments:()=>this.coreState.core.documentOrder.map(e=>this.coreState.core.documents[e]).filter(e=>e!==null),isDocumentOpen:e=>this.isDocumentOpen(e),getDocumentCount:()=>Object.keys(this.coreState.core.documents).length,getDocumentIndex:e=>this.coreState.core.documentOrder.indexOf(e),setDocumentEncryption:(e,t)=>this.setDocumentEncryption(e,t),unlockOwnerPermissions:(e,t)=>this.unlockOwnerPermissions(e,t),removeEncryption:e=>this.removeEncryption(e),onDocumentOpened:this.documentOpened$.on,onDocumentClosed:this.documentClosed$.on,onDocumentError:this.documentError$.on,onActiveDocumentChanged:this.activeDocumentChanged$.on,onDocumentOrderChanged:this.documentOrderChanged$.on}}isDocumentOpen(e){return!!this.coreState.core.documents[e]}onDocumentLoaded(e){let t=this.coreState.core.documents[e];t&&t.status===`loaded`&&(this.loadOptions.delete(e),this.documentOpened$.emit(t),this.logger.info(`DocumentManagerPlugin`,`DocumentOpened`,`Document ${e} opened successfully`,{name:t.name}))}onDocumentClosed(e){this.loadOptions.delete(e),this.documentClosed$.emit(e),this.logger.info(`DocumentManagerPlugin`,`DocumentClosed`,`Document ${e} closed`)}onActiveDocumentChanged(e,t){this.activeDocumentChanged$.emit({previousDocumentId:e,currentDocumentId:t}),this.logger.info(`DocumentManagerPlugin`,`ActiveDocumentChanged`,`Active document changed from ${e} to ${t}`)}onCoreStoreUpdated(e,t){e.core.documentOrder!==t.core.documentOrder&&this.documentOrderChanged$.emit({order:t.core.documentOrder})}onOpenFileRequest(e){return this.openFileRequest$.on(e)}openDocumentUrl(e){let t=new A,n=e.documentId||this.generateDocumentId(),r=this.checkDocumentLimit();if(r)return t.reject(r),t;let i=e.name??this.extractNameFromUrl(e.url);this.loadOptions.set(n,e),this.dispatchCoreAction(On(n,i,e.scale,e.rotation,!!e.password,e.autoActivate,e.permissions)),this.logger.info(`DocumentManagerPlugin`,`OpenDocumentUrl`,`Starting to load document from URL: ${e.url}`,{documentId:n,passwordProvided:!!e.password});let a={id:n,url:e.url},o=this.engine.openDocumentUrl(a,{password:e.password,mode:e.mode,requestOptions:e.requestOptions,normalizeRotation:!0});return t.resolve({documentId:n,task:o}),this.handleLoadTask(n,o,`OpenDocumentUrl`),t}openDocumentBuffer(e){let t=new A,n=this.checkDocumentLimit();if(n)return t.reject(n),t;let r=e.documentId||this.generateDocumentId();this.loadOptions.set(r,e),this.dispatchCoreAction(On(r,e.name,e.scale,e.rotation,!!e.password,e.autoActivate,e.permissions)),this.logger.info(`DocumentManagerPlugin`,`OpenDocumentBuffer`,`Starting to load document from buffer: ${e.name}`,{documentId:r,passwordProvided:!!e.password});let i={id:r,content:e.buffer},a=this.engine.openDocumentBuffer(i,{password:e.password,normalizeRotation:!0});return t.resolve({documentId:r,task:a}),this.handleLoadTask(r,a,`OpenDocumentBuffer`),t}retryDocument(e,t){let n=new A,r=this.validateRetry(e);if(!r.valid)return n.reject(r.error),n;let i={...this.loadOptions.get(e),...t?.password&&{password:t.password}};this.loadOptions.set(e,i),this.dispatchCoreAction(jn(e,!!t?.password)),this.logger.info(`DocumentManagerPlugin`,`RetryDocument`,`Retrying to load document ${e}`,{passwordProvided:!!t?.password});let a=`url`in i?this.retryUrlDocument(e,i):this.retryBufferDocument(e,i);return n.resolve({documentId:e,task:a}),this.handleLoadTask(e,a,`RetryDocument`),n}openFileDialog(e){let t=new A;return this.openFileRequest$.emit({task:t,options:e}),t}closeDocument(e){let t=new A,n=this.coreState.core.documents[e];return n?(n.status===`loaded`&&n.document?this.engine.closeDocument(n.document).wait(()=>{this.dispatchCoreAction(Mn(e)),t.resolve()},n=>{this.logger.error(`DocumentManagerPlugin`,`CloseDocument`,`Failed to close document ${e}`,n),t.fail(n)}):(this.logger.info(`DocumentManagerPlugin`,`CloseDocument`,`Closing document ${e} in ${n.status} state (skipping engine close)`),this.dispatchCoreAction(Mn(e)),t.resolve()),t):(this.logger.warn(`DocumentManagerPlugin`,`CloseDocument`,`Cannot close document ${e}: not found in state`),t.resolve(),t)}closeAllDocuments(){let e=Object.keys(this.coreState.core.documents),t=e.map(e=>this.closeDocument(e));return this.logger.info(`DocumentManagerPlugin`,`CloseAllDocuments`,`Closing ${e.length} documents`),A.all(t)}setDocumentEncryption(e,t){let n=new A,r=this.coreState.core.documents[e];return r?.document?(this.logger.info(`DocumentManagerPlugin`,`SetDocumentEncryption`,`Setting encryption on document ${e}`,{hasUserPassword:!!t.userPassword,allowedFlags:t.allowedFlags}),this.engine.setDocumentEncryption(r.document,t.userPassword??``,t.ownerPassword,t.allowedFlags).wait(t=>{t&&this.logger.info(`DocumentManagerPlugin`,`SetDocumentEncryption`,`Encryption set successfully on document ${e}`),n.resolve(t)},t=>{this.logger.error(`DocumentManagerPlugin`,`SetDocumentEncryption`,`Failed to set encryption on document ${e}`,t),n.fail(t)}),n):(n.reject({code:P.DocNotOpen,message:`Document ${e} is not open`}),n)}unlockOwnerPermissions(e,t){let n=new A,r=this.coreState.core.documents[e];if(!r?.document)return n.reject({code:P.DocNotOpen,message:`Document ${e} is not open`}),n;let i=r.document;return this.logger.info(`DocumentManagerPlugin`,`UnlockOwnerPermissions`,`Attempting to unlock owner permissions on document ${e}`),this.engine.unlockOwnerPermissions(i,t).wait(t=>{t&&(this.logger.info(`DocumentManagerPlugin`,`UnlockOwnerPermissions`,`Owner permissions unlocked on document ${e}`),this.dispatchCoreAction(Rn(e,4294967295,!0))),n.resolve(t)},t=>{this.logger.error(`DocumentManagerPlugin`,`UnlockOwnerPermissions`,`Failed to unlock owner permissions on document ${e}`,t),n.fail(t)}),n}removeEncryption(e){let t=new A,n=this.coreState.core.documents[e];return n?.document?(this.logger.info(`DocumentManagerPlugin`,`RemoveEncryption`,`Marking document ${e} for encryption removal on save`),this.engine.removeEncryption(n.document).wait(n=>{n&&this.logger.info(`DocumentManagerPlugin`,`RemoveEncryption`,`Document ${e} marked for encryption removal`),t.resolve(n)},n=>{this.logger.error(`DocumentManagerPlugin`,`RemoveEncryption`,`Failed to mark document ${e} for encryption removal`,n),t.fail(n)}),t):(t.reject({code:P.DocNotOpen,message:`Document ${e} is not open`}),t)}checkDocumentLimit(){return this.maxDocuments&&Object.keys(this.coreState.core.documents).length>=this.maxDocuments?{code:P.Unknown,message:`Maximum number of documents (${this.maxDocuments}) reached`}:null}validateRetry(e){let t=this.coreState.core.documents[e];return t?t.status===`loaded`?{valid:!1,error:{code:P.Unknown,message:`Document ${e} is already loaded successfully`}}:t.status===`error`?this.loadOptions.has(e)?{valid:!0}:{valid:!1,error:{code:P.Unknown,message:`No retry information available for document ${e}`}}:{valid:!1,error:{code:P.Unknown,message:`Document ${e} is not in error state (current state: ${t.status})`}}:{valid:!1,error:{code:P.NotFound,message:`Document ${e} not found`}}}retryUrlDocument(e,t){let n={id:e,url:t.url};return this.engine.openDocumentUrl(n,{password:t.password,mode:t.mode,requestOptions:t.requestOptions})}retryBufferDocument(e,t){let n={id:e,content:t.buffer};return this.engine.openDocumentBuffer(n,{password:t.password,normalizeRotation:!0})}handleLoadTask(e,t,n){t.wait(t=>{this.dispatchCoreAction(kn(e,t))},t=>{this.handleLoadError(e,t,n)})}handleLoadError(e,t,n){let r=t.reason?.message||`Failed to load document`;this.logger.error(`DocumentManagerPlugin`,n,`Failed to load document`,t),this.dispatchCoreAction(An(e,r,t.reason?.code,t.reason)),this.documentError$.emit({documentId:e,message:r,code:t.reason?.code,reason:t.reason})}generateDocumentId(){return`doc-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}extractNameFromUrl(e){try{let t=new URL(e).pathname.split(`/`).pop();if(!t)return;let n=decodeURIComponent(t);return n.toLowerCase().endsWith(`.pdf`)||(n+=`.pdf`),n}catch{return}}async initialize(e){if(this.logger.info(`DocumentManagerPlugin`,`Initialize`,`Document Manager Plugin initialized`,{maxDocuments:this.maxDocuments,initialDocumentsCount:e.initialDocuments?.length??0}),e.initialDocuments&&e.initialDocuments.length>0)for(let t of e.initialDocuments)try{`buffer`in t?this.openDocumentBuffer(t):`url`in t&&this.openDocumentUrl(t)}catch(e){this.logger.error(`DocumentManagerPlugin`,`Initialize`,`Failed to initiate initial document load`,e)}}async destroy(){await this.closeAllDocuments().toPromise(),this.loadOptions.clear(),this.documentOpened$.clear(),this.documentClosed$.clear(),this.activeDocumentChanged$.clear(),this.documentOrderChanged$.clear(),this.documentError$.clear(),super.destroy()}},ar.id=`document-manager`,or=ar,sr=`document-manager`,cr={id:sr,name:`Document Manager Plugin`,version:`1.0.0`,provides:[`document-manager`],requires:[],optional:[],defaultConfig:{maxDocuments:10}},lr={manifest:cr,create:(e,t)=>new or(sr,e,t),reducer:e=>e,initialState:{}}})))()}function dr({documentId:e,children:t}){let n=er(e);if(!n)return null;let r=n.status===`loading`,i=n.status===`error`,a=n.status===`loaded`;return/* @__PURE__ */ E(ue,{children:t({documentState:n,isLoading:r,isError:i,isLoaded:a})})}function fr(){let{plugin:e}=pr(),{provides:t}=mr(),n=w(null),r=w(null),i=w(void 0);return S(()=>{if(e?.onOpenFileRequest)return e.onOpenFileRequest(({task:e,options:t})=>{var a;r.current=e,i.current=t,(a=n.current)==null||a.click()})},[e]),/* @__PURE__ */ E(`input`,{ref:n,type:`file`,accept:`application/pdf`,style:{display:`none`},onChange:async e=>{let n=e.currentTarget.files?.[0];if(!n||!t)return;let a=await n.arrayBuffer();t.openDocumentBuffer({name:n.name,buffer:a,documentId:i.current?.documentId,scale:i.current?.scale,rotation:i.current?.rotation,autoActivate:i.current?.autoActivate}).wait(e=>{var t;(t=r.current)==null||t.resolve(e)},e=>{var t;(t=r.current)==null||t.fail(e)})}})}var pr,mr,hr;function gr(){return(gr=t((()=>{G(),ur(),J(),pr=()=>K(or.id),mr=()=>q(or.id),hr=an(lr).addUtility(fr).build()})))()}function _r(e){return{type:Ar,payload:{documentId:e}}}function vr(e){return{type:jr,payload:{documentId:e}}}function yr(e){return{type:Mr,payload:{documentId:e}}}function br(e){return{type:Nr,payload:{documentId:e}}}function xr(e){return{type:Ir,payload:e}}function Sr(e,t){return{type:Pr,payload:{documentId:e,metrics:t}}}function Cr(e,t){return{type:Fr,payload:{documentId:e,scrollMetrics:t}}}function wr(e,t){return{type:Lr,payload:{documentId:e,isScrolling:t}}}function Tr(e,t){return{type:Rr,payload:{documentId:e,isSmoothScrolling:t}}}function Er(e,t){return{type:Br,payload:{documentId:e,key:t}}}function Dr(e,t){return{type:Vr,payload:{documentId:e,key:t}}}var Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr;function Jr(){return(Jr=t((()=>{G(),Or=`viewport`,kr={id:Or,name:`Viewport Plugin`,version:`1.0.0`,provides:[`viewport`],requires:[],optional:[],defaultConfig:{viewportGap:10,scrollEndDelay:300}},Ar=`INIT_VIEWPORT_STATE`,jr=`CLEANUP_VIEWPORT_STATE`,Mr=`REGISTER_VIEWPORT`,Nr=`UNREGISTER_VIEWPORT`,Pr=`SET_VIEWPORT_METRICS`,Fr=`SET_VIEWPORT_SCROLL_METRICS`,Ir=`SET_VIEWPORT_GAP`,Lr=`SET_SCROLL_ACTIVITY`,Rr=`SET_SMOOTH_SCROLL_ACTIVITY`,zr=`SET_ACTIVE_VIEWPORT_DOCUMENT`,Br=`ADD_VIEWPORT_GATE`,Vr=`REMOVE_VIEWPORT_GATE`,Hr={viewportMetrics:{width:0,height:0,scrollTop:0,scrollLeft:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0,clientLeft:0,clientTop:0,relativePosition:{x:0,y:0}},isScrolling:!1,isSmoothScrolling:!1,gates:/* @__PURE__ */ new Set},Ur={viewportGap:0,documents:{},activeViewports:/* @__PURE__ */ new Set,activeDocumentId:null},Wr=(e=Ur,t)=>{switch(t.type){case Ar:{let{documentId:n}=t.payload;return{...e,documents:{...e.documents,[n]:{...Hr,gates:/* @__PURE__ */ new Set}}}}case jr:{let{documentId:n}=t.payload,{[n]:r,...i}=e.documents,a=new Set(e.activeViewports);return a.delete(n),{...e,documents:i,activeViewports:a,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case Mr:{let{documentId:n}=t.payload,r=new Set(e.activeViewports);return r.add(n),{...e,activeViewports:r,activeDocumentId:e.activeDocumentId??n}}case Nr:{let{documentId:n}=t.payload,r=new Set(e.activeViewports);return r.delete(n),{...e,activeViewports:r}}case zr:return{...e,activeDocumentId:t.payload};case Ir:return{...e,viewportGap:t.payload};case Pr:{let{documentId:n,metrics:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,viewportMetrics:{width:r.width,height:r.height,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft,clientWidth:r.clientWidth,clientHeight:r.clientHeight,scrollWidth:r.scrollWidth,scrollHeight:r.scrollHeight,clientLeft:r.clientLeft,clientTop:r.clientTop,relativePosition:{x:r.scrollWidth<=r.clientWidth?0:r.scrollLeft/(r.scrollWidth-r.clientWidth),y:r.scrollHeight<=r.clientHeight?0:r.scrollTop/(r.scrollHeight-r.clientHeight)}}}}}:e}case Fr:{let{documentId:n,scrollMetrics:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,viewportMetrics:{...i.viewportMetrics,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft},isScrolling:!0}}}:e}case Lr:{let{documentId:n,isScrolling:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,isScrolling:r}}}:e}case Rr:{let{documentId:n,isSmoothScrolling:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,isSmoothScrolling:r}}}:e}case Br:{let{documentId:n,key:r}=t.payload,i=e.documents[n];if(!i)return e;let a=new Set(i.gates);return a.add(r),{...e,documents:{...e.documents,[n]:{...i,gates:a}}}}case Vr:{let{documentId:n,key:r}=t.payload,i=e.documents[n];if(!i)return e;let a=new Set(i.gates);return a.delete(r),{...e,documents:{...e.documents,[n]:{...i,gates:a}}}}default:return e}},Gr=class extends W{constructor(e,t,n){super(e,t),this.id=e,this.viewportResize$=B(),this.viewportMetrics$=B(),this.scrollMetrics$=B(),this.scrollActivity$=B(),this.gateState$=B(),this.scrollRequests$=/* @__PURE__ */ new Map,n.viewportGap&&this.dispatch(xr(n.viewportGap)),this.scrollEndDelay=n.scrollEndDelay||100}onDocumentLoadingStarted(e){this.dispatch(_r(e)),this.scrollRequests$.set(e,z()),this.logger.debug(`ViewportPlugin`,`DocumentOpened`,`Initialized viewport state for document: ${e}`)}onDocumentClosed(e){var t;this.dispatch(vr(e)),(t=this.scrollRequests$.get(e))==null||t.clear(),this.scrollRequests$.delete(e),this.logger.debug(`ViewportPlugin`,`DocumentClosed`,`Cleaned up viewport state for document: ${e}`)}buildCapability(){return{getViewportGap:()=>this.state.viewportGap,getMetrics:()=>this.getMetrics(),scrollTo:e=>this.scrollTo(e),isScrolling:()=>this.isScrolling(),isSmoothScrolling:()=>this.isSmoothScrolling(),isGated:e=>this.isGated(e),hasGate:(e,t)=>this.hasGate(e,t),getGates:e=>this.getGates(e),forDocument:e=>this.createViewportScope(e),gate:(e,t)=>this.gate(e,t),releaseGate:(e,t)=>this.releaseGate(e,t),isViewportMounted:e=>this.state.activeViewports.has(e),onViewportChange:this.viewportMetrics$.on,onViewportResize:this.viewportResize$.on,onScrollChange:this.scrollMetrics$.on,onScrollActivity:this.scrollActivity$.on,onGateChange:this.gateState$.on}}createViewportScope(e){return{getMetrics:()=>this.getMetrics(e),scrollTo:t=>this.scrollTo(t,e),isScrolling:()=>this.isScrolling(e),isSmoothScrolling:()=>this.isSmoothScrolling(e),isGated:()=>this.isGated(e),hasGate:t=>this.hasGate(t,e),getGates:()=>this.getGates(e),gate:t=>this.gate(t,e),releaseGate:t=>this.releaseGate(t,e),onViewportChange:t=>this.viewportMetrics$.on(n=>{n.documentId===e&&t(n.metrics)}),onScrollChange:t=>this.scrollMetrics$.on(n=>{n.documentId===e&&t(n.scrollMetrics)}),onScrollActivity:t=>this.scrollActivity$.on(n=>{n.documentId===e&&t(n.activity)}),onGateChange:t=>this.gateState$.on(n=>{n?.documentId===e&&t(n)})}}registerViewport(e){if(!this.state.documents[e])throw Error(`Cannot register viewport for ${e}: document state not found. Document must be opened before registering viewport.`);this.state.activeViewports.has(e)||(this.dispatch(yr(e)),this.logger.debug(`ViewportPlugin`,`RegisterViewport`,`Registered viewport (DOM mounted) for document: ${e}`))}unregisterViewport(e){this.registry.isDestroyed()||this.state.activeViewports.has(e)&&(this.dispatch(br(e)),this.logger.debug(`ViewportPlugin`,`UnregisterViewport`,`Unregistered viewport (DOM unmounted) for document: ${e}. State preserved.`))}setViewportResizeMetrics(e,t){if(this.registry.isDestroyed())return;this.dispatch(Sr(e,t));let n=this.state.documents[e];n&&this.viewportResize$.emit({documentId:e,metrics:n.viewportMetrics})}setViewportScrollMetrics(e,t){if(this.registry.isDestroyed())return;let n=this.state.documents[e];n&&(t.scrollTop!==n.viewportMetrics.scrollTop||t.scrollLeft!==n.viewportMetrics.scrollLeft)&&(this.dispatch(Cr(e,t)),this.bumpScrollActivity(e),this.scrollMetrics$.emit({documentId:e,scrollMetrics:t}))}onScrollRequest(e,t){let n=this.scrollRequests$.get(e);if(!n)throw Error(`Cannot subscribe to scroll requests for ${e}: document state not initialized`);return n.on(t)}gate(e,t){let n=this.state.documents[t];n?n.gates.has(e)||(this.dispatch(Er(t,e)),this.logger.debug(`ViewportPlugin`,`GateAdded`,`Added gate '${e}' for document: ${t}. Total gates: ${n.gates.size+1}`)):this.logger.warn(`ViewportPlugin`,`GateViewport`,`Cannot gate viewport for ${t}: document not found`)}releaseGate(e,t){let n=this.state.documents[t];n?n.gates.has(e)&&(this.dispatch(Dr(t,e)),this.logger.debug(`ViewportPlugin`,`GateReleased`,`Released gate '${e}' for document: ${t}. Remaining gates: ${n.gates.size-1}`)):this.logger.warn(`ViewportPlugin`,`ReleaseGate`,`Cannot release gate for ${t}: document not found`)}getViewportState(e){let t=e??this.getActiveDocumentId(),n=this.state.documents[t];if(!n)throw Error(`Viewport state not found for document: ${t}`);return n}getMetrics(e){return this.getViewportState(e).viewportMetrics}isScrolling(e){return this.getViewportState(e).isScrolling}isSmoothScrolling(e){return this.getViewportState(e).isSmoothScrolling}isGated(e){return this.getViewportState(e).gates.size>0}hasGate(e,t){return this.getViewportState(t).gates.has(e)}getGates(e){let t=this.getViewportState(e);return Array.from(t.gates)}scrollTo(e,t){let n=t??this.getActiveDocumentId(),r=this.getViewportState(n),{x:i,y:a,alignX:o,alignY:s,behavior:c=`auto`}=e;c===`smooth`&&this.dispatch(Tr(n,!0));let l=r.viewportMetrics,u=i,d=a;o!==void 0&&(u=i-l.clientWidth*(o/100)),s!==void 0&&(d=a-l.clientHeight*(s/100));let f=this.scrollRequests$.get(n);f&&f.emit({x:u,y:d,behavior:c})}bumpScrollActivity(e){this.debouncedDispatch(wr(e,!1),this.scrollEndDelay),this.debouncedDispatch(Tr(e,!1),this.scrollEndDelay)}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];if(r!==i&&(this.viewportMetrics$.emit({documentId:n,metrics:i.viewportMetrics}),r&&(r.isScrolling!==i.isScrolling||r.isSmoothScrolling!==i.isSmoothScrolling)&&this.scrollActivity$.emit({documentId:n,activity:{isScrolling:i.isScrolling,isSmoothScrolling:i.isSmoothScrolling}}),r&&r.gates!==i.gates)){let e=Array.from(r.gates),t=Array.from(i.gates),a=t.find(t=>!e.includes(t)),o=e.find(e=>!t.includes(e));this.gateState$.emit({documentId:n,isGated:i.gates.size>0,gates:t,addedGate:a,removedGate:o}),this.logger.debug(`ViewportPlugin`,`GateStateChanged`,`Gate state changed for document ${n}. Gates: [${t.join(`, `)}], Gated: ${i.gates.size>0}`)}}}async initialize(e){this.logger.info(`ViewportPlugin`,`Initialize`,`Viewport plugin initialized`)}async destroy(){this.viewportMetrics$.clear(),this.viewportResize$.clear(),this.scrollMetrics$.clear(),this.scrollActivity$.clear(),this.gateState$.clear(),this.scrollRequests$.forEach(e=>e.clear()),this.scrollRequests$.clear(),super.destroy()}},Gr.id=`viewport`,Kr=Gr,qr={manifest:kr,create:(e,t)=>new Kr(Or,e,t),reducer:Wr,initialState:Ur}})))()}function Yr(e){let{plugin:t}=Qr(),n=w(null);return le(()=>{if(!t)return;let r=n.current;if(!r)return;try{t.registerViewport(e)}catch(t){console.error(`Failed to register viewport for document ${e}:`,t);return}let i=()=>{t.setViewportScrollMetrics(e,{scrollTop:r.scrollTop,scrollLeft:r.scrollLeft})};r.addEventListener(`scroll`,i);let a=new ResizeObserver(()=>{t.setViewportResizeMetrics(e,{width:r.offsetWidth,height:r.offsetHeight,clientWidth:r.clientWidth,clientHeight:r.clientHeight,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft,scrollWidth:r.scrollWidth,scrollHeight:r.scrollHeight,clientLeft:r.clientLeft,clientTop:r.clientTop})});a.observe(r);let o=t.onScrollRequest(e,({x:e,y:t,behavior:n=`auto`})=>{requestAnimationFrame(()=>{r.scrollTo({left:e,top:t,behavior:n})})});return()=>{t.unregisterViewport(e),a.disconnect(),r.removeEventListener(`scroll`,i),o()}},[t,e]),n}function Xr({children:e,documentId:t,...n}){let[r,i]=T(0),a=Yr(t),{provides:o}=$r(),s=ei(t);S(()=>{o&&i(o.getViewportGap())},[o]);let{style:c,...l}=n;return/* @__PURE__ */ E(Zr.Provider,{value:a,children:/* @__PURE__ */ E(`div`,{...l,ref:a,style:{width:`100%`,height:`100%`,overflow:`auto`,...typeof c==`object`?c:{},padding:`${r}px`},children:!s&&e})})}var Zr,Qr,$r,ei;function ti(){return(ti=t((()=>{J(),Jr(),Zr=ae(null),Qr=()=>K(Kr.id),$r=()=>q(Kr.id),ei=e=>{let{provides:t}=$r(),[n,r]=T(t?.isGated(e)??!1);return S(()=>{if(t)return r(t.isGated(e)),t.onGateChange(t=>{t.documentId===e&&r(t.isGated)})},[t,e]),n}})))()}function ni(e,t){return{type:li,payload:{documentId:e,state:t}}}function ri(e){return{type:ui,payload:e}}function ii(e,t){return{type:di,payload:{documentId:e,state:t}}}function ai(e,t){return{type:fi,payload:{documentId:e,strategy:t}}}var Y,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi;function Si(){return(Si=t((()=>{G(),I(),Y=/* @__PURE__ */ (e=>(e.Vertical=`vertical`,e.Horizontal=`horizontal`,e))(Y||{}),oi=class{constructor(e){this.pageGap=e.pageGap??20,this.viewportGap=e.viewportGap??20,this.bufferSize=e.bufferSize??2}getCenteringOffsetX(e,t){return!t||e.width>=t.width?0:(t.width-e.width)/2}getCenteringOffsetY(e,t){return 0}getVisibleRange(e,t,n){let r=this.getScrollOffset(e),i=this.getClientSize(e),a=r,o=r+i,s=0;for(;s<t.length&&(t[s].offset+this.getItemSizeAlongScrollAxis(t[s]))*n<=a;)s++;let c=s;for(;c<t.length&&t[c].offset*n<=o;)c++;return{start:Math.max(0,s-this.bufferSize),end:Math.min(t.length-1,c+this.bufferSize-1)}}handleScroll(e,t,n){let r=this.getVisibleRange(e,t,n),i=t.slice(r.start,r.end+1),a=this.getTotalContentSize(t),o=this.calculatePageVisibility(i,e,n,a),s=o.map(e=>e.pageNumber),c=t.slice(r.start,r.end+1).flatMap(e=>e.index),l=this.determineCurrentPage(o),u=t[r.start],d=t[r.end],f=u?u.offset*n:0,p=t[t.length-1],m=d?(p.offset+this.getItemSizeAlongScrollAxis(p))*n-(d.offset+this.getItemSizeAlongScrollAxis(d))*n:0;return{currentPage:l,visiblePages:s,pageVisibilityMetrics:o,renderedPageIndexes:c,scrollOffset:{x:e.scrollLeft,y:e.scrollTop},startSpacing:f,endSpacing:m}}calculatePageVisibility(e,t,n,r){let i=[];return e.forEach(e=>{let a=this.getCenteringOffsetX(e,r),o=this.getCenteringOffsetY(e,r);e.pageLayouts.forEach(r=>{let s=(e.x+a)*n,c=(e.y+o)*n,l=s+r.x*n,u=c+r.y*n,d=r.rotatedWidth*n,f=r.rotatedHeight*n,p=t.scrollLeft,m=t.scrollTop,h=p+t.clientWidth,g=m+t.clientHeight,_=Math.max(l,p),v=Math.max(u,m),y=Math.min(l+d,h),b=Math.min(u+f,g);if(_<y&&v<b){let e=y-_,t=b-v,a=d*f,o=e*t;i.push({pageNumber:r.pageNumber,viewportX:_-p,viewportY:v-m,visiblePercentage:o/a*100,original:{pageX:(_-l)/n,pageY:(v-u)/n,visibleWidth:e/n,visibleHeight:t/n,scale:1},scaled:{pageX:_-l,pageY:v-u,visibleWidth:e,visibleHeight:t,scale:n}})}})}),i}determineCurrentPage(e){if(e.length===0)return 1;let t=Math.max(...e.map(e=>e.visiblePercentage)),n=e.filter(e=>e.visiblePercentage===t);return n.length===1?n[0].pageNumber:n.sort((e,t)=>e.pageNumber-t.pageNumber)[0].pageNumber}getRectLocationForPage(e,t,n){let r=t.find(t=>t.pageNumbers.includes(e));if(!r)return null;let i=r.pageLayouts.find(t=>t.pageNumber===e);if(!i)return null;let a=this.getCenteringOffsetX(r,n),o=this.getCenteringOffsetY(r,n);return{origin:{x:r.x+i.x+a,y:r.y+i.y+o},size:{width:i.width,height:i.height}}}getScrollPositionForPage(e,t,n,r,i){let a=this.getTotalContentSize(t),o=this.getRectLocationForPage(e,t,a);if(!o)return null;let s=Le(o.origin,n);if(i){let e=Re({width:o.size.width,height:o.size.height},{x:i.x,y:i.y},r,n);return{x:s.x+e.x+this.viewportGap,y:s.y+e.y+this.viewportGap}}return{x:s.x+this.viewportGap,y:s.y+this.viewportGap}}getRectPositionForPage(e,t,n,r,i){let a=this.getTotalContentSize(t),o=this.getRectLocationForPage(e,t,a);if(!o)return null;let s=Le(o.origin,n),c=He({width:o.size.width,height:o.size.height},i,r,n);return{origin:{x:s.x+c.origin.x,y:s.y+c.origin.y},size:c.size}}},si=class extends oi{constructor(e){super(e)}createVirtualItems(e){let t=0;return e.map((e,n)=>{let r=0,i=e.map(e=>{let t={pageNumber:e.index+1,pageIndex:e.index,x:r,y:0,width:e.size.width,height:e.size.height,rotatedWidth:e.rotatedSize.width,rotatedHeight:e.rotatedSize.height,elevated:!1};return r+=e.rotatedSize.width+this.pageGap,t}),a=e.reduce((t,n,r)=>t+n.rotatedSize.width+(r<e.length-1?this.pageGap:0),0),o=Math.max(...e.map(e=>e.rotatedSize.height)),s={id:`item-${n}`,x:0,y:t,offset:t,width:a,height:o,pageLayouts:i,pageNumbers:e.map(e=>e.index+1),index:n};return t+=o+this.pageGap,s})}getTotalContentSize(e){return e.length===0?{width:0,height:0}:{width:Math.max(...e.map(e=>e.width)),height:e[e.length-1].y+e[e.length-1].height}}getScrollOffset(e){return e.scrollTop}getClientSize(e){return e.clientHeight}getItemSizeAlongScrollAxis(e){return e.height}},ci=class extends oi{constructor(e){super(e)}createVirtualItems(e){let t=0;return e.map((e,n)=>{let r=0,i=e.map(e=>{let t={pageNumber:e.index+1,pageIndex:e.index,x:r,y:0,width:e.size.width,height:e.size.height,rotatedWidth:e.rotatedSize.width,rotatedHeight:e.rotatedSize.height,elevated:!1};return r+=e.rotatedSize.width+this.pageGap,t}),a=e.reduce((t,n,r)=>t+n.rotatedSize.width+(r<e.length-1?this.pageGap:0),0),o=Math.max(...e.map(e=>e.rotatedSize.height)),s={id:`item-${n}`,x:t,y:0,offset:t,width:a,height:o,pageLayouts:i,pageNumbers:e.map(e=>e.index+1),index:n};return t+=a+this.pageGap,s})}getTotalContentSize(e){return e.length===0?{width:0,height:0}:{width:e[e.length-1].x+e[e.length-1].width,height:Math.max(...e.map(e=>e.height))}}getScrollOffset(e){return e.scrollLeft}getClientSize(e){return e.clientWidth}getItemSizeAlongScrollAxis(e){return e.width}getCenteringOffsetX(e,t){return 0}getCenteringOffsetY(e,t){return!t||e.height>=t.height?0:(t.height-e.height)/2}},li=`INIT_SCROLL_STATE`,ui=`CLEANUP_SCROLL_STATE`,di=`UPDATE_DOCUMENT_SCROLL_STATE`,fi=`SET_SCROLL_STRATEGY`,pi={isChanging:!1,targetPage:1,fromPage:1,startTime:0},mi=(e,t)=>({defaultStrategy:t.defaultStrategy??Y.Vertical,defaultPageGap:t.defaultPageGap??10,defaultBufferSize:t.defaultBufferSize??2,documents:{}}),hi=(e,t)=>{switch(t.type){case li:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r}}}case ui:{let{[t.payload]:n,...r}=e.documents;return{...e,documents:r}}case di:{let{documentId:n,state:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,...r}}}:e}case fi:{let{documentId:n,strategy:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,strategy:r}}}:e}default:return e}},gi=(e,t,n)=>({startSpacing:e.startSpacing,endSpacing:e.endSpacing,totalWidth:e.totalContentSize.width*t,totalHeight:e.totalContentSize.height*t,pageGap:e.pageGap*t,strategy:e.strategy,items:e.renderedPageIndexes.map(r=>({...e.virtualItems[r],pageLayouts:e.virtualItems[r].pageLayouts.map(e=>({...e,rotatedWidth:e.rotatedWidth*t,rotatedHeight:e.rotatedHeight*t,width:e.width*t,height:e.height*t,elevated:n?.has(e.pageIndex)??!1}))}))}),_i=class extends W{constructor(e,t,n){var r;super(e,t),this.id=e,this.config=n,this.elevatedPages=/* @__PURE__ */ new Map,this.strategies=/* @__PURE__ */ new Map,this.layoutReady=/* @__PURE__ */ new Set,this.initialLayoutFired=/* @__PURE__ */ new Set,this.scrollerLayoutEmitters=/* @__PURE__ */ new Map,this.pageChange$=B(),this.scroll$=B(),this.layoutChange$=B(),this.pageChangeState$=B(),this.layoutReady$=B(),this.state$=B(),this.viewport=this.registry.getPlugin(`viewport`).provides(),this.spread=this.registry.getPlugin(`spread`)?.provides()??null,this.viewport.onScrollActivity(e=>{this.getDocumentState(e.documentId)?.pageChangeState.isChanging&&!e.activity.isSmoothScrolling&&this.completePageChange(e.documentId)}),(r=this.spread)==null||r.onSpreadChange(e=>{this.refreshDocumentLayout(e.documentId)});let i=this.registry.getPlugin(`interaction-manager`)?.provides();i&&i.onPageActivityChange(e=>{let t=this.elevatedPages.get(e.documentId);e.hasActivity?(t||(t=/* @__PURE__ */ new Set,this.elevatedPages.set(e.documentId,t)),t.add(e.pageIndex)):t?.delete(e.pageIndex),this.pushScrollerLayout(e.documentId)}),this.viewport.onViewportChange(e=>{let t=this.getDocumentState(e.documentId);if(!t)return;let n=this.computeMetrics(e.documentId,e.metrics);this.layoutReady.has(e.documentId)?this.commitMetrics(e.documentId,n):this.commitMetrics(e.documentId,{...n,scrollOffset:t.scrollOffset})})}onDocumentLoadingStarted(e){let t=this.getCoreDocument(e);if(!t)return;let n=this.createDocumentState(t);this.dispatch(ni(e,n));let r=this.createStrategy(n.strategy);this.strategies.set(e,r),this.scrollerLayoutEmitters.set(e,B())}onDocumentLoaded(e){let t=this.getCoreDocument(e);t&&(this.dispatch(ii(e,{totalPages:t.document?.pageCount??0})),this.refreshDocumentLayout(e),this.logger.debug(`ScrollPlugin`,`DocumentOpened`,`Initialized scroll state for document: ${e}`))}onDocumentClosed(e){this.strategies.delete(e),this.layoutReady.delete(e),this.initialLayoutFired.delete(e),this.elevatedPages.delete(e);let t=this.scrollerLayoutEmitters.get(e);t&&(t.clear(),this.scrollerLayoutEmitters.delete(e)),this.dispatch(ri(e)),this.logger.debug(`ScrollPlugin`,`DocumentClosed`,`Cleaned up scroll state for document: ${e}`)}onScaleChanged(e){let t=this.coreState.core.documents[e];if(!t||t.status!==`loaded`)return;let n=this.viewport.forDocument(e),r=this.computeMetrics(e,n.getMetrics());this.commitMetrics(e,r)}onRotationChanged(e){this.refreshDocumentLayout(e)}onScrollerData(e,t){let n=this.scrollerLayoutEmitters.get(e);if(!n)throw Error(`No scroller layout emitter found for document: ${e}`);return n.on(t)}getScrollerLayout(e){let t=this.getDocumentState(e),n=this.getCoreDocumentOrThrow(e);if(!t||!n)throw Error(`Cannot get scroller layout for document: ${e}`);return gi(t,n.scale,this.elevatedPages.get(e))}setLayoutReady(e){if(this.layoutReady.has(e))return;let t=this.getDocumentState(e);if(!t)return;this.layoutReady.add(e);let n=!this.initialLayoutFired.has(e);n&&this.initialLayoutFired.add(e),this.viewport.forDocument(e).scrollTo({...t.scrollOffset,behavior:`instant`}),this.layoutReady$.emit({documentId:e,isInitial:n,pageNumber:t.currentPage,totalPages:t.totalPages})}clearLayoutReady(e){this.layoutReady.delete(e)}buildCapability(){return{getCurrentPage:()=>this.getCurrentPage(),getTotalPages:()=>this.getTotalPages(),getPageChangeState:()=>this.getPageChangeState(),scrollToPage:e=>this.scrollToPage(e),scrollToNextPage:e=>this.scrollToNextPage(e),scrollToPreviousPage:e=>this.scrollToPreviousPage(e),getMetrics:e=>this.getMetrics(e),getLayout:()=>this.getLayout(),getRectPositionForPage:(e,t,n,r)=>this.getRectPositionForPage(e,t,n,r),forDocument:e=>this.createScrollScope(e),setScrollStrategy:(e,t)=>this.setScrollStrategyForDocument(e,t),getPageGap:()=>this.state.defaultPageGap,onPageChange:this.pageChange$.on,onScroll:this.scroll$.on,onLayoutChange:this.layoutChange$.on,onLayoutReady:this.layoutReady$.on,onPageChangeState:this.pageChangeState$.on,onStateChange:this.state$.on}}createScrollScope(e){return{getCurrentPage:()=>this.getCurrentPage(e),getTotalPages:()=>this.getTotalPages(e),getPageChangeState:()=>this.getPageChangeState(e),scrollToPage:t=>this.scrollToPage(t,e),scrollToNextPage:t=>this.scrollToNextPage(t,e),scrollToPreviousPage:t=>this.scrollToPreviousPage(t,e),getSpreadPagesWithRotatedSize:()=>this.getSpreadPagesWithRotatedSize(e),getMetrics:t=>this.getMetrics(t,e),getLayout:()=>this.getLayout(e),getRectPositionForPage:(t,n,r,i)=>this.getRectPositionForPage(t,n,r,i,e),setScrollStrategy:t=>this.setScrollStrategyForDocument(t,e),onPageChange:t=>this.pageChange$.on(n=>{n.documentId===e&&t(n)}),onScroll:t=>this.scroll$.on(n=>{n.documentId===e&&t(n.metrics)}),onLayoutChange:t=>this.layoutChange$.on(n=>{n.documentId===e&&t(n.layout)})}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}getDocumentStateOrThrow(e){let t=this.getDocumentState(e);if(!t)throw Error(`Scroll state not found for document: ${e??`active`}`);return t}getStrategy(e){let t=e??this.getActiveDocumentId(),n=this.strategies.get(t);if(!n)throw Error(`Strategy not found for document: ${t}`);return n}createStrategy(e){let t={pageGap:this.state.defaultPageGap,viewportGap:this.viewport.getViewportGap(),bufferSize:this.state.defaultBufferSize};return e===Y.Horizontal?new ci(t):new si(t)}createDocumentState(e){return{virtualItems:[],totalPages:e.document?.pageCount??0,currentPage:1,totalContentSize:{width:0,height:0},strategy:this.state.defaultStrategy,pageGap:this.state.defaultPageGap,visiblePages:[],pageVisibilityMetrics:[],renderedPageIndexes:[],scrollOffset:{x:0,y:0},startSpacing:0,endSpacing:0,pageChangeState:pi}}startPageChange(e,t,n=`smooth`){let r=this.getDocumentState(e);if(!r)return;let i={isChanging:!0,targetPage:t,fromPage:r.currentPage,startTime:Date.now()};this.dispatch(ii(e,{pageChangeState:i,currentPage:t})),this.pageChange$.emit({documentId:e,pageNumber:t,totalPages:r.totalPages}),n===`instant`&&this.completePageChange(e)}completePageChange(e){let t=this.getDocumentState(e);if(!t||!t.pageChangeState.isChanging)return;let n={isChanging:!1,targetPage:t.pageChangeState.targetPage,fromPage:t.pageChangeState.fromPage,startTime:t.pageChangeState.startTime};this.dispatch(ii(e,{pageChangeState:n}))}computeLayout(e,t){let n=this.getStrategy(e),r=n.createVirtualItems(t);return{virtualItems:r,totalContentSize:n.getTotalContentSize(r)}}computeMetrics(e,t,n){let r=this.getCoreDocumentOrThrow(e),i=this.getDocumentState(e),a=this.getStrategy(e);if(!i)throw Error(`Document state not found: ${e}`);return a.handleScroll(t,n??i.virtualItems,r.scale)}commitMetrics(e,t){let n=this.getDocumentState(e);if(!n)return;let r=n.pageChangeState.isChanging,i=r&&t.currentPage!==n.currentPage?{...t,currentPage:n.currentPage}:t;this.dispatch(ii(e,i)),this.scroll$.emit({documentId:e,metrics:i}),!r&&t.currentPage!==n.currentPage&&this.pageChange$.emit({documentId:e,pageNumber:t.currentPage,totalPages:n.totalPages}),this.pushScrollerLayout(e)}pushScrollerLayout(e){let t=this.scrollerLayoutEmitters.get(e);if(t)try{let n=this.getScrollerLayout(e);t.emit(n)}catch{}}refreshDocumentLayout(e){let t=this.coreState.core.documents[e],n=this.getDocumentState(e);if(!t||!n||t.status!==`loaded`)return;let r=this.getSpreadPagesWithRotatedSize(e),i=this.computeLayout(e,r),a=this.viewport.forDocument(e),o=this.computeMetrics(e,a.getMetrics(),i.virtualItems);this.dispatch(ii(e,{...i,...o})),this.layoutChange$.emit({documentId:e,layout:i}),this.pushScrollerLayout(e)}getSpreadPagesWithRotatedSize(e){let t=e??this.getActiveDocumentId(),n=this.coreState.core.documents[t];if(!n)throw Error(`Document ${t} not loaded`);return(this.spread?.forDocument(t).getSpreadPages()||n.document?.pages.map(e=>[e])||[]).map(e=>e.map(e=>{let t=((e.rotation??0)+n.rotation)%4;return{...e,rotatedSize:Ne(e.size,t,1)}}))}getCurrentPage(e){return this.getDocumentStateOrThrow(e).currentPage}getTotalPages(e){return this.getDocumentStateOrThrow(e).totalPages}getPageChangeState(e){return this.getDocumentStateOrThrow(e).pageChangeState}scrollToPage(e,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentStateOrThrow(n),i=this.getStrategy(n),a=this.getCoreDocumentOrThrow(n),{pageNumber:o,behavior:s=`smooth`,pageCoordinates:c,alignX:l,alignY:u}=e;this.startPageChange(n,o,s);let d=((a.document?.pages[o-1]?.rotation??0)+a.rotation)%4,f=i.getScrollPositionForPage(o,r.virtualItems,a.scale,d,c);f?this.viewport.forDocument(n).scrollTo({...f,behavior:s,alignX:l,alignY:u}):this.completePageChange(n)}scrollToNextPage(e=`smooth`,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentStateOrThrow(n),i=this.getStrategy(n),a=this.getCoreDocumentOrThrow(n),o=r.virtualItems.findIndex(e=>e.pageNumbers.includes(r.currentPage));if(o>=0&&o<r.virtualItems.length-1){let t=r.virtualItems[o+1].pageNumbers[0];this.startPageChange(n,t,e);let s=i.getScrollPositionForPage(t,r.virtualItems,a.scale,a.rotation);s?this.viewport.forDocument(n).scrollTo({...s,behavior:e}):this.completePageChange(n)}}scrollToPreviousPage(e=`smooth`,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentStateOrThrow(n),i=this.getStrategy(n),a=this.coreState.core.documents[n],o=r.virtualItems.findIndex(e=>e.pageNumbers.includes(r.currentPage));if(o>0){let t=r.virtualItems[o-1].pageNumbers[0];this.startPageChange(n,t,e);let s=i.getScrollPositionForPage(t,r.virtualItems,a.scale,a.rotation);s?this.viewport.forDocument(n).scrollTo({...s,behavior:e}):this.completePageChange(n)}}getMetrics(e,t){let n=t??this.getActiveDocumentId();if(e)return this.computeMetrics(n,e);let r=this.viewport.forDocument(n);return this.computeMetrics(n,r.getMetrics())}getLayout(e){let t=this.getDocumentStateOrThrow(e);return{virtualItems:t.virtualItems,totalContentSize:t.totalContentSize}}getRectPositionForPage(e,t,n,r,i){let a=i??this.getActiveDocumentId(),o=this.getDocumentStateOrThrow(a),s=this.getStrategy(a),c=this.getCoreDocumentOrThrow(a),l=r;return l===void 0&&(l=((c.document?.pages[e]?.rotation??0)+c.rotation)%4),s.getRectPositionForPage(e+1,o.virtualItems,n??c.scale,l,t)}setScrollStrategyForDocument(e,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentState(n);if(!r||r.strategy===e)return;let i=this.createStrategy(e);this.strategies.set(n,i),this.dispatch(ai(n,e)),this.refreshDocumentLayout(n)}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r!==i&&(this.state$.emit(i),r?.pageChangeState!==i.pageChangeState&&this.pageChangeState$.emit({documentId:n,state:i.pageChangeState}),this.pushScrollerLayout(n))}}async initialize(){this.logger.info(`ScrollPlugin`,`Initialize`,`Scroll plugin initialized`)}async destroy(){this.strategies.clear(),this.layoutReady.clear(),this.initialLayoutFired.clear(),this.elevatedPages.clear();for(let e of this.scrollerLayoutEmitters.values())e.clear();this.scrollerLayoutEmitters.clear(),this.pageChange$.clear(),this.scroll$.clear(),this.layoutChange$.clear(),this.pageChangeState$.clear(),this.layoutReady$.clear(),this.state$.clear(),super.destroy()}},_i.id=`scroll`,vi=_i,yi=`scroll`,bi={id:yi,name:`Scroll Plugin`,version:`1.0.0`,provides:[`scroll`],requires:[`viewport`],optional:[`spread`,`interaction-manager`],defaultConfig:{defaultPageGap:10,defaultBufferSize:4,defaultStrategy:Y.Vertical}},xi={manifest:bi,create:(e,t)=>new vi(yi,e,t),reducer:hi,initialState:(e,t)=>mi(e,t)}})))()}function Ci({documentId:e,renderPage:t,...n}){let{plugin:r}=wi(),[i,a]=T({layout:null,docId:null});S(()=>{if(!r||!e)return;let t=r.onScrollerData(e,t=>{a({layout:t,docId:e})});return()=>{t(),a({layout:null,docId:null}),r.clearLayoutReady(e)}},[r,e]);let o=i.docId===e?i.layout:null;return le(()=>{r&&e&&o&&r.setLayoutReady(e)},[r,e,o]),o?/* @__PURE__ */ D(`div`,{...n,style:{width:`${o.totalWidth}px`,height:`${o.totalHeight}px`,position:`relative`,boxSizing:`border-box`,margin:`0 auto`,...o.strategy===Y.Horizontal&&{display:`flex`,flexDirection:`row`}},children:[/* @__PURE__ */ E(`div`,{style:{...o.strategy===Y.Horizontal?{width:o.startSpacing,height:`100%`,flexShrink:0}:{height:o.startSpacing,width:`100%`}}}),/* @__PURE__ */ E(`div`,{style:{gap:o.pageGap,display:`flex`,alignItems:`center`,position:`relative`,boxSizing:`border-box`,...o.strategy===Y.Horizontal?{flexDirection:`row`,minHeight:`100%`}:{flexDirection:`column`,minWidth:`fit-content`}},children:o.items.map(e=>/* @__PURE__ */ E(`div`,{style:{display:`flex`,justifyContent:`center`,gap:o.pageGap},children:e.pageLayouts.map(e=>/* @__PURE__ */ E(`div`,{style:{width:`${e.rotatedWidth}px`,height:`${e.rotatedHeight}px`,position:`relative`,zIndex:e.elevated?1:void 0},children:t({...e})},e.pageNumber))},e.pageNumbers[0]))}),/* @__PURE__ */ E(`div`,{style:{...o.strategy===Y.Horizontal?{width:o.endSpacing,height:`100%`,flexShrink:0}:{height:o.endSpacing,width:`100%`}}})]}):null}var wi,Ti,Ei;function Di(){return(Di=t((()=>{J(),Si(),wi=()=>K(vi.id),Ti=()=>q(vi.id),Ei=e=>{let{provides:t}=Ti(),[n,r]=T(1),[i,a]=T(1);return S(()=>{if(!t||!e)return;let n=t.forDocument(e);return r(n.getCurrentPage()),a(n.getTotalPages()),t.onPageChange(t=>{t.documentId===e&&(r(t.pageNumber),a(t.totalPages))})},[t,e]),{provides:t?.forDocument(e)??null,state:{currentPage:n,totalPages:i}}}})))()}var Oi,ki,Ai,ji;function Mi(){return(Mi=t((()=>{G(),Oi=class extends W{constructor(e,t,n){super(e,t),this.config=n}buildCapability(){return{renderPage:e=>this.renderPage(e),renderPageRect:e=>this.renderPageRect(e),renderPageRaw:e=>this.renderPageRaw(e),renderPageRectRaw:e=>this.renderPageRectRaw(e),forDocument:e=>this.createRenderScope(e)}}createRenderScope(e){return{renderPage:t=>this.renderPage(t,e),renderPageRect:t=>this.renderPageRect(t,e),renderPageRaw:t=>this.renderPageRaw(t,e),renderPageRectRaw:t=>this.renderPageRectRaw(t,e)}}renderPage({pageIndex:e,options:t},n){let r=n??this.getActiveDocumentId(),i=this.coreState.core.documents[r];if(!i?.document)throw Error(`Document ${r} not loaded`);let a=i.document.pages.find(t=>t.index===e);if(!a)throw Error(`Page ${e} not found in document ${r}`);let o={...t??{},withForms:t?.withForms??this.config.withForms??!1,withAnnotations:t?.withAnnotations??this.config.withAnnotations??!1,imageType:t?.imageType??this.config.defaultImageType??`image/png`,imageQuality:t?.imageQuality??this.config.defaultImageQuality??.92};return this.engine.renderPage(i.document,a,o)}renderPageRect({pageIndex:e,rect:t,options:n},r){let i=r??this.getActiveDocumentId(),a=this.coreState.core.documents[i];if(!a?.document)throw Error(`Document ${i} not loaded`);let o=a.document.pages.find(t=>t.index===e);if(!o)throw Error(`Page ${e} not found in document ${i}`);let s={...n??{},withForms:n?.withForms??this.config.withForms??!1,withAnnotations:n?.withAnnotations??this.config.withAnnotations??!1,imageType:n?.imageType??this.config.defaultImageType??`image/png`,imageQuality:n?.imageQuality??this.config.defaultImageQuality??.92};return this.engine.renderPageRect(a.document,o,t,s)}renderPageRaw({pageIndex:e,options:t},n){let r=n??this.getActiveDocumentId(),i=this.coreState.core.documents[r];if(!i?.document)throw Error(`Document ${r} not loaded`);let a=i.document.pages.find(t=>t.index===e);if(!a)throw Error(`Page ${e} not found in document ${r}`);let o={...t??{},withForms:t?.withForms??this.config.withForms??!1,withAnnotations:t?.withAnnotations??this.config.withAnnotations??!1};return this.engine.renderPageRaw(i.document,a,o)}renderPageRectRaw({pageIndex:e,rect:t,options:n},r){let i=r??this.getActiveDocumentId(),a=this.coreState.core.documents[i];if(!a?.document)throw Error(`Document ${i} not loaded`);let o=a.document.pages.find(t=>t.index===e);if(!o)throw Error(`Page ${e} not found in document ${i}`);let s={...n??{},withForms:n?.withForms??this.config.withForms??!1,withAnnotations:n?.withAnnotations??this.config.withAnnotations??!1};return this.engine.renderPageRectRaw(a.document,o,t,s)}async initialize(e){this.logger.info(`RenderPlugin`,`Initialize`,`Render plugin initialized`)}async destroy(){super.destroy()}},Oi.id=`render`,ki=Oi,Ai=`render`,ji={manifest:{id:Ai,name:`Render Plugin`,version:`1.0.0`,provides:[`render`],requires:[],optional:[],defaultConfig:{}},create:(e,t)=>new ki(Ai,e,t),reducer:()=>{},initialState:{}}})))()}function Ni({documentId:e,pageIndex:t,scale:n,dpr:r,style:i,...a}){let{provides:o}=Pi(),s=er(e),[c,l]=T(null),u=w(null),d=C(()=>s&&s.pageRefreshVersions[t]||0,[s,t]),f=C(()=>n===void 0?s?.scale??1:n,[n,s?.scale]),p=C(()=>r===void 0?window.devicePixelRatio:r,[r]);return S(()=>{if(!o)return;let n=o.forDocument(e).renderPage({pageIndex:t,options:{scaleFactor:f,dpr:p}});return n.wait(e=>{let t=URL.createObjectURL(e);l(t),u.current=t},O),()=>{u.current?(URL.revokeObjectURL(u.current),u.current=null):n.abort({code:P.Cancelled,message:`canceled render task`})}},[e,t,f,p,o,d]),/* @__PURE__ */ E(ie,{children:c&&/* @__PURE__ */ E(`img`,{src:c,onLoad:()=>{u.current&&=(URL.revokeObjectURL(u.current),null)},...a,style:{width:`100%`,height:`100%`,...i||{}}})})}var Pi;function Fi(){return(Fi=t((()=>{I(),J(),Mi(),Pi=()=>q(ki.id)})))()}function Ii(e,t){return{type:Ui,payload:{documentId:e,state:t}}}function Li(e){return{type:Wi,payload:e}}function Ri(e,t,n){return{type:Ki,payload:{documentId:e,zoomLevel:t,currentZoomLevel:n}}}function zi(e,t){return{type:qi,payload:{documentId:e,isActive:t}}}function Bi(e){let{pageSize:t,scale:n,minDragPx:r=5,onPreview:i,onCommit:a,onSmallDrag:o}=e,s=null,c=null;return{onPointerDown:(e,t)=>{var n;s=e,c={origin:{x:e.x,y:e.y},size:{width:0,height:0}},i?.(c),(n=t.setPointerCapture)==null||n.call(t)},onPointerMove:e=>{if(!s)return;let n=R(e.x,0,t.width),r=R(e.y,0,t.height);c={origin:{x:Math.min(s.x,n),y:Math.min(s.y,r)},size:{width:Math.abs(n-s.x),height:Math.abs(r-s.y)}},i?.(c)},onPointerUp:(e,t)=>{var l;c&&(Math.max(c.size.width,c.size.height)*n>r?a?.(c):o?.()),s=null,c=null,i?.(null),(l=t.releasePointerCapture)==null||l.call(t)},onPointerCancel:(e,t)=>{var n;s=null,c=null,i?.(null),(n=t.releasePointerCapture)==null||n.call(t)}}}var X,Z,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i;function ea(){return(ea=t((()=>{G(),I(),X=/* @__PURE__ */ (e=>(e.Automatic=`automatic`,e.FitPage=`fit-page`,e.FitWidth=`fit-width`,e))(X||{}),Z=/* @__PURE__ */ (e=>(e[e.Center=0]=`Center`,e[e.Top=1]=`Top`,e))(Z||{}),Vi=`zoom`,Hi={id:Vi,name:`Zoom Plugin`,version:`1.0.0`,provides:[`zoom`],requires:[`viewport`,`scroll`],optional:[`interaction-manager`,`spread`],defaultConfig:{defaultZoomLevel:X.Automatic,minZoom:.2,maxZoom:60,zoomStep:.1,zoomRanges:[{min:.2,max:.5,step:.05},{min:.5,max:1,step:.1},{min:1,max:2,step:.2},{min:2,max:4,step:.4},{min:4,max:10,step:.8},{min:10,max:20,step:1.6},{min:20,max:40,step:3.2},{min:40,max:60,step:6.4}],presets:[{name:`Fit Page`,value:X.FitPage},{name:`Fit Width`,value:X.FitWidth},{name:`Automatic`,value:X.Automatic},{name:`25%`,value:.25},{name:`50%`,value:.5},{name:`100%`,value:1},{name:`125%`,value:1.25},{name:`150%`,value:1.5},{name:`200%`,value:2},{name:`400%`,value:4},{name:`800%`,value:8},{name:`1600%`,value:16}]}},Ui=`ZOOM/INIT_STATE`,Wi=`ZOOM/CLEANUP_STATE`,Gi=`ZOOM/SET_ACTIVE_DOCUMENT`,Ki=`ZOOM/SET_ZOOM_LEVEL`,qi=`ZOOM/SET_MARQUEE_ZOOM_ACTIVE`,Ji={zoomLevel:X.Automatic,currentZoomLevel:1,isMarqueeZoomActive:!1},Yi={documents:{},activeDocumentId:null},Xi=(e=Yi,t)=>{switch(t.type){case Ui:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r},activeDocumentId:e.activeDocumentId??n}}case Wi:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case Gi:return{...e,activeDocumentId:t.payload};case Ki:{let{documentId:n,zoomLevel:r,currentZoomLevel:i}=t.payload,a=e.documents[n];return a?{...e,documents:{...e.documents,[n]:{...a,zoomLevel:r,currentZoomLevel:i}}}:e}case qi:{let{documentId:n,isActive:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,isMarqueeZoomActive:r}}}:e}default:return e}},Zi=class extends W{constructor(e,t,n){var r,i,a;super(e,t),this.zoom$=z(),this.state$=B(),this.viewportPlugin=t.getPlugin(`viewport`),this.viewport=this.viewportPlugin.provides(),this.scroll=t.getPlugin(`scroll`).provides();let o=t.getPlugin(`interaction-manager`);this.interactionManager=o?.provides()??null;let s=t.getPlugin(`spread`);this.spread=s?.provides()??null,this.minZoom=n.minZoom??.25,this.maxZoom=n.maxZoom??10,this.zoomStep=n.zoomStep??.1,this.defaultZoomLevel=n.defaultZoomLevel,this.presets=n.presets??[],this.zoomRanges=this.normalizeRanges(n.zoomRanges??[]),this.viewport.onViewportResize(e=>this.recalcAuto(e.documentId,Z.Top),{mode:`debounce`,wait:150,keyExtractor:e=>e.documentId}),(r=this.spread)==null||r.onSpreadChange(e=>{this.recalcAuto(e.documentId,Z.Top)}),(i=this.interactionManager)==null||i.registerMode({id:`marqueeZoom`,scope:`page`,exclusive:!0,cursor:`zoom-in`}),(a=this.interactionManager)==null||a.onModeChange(e=>{let t=e.activeMode===`marqueeZoom`,n=this.getDocumentState(e.documentId);n&&n.isMarqueeZoomActive!==t&&this.dispatch(zi(e.documentId,t))})}onDocumentLoadingStarted(e){this.viewport.gate(`zoom`,e);let t={...Ji,zoomLevel:this.defaultZoomLevel};this.dispatch(Ii(e,t)),this.logger.debug(`ZoomPlugin`,`DocumentOpened`,`Initialized zoom state for document: ${e}`)}onDocumentLoaded(e){this.recalcAuto(e,Z.Top)}onDocumentClosed(e){this.dispatch(Li(e)),this.logger.debug(`ZoomPlugin`,`DocumentClosed`,`Cleaned up zoom state for document: ${e}`)}onRotationChanged(e){this.recalcAuto(e,Z.Top)}buildCapability(){return{requestZoom:(e,t)=>this.requestZoom(e,t),requestZoomBy:(e,t)=>this.requestZoomBy(e,t),zoomIn:()=>this.zoomIn(),zoomOut:()=>this.zoomOut(),zoomToArea:(e,t)=>this.zoomToArea(e,t),enableMarqueeZoom:()=>this.enableMarqueeZoom(),disableMarqueeZoom:()=>this.disableMarqueeZoom(),toggleMarqueeZoom:()=>this.toggleMarqueeZoom(),isMarqueeZoomActive:()=>this.isMarqueeZoomActive(),getState:()=>this.getDocumentStateOrThrow(),forDocument:e=>this.createZoomScope(e),registerMarqueeOnPage:e=>this.registerMarqueeOnPage(e),getPresets:()=>this.presets,onZoomChange:this.zoom$.on,onStateChange:this.state$.on}}createZoomScope(e){return{requestZoom:(t,n)=>this.requestZoom(t,n,e),requestZoomBy:(t,n)=>this.requestZoomBy(t,n,e),zoomIn:()=>this.zoomIn(e),zoomOut:()=>this.zoomOut(e),zoomToArea:(t,n)=>this.zoomToArea(t,n,e),enableMarqueeZoom:()=>this.enableMarqueeZoom(e),disableMarqueeZoom:()=>this.disableMarqueeZoom(e),toggleMarqueeZoom:()=>this.toggleMarqueeZoom(e),isMarqueeZoomActive:()=>this.isMarqueeZoomActive(e),getState:()=>this.getDocumentStateOrThrow(e),onZoomChange:t=>this.zoom$.on(n=>{n.documentId===e&&t(n)}),onStateChange:t=>this.state$.on(n=>{n.documentId===e&&t(n.state)})}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}getDocumentStateOrThrow(e){let t=this.getDocumentState(e);if(!t)throw Error(`Zoom state not found for document: ${e??`active`}`);return t}requestZoom(e,t,n){this.handleRequest({level:e,center:t},n)}requestZoomBy(e,t,n){let r=n??this.getActiveDocumentId(),i=this.getDocumentStateOrThrow(r).currentZoomLevel,a=this.toZoom(i+e);this.handleRequest({level:a,center:t},r)}zoomIn(e){let t=e??this.getActiveDocumentId(),n=this.getDocumentStateOrThrow(t).currentZoomLevel;this.handleRequest({level:n,delta:this.stepFor(n)},t)}zoomOut(e){let t=e??this.getActiveDocumentId(),n=this.getDocumentStateOrThrow(t).currentZoomLevel;this.handleRequest({level:n,delta:-this.stepFor(n)},t)}zoomToArea(e,t,n){let r=n??this.getActiveDocumentId();this.handleZoomToArea(r,e,t)}enableMarqueeZoom(e){var t;let n=e??this.getActiveDocumentId();(t=this.interactionManager)==null||t.forDocument(n).activate(`marqueeZoom`)}disableMarqueeZoom(e){var t;let n=e??this.getActiveDocumentId();(t=this.interactionManager)==null||t.forDocument(n).activateDefaultMode()}toggleMarqueeZoom(e){let t=e??this.getActiveDocumentId(),n=this.interactionManager?.forDocument(t);n?.getActiveMode()===`marqueeZoom`?n.activateDefaultMode():n?.activate(`marqueeZoom`)}isMarqueeZoomActive(e){let t=e??this.getActiveDocumentId();return this.interactionManager?.forDocument(t).getActiveMode()===`marqueeZoom`}handleRequest({level:e,delta:t=0,center:n,focus:r=Z.Center,align:i=`keep`},a){let o=a??this.getActiveDocumentId(),s=this.getDocumentStateOrThrow(o);if(!this.coreState.core.documents[o])return;let c=this.viewport.forDocument(o),l=c.getMetrics(),u=s.currentZoomLevel;if(l.clientWidth===0||l.clientHeight===0)return;let d=typeof e==`number`?e:this.computeZoomForMode(o,e,l);if(d===!1)return;let f=R(d+t,this.minZoom,this.maxZoom),p=Math.floor(f*1e3)/1e3,m=n??{vx:l.clientWidth/2,vy:r===Z.Top?0:l.clientHeight/2},{desiredScrollLeft:h,desiredScrollTop:g}=this.computeScrollForZoomChange(o,l,u,p,m,i);!isNaN(h)&&!isNaN(g)&&this.viewportPlugin.setViewportScrollMetrics(o,{scrollLeft:h,scrollTop:g}),this.dispatch(Ri(o,typeof e==`number`?p:e,p)),this.dispatchCoreAction(Pn(p,o)),this.viewport.isGated(o)&&this.viewport.releaseGate(`zoom`,o),c.scrollTo({x:h,y:g,behavior:`instant`});let _={documentId:o,oldZoom:u,newZoom:p,level:e,center:m,desiredScrollLeft:h,desiredScrollTop:g,viewport:l};this.zoom$.emit(_)}computeZoomForMode(e,t,n){if(!this.coreState.core.documents[e])return!1;let r=this.scroll.forDocument(e),i=r?this.scroll.getPageGap():0,a=this.viewport.getViewportGap(),o=r.getSpreadPagesWithRotatedSize();if(!o.length||n.clientWidth===0||n.clientHeight===0)return!1;let s=n.clientWidth-2*a,c=n.clientHeight-2*a;if(s<=0||c<=0)return!1;let l=0,u=0;switch(o.forEach(e=>{let t=e.reduce((e,t,n)=>e+t.rotatedSize.width+(n?i:0),0),n=Math.max(...e.map(e=>e.rotatedSize.height));l=Math.max(l,t),u=Math.max(u,n)}),t){case X.FitWidth:return s/l;case X.FitPage:return Math.min(s/l,c/u);case X.Automatic:return Math.min(s/l,1);default:return 1}}computeScrollForZoomChange(e,t,n,r,i,a=`keep`){let o=this.scroll.forDocument(e).getLayout(),s=this.viewport.getViewportGap(),c=o.totalContentSize.width,l=o.totalContentSize.height,u=t.clientWidth-2*s,d=t.clientHeight-2*s,f=(e,t,n)=>t*n<e?(e-t*n)/2:0,p=f(u,c,n),m=f(d,l,n),h=f(u,c,r),g=f(d,l,r),_=(t.scrollLeft+i.vx-s-p)/n,v=(t.scrollTop+i.vy-s-m)/n,y=_*r+s+h,b=v*r+s+g,x=a===`center`?y-t.clientWidth/2:y-i.vx,ee=a===`center`?b-t.clientHeight/2:b-i.vy;return{desiredScrollLeft:Math.max(0,x),desiredScrollTop:Math.max(0,ee)}}handleZoomToArea(e,t,n){let r=this.coreState.core.documents[e];if(!r)return;let i=r.rotation,a=this.viewport.forDocument(e).getMetrics(),o=this.viewport.getViewportGap(),s=this.getDocumentStateOrThrow(e).currentZoomLevel,c=a.clientWidth-2*o,l=a.clientHeight-2*o,u=this.scroll.forDocument(e).getLayout(),d=u.virtualItems.find(e=>e.pageLayouts.some(e=>e.pageIndex===t));if(!d)return;let f=d.pageLayouts.find(e=>e.pageIndex===t),p=Be({width:f.width,height:f.height},n,i),m=this.toZoom(Math.min(c/p.size.width,l/p.size.height)),h=d.x+f.x,g=d.y+f.y,_=h+p.origin.x+p.size.width/2,v=g+p.origin.y+p.size.height/2,y=(e,t,n)=>t*n<e?(e-t*n)/2:0,b=y(c,u.totalContentSize.width,s),x=y(l,u.totalContentSize.height,s),ee=o+b+_*s-a.scrollLeft,te=o+x+v*s-a.scrollTop;this.handleRequest({level:m,center:{vx:ee,vy:te},align:`center`},e)}recalcAuto(e,t){let n=this.getDocumentState(e);n&&(n.zoomLevel===X.Automatic||n.zoomLevel===X.FitPage||n.zoomLevel===X.FitWidth)&&this.handleRequest({level:n.zoomLevel,focus:t},e)}normalizeRanges(e){return[...e].filter(e=>e.step>0&&e.max>e.min).sort((e,t)=>e.min-t.min)}stepFor(e){let t=this.zoomRanges.find(t=>e>=t.min&&e<t.max);return t?t.step:this.zoomStep}toZoom(e){return parseFloat(R(e,this.minZoom,this.maxZoom).toFixed(2))}registerMarqueeOnPage(e){if(!this.interactionManager)return this.logger.warn(`ZoomPlugin`,`MissingDependency`,`Interaction manager plugin not loaded, marquee zoom disabled`),()=>{};let t=this.coreState.core.documents[e.documentId];if(!t||!t.document)return this.logger.warn(`ZoomPlugin`,`DocumentNotFound`,`Document not found`),()=>{};let n=t.document.pages[e.pageIndex];if(!n)return this.logger.warn(`ZoomPlugin`,`PageNotFound`,`Page ${e.pageIndex} not found`),()=>{};let r=Bi({pageSize:n.size,scale:e.scale,onPreview:e.callback.onPreview,onCommit:t=>{var n,r;this.zoomToArea(e.pageIndex,t,e.documentId),(r=(n=e.callback).onCommit)==null||r.call(n,t)},onSmallDrag:()=>{var t,n;this.zoomIn(e.documentId),(n=(t=e.callback).onSmallDrag)==null||n.call(t)}});return this.interactionManager.registerHandlers({documentId:e.documentId,modeId:`marqueeZoom`,handlers:r,pageIndex:e.pageIndex})}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r&&i&&(r.currentZoomLevel!==i.currentZoomLevel||r.zoomLevel!==i.zoomLevel||r.isMarqueeZoomActive!==i.isMarqueeZoomActive)&&this.state$.emit({documentId:n,state:i})}}async initialize(){this.logger.info(`ZoomPlugin`,`Initialize`,`Zoom plugin initialized`)}async destroy(){this.zoom$.clear(),this.state$.clear(),super.destroy()}},Zi.id=`zoom`,Qi=Zi,$i={manifest:Hi,create:(e,t)=>new Qi(Vi,e,t),reducer:Xi,initialState:Yi}})))()}var ta,na;function ra(){return(ra=t((()=>{J(),ea(),ti(),ta=()=>q(Qi.id),na=e=>{let{provides:t}=ta(),[n,r]=T(Ji);return S(()=>{if(!t)return;let n=t.forDocument(e);return r(n.getState()),n.onStateChange(e=>{r(e)})},[t,e]),{state:n,provides:t?.forDocument(e)??null}}})))()}function ia(e,t){return{type:ma,payload:{documentId:e,state:t}}}function aa(e){return{type:ha,payload:e}}function oa(e){return{type:ga,payload:{documentId:e}}}function sa(e){return{type:_a,payload:{documentId:e}}}function ca(e,t){return{type:va,payload:{documentId:e,flags:t}}}function la(e,t){return{type:ya,payload:{documentId:e,showAll:t}}}function ua(e,t){return{type:ba,payload:{documentId:e,query:t}}}function da(e,t,n,r){return{type:xa,payload:{documentId:e,results:t,total:n,activeResultIndex:r}}}function fa(e,t){return{type:Sa,payload:{documentId:e,results:t}}}function pa(e,t){return{type:Ca,payload:{documentId:e,index:t}}}var ma,ha,ga,_a,va,ya,ba,xa,Sa,Ca,wa,Ta,Q,Ea,Da,Oa,ka,Aa,ja;function Ma(){return(Ma=t((()=>{G(),I(),ma=`SEARCH/INIT_STATE`,ha=`SEARCH/CLEANUP_STATE`,ga=`SEARCH/START_SEARCH_SESSION`,_a=`SEARCH/STOP_SEARCH_SESSION`,va=`SEARCH/SET_SEARCH_FLAGS`,ya=`SEARCH/SET_SHOW_ALL_RESULTS`,ba=`SEARCH/START_SEARCH`,xa=`SEARCH/SET_SEARCH_RESULTS`,Sa=`SEARCH/APPEND_SEARCH_RESULTS`,Ca=`SEARCH/SET_ACTIVE_RESULT_INDEX`,wa={flags:[],results:[],total:0,activeResultIndex:-1,showAllResults:!0,query:``,loading:!1,active:!1},Ta={documents:{}},Q=(e,t,n)=>{let r=e.documents[t]||wa;return{...e,documents:{...e.documents,[t]:{...r,...n}}}},Ea=(e=Ta,t)=>{switch(t.type){case ma:return{...e,documents:{...e.documents,[t.payload.documentId]:t.payload.state}};case ha:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i}}case ga:return Q(e,t.payload.documentId,{active:!0});case _a:return Q(e,t.payload.documentId,{results:[],total:0,activeResultIndex:-1,query:``,loading:!1,active:!1});case va:return Q(e,t.payload.documentId,{flags:t.payload.flags});case ya:return Q(e,t.payload.documentId,{showAllResults:t.payload.showAll});case ba:return Q(e,t.payload.documentId,{loading:!0,query:t.payload.query,results:[],total:0,activeResultIndex:-1});case Sa:{let{documentId:n,results:r}=t.payload,i=e.documents[n];if(!i)return e;let a=[...i.results,...r],o=i.activeResultIndex===-1&&a.length>0?0:i.activeResultIndex;return Q(e,n,{results:a,total:a.length,activeResultIndex:o,loading:!0})}case xa:{let{documentId:n,results:r,total:i,activeResultIndex:a}=t.payload;return Q(e,n,{results:r,total:i,activeResultIndex:a,loading:!1})}case Ca:return Q(e,t.payload.documentId,{activeResultIndex:t.payload.index});default:return e}},Da=class extends W{constructor(e,t,n){super(e,t),this.searchStop$=B(),this.searchStart$=B(),this.searchResult$=B(),this.searchActiveResultChange$=B(),this.searchResultState$=B(),this.searchState$=B(),this.currentTask=/* @__PURE__ */ new Map,this.pluginConfig=n}onDocumentLoadingStarted(e){let t={...wa,flags:this.pluginConfig.flags||[],showAllResults:this.pluginConfig.showAllResults??!0};this.dispatch(ia(e,t))}onDocumentClosed(e){this.stopSearchSession(e),this.dispatch(aa(e)),this.currentTask.delete(e)}async initialize(){}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r!==i&&(this.searchState$.emit({documentId:n,state:i}),r&&r.results===i.results&&r.activeResultIndex===i.activeResultIndex&&r.showAllResults===i.showAllResults&&r.active===i.active||this.searchResultState$.emit({documentId:n,state:{results:i.results,activeResultIndex:i.activeResultIndex,showAllResults:i.showAllResults,active:i.active}}))}}buildCapability(){let e=e=>e??this.getActiveDocumentId(),t=t=>{let n=e(t),r=this.state.documents[n];if(!r)throw Error(`Search state not found for document ${n}`);return r};return{startSearch:t=>this.startSearchSession(e(t)),stopSearch:t=>this.stopSearchSession(e(t)),searchAllPages:(t,n)=>this.searchAllPages(t,e(n)),nextResult:t=>this.nextResult(e(t)),previousResult:t=>this.previousResult(e(t)),goToResult:(t,n)=>this.goToResult(t,e(n)),setShowAllResults:(t,n)=>this.dispatch(la(e(n),t)),getShowAllResults:e=>t(e).showAllResults,getFlags:e=>t(e).flags,setFlags:(t,n)=>this.setFlags(t,e(n)),getState:e=>t(e),forDocument:this.createSearchScope.bind(this),onSearchResult:this.searchResult$.on,onSearchStart:this.searchStart$.on,onSearchStop:this.searchStop$.on,onActiveResultChange:this.searchActiveResultChange$.on,onSearchResultStateChange:this.searchResultState$.on,onStateChange:this.searchState$.on}}createSearchScope(e){let t=()=>{let t=this.state.documents[e];if(!t)throw Error(`Search state not found for document ${e}`);return t};return{startSearch:()=>this.startSearchSession(e),stopSearch:()=>this.stopSearchSession(e),searchAllPages:t=>this.searchAllPages(t,e),nextResult:()=>this.nextResult(e),previousResult:()=>this.previousResult(e),goToResult:t=>this.goToResult(t,e),setShowAllResults:t=>this.dispatch(la(e,t)),getShowAllResults:()=>t().showAllResults,getFlags:()=>t().flags,setFlags:t=>this.setFlags(t,e),getState:t,onSearchResult:t=>this.searchResult$.on(n=>{n.documentId===e&&t(n.results)}),onSearchStart:t=>this.searchStart$.on(n=>{n.documentId===e&&t()}),onSearchStop:t=>this.searchStop$.on(n=>{n.documentId===e&&t()}),onActiveResultChange:t=>this.searchActiveResultChange$.on(n=>{n.documentId===e&&t(n.index)}),onSearchResultStateChange:t=>this.searchResultState$.on(n=>{n.documentId===e&&t(n.state)}),onStateChange:t=>this.searchState$.on(n=>{n.documentId===e&&t(n.state)})}}setFlags(e,t){this.dispatch(ca(t,e));let n=this.state.documents[t];n?.active&&this.searchAllPages(n.query,t,!0)}notifySearchStart(e){this.searchStart$.emit({documentId:e})}notifySearchStop(e){this.searchStop$.emit({documentId:e})}notifyActiveResultChange(e,t){this.searchActiveResultChange$.emit({documentId:e,index:t})}startSearchSession(e){this.getCoreDocument(e)&&(this.dispatch(oa(e)),this.notifySearchStart(e))}stopSearchSession(e){var t;if(!this.state.documents[e]?.active)return;let n=this.currentTask.get(e);if(n){try{(t=n.abort)==null||t.call(n,{code:P.Cancelled,message:`search stopped`})}catch{}this.currentTask.delete(e)}this.dispatch(sa(e)),this.notifySearchStop(e)}searchAllPages(e,t,n=!1){var r;let i=this.state.documents[t];if(!i)return F.reject({code:P.NotFound,message:`Search state not initialized`});let a=this.getCoreDocument(t);if(!a?.document)return F.reject({code:P.NotFound,message:`Document not loaded`});let o=e.trim();if(i.query===o&&!n)return F.resolve({results:i.results,total:i.total});let s=this.currentTask.get(t);if(s){try{(r=s.abort)==null||r.call(s,{code:P.Cancelled,message:`new search`})}catch{}this.currentTask.delete(t)}if(this.dispatch(ua(t,o)),!o)return this.dispatch(da(t,[],0,-1)),F.resolve({results:[],total:0});i.active||this.startSearchSession(t);let c=this.engine.searchAllPages(a.document,o,{flags:i.flags});return this.currentTask.set(t,c),c.onProgress(e=>{e?.results?.length&&this.currentTask.get(t)===c&&(this.dispatch(fa(t,e.results)),this.state.documents[t].activeResultIndex===-1&&(this.dispatch(pa(t,0)),this.notifyActiveResultChange(t,0)))}),c.wait(e=>{this.currentTask.delete(t);let n=e.total>0?0:-1;this.dispatch(da(t,e.results,e.total,n)),this.searchResult$.emit({documentId:t,results:e}),e.total>0&&this.notifyActiveResultChange(t,0)},e=>{e?.reason?.code!==P.Cancelled&&(console.error(`Error during search:`,e),this.dispatch(da(t,[],0,-1))),this.currentTask.delete(t)}),c}nextResult(e){let t=this.state.documents[e];if(!t||t.results.length===0)return-1;let n=t.activeResultIndex>=t.results.length-1?0:t.activeResultIndex+1;return this.goToResult(n,e)}previousResult(e){let t=this.state.documents[e];if(!t||t.results.length===0)return-1;let n=t.activeResultIndex<=0?t.results.length-1:t.activeResultIndex-1;return this.goToResult(n,e)}goToResult(e,t){let n=this.state.documents[t];return!n||n.results.length===0||e<0||e>=n.results.length?-1:(this.dispatch(pa(t,e)),this.notifyActiveResultChange(t,e),e)}async destroy(){for(let e of Object.keys(this.state.documents))this.stopSearchSession(e);this.searchResult$.clear(),this.searchStart$.clear(),this.searchStop$.clear(),this.searchActiveResultChange$.clear(),this.searchResultState$.clear(),this.searchState$.clear(),super.destroy()}},Da.id=`search`,Oa=Da,ka=`search`,Aa={id:ka,name:`Search Plugin`,version:`1.0.0`,provides:[`search`],requires:[],optional:[],defaultConfig:{flags:[]}},ja={manifest:Aa,create:(e,t)=>new Oa(ka,e,t),reducer:Ea,initialState:Ta}})))()}function Na({documentId:e,pageIndex:t,scale:n,style:r,highlightColor:i=`#FFFF00`,activeHighlightColor:a=`#FFBF00`,...o}){let{provides:s}=Pa(),[c,l]=T(null),u=er(e),d=C(()=>s?.forDocument(e),[s,e]),f=C(()=>n===void 0?u?.scale??1:n,[n,u?.scale]);if(S(()=>{if(!d){l(null);return}let e=d.getState();return l({results:e.results,activeResultIndex:e.activeResultIndex,showAllResults:e.showAllResults,active:e.active}),d.onSearchResultStateChange(e=>{l(e)})},[d]),!c||!c.active)return null;let p=c.results.map((e,t)=>({result:e,originalIndex:t})).filter(({result:e})=>e.pageIndex===t).filter(({originalIndex:e})=>c.showAllResults||e===c.activeResultIndex);return/* @__PURE__ */ E(`div`,{style:{...r,pointerEvents:`none`},...o,children:p.map(({result:e,originalIndex:t})=>e.rects.map((e,n)=>/* @__PURE__ */ E(`div`,{style:{position:`absolute`,top:e.origin.y*f,left:e.origin.x*f,width:e.size.width*f,height:e.size.height*f,backgroundColor:t===c.activeResultIndex?a:i,mixBlendMode:`multiply`,transform:`scale(1.02)`,transformOrigin:`center`,transition:`opacity .3s ease-in-out`,opacity:1}},`${t}-${n}`)))})}var Pa,Fa;function Ia(){return(Ia=t((()=>{J(),Ma(),Pa=()=>q(Oa.id),Fa=e=>{let{provides:t}=Pa(),[n,r]=T(wa),i=C(()=>t?.forDocument(e),[t,e]);return S(()=>{if(!i)r(wa);else return r(i.getState()),i.onStateChange(e=>r(e))},[i]),{state:n,provides:i??null}}})))()}function La(e,t){return e.rects[t]??[]}function Ra(e,t){return Ue(La(e,t))}function za(e){let t=[],n=e.rects;for(let e in n){let r=Number(e),i=Ue(n[r]);i&&t.push({page:r,rect:i})}return t}function Ba(e,t){let n=e.rects[t]||[];if(n.length===0)return null;let r=Ra(e,t);return r?{pageIndex:t,rect:r,segmentRects:n}:null}function Va(e){let t=[],n=Object.keys(e.rects).map(Number);for(let r of n){let n=e.rects[r]||[];if(n.length===0)continue;let i=Ra(e,r);i&&t.push({pageIndex:r,rect:i,segmentRects:n})}return t}function Ha(e,t,n=1.5){for(let n of e.runs){if(!(t.y>=n.rect.y&&t.y<=n.rect.y+n.rect.height&&t.x>=n.rect.x&&t.x<=n.rect.x+n.rect.width))continue;let e=n.glyphs.findIndex(e=>{let n=e.tightX??e.x,r=e.tightY??e.y,i=e.tightWidth??e.width,a=e.tightHeight??e.height;return t.x>=n&&t.x<=n+i&&t.y>=r&&t.y<=r+a});if(e!==-1)return n.charStart+e}if(n<=0)return-1;let r=Ua(e,n)/2,i=-1,a=1/0;for(let n of e.runs)if(!(t.y<n.rect.y-r||t.y>n.rect.y+n.rect.height+r||t.x<n.rect.x-r||t.x>n.rect.x+n.rect.width+r))for(let e=0;e<n.glyphs.length;e++){let o=n.glyphs[e];if(o.flags===2)continue;let s=o.tightX??o.x,c=o.tightY??o.y,l=o.tightWidth??o.width,u=o.tightHeight??o.height,d=s-r,f=s+l+r,p=c-r,m=c+u+r;if(t.x<d||t.x>f||t.y<p||t.y>m)continue;let h=Math.min(Math.abs(t.x-s),Math.abs(t.x-(s+l)))+Math.min(Math.abs(t.y-c),Math.abs(t.y-(c+u)));h<a&&(a=h,i=n.charStart+e)}return i}function Ua(e,t){let n=0,r=0;for(let t of e.runs)for(let e of t.glyphs)e.flags!==2&&(n+=e.height,r++);return r===0?0:n/r*t}function Wa(e,t,n){if(!e||!t||n<e.start.page||n>e.end.page)return null;let r=n===e.start.page?e.start.index:0,i=t.runs[t.runs.length-1],a=i.charStart+i.glyphs.length-1;return{from:r,to:n===e.end.page?e.end.index:a}}function Ga(e,t,n,r=!0){let i=[];for(let r of e.runs){let e=r.charStart,a=e+r.glyphs.length-1;if(a<t||e>n)continue;let o=Math.max(t,e)-e,s=Math.min(n,a)-e,c=1/0,l=-1/0,u=1/0,d=-1/0,f=0,p=0,m=-1/0,h=()=>{c!==1/0&&f>0&&i.push({rect:{origin:{x:c,y:u},size:{width:l-c,height:d-u}},charCount:f,fontSize:r.fontSize}),c=1/0,l=-1/0,u=1/0,d=-1/0,f=0,p=0,m=-1/0};for(let e=o;e<=s;e++){let t=r.glyphs[e];if(t.flags!==2){if(f>0&&m>-1/0){let e=Math.abs(t.x-m),n=p/f;n>0&&e>2.5*n&&h()}c=Math.min(c,t.x),l=Math.max(l,t.x+t.width),u=Math.min(u,t.y),d=Math.max(d,t.y+t.height),f++,p+=t.width,m=t.x+t.width}}h()}return r?Za(i):i.map(e=>e.rect)}function Ka(e,t){let n=Math.min(e.origin.x,t.origin.x),r=Math.min(e.origin.y,t.origin.y),i=Math.max(e.origin.x+e.size.width,t.origin.x+t.size.width),a=Math.max(e.origin.y+e.size.height,t.origin.y+t.size.height);return{origin:{x:n,y:r},size:{width:i-n,height:a-r}}}function qa(e,t){let n=Math.max(e.origin.x,t.origin.x),r=Math.max(e.origin.y,t.origin.y),i=Math.min(e.origin.x+e.size.width,t.origin.x+t.size.width),a=Math.min(e.origin.y+e.size.height,t.origin.y+t.size.height),o=Math.max(0,i-n),s=Math.max(0,a-r);return{origin:{x:n,y:r},size:{width:o,height:s}}}function Ja(e){return e.size.width<=0||e.size.height<=0}function Ya(e,t){if(Ja(e)||Ja(t))return 0;let n=Ka(e,t);return n.size.height===e.size.height||n.size.height===t.size.height?1:qa(e,t).size.height/n.size.height}function Xa(e,t){if(e.fontSize!=null&&t.fontSize!=null&&e.fontSize>0&&t.fontSize>0&&Math.max(e.fontSize,t.fontSize)/Math.min(e.fontSize,t.fontSize)>1.5)return!1;let n=e.rect,r=t.rect;if(Ya(n,r)<.8)return!1;let i=1*n.size.width/e.charCount,a=1*r.size.width/t.charCount,o=n.origin.x-i,s=n.origin.x+n.size.width+i,c=r.origin.x-a;return o<r.origin.x+r.size.width+a&&s>c}function Za(e){let t=[],n=null,r=null;for(let i of e)n&&r?Xa(n,i)?r=Ka(r,i.rect):(t.push(r),r=i.rect):r=i.rect,n=i;return r&&!Ja(r)&&t.push(r),t}function Qa(e,t){for(let n=0;n<e.runs.length;n++){let r=e.runs[n],i=t-r.charStart;if(i>=0&&i<r.glyphs.length)return{runIdx:n,localIdx:i}}return null}function $a(e){return e===1||e===2}function eo(e,t){if(!Qa(e,t))return null;let n=io(e);if(n===0)return null;let r=t;for(;r>0;){let t=Qa(e,r-1);if(!t||$a(e.runs[t.runIdx].glyphs[t.localIdx].flags))break;r--}let i=t;for(;i<n-1;){let t=Qa(e,i+1);if(!t||$a(e.runs[t.runIdx].glyphs[t.localIdx].flags))break;i++}return{from:r,to:i}}function to(e,t){let n=Qa(e,t);if(!n)return null;let r=e.runs[n.runIdx],i=r.rect.y,a=r.rect.y+r.rect.height,o=r.charStart,s=r.charStart+r.glyphs.length-1;for(let t=n.runIdx-1;t>=0;t--){let n=e.runs[t];if(!no(n)){if(!ro(n.rect.y,n.rect.y+n.rect.height,i,a))break;o=n.charStart}}for(let t=n.runIdx+1;t<e.runs.length;t++){let n=e.runs[t];if(!no(n)){if(!ro(n.rect.y,n.rect.y+n.rect.height,i,a))break;s=n.charStart+n.glyphs.length-1}}return{from:o,to:s}}function no(e){return e.rect.width===0&&e.rect.height===0}function ro(e,t,n,r){let i=Math.max(t,r)-Math.min(e,n),a=Math.max(0,Math.min(t,r)-Math.max(e,n));return i!==0&&a/i>=Po}function io(e){if(e.runs.length===0)return 0;let t=e.runs[e.runs.length-1];return t.charStart+t.glyphs.length}function ao(e){let t=e.minDragDistance??3,n=e.toleranceFactor??1.5,r=null,i=null,a=!1,o=0;function s(){var t;r=null,i=null,a=!1,(t=e.setHasTextAnchor)==null||t.call(e,!1)}return{onPointerDown:(t,s,c)=>{var l,u;if(s.target===s.currentTarget&&((l=e.onEmptySpaceClick)==null||l.call(e,c)),!e.isEnabled(c))return;(o===0||Date.now()-o>=Fo)&&e.onClear(c);let d=e.getGeometry();if(!d)return;let f=Ha(d,t,n);f!==-1&&(r=f,i=t,a=!1,(u=e.setHasTextAnchor)==null||u.call(e,!0))},onPointerMove:(o,s,c)=>{if(!e.isEnabled(c))return;let l=e.getGeometry();if(!l)return;let u=Ha(l,o,n);if(e.setCursor(u===-1?null:`text`),r!==null&&i&&!a){let n=o.x-i.x,s=o.y-i.y;Math.sqrt(n*n+s*s)>=t&&(a=!0,e.onBegin(r,c),u!==-1&&e.onUpdate(u,c))}else e.isSelecting()&&u!==-1&&e.onUpdate(u,c)},onPointerUp:(t,n,r)=>{e.isEnabled(r)&&a&&e.onEnd(r),s()},onDoubleClick:(t,r,i)=>{var a;if(!e.isEnabled(i))return;let s=e.getGeometry();if(!s)return;let c=Ha(s,t,n);c!==-1&&(o=Date.now(),(a=e.onWordSelect)==null||a.call(e,c,i))},onClick:(t,r,i)=>{var a;if(!e.isEnabled(i)||o===0)return;if(Date.now()-o>Fo){o=0;return}o=0;let s=e.getGeometry();if(!s)return;let c=Ha(s,t,n);c!==-1&&((a=e.onLineSelect)==null||a.call(e,c,i))},onHandlerActiveEnd:t=>{s(),e.isEnabled(t)&&e.onClear(t)}}}function oo(e){let{pageSize:t,scale:n,minDragPx:r=5}=e,i=null,a=null;return{onPointerDown:(t,n,r)=>{var o;e.isEnabled(r)&&(e.isTextSelecting?.call(e)||(i=t,a={origin:{x:t.x,y:t.y},size:{width:0,height:0}},e.onBegin(t,r),(o=n.setPointerCapture)==null||o.call(n)))},onPointerMove:(n,r,o)=>{if(!i||!e.isEnabled(o))return;let s=R(n.x,0,t.width),c=R(n.y,0,t.height);a={origin:{x:Math.min(i.x,s),y:Math.min(i.y,c)},size:{width:Math.abs(s-i.x),height:Math.abs(c-i.y)}},e.onChange(a,o)},onPointerUp:(t,o,s)=>{var c;e.isEnabled(s)&&(a&&i&&(Math.max(a.size.width,a.size.height)*n>r?e.onEnd(a,s):e.onCancel(s)),i=null,a=null,(c=o.releasePointerCapture)==null||c.call(o))},onPointerCancel:(t,n,r)=>{var o;e.isEnabled(r)&&(i=null,a=null,e.onCancel(r),(o=n.releasePointerCapture)==null||o.call(n))}}}var so,co,lo,uo,fo,po,mo,ho,go,_o,vo,yo,bo,xo,So,Co,wo,To,Eo,Do,Oo,ko,Ao,jo,Mo,$,No,Po,Fo,Io,Lo,Ro;function zo(){return(zo=t((()=>{G(),I(),so=`selection`,co={id:so,name:`Selection Plugin`,version:`1.0.0`,provides:[`selection`],requires:[`interaction-manager`],optional:[`viewport`,`scroll`],defaultConfig:{menuHeight:40}},lo=`SELECTION/INIT_STATE`,uo=`SELECTION/CLEANUP_STATE`,fo=`SELECTION/CACHE_PAGE_GEOMETRY`,po=`SELECTION/SET_SELECTION`,mo=`SELECTION/START_SELECTION`,ho=`SELECTION/END_SELECTION`,go=`SELECTION/CLEAR_SELECTION`,_o=`SELECTION/SET_RECTS`,vo=`SELECTION/SET_SLICES`,yo=`SELECTION/EVICT_PAGE_GEOMETRY`,bo=`SELECTION/RESET`,xo=(e,t)=>({type:lo,payload:{documentId:e,state:t}}),So=e=>({type:uo,payload:e}),Co=(e,t,n)=>({type:fo,payload:{documentId:e,page:t,geo:n}}),wo=(e,t)=>({type:po,payload:{documentId:e,selection:t}}),To=e=>({type:mo,payload:{documentId:e}}),Eo=e=>({type:ho,payload:{documentId:e}}),Do=e=>({type:go,payload:{documentId:e}}),Oo=(e,t)=>({type:_o,payload:{documentId:e,rects:t}}),ko=(e,t)=>({type:vo,payload:{documentId:e,slices:t}}),Ao=(e,t)=>({type:yo,payload:{documentId:e,pages:t}}),jo={geometry:{},rects:{},slices:{},selection:null,active:!1,selecting:!1},Mo={documents:{}},$=(e,t,n)=>({...e,documents:{...e.documents,[t]:n}}),No=(e=Mo,t)=>{switch(t.type){case lo:{let{documentId:n,state:r}=t.payload;return $(e,n,r)}case uo:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i}}case fo:{let{documentId:n,page:r,geo:i}=t.payload,a=e.documents[n];return a?$(e,n,{...a,geometry:{...a.geometry,[r]:i}}):e}case po:{let{documentId:n,selection:r}=t.payload,i=e.documents[n];return i?$(e,n,{...i,selection:r,active:!0}):e}case mo:{let{documentId:n}=t.payload,r=e.documents[n];return r?$(e,n,{...r,selecting:!0,selection:null,rects:{}}):e}case ho:{let{documentId:n}=t.payload,r=e.documents[n];return r?$(e,n,{...r,selecting:!1}):e}case go:{let{documentId:n}=t.payload,r=e.documents[n];return r?$(e,n,{...r,selecting:!1,selection:null,rects:{},active:!1}):e}case _o:{let{documentId:n,rects:r}=t.payload,i=e.documents[n];return i?$(e,n,{...i,rects:r}):e}case vo:{let{documentId:n,slices:r}=t.payload,i=e.documents[n];return i?$(e,n,{...i,slices:r}):e}case yo:{let{documentId:n,pages:r}=t.payload,i=e.documents[n];if(!i)return e;let a={...i.geometry},o={...i.rects},s={...i.slices};for(let e of r)delete a[e],delete o[e],delete s[e];return $(e,n,{...i,geometry:a,rects:o,slices:s})}case bo:{let{documentId:n}=t.payload;return e.documents[n]?$(e,n,jo):e}default:return e}},Po=.5,Fo=500,Io=class extends W{constructor(e,t,n){var r;super(e,t),this.enabledModesPerDoc=/* @__PURE__ */ new Map,this.selecting=/* @__PURE__ */ new Map,this.anchor=/* @__PURE__ */ new Map,this.hasTextAnchor=/* @__PURE__ */ new Map,this.marqueePage=/* @__PURE__ */ new Map,this.pageCallbacks=/* @__PURE__ */ new Map,this.geoAccessOrder=/* @__PURE__ */ new Map,this.menuPlacement$=V((e,t)=>({documentId:e,placement:t})),this.selChange$=V((e,t)=>({documentId:e,selection:t,modeId:this.interactionManagerCapability.forDocument(e).getActiveMode()})),this.textRetrieved$=V((e,t)=>({documentId:e,text:t})),this.copyToClipboard$=V((e,t)=>({documentId:e,text:t}),{cache:!1}),this.beginSelection$=V((e,t)=>({documentId:e,page:t.page,index:t.index,modeId:t.modeId}),{cache:!1}),this.endSelection$=V((e,t)=>({documentId:e,modeId:t.modeId}),{cache:!1}),this.marqueeChange$=V((e,t)=>({documentId:e,pageIndex:t.pageIndex,rect:t.rect,modeId:t.modeId}),{cache:!1}),this.marqueeEnd$=V((e,t)=>({documentId:e,pageIndex:t.pageIndex,rect:t.rect,modeId:t.modeId}),{cache:!1}),this.emptySpaceClick$=V((e,t)=>({documentId:e,pageIndex:t.pageIndex,modeId:t.modeId}),{cache:!1}),this.viewportCapability=null,this.scrollCapability=null,this.config=n,this.menuHeight=n.menuHeight??40;let i=t.getPlugin(`interaction-manager`);if(!i)throw Error(`SelectionPlugin: InteractionManagerPlugin is required.`);this.interactionManagerCapability=i.provides(),this.viewportCapability=t.getPlugin(`viewport`)?.provides()??null,this.scrollCapability=t.getPlugin(`scroll`)?.provides()??null,this.coreStore.onAction(xn,e=>{let{documentId:t,pageIndexes:n}=e.payload,r=n.map(e=>this.getNewPageGeometryAndCache(t,e));A.all(r).wait(()=>{n.forEach(e=>{this.notifyPage(t,e)})},O)}),(r=this.viewportCapability)==null||r.onViewportChange(e=>{this.recalculateMenuPlacement(e.documentId)},{mode:`throttle`,wait:100})}onDocumentLoadingStarted(e){this.dispatch(xo(e,jo));let t=this.config.marquee?.enabled!==!1;this.enabledModesPerDoc.set(e,/* @__PURE__ */ new Map([[`pointerMode`,{enableSelection:!0,showSelectionRects:!0,enableMarquee:t,showMarqueeRects:!0}]])),this.pageCallbacks.set(e,/* @__PURE__ */ new Map),this.geoAccessOrder.set(e,[]),this.selecting.set(e,!1),this.anchor.set(e,void 0),this.hasTextAnchor.set(e,!1)}onDocumentClosed(e){this.dispatch(So(e)),this.enabledModesPerDoc.delete(e),this.pageCallbacks.delete(e),this.geoAccessOrder.delete(e),this.selecting.delete(e),this.hasTextAnchor.delete(e),this.anchor.delete(e),this.marqueePage.delete(e),this.selChange$.clearScope(e),this.textRetrieved$.clearScope(e),this.copyToClipboard$.clearScope(e),this.beginSelection$.clearScope(e),this.endSelection$.clearScope(e),this.menuPlacement$.clearScope(e),this.marqueeChange$.clearScope(e),this.marqueeEnd$.clearScope(e),this.emptySpaceClick$.clearScope(e)}async initialize(){}async destroy(){this.selChange$.clear(),this.textRetrieved$.clear(),this.copyToClipboard$.clear(),this.beginSelection$.clear(),this.endSelection$.clear(),this.menuPlacement$.clear(),this.marqueeChange$.clear(),this.marqueeEnd$.clear(),this.emptySpaceClick$.clear(),super.destroy()}buildCapability(){let e=e=>e??this.getActiveDocumentId();return{getFormattedSelection:t=>Va(this.getDocumentState(e(t))),getFormattedSelectionForPage:(t,n)=>Ba(this.getDocumentState(e(n)),t),getHighlightRectsForPage:(t,n)=>La(this.getDocumentState(e(n)),t),getHighlightRects:t=>this.getDocumentState(e(t)).rects,getBoundingRectForPage:(t,n)=>Ra(this.getDocumentState(e(n)),t),getBoundingRects:t=>za(this.getDocumentState(e(t))),getSelectedText:t=>this.getSelectedText(e(t)),setSelection:(t,n)=>this.applySelection(e(n),t),clear:t=>this.clearSelection(e(t)),copyToClipboard:t=>this.copyToClipboard(e(t)),getState:t=>this.getDocumentState(e(t)),enableForMode:(t,n,r)=>this.enabledModesPerDoc.get(e(r))?.set(t,{...n}),isEnabledForMode:(t,n)=>this.enabledModesPerDoc.get(e(n))?.has(t)??!1,setMarqueeEnabled:(t,n)=>this.setMarqueeEnabled(e(n),t),isMarqueeEnabled:t=>this.isMarqueeEnabled(e(t)),forDocument:this.createSelectionScope.bind(this),onCopyToClipboard:this.copyToClipboard$.onGlobal,onSelectionChange:this.selChange$.onGlobal,onTextRetrieved:this.textRetrieved$.onGlobal,onBeginSelection:this.beginSelection$.onGlobal,onEndSelection:this.endSelection$.onGlobal,onMarqueeChange:this.marqueeChange$.onGlobal,onMarqueeEnd:this.marqueeEnd$.onGlobal,onEmptySpaceClick:this.emptySpaceClick$.onGlobal}}createSelectionScope(e){return{getFormattedSelection:()=>Va(this.getDocumentState(e)),getFormattedSelectionForPage:t=>Ba(this.getDocumentState(e),t),getHighlightRectsForPage:t=>La(this.getDocumentState(e),t),getHighlightRects:()=>this.getDocumentState(e).rects,getBoundingRectForPage:t=>Ra(this.getDocumentState(e),t),getBoundingRects:()=>za(this.getDocumentState(e)),getSelectedText:()=>this.getSelectedText(e),setSelection:t=>this.applySelection(e,t),clear:()=>this.clearSelection(e),copyToClipboard:()=>this.copyToClipboard(e),getState:()=>this.getDocumentState(e),setMarqueeEnabled:t=>this.setMarqueeEnabled(e,t),isMarqueeEnabled:()=>this.isMarqueeEnabled(e),onSelectionChange:this.selChange$.forScope(e),onTextRetrieved:this.textRetrieved$.forScope(e),onCopyToClipboard:this.copyToClipboard$.forScope(e),onBeginSelection:this.beginSelection$.forScope(e),onEndSelection:this.endSelection$.forScope(e),onMarqueeChange:this.marqueeChange$.forScope(e),onMarqueeEnd:this.marqueeEnd$.forScope(e),onEmptySpaceClick:this.emptySpaceClick$.forScope(e)}}getDocumentState(e){let t=this.state.documents[e];if(!t)throw Error(`Selection state not found for document: ${e}`);return t}onMenuPlacement(e,t){return this.menuPlacement$.forScope(e)(t)}registerSelectionOnPage(e){var t;let{documentId:n,pageIndex:r,onRectsChange:i}=e,a=this.state.documents[n];if(!a)return this.logger.warn(`SelectionPlugin`,`RegisterFailed`,`Cannot register selection on page ${r} for document ${n}: document state not initialized.`),()=>{};(t=this.pageCallbacks.get(n))==null||t.set(r,i);let o=this.getOrLoadGeometry(n,r),s=this.interactionManagerCapability.forDocument(n),c=this.enabledModesPerDoc.get(n);i({rects:La(a,r),boundingRect:Ra(a,r)}),o.wait(e=>{let t=this.getDocumentState(n),i=t.selection;if(!i||r<i.start.page||r>i.end.page)return;let a=Wa(i,e,r);if(!a)return;let o=Ga(e,a.from,a.to);this.dispatch(Oo(n,{...t.rects,[r]:o})),this.dispatch(ko(n,{...t.slices,[r]:{start:a.from,count:a.to-a.from+1}})),this.notifyPage(n,r)},O);let l=ao({getGeometry:()=>this.getDocumentState(n).geometry[r],isEnabled:e=>{let t=c?.get(e);return t?t.enableSelection!==!1:!1},onBegin:(e,t)=>this.beginSelection(n,r,e,t),onUpdate:(e,t)=>this.updateSelection(n,r,e,t),onEnd:e=>this.endSelection(n,e),onClear:e=>this.clearSelection(n,e),isSelecting:()=>this.selecting.get(n)??!1,setCursor:e=>e?s.setCursor(`selection-text`,e,10):s.removeCursor(`selection-text`),onEmptySpaceClick:e=>this.emptySpaceClick$.emit(n,{pageIndex:r,modeId:e}),onWordSelect:(e,t)=>this.selectWord(n,r,e,t),onLineSelect:(e,t)=>this.selectLine(n,r,e,t),setHasTextAnchor:e=>this.hasTextAnchor.set(n,e),minDragDistance:this.config.minSelectionDragDistance,toleranceFactor:this.config.toleranceFactor}),u=this.interactionManagerCapability.registerAlways({scope:{type:`page`,documentId:n,pageIndex:r},handlers:l});return()=>{var e;u(),(e=this.pageCallbacks.get(n))==null||e.delete(r),o.abort({code:P.Cancelled,message:`Cleanup`})}}registerMarqueeOnPage(e){let{documentId:t,pageIndex:n,scale:r,onRectChange:i}=e;if(!this.state.documents[t])return this.logger.warn(`SelectionPlugin`,`RegisterMarqueeFailed`,`Cannot register marquee on page ${n} for document ${t}: document state not initialized.`),()=>{};let a=this.coreState.core.documents[t];if(!a||!a.document)return this.logger.warn(`SelectionPlugin`,`DocumentNotFound`,`Cannot register marquee on page ${n}: document not found`),()=>{};let o=a.document.pages[n];if(!o)return this.logger.warn(`SelectionPlugin`,`PageNotFound`,`Cannot register marquee on page ${n}: page not found`),()=>{};let s=o.size,c=this.config.marquee?.minDragPx??5,l=()=>{let e=this.interactionManagerCapability.forDocument(t).getActiveMode();return this.enabledModesPerDoc.get(t)?.get(e)?.showMarqueeRects!==!1},u=oo({pageSize:s,scale:r,minDragPx:c,isEnabled:e=>this.enabledModesPerDoc.get(t)?.get(e)?.enableMarquee===!0,isTextSelecting:()=>(this.selecting.get(t)??!1)||(this.hasTextAnchor.get(t)??!1),onBegin:(e,r)=>this.beginMarquee(t,n,e,r),onChange:(e,r)=>{this.updateMarquee(t,n,e,r),i(l()?e:null)},onEnd:(e,r)=>{this.endMarquee(t,n,e,r),i(null)},onCancel:e=>{this.cancelMarquee(t,e),i(null)}});return this.interactionManagerCapability.registerAlways({scope:{type:`page`,documentId:t,pageIndex:n},handlers:u})}getPlacementMetrics(e,t,n,r){let i=(this.scrollCapability?.forDocument(e))?.getRectPositionForPage(t,n);if(!i)return null;let a=i.origin.y-r.scrollTop,o=i.origin.y+i.size.height-r.scrollTop;return{pageIndex:t,rect:n,spaceAbove:a,spaceBelow:r.clientHeight-o,isBottomVisible:o>0&&o<=r.clientHeight,isTopVisible:a>=0&&a<r.clientHeight}}emitMenuPlacement(e,t){this.menuPlacement$.emit(e,t),t?this.interactionManagerCapability.claimPageActivity(e,`selection-menu`,t.pageIndex):this.interactionManagerCapability.releasePageActivity(e,`selection-menu`)}recalculateMenuPlacement(e){let t=this.state.documents[e];if(!t)return;if(t.selecting||t.selection===null){this.emitMenuPlacement(e,null);return}let n=za(t);if(n.length===0){this.emitMenuPlacement(e,null);return}let r=n[n.length-1];if(!this.viewportCapability||!this.scrollCapability){this.emitMenuPlacement(e,{pageIndex:r.page,rect:r.rect,spaceAbove:0,spaceBelow:1/0,suggestTop:!1,isVisible:!0});return}let i=this.viewportCapability.forDocument(e).getMetrics(),a=n[0],o=this.getPlacementMetrics(e,r.page,r.rect,i),s=this.getPlacementMetrics(e,a.page,a.rect,i);o&&o.isBottomVisible&&o.spaceBelow>this.menuHeight?this.emitMenuPlacement(e,{...o,suggestTop:!1,isVisible:!0}):s&&s.isTopVisible?this.emitMenuPlacement(e,{...s,suggestTop:!0,isVisible:!0}):o&&o.isBottomVisible?this.emitMenuPlacement(e,{...o,suggestTop:!1,isVisible:!0}):this.emitMenuPlacement(e,null)}notifyPage(e,t){let n=this.pageCallbacks.get(e)?.get(t);if(n){let r=this.getDocumentState(e),i=this.interactionManagerCapability.forDocument(e).getActiveMode(),a=this.enabledModesPerDoc.get(e)?.get(i);a&&(a.showSelectionRects??a.showRects)!==!1?n({rects:La(r,t),boundingRect:Ra(r,t)}):n({rects:[],boundingRect:null})}}notifyAllPages(e){var t;(t=this.pageCallbacks.get(e))==null||t.forEach((t,n)=>{this.notifyPage(e,n)})}getNewPageGeometryAndCache(e,t){let n=this.getCoreDocument(e);if(!n||!n.document)return F.reject({code:P.NotFound,message:`Doc Not Found`});let r=n.document.pages.find(e=>e.index===t),i=this.engine.getPageGeometry(n.document,r);return i.wait(n=>{this.dispatch(Co(e,t,n)),this.touchGeometry(e,t)},O),i}getOrLoadGeometry(e,t){let n=this.getDocumentState(e).geometry[t];return n?(this.touchGeometry(e,t),F.resolve(n)):this.getNewPageGeometryAndCache(e,t)}touchGeometry(e,t){let n=this.geoAccessOrder.get(e);if(!n)return;let r=n.indexOf(t);r>-1&&n.splice(r,1),n.push(t),this.evictGeometryIfNeeded(e)}evictGeometryIfNeeded(e){let t=this.config.maxCachedGeometries??50,n=this.geoAccessOrder.get(e);if(!n||n.length<=t)return;let r=this.pageCallbacks.get(e),i=[];for(;n.length-i.length>t;){let e=n.find(e=>!i.includes(e)&&!r?.has(e));if(e===void 0)break;i.push(e)}if(i.length!==0){for(let e of i){let t=n.indexOf(e);t>-1&&n.splice(t,1)}this.dispatch(Ao(e,i))}}beginSelection(e,t,n,r){this.selecting.set(e,!0),this.anchor.set(e,{page:t,index:n}),this.dispatch(To(e)),this.beginSelection$.emit(e,{page:t,index:n,modeId:r}),this.recalculateMenuPlacement(e)}endSelection(e,t){this.selecting.set(e,!1),this.anchor.set(e,void 0),this.dispatch(Eo(e)),this.endSelection$.emit(e,{modeId:t}),this.recalculateMenuPlacement(e)}clearSelection(e,t){this.selecting.set(e,!1),this.anchor.set(e,void 0),this.dispatch(Do(e)),this.selChange$.emit(e,null),this.emitMenuPlacement(e,null),this.notifyAllPages(e)}applySelection(e,t){if(!this.state.documents[e])return F.reject({code:P.NotFound,message:`Selection state not found for document: ${e}`});if(t===null)return this.clearSelection(e),F.resolve(void 0);let n=this.validateRange(e,t);if(n)return F.reject(n);let r=this.normalizeRange(t),i=[];for(let e=r.start.page;e<=r.end.page;e++)i.push(e);let a=i.map(t=>this.getOrLoadGeometry(e,t)),o=F.create();return A.all(a).wait(()=>{if(!this.state.documents[e]){o.reject({code:P.NotFound,message:`Selection state not found for document: ${e}`});return}let t=this.clampRangeToGeometry(e,r);if(!t){o.reject({code:P.NotFound,message:`Cannot apply selection: page(s) ${r.start.page}-${r.end.page} have no text geometry`});return}this.selecting.set(e,!1),this.anchor.set(e,void 0);let n=Object.keys(this.getDocumentState(e).rects).map(Number);this.dispatch(To(e)),this.dispatch(wo(e,t)),this.updateRectsAndSlices(e,t),this.dispatch(Eo(e)),this.selChange$.emit(e,t);let i=new Set(n);for(let e=t.start.page;e<=t.end.page;e++)i.add(e);i.forEach(t=>this.notifyPage(e,t)),this.recalculateMenuPlacement(e),o.resolve(void 0)},e=>o.reject(e.reason)),o}validateRange(e,t){let n=e=>!!e&&typeof e==`object`&&Number.isInteger(e.page)&&Number.isInteger(e.index);if(!t||typeof t!=`object`||!t.start||!t.end)return{code:P.Unknown,message:`Invalid selection range: expected { start, end }`};if(!n(t.start)||!n(t.end))return{code:P.Unknown,message:`Invalid selection range: start/end must have integer page and index`};if(t.start.index<0||t.end.index<0)return{code:P.Unknown,message:`Invalid selection range: glyph index cannot be negative`};let r=this.getCoreDocument(e)?.document?.pageCount??0,i=Math.min(t.start.page,t.end.page),a=Math.max(t.start.page,t.end.page);return i<0||a>=r?{code:P.NotFound,message:`Invalid selection range: page ${i<0?i:a} out of bounds [0, ${r})`}:null}clampRangeToGeometry(e,t){let n=this.getDocumentState(e),r=e=>{let t=n.geometry[e];if(!t||t.runs.length===0)return-1;let r=t.runs[t.runs.length-1];return r.charStart+r.glyphs.length-1},i=r(t.start.page),a=r(t.end.page);if(i<0&&a<0)return null;let o=(e,t)=>t<0?0:Math.min(Math.max(e,0),t);return{start:{page:t.start.page,index:o(t.start.index,i)},end:{page:t.end.page,index:o(t.end.index,a)}}}normalizeRange(e){let{start:t,end:n}=e;return n.page>t.page||n.page===t.page&&n.index>=t.index?{start:t,end:n}:{start:n,end:t}}selectWord(e,t,n,r){let i=this.getDocumentState(e).geometry[t];if(!i)return;let a=eo(i,n);a&&this.applyInstantSelection(e,t,a.from,a.to,r)}selectLine(e,t,n,r){let i=this.getDocumentState(e).geometry[t];if(!i)return;let a=to(i,n);a&&this.applyInstantSelection(e,t,a.from,a.to,r)}applyInstantSelection(e,t,n,r,i){let a={start:{page:t,index:n},end:{page:t,index:r}};this.selecting.set(e,!1),this.anchor.set(e,void 0),this.dispatch(To(e)),this.dispatch(wo(e,a)),this.updateRectsAndSlices(e,a),this.dispatch(Eo(e)),this.selChange$.emit(e,a),this.beginSelection$.emit(e,{page:t,index:n,modeId:i}),this.endSelection$.emit(e,{modeId:i});for(let t=a.start.page;t<=a.end.page;t++)this.notifyPage(e,t);this.recalculateMenuPlacement(e)}updateSelection(e,t,n,r){if(!this.selecting.get(e)||!this.anchor.get(e))return;let i=this.anchor.get(e),a=t>i.page||t===i.page&&n>=i.index,o={start:a?i:{page:t,index:n},end:a?{page:t,index:n}:i};this.dispatch(wo(e,o)),this.updateRectsAndSlices(e,o),this.selChange$.emit(e,o);for(let t=o.start.page;t<=o.end.page;t++)this.notifyPage(e,t)}updateRectsAndSlices(e,t){let n=this.getDocumentState(e),r={},i={};for(let e=t.start.page;e<=t.end.page;e++){let a=n.geometry[e],o=Wa(t,a,e);o&&(r[e]=Ga(a,o.from,o.to),i[e]={start:o.from,count:o.to-o.from+1})}this.dispatch(Oo(e,r)),this.dispatch(ko(e,i))}getSelectedText(e){if(!this.checkPermission(e,N.CopyContents))return this.logger.debug(`SelectionPlugin`,`GetSelectedText`,`Cannot get selected text: document ${e} lacks CopyContents permission`),F.reject({code:P.Security,message:`Document lacks CopyContents permission`});let t=this.getCoreDocument(e),n=this.getDocumentState(e);if(!t?.document||!n.selection)return F.reject({code:P.NotFound,message:`Doc Not Found or No Selection`});let r=n.selection,i=[];for(let e=r.start.page;e<=r.end.page;e++){let t=n.slices[e];t&&i.push({pageIndex:e,charIndex:t.start,charCount:t.count})}if(i.length===0)return F.resolve([]);let a=this.engine.getTextSlices(t.document,i);return a.wait(t=>{this.textRetrieved$.emit(e,t)},O),a}copyToClipboard(e){this.checkPermission(e,N.CopyContents)?this.getSelectedText(e).wait(t=>{this.copyToClipboard$.emit(e,t.join(`
|
|
36
|
+
d(),we={name:`printer`,size:24,node:[[`path`,{d:`M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2`,key:`143wyd`}],[`path`,{d:`M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6`,key:`1itne7`}],[`rect`,{x:`6`,y:`14`,width:`12`,height:`8`,rx:`1`,key:`1ue0tg`}]]},we.node,Te=l(we)})))()}var De=/* @__PURE__ */ r({randomBytes:()=>Oe});function Oe(e){let t=new Uint8Array(e);for(let n=0;n<e;n+=65536)globalThis.crypto.getRandomValues(t.subarray(n,n+65536));return t}t((()=>{}));function ke(e){return{x:Math.floor(e.x),y:Math.floor(e.y)}}function Ae(e){return{width:Math.ceil(e.width),height:Math.ceil(e.height)}}function je(e){return{origin:ke(e.origin),size:Ae(e.size)}}function Me(e){let{width:t,height:n}=e;return{width:n,height:t}}function Ne(e,t,n){return e=t%2==0?e:Me(e),{width:e.width*n,height:e.height*n}}function Pe(e){let t=[e.p1.x,e.p2.x,e.p3.x,e.p4.x],n=[e.p1.y,e.p2.y,e.p3.y,e.p4.y];return{origin:{x:Math.min(...t),y:Math.min(...n)},size:{width:Math.max(...t)-Math.min(...t),height:Math.max(...n)-Math.min(...n)}}}function Fe(e){return{p1:{x:e.origin.x,y:e.origin.y},p2:{x:e.origin.x+e.size.width,y:e.origin.y},p3:{x:e.origin.x+e.size.width,y:e.origin.y+e.size.height},p4:{x:e.origin.x,y:e.origin.y+e.size.height}}}function Ie(e,t,n){let r=t.x,i=t.y;switch(n){case 0:r=t.x,i=t.y;break;case 1:r=e.height-t.y,i=t.x;break;case 2:r=e.width-t.x,i=e.height-t.y;break;case 3:r=t.y,i=e.width-t.x}return{x:r,y:i}}function Le(e,t){return{x:e.x*t,y:e.y*t}}function Re(e,t,n,r){return Le(Ie(e,t,n),r)}function ze(e,t,n,r){return Le(Ie(e,t,(4-n)%4),1/r)}function Be(e,t,n){let r=t.origin.x,i=t.origin.y,a=t.size;switch(n){case 0:break;case 1:r=e.height-t.origin.y-t.size.height,i=t.origin.x,a=Me(t.size);break;case 2:r=e.width-t.origin.x-t.size.width,i=e.height-t.origin.y-t.size.height;break;case 3:r=t.origin.y,i=e.width-t.origin.x-t.size.width,a=Me(t.size)}return{origin:{x:r,y:i},size:{width:a.width,height:a.height}}}function Ve(e,t){return{origin:{x:e.origin.x*t,y:e.origin.y*t},size:{width:e.size.width*t,height:e.size.height*t}}}function He(e,t,n,r){return Ve(Be(e,t,n),r)}function Ue(e){if(e.length===0)return null;let t=e[0].origin.x,n=e[0].origin.y,r=e[0].origin.x+e[0].size.width,i=e[0].origin.y+e[0].size.height;for(let a of e)t=Math.min(t,a.origin.x),n=Math.min(n,a.origin.y),r=Math.max(r,a.origin.x+a.size.width),i=Math.max(i,a.origin.y+a.size.height);return{origin:{x:t,y:n},size:{width:r-t,height:i-n}}}function We(e,t,n,r){let i=e.origin.x,a=e.origin.y,o=e.size.width,s=e.size.height,c=n/o,l=r/s,u=n/s,d=r/o;switch(t){case 0:return{a:c,b:0,c:0,d:l,e:-c*i,f:-l*a};case 3:return{a:0,b:-d,c:u,d:0,e:-u*a,f:d*(i+o)};case 2:return{a:-c,b:0,c:0,d:-l,e:c*(i+o),f:l*(a+s)};case 1:return{a:0,b:d,c:-u,d:0,e:u*(a+s),f:-d*i}}}function Ge(e){return e.replace(ht,``)}function Ke(e){return Object.keys(jt).filter(t=>(e&t)!==0).map(e=>jt[e])}function qe(e){return e.reduce((e,t)=>e|Mt[t],0)}function Je(e){let t=e=>Math.max(0,Math.min(255,e)),n=e=>t(e).toString(16).padStart(2,`0`);return`#${n(e.red)}${n(e.green)}${n(e.blue)}`}function Ye(e){/^#?[0-9a-f]{3}$/i.test(e)&&(e=e.replace(/^#?([0-9a-f])([0-9a-f])([0-9a-f])$/i,`#$1$1$2$2$3$3`).toLowerCase());let[,t,n,r]=/^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(e)??(()=>{throw Error(`Invalid hex colour: "${e}"`)})();return{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16)}}function Xe(e){return(e=>Math.max(0,Math.min(255,e)))(e)/255}function Ze(e){return((e,t=255)=>Math.max(0,Math.min(t,e)))(Math.round(e*255))}function Qe(e){if(!e?.startsWith(`D:`)||e.length<16)return;let t=+e.slice(2,6),n=e.slice(6,8)-1,r=+e.slice(8,10),i=+e.slice(10,12),a=+e.slice(12,14),o=+e.slice(14,16);return new Date(Date.UTC(t,n,r,i,a,o))}function $e(e=/* @__PURE__ */ new Date){let t=(e,t=2)=>e.toString().padStart(t,`0`);return`D:${e.getUTCFullYear()}${t(e.getUTCMonth()+1)}${t(e.getUTCDate())}${t(e.getUTCHours())}${t(e.getUTCMinutes())}${t(e.getUTCSeconds())}`}function et(e){if(e instanceof st)return{type:`noop`};if(e instanceof ct)return{type:`console`};if(e instanceof ut)return{type:`perf`};if(e instanceof lt){let t=e;return{type:`level`,config:{level:t.level,logger:et(t.logger)}}}return e instanceof dt?{type:`all`,config:{loggers:e.loggers.map(et)}}:{type:`noop`}}function tt(t){if(typeof globalThis.crypto?.getRandomValues==`function`)return globalThis.crypto.getRandomValues(new Uint8Array(t));if(typeof e==`function`)try{let{randomBytes:e}=n(De);return e(t)}catch{}let r=new Uint8Array(t);for(let e=0;e<t;e++)r[e]=Math.floor(Math.random()*256);return r}function nt(){if(typeof globalThis.crypto?.randomUUID==`function`)return globalThis.crypto.randomUUID();let e=tt(16);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function rt(e){if(e.byteLength<4)return null;let t=new Uint8Array(e);return t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71?it(e):t[0]===255&&t[1]===216&&t[2]===255?at(e):t[0]===37&&t[1]===80&&t[2]===68&&t[3]===70?{mimeType:`application/pdf`}:null}function it(e){if(e.byteLength<24)return null;let t=new DataView(e),n=t.getUint32(16),r=t.getUint32(20);return n===0||r===0?null:{mimeType:`image/png`,width:n,height:r}}function at(e){let t=new Uint8Array(e),n=2;for(;n+4<t.byteLength;){if(t[n]!==255)return null;let r=t[n+1];if(r>=192&&r<=195){if(n+9>t.byteLength)return null;let r=new DataView(e,n+5),i=r.getUint16(0),a=r.getUint16(2);return a===0||i===0?null:{mimeType:`image/jpeg`,width:a,height:i}}if(r===216||r===217)n+=2;else if(r===255)n+=1;else{let e=t[n+2]<<8|t[n+3];n+=2+e}}return null}function O(){}var ot,st,ct,lt,ut,dt,k,ft,pt,A,mt,ht,gt,_t,j,vt,M,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,N,Lt,Rt,P,F,zt,Bt,Vt,Ht,Ut,Wt,Gt;function I(){return(I=t((()=>{ot=/* @__PURE__ */ (e=>(e[e.Degree0=0]=`Degree0`,e[e.Degree90=1]=`Degree90`,e[e.Degree180=2]=`Degree180`,e[e.Degree270=3]=`Degree270`,e))(ot||{}),st=class{isEnabled(){return!1}debug(){}info(){}warn(){}error(){}perf(){}},ct=class{isEnabled(){return!0}debug(e,t,...n){console.debug(`${e}.${t}`,...n)}info(e,t,...n){console.info(`${e}.${t}`,...n)}warn(e,t,...n){console.warn(`${e}.${t}`,...n)}error(e,t,...n){console.error(`${e}.${t}`,...n)}perf(e,t,n,r,...i){console.info(`${e}.${t}.${n}.${r}`,...i)}},lt=class{constructor(e,t){this.logger=e,this.level=t}isEnabled(e){return this.level<={debug:0,info:1,warn:2,error:3}[e]}debug(e,t,...n){this.level<=0&&this.logger.debug(e,t,...n)}info(e,t,...n){this.level<=1&&this.logger.info(e,t,...n)}warn(e,t,...n){this.level<=2&&this.logger.warn(e,t,...n)}error(e,t,...n){this.level<=3&&this.logger.error(e,t,...n)}perf(e,t,n,r,...i){this.logger.perf(e,t,n,r,...i)}},ut=class{constructor(){this.marks=/* @__PURE__ */ new Map}isEnabled(){return!1}debug(e,t,...n){}info(e,t,...n){}warn(e,t,...n){}error(e,t,...n){}perf(e,t,n,r,i,...a){let o=`${e}.${t}.${n}.${r}.${i}`;switch(r){case`Begin`:globalThis.performance.mark(o,{detail:a}),this.marks.set(`${e}.${t}.${n}.${i}`,Date.now());break;case`End`:globalThis.performance.mark(o,{detail:a});let r=`${e}.${t}.${n}.Measure.${i}`,s=`${e}.${t}.${n}.Begin.${i}`;globalThis.performance.measure(r,s,o);let c=this.marks.get(`${e}.${t}.${n}.${i}`);if(c){let r=Date.now()-c;console.info(`⏱️ ${e}.${t}.${n}.${i}: ${r}ms`),this.marks.delete(`${e}.${t}.${n}.${i}`)}}}},dt=class{constructor(e){this.loggers=e}isEnabled(e){return this.loggers.some(t=>t.isEnabled(e))}debug(e,t,...n){for(let r of this.loggers)r.debug(e,t,...n)}info(e,t,...n){for(let r of this.loggers)r.info(e,t,...n)}warn(e,t,...n){for(let r of this.loggers)r.warn(e,t,...n)}error(e,t,...n){for(let r of this.loggers)r.error(e,t,...n)}perf(e,t,n,r,...i){for(let a of this.loggers)a.perf(e,t,n,r,...i)}},k=/* @__PURE__ */ (e=>(e[e.Pending=0]=`Pending`,e[e.Resolved=1]=`Resolved`,e[e.Rejected=2]=`Rejected`,e[e.Aborted=3]=`Aborted`,e))(k||{}),ft=class extends Error{constructor(e){super(`Task aborted: ${JSON.stringify(e)}`),this.name=`TaskAbortedError`,this.reason=e}},pt=class extends Error{constructor(e){super(`Task rejected: ${JSON.stringify(e)}`),this.name=`TaskRejectedError`,this.reason=e}},A=class e{constructor(){this.state={stage:0},this.resolvedCallbacks=[],this.rejectedCallbacks=[],this._promise=null,this.progressCbs=[]}toPromise(){return this._promise||=new Promise((e,t)=>{this.wait(t=>e(t),e=>{e.type===`abort`?t(new ft(e.reason)):t(new pt(e.reason))})}),this._promise}wait(e,t){switch(this.state.stage){case 0:this.resolvedCallbacks.push(e),this.rejectedCallbacks.push(t);break;case 1:e(this.state.result);break;case 2:t({type:`reject`,reason:this.state.reason});break;case 3:t({type:`abort`,reason:this.state.reason})}}resolve(e){if(this.state.stage===0){this.state={stage:1,result:e};for(let t of this.resolvedCallbacks)try{t(e)}catch{}this.resolvedCallbacks=[],this.rejectedCallbacks=[]}}reject(e){if(this.state.stage===0){this.state={stage:2,reason:e};for(let t of this.rejectedCallbacks)try{t({type:`reject`,reason:e})}catch{}this.resolvedCallbacks=[],this.rejectedCallbacks=[]}}abort(e){if(this.state.stage===0){this.state={stage:3,reason:e};for(let t of this.rejectedCallbacks)try{t({type:`abort`,reason:e})}catch{}this.resolvedCallbacks=[],this.rejectedCallbacks=[]}}fail(e){e.type===`abort`?this.abort(e.reason):this.reject(e.reason)}onProgress(e){this.progressCbs.push(e)}progress(e){for(let t of this.progressCbs)t(e)}static all(t){let n=new e;if(t.length===0)return n.resolve([]),n;let r=Array(t.length),i=0,a=!1;return t.forEach((e,o)=>{e.wait(e=>{a||(r[o]=e,i++,i===t.length&&(a=!0,n.resolve(r)))},e=>{a||(a=!0,e.type===`abort`?n.abort(e.reason):n.reject(e.reason))})}),n}static allSettled(t){let n=new e;if(t.length===0)return n.resolve([]),n;let r=Array(t.length),i=0;return t.forEach((e,a)=>{e.wait(e=>{r[a]={status:`resolved`,value:e},i++,i===t.length&&n.resolve(r)},e=>{r[a]={status:e.type===`abort`?`aborted`:`rejected`,reason:e.reason},i++,i===t.length&&n.resolve(r)})}),n}static race(t){let n=new e;if(t.length===0)return n.reject(`No tasks provided`),n;let r=!1;return t.forEach(e=>{e.wait(e=>{r||(r=!0,n.resolve(e))},e=>{r||(r=!0,e.type===`abort`?n.abort(e.reason):n.reject(e.reason))})}),n}static withProgress(t,n){let r=e.all(t);if(n){let e=0;t.forEach(r=>{r.wait(()=>{e++,n(e,t.length)},()=>{e++,n(e,t.length)})})}return r}},mt=Object.freeze([``,``,``,``,``,``]),ht=RegExp(`[${mt.join(``)}]`,`g`),gt=/* @__PURE__ */ (e=>(e[e.Unknown=0]=`Unknown`,e[e.XYZ=1]=`XYZ`,e[e.FitPage=2]=`FitPage`,e[e.FitHorizontal=3]=`FitHorizontal`,e[e.FitVertical=4]=`FitVertical`,e[e.FitRectangle=5]=`FitRectangle`,e[e.FitBoundingBox=6]=`FitBoundingBox`,e[e.FitBoundingBoxHorizontal=7]=`FitBoundingBoxHorizontal`,e[e.FitBoundingBoxVertical=8]=`FitBoundingBoxVertical`,e))(gt||{}),_t=/* @__PURE__ */ (e=>(e[e.NotSet=0]=`NotSet`,e[e.True=1]=`True`,e[e.False=2]=`False`,e[e.Unknown=3]=`Unknown`,e))(_t||{}),j=/* @__PURE__ */ (e=>(e[e.Unknown=-1]=`Unknown`,e[e.Courier=0]=`Courier`,e[e.Courier_Bold=1]=`Courier_Bold`,e[e.Courier_BoldOblique=2]=`Courier_BoldOblique`,e[e.Courier_Oblique=3]=`Courier_Oblique`,e[e.Helvetica=4]=`Helvetica`,e[e.Helvetica_Bold=5]=`Helvetica_Bold`,e[e.Helvetica_BoldOblique=6]=`Helvetica_BoldOblique`,e[e.Helvetica_Oblique=7]=`Helvetica_Oblique`,e[e.Times_Roman=8]=`Times_Roman`,e[e.Times_Bold=9]=`Times_Bold`,e[e.Times_BoldItalic=10]=`Times_BoldItalic`,e[e.Times_Italic=11]=`Times_Italic`,e[e.Symbol=12]=`Symbol`,e[e.ZapfDingbats=13]=`ZapfDingbats`,e))(j||{}),vt=/* @__PURE__ */ (e=>(e[e.Left=0]=`Left`,e[e.Center=1]=`Center`,e[e.Right=2]=`Right`,e))(vt||{}),M=/* @__PURE__ */ (e=>(e[e.Normal=0]=`Normal`,e[e.Multiply=1]=`Multiply`,e[e.Screen=2]=`Screen`,e[e.Overlay=3]=`Overlay`,e[e.Darken=4]=`Darken`,e[e.Lighten=5]=`Lighten`,e[e.ColorDodge=6]=`ColorDodge`,e[e.ColorBurn=7]=`ColorBurn`,e[e.HardLight=8]=`HardLight`,e[e.SoftLight=9]=`SoftLight`,e[e.Difference=10]=`Difference`,e[e.Exclusion=11]=`Exclusion`,e[e.Hue=12]=`Hue`,e[e.Saturation=13]=`Saturation`,e[e.Color=14]=`Color`,e[e.Luminosity=15]=`Luminosity`,e))(M||{}),yt=/* @__PURE__ */ (e=>(e[e.Contain=0]=`Contain`,e[e.Cover=1]=`Cover`,e[e.Stretch=2]=`Stretch`,e))(yt||{}),bt=/* @__PURE__ */ (e=>(e[e.Unsupported=0]=`Unsupported`,e[e.Goto=1]=`Goto`,e[e.RemoteGoto=2]=`RemoteGoto`,e[e.URI=3]=`URI`,e[e.LaunchAppOrOpenFile=4]=`LaunchAppOrOpenFile`,e))(bt||{}),xt=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.TEXT=1]=`TEXT`,e[e.LINK=2]=`LINK`,e[e.FREETEXT=3]=`FREETEXT`,e[e.LINE=4]=`LINE`,e[e.SQUARE=5]=`SQUARE`,e[e.CIRCLE=6]=`CIRCLE`,e[e.POLYGON=7]=`POLYGON`,e[e.POLYLINE=8]=`POLYLINE`,e[e.HIGHLIGHT=9]=`HIGHLIGHT`,e[e.UNDERLINE=10]=`UNDERLINE`,e[e.SQUIGGLY=11]=`SQUIGGLY`,e[e.STRIKEOUT=12]=`STRIKEOUT`,e[e.STAMP=13]=`STAMP`,e[e.CARET=14]=`CARET`,e[e.INK=15]=`INK`,e[e.POPUP=16]=`POPUP`,e[e.FILEATTACHMENT=17]=`FILEATTACHMENT`,e[e.SOUND=18]=`SOUND`,e[e.MOVIE=19]=`MOVIE`,e[e.WIDGET=20]=`WIDGET`,e[e.SCREEN=21]=`SCREEN`,e[e.PRINTERMARK=22]=`PRINTERMARK`,e[e.TRAPNET=23]=`TRAPNET`,e[e.WATERMARK=24]=`WATERMARK`,e[e.THREED=25]=`THREED`,e[e.RICHMEDIA=26]=`RICHMEDIA`,e[e.XFAWIDGET=27]=`XFAWIDGET`,e[e.REDACT=28]=`REDACT`,e))(xt||{}),St=/* @__PURE__ */ (e=>(e[e.Normal=0]=`Normal`,e[e.Rollover=1]=`Rollover`,e[e.Down=2]=`Down`,e))(St||{}),Ct=/* @__PURE__ */ (e=>(e[e.Unknown=-1]=`Unknown`,e[e.Comment=0]=`Comment`,e[e.Key=1]=`Key`,e[e.Note=2]=`Note`,e[e.Help=3]=`Help`,e[e.NewParagraph=4]=`NewParagraph`,e[e.Paragraph=5]=`Paragraph`,e[e.Insert=6]=`Insert`,e[e.Graph=7]=`Graph`,e[e.PushPin=8]=`PushPin`,e[e.Paperclip=9]=`Paperclip`,e[e.Tag=10]=`Tag`,e[e.Speaker=11]=`Speaker`,e[e.Mic=12]=`Mic`,e[e.Approved=13]=`Approved`,e[e.Experimental=14]=`Experimental`,e[e.NotApproved=15]=`NotApproved`,e[e.AsIs=16]=`AsIs`,e[e.Expired=17]=`Expired`,e[e.NotForPublicRelease=18]=`NotForPublicRelease`,e[e.Confidential=19]=`Confidential`,e[e.Final=20]=`Final`,e[e.Sold=21]=`Sold`,e[e.Departmental=22]=`Departmental`,e[e.ForComment=23]=`ForComment`,e[e.TopSecret=24]=`TopSecret`,e[e.Draft=25]=`Draft`,e[e.ForPublicRelease=26]=`ForPublicRelease`,e[e.Completed=27]=`Completed`,e[e.Void=28]=`Void`,e[e.PreliminaryResults=29]=`PreliminaryResults`,e[e.InformationOnly=30]=`InformationOnly`,e[e.Rejected=31]=`Rejected`,e[e.Witness=32]=`Witness`,e[e.InitialHere=33]=`InitialHere`,e[e.SignHere=34]=`SignHere`,e[e.Accepted=35]=`Accepted`,e[e.Custom=36]=`Custom`,e[e.Image=37]=`Image`,e))(Ct||{}),wt=/* @__PURE__ */ (e=>(e[e.None=0]=`None`,e[e.Square=1]=`Square`,e[e.Circle=2]=`Circle`,e[e.Diamond=3]=`Diamond`,e[e.OpenArrow=4]=`OpenArrow`,e[e.ClosedArrow=5]=`ClosedArrow`,e[e.Butt=6]=`Butt`,e[e.ROpenArrow=7]=`ROpenArrow`,e[e.RClosedArrow=8]=`RClosedArrow`,e[e.Slash=9]=`Slash`,e[e.Unknown=10]=`Unknown`,e))(wt||{}),Tt=/* @__PURE__ */ (e=>(e[e.Unknown=0]=`Unknown`,e[e.Reply=1]=`Reply`,e[e.Group=2]=`Group`,e))(Tt||{}),Et=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.PUSHBUTTON=1]=`PUSHBUTTON`,e[e.CHECKBOX=2]=`CHECKBOX`,e[e.RADIOBUTTON=3]=`RADIOBUTTON`,e[e.COMBOBOX=4]=`COMBOBOX`,e[e.LISTBOX=5]=`LISTBOX`,e[e.TEXTFIELD=6]=`TEXTFIELD`,e[e.SIGNATURE=7]=`SIGNATURE`,e[e.XFA=8]=`XFA`,e[e.XFA_CHECKBOX=9]=`XFA_CHECKBOX`,e[e.XFA_COMBOBOX=10]=`XFA_COMBOBOX`,e[e.XFA_IMAGEFIELD=11]=`XFA_IMAGEFIELD`,e[e.XFA_LISTBOX=12]=`XFA_LISTBOX`,e[e.XFA_PUSHBUTTON=13]=`XFA_PUSHBUTTON`,e[e.XFA_SIGNATURE=14]=`XFA_SIGNATURE`,e[e.XFA_TEXTFIELD=15]=`XFA_TEXTFIELD`,e))(Et||{}),Dt=/* @__PURE__ */ (e=>(e[e.Color=0]=`Color`,e[e.InteriorColor=1]=`InteriorColor`,e[e.OverlayColor=2]=`OverlayColor`,e[e.TextColor=3]=`TextColor`,e))(Dt||{}),Ot=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.SOLID=1]=`SOLID`,e[e.DASHED=2]=`DASHED`,e[e.BEVELED=3]=`BEVELED`,e[e.INSET=4]=`INSET`,e[e.UNDERLINE=5]=`UNDERLINE`,e[e.CLOUDY=6]=`CLOUDY`,e))(Ot||{}),kt=/* @__PURE__ */ (e=>(e[e.NONE=0]=`NONE`,e[e.READONLY=1]=`READONLY`,e[e.REQUIRED=2]=`REQUIRED`,e[e.NOEXPORT=4]=`NOEXPORT`,e[e.TEXT_MULTIPLINE=4096]=`TEXT_MULTIPLINE`,e[e.TEXT_PASSWORD=8192]=`TEXT_PASSWORD`,e[e.TEXT_FILESELECT=1048576]=`TEXT_FILESELECT`,e[e.TEXT_DONOTSPELLCHECK=4194304]=`TEXT_DONOTSPELLCHECK`,e[e.TEXT_DONOTSCROLL=8388608]=`TEXT_DONOTSCROLL`,e[e.TEXT_COMB=16777216]=`TEXT_COMB`,e[e.TEXT_RICHTEXT=33554432]=`TEXT_RICHTEXT`,e[e.BUTTON_NOTOGGLETOOFF=16384]=`BUTTON_NOTOGGLETOOFF`,e[e.BUTTON_RADIO=32768]=`BUTTON_RADIO`,e[e.BUTTON_PUSHBUTTON=65536]=`BUTTON_PUSHBUTTON`,e[e.BUTTON_RADIOSINUNISON=33554432]=`BUTTON_RADIOSINUNISON`,e[e.CHOICE_COMBO=131072]=`CHOICE_COMBO`,e[e.CHOICE_EDIT=262144]=`CHOICE_EDIT`,e[e.CHOICE_SORT=524288]=`CHOICE_SORT`,e[e.CHOICE_MULTL_SELECT=2097152]=`CHOICE_MULTL_SELECT`,e[e.CHOICE_DONOTSPELLCHECK=4194304]=`CHOICE_DONOTSPELLCHECK`,e[e.CHOICE_COMMITONSELCHANGE=67108864]=`CHOICE_COMMITONSELCHANGE`,e))(kt||{}),At=/* @__PURE__ */ (e=>(e[e.UNKNOWN=0]=`UNKNOWN`,e[e.TEXT=1]=`TEXT`,e[e.PATH=2]=`PATH`,e[e.IMAGE=3]=`IMAGE`,e[e.SHADING=4]=`SHADING`,e[e.FORM=5]=`FORM`,e))(At||{}),jt=Object.freeze({1:`invisible`,2:`hidden`,4:`print`,8:`noZoom`,16:`noRotate`,32:`noView`,64:`readOnly`,128:`locked`,256:`toggleNoView`,512:`lockedContents`}),Mt=Object.entries(jt).reduce((e,[t,n])=>(e[n]=Number(t),e),{}),Nt=/* @__PURE__ */ (e=>(e[e.KEY_STROKE=12]=`KEY_STROKE`,e[e.FORMAT=13]=`FORMAT`,e[e.VALIDATE=14]=`VALIDATE`,e[e.CALCULATE=15]=`CALCULATE`,e))(Nt||{}),Pt=/* @__PURE__ */ (e=>(e.Keystroke=`keystroke`,e.Format=`format`,e.Validate=`validate`,e.Calculate=`calculate`,e))(Pt||{}),Ft=/* @__PURE__ */ (e=>(e.DocumentNamed=`document_named`,e.WidgetKeystroke=`widget_keystroke`,e.WidgetFormat=`widget_format`,e.WidgetValidate=`widget_validate`,e.WidgetCalculate=`widget_calculate`,e))(Ft||{}),It=/* @__PURE__ */ (e=>(e[e.Create=0]=`Create`,e[e.Read=1]=`Read`,e[e.Update=2]=`Update`,e[e.Delete=3]=`Delete`,e))(It||{}),N=/* @__PURE__ */ (e=>(e[e.Print=4]=`Print`,e[e.ModifyContents=8]=`ModifyContents`,e[e.CopyContents=16]=`CopyContents`,e[e.ModifyAnnotations=32]=`ModifyAnnotations`,e[e.FillForms=256]=`FillForms`,e[e.ExtractForAccessibility=512]=`ExtractForAccessibility`,e[e.AssembleDocument=1024]=`AssembleDocument`,e[e.PrintHighQuality=2048]=`PrintHighQuality`,e[e.AllowAll=3900]=`AllowAll`,e))(N||{}),Lt=class extends Error{constructor(e,t){let n=e.map(e=>N[e]).join(`, `);super(`Permission denied. Required: ${n}`),this.requiredFlags=e,this.currentPermissions=t,this.name=`PermissionDeniedError`}},Rt=/* @__PURE__ */ (e=>(e[e.Display=0]=`Display`,e[e.Print=1]=`Print`,e))(Rt||{}),P=/* @__PURE__ */ (e=>(e[e.Ok=0]=`Ok`,e[e.Unknown=1]=`Unknown`,e[e.NotFound=2]=`NotFound`,e[e.WrongFormat=3]=`WrongFormat`,e[e.Password=4]=`Password`,e[e.Security=5]=`Security`,e[e.PageError=6]=`PageError`,e[e.XFALoad=7]=`XFALoad`,e[e.XFALayout=8]=`XFALayout`,e[e.Cancelled=9]=`Cancelled`,e[e.Initialization=10]=`Initialization`,e[e.NotReady=11]=`NotReady`,e[e.NotSupport=12]=`NotSupport`,e[e.LoadDoc=13]=`LoadDoc`,e[e.DocNotOpen=14]=`DocNotOpen`,e[e.CantCloseDoc=15]=`CantCloseDoc`,e[e.CantCreateNewDoc=16]=`CantCreateNewDoc`,e[e.CantImportPages=17]=`CantImportPages`,e[e.CantCreateAnnot=18]=`CantCreateAnnot`,e[e.CantSetAnnotRect=19]=`CantSetAnnotRect`,e[e.CantSetAnnotContent=20]=`CantSetAnnotContent`,e[e.CantRemoveInkList=21]=`CantRemoveInkList`,e[e.CantAddInkStoke=22]=`CantAddInkStoke`,e[e.CantReadAttachmentSize=23]=`CantReadAttachmentSize`,e[e.CantReadAttachmentContent=24]=`CantReadAttachmentContent`,e[e.CantFocusAnnot=25]=`CantFocusAnnot`,e[e.CantSelectText=26]=`CantSelectText`,e[e.CantSelectOption=27]=`CantSelectOption`,e[e.CantCheckField=28]=`CantCheckField`,e[e.CantSetAnnotString=29]=`CantSetAnnotString`,e[e.CantDeletePage=30]=`CantDeletePage`,e))(P||{}),F=class{static create(){return new A}static resolve(e){let t=new A;return t.resolve(e),t}static reject(e){let t=new A;return t.reject(e),t}static abort(e){let t=new A;return t.reject(e),t}},zt=Object.freeze([{id:vt.Left,label:`Left`,css:`left`},{id:vt.Center,label:`Center`,css:`center`},{id:vt.Right,label:`Right`,css:`right`}]),zt.reduce((e,t)=>(e[t.id]=t,e),{}),zt.reduce((e,t)=>(e[t.css]=t.id,e),{}),zt.map(e=>({value:e.id,label:e.label})),Bt=/* @__PURE__ */ (e=>(e.Courier=`Courier`,e.Helvetica=`Helvetica`,e.Times=`Times`,e.Symbol=`Symbol`,e.ZapfDingbats=`ZapfDingbats`,e.Unknown=`Unknown`,e))(Bt||{}),j.Helvetica,Vt={id:j.Helvetica,family:`Helvetica`,bold:!1,italic:!1,label:`Helvetica`,css:`Helvetica, Arial, sans-serif`},Ht=Object.freeze([{id:j.Courier,family:`Courier`,bold:!1,italic:!1,label:`Courier`,css:`Courier, monospace`},{id:j.Courier_Bold,family:`Courier`,bold:!0,italic:!1,label:`Courier Bold`,css:`Courier, monospace`},{id:j.Courier_BoldOblique,family:`Courier`,bold:!0,italic:!0,label:`Courier Bold Oblique`,css:`Courier, monospace`},{id:j.Courier_Oblique,family:`Courier`,bold:!1,italic:!0,label:`Courier Oblique`,css:`Courier, monospace`},Vt,{id:j.Helvetica_Bold,family:`Helvetica`,bold:!0,italic:!1,label:`Helvetica Bold`,css:`Helvetica, Arial, sans-serif`},{id:j.Helvetica_BoldOblique,family:`Helvetica`,bold:!0,italic:!0,label:`Helvetica Bold Oblique`,css:`Helvetica, Arial, sans-serif`},{id:j.Helvetica_Oblique,family:`Helvetica`,bold:!1,italic:!0,label:`Helvetica Oblique`,css:`Helvetica, Arial, sans-serif`},{id:j.Times_Roman,family:`Times`,bold:!1,italic:!1,label:`Times Roman`,css:`"Times New Roman", Times, serif`},{id:j.Times_Bold,family:`Times`,bold:!0,italic:!1,label:`Times Bold`,css:`"Times New Roman", Times, serif`},{id:j.Times_BoldItalic,family:`Times`,bold:!0,italic:!0,label:`Times Bold Italic`,css:`"Times New Roman", Times, serif`},{id:j.Times_Italic,family:`Times`,bold:!1,italic:!0,label:`Times Italic`,css:`"Times New Roman", Times, serif`},{id:j.Symbol,family:`Symbol`,bold:!1,italic:!1,label:`Symbol`,css:`Symbol, serif`},{id:j.ZapfDingbats,family:`ZapfDingbats`,bold:!1,italic:!1,label:`Zapf Dingbats`,css:`ZapfDingbats, serif`}]),Ht.reduce((e,t)=>(e[t.id]=t,e),{}),Ut=/* @__PURE__ */ new Map;for(let e of Ht)Ut.set(`${e.family}_${e.bold}_${e.italic}`,e.id);Object.values(Bt).filter(e=>e!==`Unknown`).map(e=>({value:e,label:e})),[...new Set(Ht.map(e=>e.family))],Wt=Object.freeze([{id:M.Normal,label:`Normal`,css:`normal`},{id:M.Multiply,label:`Multiply`,css:`multiply`},{id:M.Screen,label:`Screen`,css:`screen`},{id:M.Overlay,label:`Overlay`,css:`overlay`},{id:M.Darken,label:`Darken`,css:`darken`},{id:M.Lighten,label:`Lighten`,css:`lighten`},{id:M.ColorDodge,label:`Color Dodge`,css:`color-dodge`},{id:M.ColorBurn,label:`Color Burn`,css:`color-burn`},{id:M.HardLight,label:`Hard Light`,css:`hard-light`},{id:M.SoftLight,label:`Soft Light`,css:`soft-light`},{id:M.Difference,label:`Difference`,css:`difference`},{id:M.Exclusion,label:`Exclusion`,css:`exclusion`},{id:M.Hue,label:`Hue`,css:`hue`},{id:M.Saturation,label:`Saturation`,css:`saturation`},{id:M.Color,label:`Color`,css:`color`},{id:M.Luminosity,label:`Luminosity`,css:`luminosity`}]),Wt.reduce((e,t)=>(e[t.id]=t,e),{}),Wt.reduce((e,t)=>(e[t.css]=t.id,e),{}),Wt.map(e=>({value:e.id,label:e.label})),Wt.map(e=>e.id),Gt=class e extends A{constructor(e={}){super(),this.children=/* @__PURE__ */ new Map,this.childResults=[],this.completedCount=0,this.expectedCount=0,this.isFinalized=!1,this.config={aggregate:e.aggregate??(e=>e),onChildComplete:e.onChildComplete??(()=>{}),failFast:e.failFast??!0}}addChild(e,t){if(this.state.stage!==k.Pending)return this.state.stage===k.Aborted&&e.abort(this.state.reason),this;let n=t??this.expectedCount;return this.expectedCount=Math.max(this.expectedCount,n+1),this.children.set(e,n),e.wait(t=>this.handleChildSuccess(e,t,n),t=>this.handleChildError(e,t,n)),this}finalize(){return this.isFinalized||(this.isFinalized=!0,this.expectedCount===0&&this.resolve(this.config.aggregate([]))),this}handleChildSuccess(e,t,n){if(this.state.stage!==k.Pending)return;this.childResults[n]=t,this.completedCount++,this.children.delete(e);let r=this.config.onChildComplete(this.completedCount,this.expectedCount,t,n);if(r!==void 0&&this.progress(r),this.completedCount===this.expectedCount){let e=this.config.aggregate(this.childResults);this.resolve(e)}}handleChildError(e,t,n){if(this.state.stage===k.Pending){if(this.children.delete(e),this.config.failFast){for(let[e]of this.children)e.abort(`Sibling task failed`);this.children.clear(),this.fail(t)}else if(this.childResults[n]=void 0,this.completedCount++,this.completedCount===this.expectedCount){let e=this.config.aggregate(this.childResults);this.resolve(e)}}}abort(e){for(let[t]of this.children)t.abort(e);this.children.clear(),super.abort(e)}reject(e){for(let[t]of this.children)t.abort(e);this.children.clear(),super.reject(e)}getPendingCount(){return this.children.size}getCompletedCount(){return this.completedCount}static gather(t){let n=new e({aggregate:e=>e,onChildComplete:(e,t)=>({completed:e,total:t})});return t.forEach((e,t)=>n.addChild(e,t)),n.finalize(),n}static gatherIndexed(t){let n=new e({aggregate:e=>{let t={};return e.forEach((e,n)=>{t[n]=e}),t},onChildComplete:(e,t,n,r)=>({page:r,result:n})});return t.forEach((e,t)=>n.addChild(e,t)),n.finalize(),n}static gatherFrom(t,n){let r=new e(n);return t.forEach((e,t)=>r.addChild(e,t)),r.finalize(),r}static first(t){let n=!1,r=new e({aggregate:e=>e[0],failFast:!1});return r.handleChildSuccess=(e,t)=>{if(!n){n=!0;for(let[t]of r.children)t!==e&&t.abort(`Race won by sibling`);r.resolve(t)}},t.forEach((e,t)=>r.addChild(e,t)),r.finalize(),r}}})))()}function Kt(e,t){if(!e)return;if(t in e)return e[t];let n=Hn[t];if(n&&n in e)return e[n]}function qt(e,t,n){let r=e.documents[t],i=r?.permissions,a=e.globalPermissions,o=r?.document?.permissions??N.AllowAll,s=Kt(i?.overrides,n);if(s!==void 0)return s;let c=Kt(a?.overrides,n);return c===void 0?i?.enforceDocumentPermissions??a?.enforceDocumentPermissions??!0?(o&n)!==0:!0:c}function Jt(e,t){return Vn.reduce((n,r)=>qt(e,t,r)?n|r:n,0)}function Yt(e,t,n){let r=e.activeDocumentId;if(r!==t)return r;if(n!==void 0)return n&&e.documents[n]?n:null;let i=e.documentOrder.indexOf(t);return i===-1?null:i>0?e.documentOrder[i-1]:i<e.documentOrder.length-1?e.documentOrder[i+1]:null}function Xt(e,t,n){let r=e.indexOf(t);if(r===-1||n<0||n>=e.length||r===n)return null;let i=[...e];return i.splice(r,1),i.splice(n,0,t),i}function L(e,t){return{package:e,config:t}}function Zt(e){return`autoMountElements`in e&&typeof e.autoMountElements==`function`}function Qt(e){return`keyExtractor`in e}function R(e,t,n){return e<t?t:e>n?n:e}function $t(e,t,n){if(e===t)return!0;if(e==null||t==null)return e===t;let r=typeof e;if(r!==typeof t)return!1;if(r===`object`){n||=/* @__PURE__ */ new Set;let r=en(e,t);if(n.has(r))return!0;n.add(r);let i=Array.isArray(e),a=Array.isArray(t);return i&&a?nn(e,t,n):!i&&!a&&rn(e,t,n)}return!1}function en(e,t){return`${tn(e)}__${tn(t)}`}function tn(e){return Jn.has(e)||Jn.set(e,++qn),Jn.get(e)}function nn(e,t,n){if(e.length!==t.length)return!1;let r=Array(t.length).fill(!1);outer:for(let i=0;i<e.length;i++){let a=e[i];for(let e=0;e<t.length;e++)if(!r[e]&&$t(a,t[e],n)){r[e]=!0;continue outer}return!1}return!0}function rn(e,t,n){let r=Object.keys(e).sort(),i=Object.keys(t).sort();if(r.length!==i.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==i[e])return!1;for(let i of r){let r=e[i],a=t[i];if(!$t(r,a,n))return!1}return!0}function z(){let e=/* @__PURE__ */ new Set;return{emit:(t=void 0)=>e.forEach(e=>e(t)),on:t=>(e.add(t),()=>e.delete(t)),off:t=>e.delete(t),clear:()=>e.clear()}}function B(e,t=$t){let n=/* @__PURE__ */ new Set,r=/* @__PURE__ */ new Map,i=e,a=e=>n.forEach(t=>t(e)),o=(e,t)=>{let a=e,o=()=>{};if(t){if(Qt(t)){let n=new Kn(e,t);a=n.handle,o=()=>n.destroy()}else{let n=new Gn(e,t);a=n.handle,o=()=>n.destroy()}r.set(e,{wrapped:a,destroy:o})}return i!==void 0&&a(i),n.add(a),()=>{n.delete(a),o(),r.delete(e)}};return{get value(){return i},emit(e=void 0){i!==void 0&&t(i,e)||(i=e,a(e))},on:o,off(e){let t=r.get(e);t?(n.delete(t.wrapped),t.destroy(),r.delete(e)):n.delete(e)},clear(){n.clear(),r.forEach(e=>e.destroy()),r.clear()},select(e,t=$t){return(n,r)=>{let a;if(i!==void 0){let t=e(i);a=t,n(t)}return o(r=>{let i=e(r);a!==void 0&&t(a,i)||(a=i,n(i))},r)}}}}function V(e,t){let n=t?.cache??!0,r=t?.equality??$t,i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=/* @__PURE__ */ new Map,s=/* @__PURE__ */ new Set,c=/* @__PURE__ */ new Map,l=e=>String(e),u=e=>{let t=a.get(e);return t||(t=/* @__PURE__ */ new Set,a.set(e,t)),t},d=e=>{let t=o.get(e);return t||(t=/* @__PURE__ */ new Map,o.set(e,t)),t};return{emit(t,o){let c=l(t);if(n){let e=i.get(c);if(e!==void 0&&r(e,o))return;i.set(c,o)}let u=a.get(c);u&&u.forEach(e=>e(o));let d=e(t,o);s.forEach(e=>e(d))},forScope(e){let t=l(e);return(e,r)=>{let s=u(t),c=d(t),l=e,f=()=>{};if(r){if(Qt(r)){let t=new Kn(e,r);l=t.handle,f=()=>t.destroy()}else{let t=new Gn(e,r);l=t.handle,f=()=>t.destroy()}c.set(e,{wrapped:l,destroy:f})}if(n){let e=i.get(t);e!==void 0&&l(e)}return s.add(l),()=>{s.delete(l),f(),c.delete(e),s.size===0&&a.delete(t),c.size===0&&o.delete(t)}}},onGlobal:(e,t)=>{let n=e,r=()=>{};if(t){if(Qt(t)){let i=new Kn(e,t);n=i.handle,r=()=>i.destroy()}else{let i=new Gn(e,t);n=i.handle,r=()=>i.destroy()}c.set(e,{wrapped:n,destroy:r})}return s.add(n),()=>{s.delete(n),r(),c.delete(e)}},getValue(e){return n?i.get(l(e)):void 0},getScopes(){return n?Array.from(i.keys()):Array.from(a.keys())},clearScope(e){let t=l(e);n&&i.delete(t);let r=a.get(t);r&&(r.clear(),a.delete(t));let s=o.get(t);s&&(s.forEach(e=>e.destroy()),s.clear(),o.delete(t))},clear(){n&&i.clear(),a.forEach(e=>e.clear()),a.clear(),o.forEach(e=>{e.forEach(e=>e.destroy()),e.clear()}),o.clear(),s.clear(),c.forEach(e=>e.destroy()),c.clear()}}}function an(e){return new Yn(e)}var on,H,U,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,W,Gn,Kn,qn,Jn,Yn;function G(){return(G=t((()=>{I(),on=class{constructor(){this.dependencyGraph=/* @__PURE__ */ new Map}addNode(e,t=[]){this.dependencyGraph.set(e,new Set(t))}hasCircularDependencies(){let e=/* @__PURE__ */ new Set,t=/* @__PURE__ */ new Set,n=r=>{e.add(r),t.add(r);let i=this.dependencyGraph.get(r)||/* @__PURE__ */ new Set;for(let r of i)if(!e.has(r)){if(n(r))return!0}else if(t.has(r))return!0;return t.delete(r),!1};for(let t of this.dependencyGraph.keys())if(!e.has(t)&&n(t))return!0;return!1}resolveLoadOrder(){if(this.hasCircularDependencies())throw Error(`Circular dependencies detected`);let e=[],t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Set,r=i=>{if(n.has(i))throw Error(`Circular dependency`);if(t.has(i))return;n.add(i);let a=this.dependencyGraph.get(i)||/* @__PURE__ */ new Set;for(let e of a)r(e);n.delete(i),t.add(i),e.push(i)};for(let e of this.dependencyGraph.keys())t.has(e)||r(e);return e}},H=class extends Error{constructor(e){super(e),this.name=`PluginRegistrationError`}},U=class extends Error{constructor(e){super(e),this.name=`PluginNotFoundError`}},sn=class extends Error{constructor(e){super(e),this.name=`CircularDependencyError`}},cn=class extends Error{constructor(e){super(e),this.name=`PluginConfigurationError`}},ln=class{constructor(e,t){this.store=e,this.pluginId=t}getState(){return this.store.getState().plugins[this.pluginId]}dispatch(e){return this.store.dispatchToPlugin(this.pluginId,e)}subscribeToState(e){return this.store.subscribeToPlugin(this.pluginId,(t,n,r)=>{e(t,n,r)})}onAction(e,t){return this.store.onAction(e,(e,n,r)=>{t(e,n.plugins[this.pluginId],r.plugins[this.pluginId])})}},un=`START_LOADING_DOCUMENT`,dn=`UPDATE_DOCUMENT_LOADING_PROGRESS`,fn=`SET_DOCUMENT_LOADED`,pn=`SET_DOCUMENT_ERROR`,mn=`RETRY_LOADING_DOCUMENT`,hn=`CLOSE_DOCUMENT`,gn=`SET_ACTIVE_DOCUMENT`,_n=`REORDER_DOCUMENTS`,vn=`MOVE_DOCUMENT`,yn=`UPDATE_DOCUMENT_SECURITY`,bn=`REFRESH_DOCUMENT`,xn=`REFRESH_PAGES`,Sn=`SET_PAGES`,Cn=`SET_SCALE`,wn=`SET_ROTATION`,Tn=`SET_DEFAULT_SCALE`,En=`SET_DEFAULT_ROTATION`,Dn=[un,dn,fn,hn,gn,pn,mn,bn,xn,Sn,Cn,wn,Tn,En,_n,vn,yn],On=(e,t,n,r,i,a,o)=>({type:un,payload:{documentId:e,name:t,scale:n,rotation:r,passwordProvided:i,autoActivate:a,permissions:o}}),kn=(e,t)=>({type:fn,payload:{documentId:e,document:t}}),An=(e,t,n,r)=>({type:pn,payload:{documentId:e,error:t,errorCode:n,errorDetails:r}}),jn=(e,t)=>({type:mn,payload:{documentId:e,passwordProvided:t}}),Mn=(e,t)=>({type:hn,payload:{documentId:e,nextActiveDocumentId:t}}),Nn=e=>({type:gn,payload:e}),Pn=(e,t)=>({type:Cn,payload:{scale:e,documentId:t}}),Fn=(e,t)=>({type:wn,payload:{rotation:e,documentId:t}}),In=e=>({type:_n,payload:e}),Ln=(e,t)=>({type:vn,payload:{documentId:e,toIndex:t}}),Rn=(e,t,n)=>({type:yn,payload:{documentId:e,permissions:t,isOwnerUnlocked:n}}),zn=class{constructor(e,t){this.initialCoreState=t,this.pluginReducers={},this.listeners=[],this.pluginListeners={},this.isDispatching=!1,this.state={core:t,plugins:{}},this.coreReducer=e}addPluginReducer(e,t,n){this.state.plugins[e]=n,this.pluginReducers[e]=t}dispatchToCore(e){if(!this.coreReducer)return this.getState();if(this.isDispatching)throw Error(`Reducers may not dispatch actions. To trigger cascading actions, dispatch from a listener callback instead.`);let t=this.getState();try{this.isDispatching=!0,this.state.core=this.coreReducer(this.state.core,e)}finally{this.isDispatching=!1}return this.listeners.forEach(n=>{n(e,this.getState(),t)}),this.getState()}dispatchToPlugin(e,t,n=!0){if(this.isDispatching)throw Error(`Reducers may not dispatch actions. To trigger cascading actions, dispatch from a listener callback instead.`);let r=this.getState(),i=this.pluginReducers[e];if(!i)return r.plugins[e];let a=r.plugins[e];try{this.isDispatching=!0;let n=i(a,t);this.state.plugins[e]=n}finally{this.isDispatching=!1}return n&&this.listeners.forEach(e=>{e(t,this.getState(),r)}),this.pluginListeners[e]&&this.pluginListeners[e].forEach(n=>{let r=this.getState().plugins[e];n(t,r,a)}),this.getState().plugins[e]}dispatch(e){if(this.isDispatching)throw Error(`Reducers may not dispatch actions. To trigger cascading actions, dispatch from a listener callback instead.`);let t=this.getState();try{this.isDispatching=!0,this.isCoreAction(e)&&(this.state.core=this.coreReducer(this.state.core,e));for(let n in this.pluginReducers){let r=this.pluginReducers[n],i=t.plugins[n];r&&(this.state.plugins[n]=r(i,e))}}finally{this.isDispatching=!1}return this.listeners.forEach(n=>{n(e,this.getState(),t)}),this.getState()}getState(){if(this.isDispatching)throw Error(`You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.`);return{core:{...this.state.core},plugins:{...this.state.plugins}}}subscribe(e){if(this.isDispatching)throw Error(`You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state.`);return this.listeners.push(e),()=>{if(this.isDispatching)throw Error(`You may not unsubscribe from a store listener while the reducer is executing.`);this.listeners=this.listeners.filter(t=>t!==e)}}subscribeToPlugin(e,t){if(!(e in this.state.plugins))throw Error(`Plugin state not found for plugin "${e}". Did you forget to call addPluginReducer?`);if(this.isDispatching)throw Error(`You may not call store.subscribeToPlugin() while the reducer is executing.`);return this.pluginListeners[e]||(this.pluginListeners[e]=[]),this.pluginListeners[e].push(t),()=>{if(this.isDispatching)throw Error(`You may not unsubscribe from a store listener while the reducer is executing.`);this.pluginListeners[e]=this.pluginListeners[e].filter(e=>e!==t),this.pluginListeners[e].length===0&&delete this.pluginListeners[e]}}onAction(e,t){return this.subscribe((n,r,i)=>{n.type===e&&t(n,r,i)})}getPluginStore(e){if(!(e in this.state.plugins))throw Error(`Plugin state not found for plugin "${e}". Did you forget to call addPluginReducer?`);return new ln(this,e)}isCoreAction(e){return Dn.includes(e.type)}destroy(){var e,t;this.listeners.length=0;for(let n in this.pluginListeners)(t=(e=this.pluginListeners[n])?.splice)==null||t.call(e,0);this.pluginListeners={},this.pluginReducers={},this.state.plugins={},this.state.core={...this.initialCoreState}}},Bn=e=>({documents:{},documentOrder:[],activeDocumentId:null,defaultScale:e?.defaultScale??1,defaultRotation:e?.defaultRotation??ot.Degree0,globalPermissions:e?.permissions}),N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality,Vn=[N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality],Hn={[N.Print]:`print`,[N.ModifyContents]:`modifyContents`,[N.CopyContents]:`copyContents`,[N.ModifyAnnotations]:`modifyAnnotations`,[N.FillForms]:`fillForms`,[N.ExtractForAccessibility]:`extractForAccessibility`,[N.AssembleDocument]:`assembleDocument`,[N.PrintHighQuality]:`printHighQuality`},Un=(e,t)=>{switch(t.type){case un:{let{documentId:n,name:r,scale:i,rotation:a,passwordProvided:o,autoActivate:s=!0,permissions:c}=t.payload,l={id:n,name:r,status:`loading`,loadingProgress:0,error:null,document:null,scale:i??e.defaultScale,rotation:a??e.defaultRotation,passwordProvided:o??!1,pageRefreshVersions:{},permissions:c,loadStartedAt:Date.now()};return{...e,documents:{...e.documents,[n]:l},documentOrder:[...e.documentOrder,n],activeDocumentId:s||!e.activeDocumentId?n:e.activeDocumentId}}case dn:{let{documentId:n,progress:r}=t.payload,i=e.documents[n];return!i||i.status!==`loading`?e:{...e,documents:{...e.documents,[n]:{...i,loadingProgress:r}}}}case fn:{let{documentId:n,document:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,status:`loaded`,document:r,error:null,errorCode:void 0,errorDetails:void 0,passwordProvided:void 0,loadedAt:Date.now()}}}:e}case pn:{let{documentId:n,error:r,errorCode:i,errorDetails:a}=t.payload,o=e.documents[n];return o?{...e,documents:{...e.documents,[n]:{...o,status:`error`,error:r,errorCode:i,errorDetails:a}}}:e}case mn:{let{documentId:n,passwordProvided:r}=t.payload,i=e.documents[n];return!i||i.status!==`error`?e:{...e,documents:{...e.documents,[n]:{...i,status:`loading`,loadingProgress:0,error:null,errorCode:void 0,errorDetails:void 0,passwordProvided:r??!1,loadStartedAt:Date.now()}}}}case hn:{let{documentId:n,nextActiveDocumentId:r}=t.payload,{[n]:i,...a}=e.documents;return{...e,documents:a,documentOrder:e.documentOrder.filter(e=>e!==n),activeDocumentId:Yt(e,n,r)}}case vn:{let{documentId:n,toIndex:r}=t.payload,i=Xt(e.documentOrder,n,r);return i?{...e,documentOrder:i}:e}case _n:return{...e,documentOrder:t.payload};case gn:return{...e,activeDocumentId:t.payload};case Cn:{let{scale:n,documentId:r}=t.payload,i=r??e.activeDocumentId;if(!i)return e;let a=e.documents[i];return a?{...e,documents:{...e.documents,[i]:{...a,scale:n}}}:e}case wn:{let{rotation:n,documentId:r}=t.payload,i=r??e.activeDocumentId;if(!i)return e;let a=e.documents[i];return a?{...e,documents:{...e.documents,[i]:{...a,rotation:n}}}:e}case xn:{let{documentId:n,pageIndexes:r}=t.payload,i=e.documents[n];if(!i)return e;let a={...i.pageRefreshVersions};for(let e of r)a[e]=(a[e]||0)+1;return{...e,documents:{...e.documents,[n]:{...i,pageRefreshVersions:a}}}}case yn:{let{documentId:n,permissions:r,isOwnerUnlocked:i}=t.payload,a=e.documents[n];return a?.document?{...e,documents:{...e.documents,[n]:{...a,document:{...a.document,permissions:r,isOwnerUnlocked:i}}}}:e}default:return e}},Wn=class{constructor(e,t){this.plugins=/* @__PURE__ */ new Map,this.manifests=/* @__PURE__ */ new Map,this.capabilities=/* @__PURE__ */ new Map,this.status=/* @__PURE__ */ new Map,this.configurations=/* @__PURE__ */ new Map,this.initPromise=null,this.pendingRegistrations=[],this.processingRegistrations=[],this.initialized=!1,this.isInitializing=!1,this.pluginsReadyPromise=null,this.destroyed=!1,this.resolver=new on,this.engine=e,this.initialCoreState=Bn(t),this.store=new zn(Un,this.initialCoreState),this.logger=t?.logger??new st}getLogger(){return this.logger}registerPlugin(e,t){if(this.initialized&&!this.isInitializing)throw new H(`Cannot register plugins after initialization`);this.validateManifest(e.manifest),this.store.addPluginReducer(e.manifest.id,e.reducer,typeof e.initialState==`function`?e.initialState(this.initialCoreState,{...e.manifest.defaultConfig,...t}):e.initialState),this.pendingRegistrations.push({package:e,config:t})}getStore(){return this.store}getEngine(){return this.engine}pluginsReady(){return this.pluginsReadyPromise||=(async()=>{this.initialized||await this.initialize();let e=Array.from(this.plugins.values()).map(e=>typeof e.ready==`function`?e.ready():Promise.resolve());await Promise.all(e)})(),this.pluginsReadyPromise}async initialize(){if(this.destroyed)throw new H(`Registry has been destroyed`);return this.initPromise||=(async()=>{if(this.initialized)throw new H(`Registry is already initialized`);this.isInitializing=!0;try{if(this.destroyed)return;for(;this.pendingRegistrations.length>0;){if(this.destroyed)return;this.processingRegistrations=[...this.pendingRegistrations],this.pendingRegistrations=[];for(let e of this.processingRegistrations){let t=/* @__PURE__ */ new Set,n=[...e.package.manifest.requires,...e.package.manifest.optional];for(let e of n){let n=this.processingRegistrations.find(t=>t.package.manifest.provides.includes(e));n&&t.add(n.package.manifest.id)}this.resolver.addNode(e.package.manifest.id,[...t])}let e=this.resolver.resolveLoadOrder();for(let t of e){let e=this.processingRegistrations.find(e=>e.package.manifest.id===t);this.instantiatePlugin(e.package.manifest,e.package.create,e.config)}for(let t of e)await this.runPluginInitialization(t);this.processingRegistrations=[],this.resolver=new on}this.initialized=!0}catch(e){throw e instanceof Error?new sn(`Failed to resolve plugin dependencies: ${e.message}`):e}finally{this.isInitializing=!1}})(),this.initPromise}instantiatePlugin(e,t,n){let r={...e.defaultConfig,...n};this.validateConfig(e.id,r,e.defaultConfig);let i=t(this,r);this.validatePlugin(i);for(let t of e.provides){if(this.capabilities.has(t))throw new H(`Capability ${t} is already provided by plugin ${this.capabilities.get(t)}`);this.capabilities.set(t,e.id)}this.plugins.set(e.id,i),this.manifests.set(e.id,e),this.status.set(e.id,`registered`),this.configurations.set(e.id,r)}async runPluginInitialization(e){let t=this.plugins.get(e);if(!t)return;let n=this.manifests.get(e),r=this.configurations.get(e);for(let t of n.requires)if(!this.capabilities.has(t))throw new H(`Missing required capability: ${t} for plugin ${e}`);this.logger.debug(`PluginRegistry`,`InitializePlugin`,`Initializing plugin ${e}`);try{t.initialize&&await t.initialize(r),this.status.set(e,`active`),this.logger.info(`PluginRegistry`,`PluginInitialized`,`Plugin ${e} initialized successfully`)}catch(t){throw this.status.set(e,`error`),this.logger.error(`PluginRegistry`,`InitializationFailed`,`Plugin ${e} initialization failed`,{error:t}),t}}getPluginConfig(e){let t=this.configurations.get(e);if(!t)throw new U(`Configuration for plugin ${e} not found`);return t}validateConfig(e,t,n){let r=Object.keys(n).filter(e=>!t.hasOwnProperty(e));if(r.length>0)throw new cn(`Missing required configuration keys for plugin ${e}: ${r.join(`, `)}`)}async updatePluginConfig(e,t){let n=this.getPlugin(e);if(!n)throw new U(`Plugin ${e} not found`);let r=this.manifests.get(e),i=this.configurations.get(e);if(!r||!i)throw new U(`Plugin ${e} not found`);let a={...i,...t};this.validateConfig(e,a,r.defaultConfig),this.configurations.set(e,a),n.initialize&&await n.initialize(a)}registerPluginBatch(e){for(let t of e)this.registerPlugin(t.package,t.config)}async unregisterPlugin(e){let t=this.plugins.get(e);if(!t)throw new U(`Plugin ${e} is not registered`);let n=this.manifests.get(e);if(!n)throw new U(`Manifest for plugin ${e} not found`);for(let[t,r]of this.manifests.entries())if(t!==e&&[...r.requires,...r.optional].some(e=>n.provides.includes(e)))throw new H(`Cannot unregister plugin ${e}: plugin ${t} depends on it`);try{t.destroy&&await t.destroy();for(let e of n.provides)this.capabilities.delete(e);this.plugins.delete(e),this.manifests.delete(e),this.status.delete(e)}catch(t){throw t instanceof Error?Error(`Failed to unregister plugin ${e}: ${t.message}`):t}}getPlugin(e){return this.plugins.get(e)||null}getCapabilityProvider(e){let t=this.capabilities.get(e);return t?this.getPlugin(t):null}hasCapability(e){return this.capabilities.has(e)}getAllPlugins(){return Array.from(this.plugins.values())}getPluginStatus(e){let t=this.status.get(e);if(!t)throw new U(`Plugin ${e} not found`);return t}validatePlugin(e){if(!e.id)throw new H(`Plugin must have an id`)}validateManifest(e){if(!e.id)throw new H(`Manifest must have an id`);if(!e.name)throw new H(`Manifest must have a name`);if(!e.version)throw new H(`Manifest must have a version`);if(!Array.isArray(e.provides))throw new H(`Manifest must have a provides array`);if(!Array.isArray(e.requires))throw new H(`Manifest must have a requires array`);if(!Array.isArray(e.optional))throw new H(`Manifest must have an optional array`)}isDestroyed(){return this.destroyed}async destroy(){if(this.destroyed)throw new H(`Registry has already been destroyed`);this.destroyed=!0;try{await this.initPromise}catch{}for(let e of Array.from(this.plugins.values()).reverse())await e.destroy?.call(e);this.store.destroy(),this.plugins.clear(),this.manifests.clear(),this.capabilities.clear(),this.status.clear(),this.pendingRegistrations.length=0,this.processingRegistrations.length=0}},W=class{constructor(e,t){if(this.id=e,this.registry=t,this.cooldownActions={},this.debouncedTimeouts={},this.unsubscribeFromState=null,this.unsubscribeFromCoreStore=null,this.unsubscribeFromStartLoadingDocument=null,this.unsubscribeFromSetDocumentLoaded=null,this.unsubscribeFromCloseDocument=null,this.unsubscribeFromSetScale=null,this.unsubscribeFromSetRotation=null,e!==this.constructor.id)throw Error(`Plugin ID mismatch: ${e} !== ${this.constructor.id}`);this.engine=this.registry.getEngine(),this.logger=this.registry.getLogger(),this.coreStore=this.registry.getStore(),this.pluginStore=this.coreStore.getPluginStore(this.id),this.unsubscribeFromState=this.pluginStore.subscribeToState((e,t,n)=>{this.onStoreUpdated(n,t)}),this.unsubscribeFromCoreStore=this.coreStore.subscribe((e,t,n)=>{this.onCoreStoreUpdated(n,t),t.core.activeDocumentId!==n.core.activeDocumentId&&this.onActiveDocumentChanged(n.core.activeDocumentId,t.core.activeDocumentId)}),this.unsubscribeFromStartLoadingDocument=this.coreStore.onAction(un,e=>{this.onDocumentLoadingStarted(e.payload.documentId)}),this.unsubscribeFromSetDocumentLoaded=this.coreStore.onAction(fn,e=>{this.onDocumentLoaded(e.payload.documentId)}),this.unsubscribeFromCloseDocument=this.coreStore.onAction(hn,e=>{this.onDocumentClosed(e.payload.documentId)}),this.unsubscribeFromSetScale=this.coreStore.onAction(Cn,(e,t)=>{let n=e.payload.documentId??t.core.activeDocumentId;n&&this.onScaleChanged(n,e.payload.scale)}),this.unsubscribeFromSetRotation=this.coreStore.onAction(wn,(e,t)=>{let n=e.payload.documentId??t.core.activeDocumentId;n&&this.onRotationChanged(n,e.payload.rotation)}),this.readyPromise=new Promise(e=>{this.readyResolve=e}),this.readyResolve()}provides(){if(!this._capability){let e=this.buildCapability();this._capability=Object.freeze(e)}return this._capability}get state(){return this.pluginStore.getState()}get coreState(){return this.coreStore.getState()}getState(){return this.pluginStore.getState()}getCoreState(){return this.coreStore.getState()}dispatchCoreAction(e){return this.coreStore.dispatchToCore(e)}dispatchToAllPlugins(e){return this.coreStore.dispatch(e)}dispatch(e){return this.pluginStore.dispatch(e)}cooldownDispatch(e,t=100){let n=Date.now();return n-(this.cooldownActions[e.type]||0)>=t&&(this.cooldownActions[e.type]=n,this.dispatch(e),!0)}debouncedDispatch(e,t=100){let n=e.type;this.debouncedTimeouts[n]&&clearTimeout(this.debouncedTimeouts[n]),this.debouncedTimeouts[n]=setTimeout(()=>{this.dispatch(e),delete this.debouncedTimeouts[n]},t)}cancelDebouncedDispatch(e){this.debouncedTimeouts[e]&&(clearTimeout(this.debouncedTimeouts[e]),delete this.debouncedTimeouts[e])}subscribe(e){return this.pluginStore.subscribeToState(e)}subscribeToCoreStore(e){return this.coreStore.subscribe(e)}onStoreUpdated(e,t){}onCoreStoreUpdated(e,t){}onDocumentLoadingStarted(e){}onDocumentLoaded(e){}onDocumentClosed(e){}onActiveDocumentChanged(e,t){}onScaleChanged(e,t){}onRotationChanged(e,t){}destroy(){Object.values(this.debouncedTimeouts).forEach(e=>{clearTimeout(e)}),this.debouncedTimeouts={},this.unsubscribeFromState&&=(this.unsubscribeFromState(),null),this.unsubscribeFromCoreStore&&=(this.unsubscribeFromCoreStore(),null),this.unsubscribeFromStartLoadingDocument&&=(this.unsubscribeFromStartLoadingDocument(),null),this.unsubscribeFromSetDocumentLoaded&&=(this.unsubscribeFromSetDocumentLoaded(),null),this.unsubscribeFromCloseDocument&&=(this.unsubscribeFromCloseDocument(),null),this.unsubscribeFromSetScale&&=(this.unsubscribeFromSetScale(),null),this.unsubscribeFromSetRotation&&=(this.unsubscribeFromSetRotation(),null)}ready(){return this.readyPromise}markReady(){this.readyResolve()}resetReady(){this.readyPromise=new Promise(e=>{this.readyResolve=e})}getActiveDocumentId(){let e=this.coreState.core.activeDocumentId;if(!e)throw Error(`No active document`);return e}getActiveDocumentIdOrNull(){return this.coreState.core.activeDocumentId}getCoreDocument(e){let t=e??this.getActiveDocumentIdOrNull();return t?this.coreState.core.documents[t]??null:null}getCoreDocumentOrThrow(e){let t=this.getCoreDocument(e);if(!t)throw Error(`Document not found: ${e??`active`}`);return t}getDocumentPermissions(e){let t=e??this.coreState.core.activeDocumentId;return t?Jt(this.coreState.core,t):N.AllowAll}checkPermission(e,...t){let n=e??this.coreState.core.activeDocumentId;return!n||t.every(e=>qt(this.coreState.core,n,e))}requirePermission(e,...t){let n=e??this.coreState.core.activeDocumentId;if(!n)return;let r=[];for(let e of t)qt(this.coreState.core,n,e)||r.push(e);if(r.length>0){let e=Jt(this.coreState.core,n);throw new Lt(r,e)}}},Gn=class{constructor(e,t){this.handler=e,this.options=t,this.lastRun=0,this.handle=e=>{this.options.mode===`debounce`?this.debounce(e):this.throttle(e)}}debounce(e){this.timeoutId&&window.clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>{this.handler(e),this.timeoutId=void 0},this.options.wait)}throttle(e){if(this.options.mode===`debounce`)return;let t=Date.now(),n=this.options.throttleMode||`leading-trailing`;t-this.lastRun>=this.options.wait&&(n===`leading-trailing`&&this.handler(e),this.lastRun=t),this.timeoutId&&window.clearTimeout(this.timeoutId),this.timeoutId=window.setTimeout(()=>{this.handler(e),this.lastRun=Date.now(),this.timeoutId=void 0},this.options.wait-(t-this.lastRun))}destroy(){this.timeoutId&&window.clearTimeout(this.timeoutId)}},Kn=class{constructor(e,t){this.handler=e,this.options=t,this.controls=/* @__PURE__ */ new Map,this.handle=e=>{let t=String(this.options.keyExtractor(e)),n=this.controls.get(t);n||(n=new Gn(this.handler,this.baseOptions),this.controls.set(t,n)),n.handle(e)},this.baseOptions={mode:t.mode,wait:t.wait,...t.mode===`throttle`&&`throttleMode`in t?{throttleMode:t.throttleMode}:{}}}destroy(){for(let e of this.controls.values())e.destroy();this.controls.clear()}},qn=0,Jn=/* @__PURE__ */ new WeakMap,Yn=class{constructor(e){this.autoMountElements=[],this.package=e}addUtility(e){return this.autoMountElements.push({component:e,type:`utility`}),this}addWrapper(e){return this.autoMountElements.push({component:e,type:`wrapper`}),this}build(){return{...this.package,autoMountElements:()=>this.autoMountElements}}}})))()}function Xn({plugins:e,children:t}){let{utilities:n,wrappers:r}=C(()=>{let t=[],n=[];for(let r of e){let e=r.package;if(Zt(e)){let r=e.autoMountElements()||[];for(let e of r)e.type===`utility`?t.push(e.component):e.type===`wrapper`&&n.push(e.component)}}return{utilities:t,wrappers:n}},[e]),i=/* @__PURE__ */ D(ie,{children:[t,n.map((e,t)=>/* @__PURE__ */ E(e,{},`utility-${t}`))]}),a=r.reduce((e,t)=>/* @__PURE__ */ E(t,{children:e}),i);return/* @__PURE__ */ E(ie,{children:a})}function Zn({engine:e,config:t,logger:n,onInitialized:r,plugins:i,children:a,autoMountDomElements:o=!0}){let[s,c]=T(null),[l,u]=T(null),[d,f]=T(!0),[p,m]=T(!1),h=w(r);S(()=>{h.current=r},[r]),S(()=>{let r={...t,logger:t?.logger??n},a=new Wn(e,r);a.registerPluginBatch(i);let o=async()=>{if(await a.initialize(),a.isDestroyed())return;let e=a.getStore();u(e.getState().core);let t=e.subscribe((t,n,r)=>{e.isCoreAction(t)&&n.core!==r.core&&u(n.core)});if(await h.current?.call(h,a),a.isDestroyed())t();else return a.pluginsReady().then(()=>{a.isDestroyed()||m(!0)}),c(a),f(!1),t},s;return o().then(e=>{s=e}).catch(console.error),()=>{s?.(),a.destroy(),c(null),u(null),f(!0),m(!1)}},[e,i]);let g=C(()=>{let e=l?.activeDocumentId??null,t=l?.documents??{},n=l?.documentOrder??[],r=e&&t[e]?t[e]:null,i=n.map(e=>t[e]).filter(e=>e!=null);return{registry:s,coreState:l,isInitializing:d,pluginsReady:p,activeDocumentId:e,activeDocument:r,documents:t,documentStates:i}},[s,l,d,p]),_=typeof a==`function`?a(g):a;return/* @__PURE__ */ E(tr.Provider,{value:g,children:p&&o?/* @__PURE__ */ E(Xn,{plugins:i,children:_}):_})}function Qn(){let e=se(tr);if(e===void 0)throw Error(`useCapability must be used within a PDFContext.Provider`);let{registry:t,isInitializing:n}=e;if(n)return e;if(t===null)throw Error(`PDF registry failed to initialize properly`);return e}function K(e){let{registry:t}=Qn();if(t===null)return{plugin:null,isLoading:!0,ready:new Promise(()=>{})};let n=t.getPlugin(e);if(!n)throw Error(`Plugin ${e} not found`);return{plugin:n,isLoading:!1,ready:n.ready()}}function q(e){let{plugin:t,isLoading:n,ready:r}=K(e);if(!t)return{provides:null,isLoading:n,ready:r};if(!t.provides)throw Error(`Plugin ${e} does not provide a capability`);return{provides:t.provides(),isLoading:n,ready:r}}function $n(){let{coreState:e}=se(tr);return e}function er(e){let t=$n();return C(()=>!t||!e?null:t.documents[e]??null,[t,e])}var tr;function J(){return(J=t((()=>{G(),I(),tr=ae({registry:null,coreState:null,isInitializing:!0,pluginsReady:!1,activeDocumentId:null,activeDocument:null,documents:{},documentStates:[]}),N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality,N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality,N.Print,N.ModifyContents,N.CopyContents,N.ModifyAnnotations,N.FillForms,N.ExtractForAccessibility,N.AssembleDocument,N.PrintHighQuality})))()}function nr(e){let{wasmUrl:t=rr,worker:n=!0,logger:r,encoderPoolSize:i,fontFallback:o}=e??{},[s,c]=T(null),[l,u]=T(!0),[d,f]=T(null),p=w(null);return S(()=>{let e=!1;return(async()=>{try{let{createPdfiumEngine:e}=n?await a(()=>import(`./worker-engine-CtUAeI4G.js`),[],import.meta.url):await a(()=>import(`./direct-engine-Dv_6v4sx.js`),[],import.meta.url),s=await e(t,{logger:r,encoderPoolSize:i,fontFallback:o});p.current=s,c(s),u(!1)}catch(t){e||(f(t),u(!1))}})(),()=>{var t,n;e=!0,(n=(t=p.current)?.closeAllDocuments)==null||n.call(t).wait(()=>{var e,t;(t=(e=p.current)?.destroy)==null||t.call(e),p.current=null},O)}},[t,n,r,o]),{engine:s,isLoading:l,error:d}}var rr;function ir(){return(ir=t((()=>{I(),i(),rr=`https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.15.1/dist/pdfium.wasm`,ae(void 0)})))()}var ar,or,sr,cr,lr;function ur(){return(ur=t((()=>{G(),I(),ar=class extends W{constructor(e,t,n){super(e,t),this.id=e,this.documentOpened$=B(),this.documentClosed$=B(),this.activeDocumentChanged$=B(),this.documentError$=B(),this.documentOrderChanged$=B(),this.openFileRequest$=z(),this.loadOptions=/* @__PURE__ */ new Map,this.maxDocuments=n?.maxDocuments}buildCapability(){return{openFileDialog:e=>this.openFileDialog(e),openDocumentUrl:e=>this.openDocumentUrl(e),openDocumentBuffer:e=>this.openDocumentBuffer(e),retryDocument:(e,t)=>this.retryDocument(e,t),closeDocument:e=>this.closeDocument(e),closeAllDocuments:()=>this.closeAllDocuments(),setActiveDocument:e=>{if(!this.isDocumentOpen(e))throw Error(`Cannot set active document: ${e} is not open`);this.dispatchCoreAction(Nn(e))},getActiveDocumentId:()=>this.coreState.core.activeDocumentId,getActiveDocument:()=>{let e=this.coreState.core.activeDocumentId;return e?this.coreState.core.documents[e]?.document??null:null},getDocumentOrder:()=>this.coreState.core.documentOrder,moveDocument:(e,t)=>{this.dispatchCoreAction(Ln(e,t))},swapDocuments:(e,t)=>{let n=this.coreState.core.documentOrder,r=n.indexOf(e),i=n.indexOf(t);if(r===-1||i===-1)throw Error(`One or both documents not found in order`);let a=[...n];[a[r],a[i]]=[a[i],a[r]],this.dispatchCoreAction(In(a))},getDocument:e=>this.coreState.core.documents[e]?.document??null,getDocumentState:e=>this.coreState.core.documents[e]??null,getOpenDocuments:()=>this.coreState.core.documentOrder.map(e=>this.coreState.core.documents[e]).filter(e=>e!==null),isDocumentOpen:e=>this.isDocumentOpen(e),getDocumentCount:()=>Object.keys(this.coreState.core.documents).length,getDocumentIndex:e=>this.coreState.core.documentOrder.indexOf(e),setDocumentEncryption:(e,t)=>this.setDocumentEncryption(e,t),unlockOwnerPermissions:(e,t)=>this.unlockOwnerPermissions(e,t),removeEncryption:e=>this.removeEncryption(e),onDocumentOpened:this.documentOpened$.on,onDocumentClosed:this.documentClosed$.on,onDocumentError:this.documentError$.on,onActiveDocumentChanged:this.activeDocumentChanged$.on,onDocumentOrderChanged:this.documentOrderChanged$.on}}isDocumentOpen(e){return!!this.coreState.core.documents[e]}onDocumentLoaded(e){let t=this.coreState.core.documents[e];t&&t.status===`loaded`&&(this.loadOptions.delete(e),this.documentOpened$.emit(t),this.logger.info(`DocumentManagerPlugin`,`DocumentOpened`,`Document ${e} opened successfully`,{name:t.name}))}onDocumentClosed(e){this.loadOptions.delete(e),this.documentClosed$.emit(e),this.logger.info(`DocumentManagerPlugin`,`DocumentClosed`,`Document ${e} closed`)}onActiveDocumentChanged(e,t){this.activeDocumentChanged$.emit({previousDocumentId:e,currentDocumentId:t}),this.logger.info(`DocumentManagerPlugin`,`ActiveDocumentChanged`,`Active document changed from ${e} to ${t}`)}onCoreStoreUpdated(e,t){e.core.documentOrder!==t.core.documentOrder&&this.documentOrderChanged$.emit({order:t.core.documentOrder})}onOpenFileRequest(e){return this.openFileRequest$.on(e)}openDocumentUrl(e){let t=new A,n=e.documentId||this.generateDocumentId(),r=this.checkDocumentLimit();if(r)return t.reject(r),t;let i=e.name??this.extractNameFromUrl(e.url);this.loadOptions.set(n,e),this.dispatchCoreAction(On(n,i,e.scale,e.rotation,!!e.password,e.autoActivate,e.permissions)),this.logger.info(`DocumentManagerPlugin`,`OpenDocumentUrl`,`Starting to load document from URL: ${e.url}`,{documentId:n,passwordProvided:!!e.password});let a={id:n,url:e.url},o=this.engine.openDocumentUrl(a,{password:e.password,mode:e.mode,requestOptions:e.requestOptions,normalizeRotation:!0});return t.resolve({documentId:n,task:o}),this.handleLoadTask(n,o,`OpenDocumentUrl`),t}openDocumentBuffer(e){let t=new A,n=this.checkDocumentLimit();if(n)return t.reject(n),t;let r=e.documentId||this.generateDocumentId();this.loadOptions.set(r,e),this.dispatchCoreAction(On(r,e.name,e.scale,e.rotation,!!e.password,e.autoActivate,e.permissions)),this.logger.info(`DocumentManagerPlugin`,`OpenDocumentBuffer`,`Starting to load document from buffer: ${e.name}`,{documentId:r,passwordProvided:!!e.password});let i={id:r,content:e.buffer},a=this.engine.openDocumentBuffer(i,{password:e.password,normalizeRotation:!0});return t.resolve({documentId:r,task:a}),this.handleLoadTask(r,a,`OpenDocumentBuffer`),t}retryDocument(e,t){let n=new A,r=this.validateRetry(e);if(!r.valid)return n.reject(r.error),n;let i={...this.loadOptions.get(e),...t?.password&&{password:t.password}};this.loadOptions.set(e,i),this.dispatchCoreAction(jn(e,!!t?.password)),this.logger.info(`DocumentManagerPlugin`,`RetryDocument`,`Retrying to load document ${e}`,{passwordProvided:!!t?.password});let a=`url`in i?this.retryUrlDocument(e,i):this.retryBufferDocument(e,i);return n.resolve({documentId:e,task:a}),this.handleLoadTask(e,a,`RetryDocument`),n}openFileDialog(e){let t=new A;return this.openFileRequest$.emit({task:t,options:e}),t}closeDocument(e){let t=new A,n=this.coreState.core.documents[e];return n?(n.status===`loaded`&&n.document?this.engine.closeDocument(n.document).wait(()=>{this.dispatchCoreAction(Mn(e)),t.resolve()},n=>{this.logger.error(`DocumentManagerPlugin`,`CloseDocument`,`Failed to close document ${e}`,n),t.fail(n)}):(this.logger.info(`DocumentManagerPlugin`,`CloseDocument`,`Closing document ${e} in ${n.status} state (skipping engine close)`),this.dispatchCoreAction(Mn(e)),t.resolve()),t):(this.logger.warn(`DocumentManagerPlugin`,`CloseDocument`,`Cannot close document ${e}: not found in state`),t.resolve(),t)}closeAllDocuments(){let e=Object.keys(this.coreState.core.documents),t=e.map(e=>this.closeDocument(e));return this.logger.info(`DocumentManagerPlugin`,`CloseAllDocuments`,`Closing ${e.length} documents`),A.all(t)}setDocumentEncryption(e,t){let n=new A,r=this.coreState.core.documents[e];return r?.document?(this.logger.info(`DocumentManagerPlugin`,`SetDocumentEncryption`,`Setting encryption on document ${e}`,{hasUserPassword:!!t.userPassword,allowedFlags:t.allowedFlags}),this.engine.setDocumentEncryption(r.document,t.userPassword??``,t.ownerPassword,t.allowedFlags).wait(t=>{t&&this.logger.info(`DocumentManagerPlugin`,`SetDocumentEncryption`,`Encryption set successfully on document ${e}`),n.resolve(t)},t=>{this.logger.error(`DocumentManagerPlugin`,`SetDocumentEncryption`,`Failed to set encryption on document ${e}`,t),n.fail(t)}),n):(n.reject({code:P.DocNotOpen,message:`Document ${e} is not open`}),n)}unlockOwnerPermissions(e,t){let n=new A,r=this.coreState.core.documents[e];if(!r?.document)return n.reject({code:P.DocNotOpen,message:`Document ${e} is not open`}),n;let i=r.document;return this.logger.info(`DocumentManagerPlugin`,`UnlockOwnerPermissions`,`Attempting to unlock owner permissions on document ${e}`),this.engine.unlockOwnerPermissions(i,t).wait(t=>{t&&(this.logger.info(`DocumentManagerPlugin`,`UnlockOwnerPermissions`,`Owner permissions unlocked on document ${e}`),this.dispatchCoreAction(Rn(e,4294967295,!0))),n.resolve(t)},t=>{this.logger.error(`DocumentManagerPlugin`,`UnlockOwnerPermissions`,`Failed to unlock owner permissions on document ${e}`,t),n.fail(t)}),n}removeEncryption(e){let t=new A,n=this.coreState.core.documents[e];return n?.document?(this.logger.info(`DocumentManagerPlugin`,`RemoveEncryption`,`Marking document ${e} for encryption removal on save`),this.engine.removeEncryption(n.document).wait(n=>{n&&this.logger.info(`DocumentManagerPlugin`,`RemoveEncryption`,`Document ${e} marked for encryption removal`),t.resolve(n)},n=>{this.logger.error(`DocumentManagerPlugin`,`RemoveEncryption`,`Failed to mark document ${e} for encryption removal`,n),t.fail(n)}),t):(t.reject({code:P.DocNotOpen,message:`Document ${e} is not open`}),t)}checkDocumentLimit(){return this.maxDocuments&&Object.keys(this.coreState.core.documents).length>=this.maxDocuments?{code:P.Unknown,message:`Maximum number of documents (${this.maxDocuments}) reached`}:null}validateRetry(e){let t=this.coreState.core.documents[e];return t?t.status===`loaded`?{valid:!1,error:{code:P.Unknown,message:`Document ${e} is already loaded successfully`}}:t.status===`error`?this.loadOptions.has(e)?{valid:!0}:{valid:!1,error:{code:P.Unknown,message:`No retry information available for document ${e}`}}:{valid:!1,error:{code:P.Unknown,message:`Document ${e} is not in error state (current state: ${t.status})`}}:{valid:!1,error:{code:P.NotFound,message:`Document ${e} not found`}}}retryUrlDocument(e,t){let n={id:e,url:t.url};return this.engine.openDocumentUrl(n,{password:t.password,mode:t.mode,requestOptions:t.requestOptions})}retryBufferDocument(e,t){let n={id:e,content:t.buffer};return this.engine.openDocumentBuffer(n,{password:t.password,normalizeRotation:!0})}handleLoadTask(e,t,n){t.wait(t=>{this.dispatchCoreAction(kn(e,t))},t=>{this.handleLoadError(e,t,n)})}handleLoadError(e,t,n){let r=t.reason?.message||`Failed to load document`;this.logger.error(`DocumentManagerPlugin`,n,`Failed to load document`,t),this.dispatchCoreAction(An(e,r,t.reason?.code,t.reason)),this.documentError$.emit({documentId:e,message:r,code:t.reason?.code,reason:t.reason})}generateDocumentId(){return`doc-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}extractNameFromUrl(e){try{let t=new URL(e).pathname.split(`/`).pop();if(!t)return;let n=decodeURIComponent(t);return n.toLowerCase().endsWith(`.pdf`)||(n+=`.pdf`),n}catch{return}}async initialize(e){if(this.logger.info(`DocumentManagerPlugin`,`Initialize`,`Document Manager Plugin initialized`,{maxDocuments:this.maxDocuments,initialDocumentsCount:e.initialDocuments?.length??0}),e.initialDocuments&&e.initialDocuments.length>0)for(let t of e.initialDocuments)try{`buffer`in t?this.openDocumentBuffer(t):`url`in t&&this.openDocumentUrl(t)}catch(e){this.logger.error(`DocumentManagerPlugin`,`Initialize`,`Failed to initiate initial document load`,e)}}async destroy(){await this.closeAllDocuments().toPromise(),this.loadOptions.clear(),this.documentOpened$.clear(),this.documentClosed$.clear(),this.activeDocumentChanged$.clear(),this.documentOrderChanged$.clear(),this.documentError$.clear(),super.destroy()}},ar.id=`document-manager`,or=ar,sr=`document-manager`,cr={id:sr,name:`Document Manager Plugin`,version:`1.0.0`,provides:[`document-manager`],requires:[],optional:[],defaultConfig:{maxDocuments:10}},lr={manifest:cr,create:(e,t)=>new or(sr,e,t),reducer:e=>e,initialState:{}}})))()}function dr({documentId:e,children:t}){let n=er(e);if(!n)return null;let r=n.status===`loading`,i=n.status===`error`,a=n.status===`loaded`;return/* @__PURE__ */ E(ue,{children:t({documentState:n,isLoading:r,isError:i,isLoaded:a})})}function fr(){let{plugin:e}=pr(),{provides:t}=mr(),n=w(null),r=w(null),i=w(void 0);return S(()=>{if(e?.onOpenFileRequest)return e.onOpenFileRequest(({task:e,options:t})=>{var a;r.current=e,i.current=t,(a=n.current)==null||a.click()})},[e]),/* @__PURE__ */ E(`input`,{ref:n,type:`file`,accept:`application/pdf`,style:{display:`none`},onChange:async e=>{let n=e.currentTarget.files?.[0];if(!n||!t)return;let a=await n.arrayBuffer();t.openDocumentBuffer({name:n.name,buffer:a,documentId:i.current?.documentId,scale:i.current?.scale,rotation:i.current?.rotation,autoActivate:i.current?.autoActivate}).wait(e=>{var t;(t=r.current)==null||t.resolve(e)},e=>{var t;(t=r.current)==null||t.fail(e)})}})}var pr,mr,hr;function gr(){return(gr=t((()=>{G(),ur(),J(),pr=()=>K(or.id),mr=()=>q(or.id),hr=an(lr).addUtility(fr).build()})))()}function _r(e){return{type:Ar,payload:{documentId:e}}}function vr(e){return{type:jr,payload:{documentId:e}}}function yr(e){return{type:Mr,payload:{documentId:e}}}function br(e){return{type:Nr,payload:{documentId:e}}}function xr(e){return{type:Ir,payload:e}}function Sr(e,t){return{type:Pr,payload:{documentId:e,metrics:t}}}function Cr(e,t){return{type:Fr,payload:{documentId:e,scrollMetrics:t}}}function wr(e,t){return{type:Lr,payload:{documentId:e,isScrolling:t}}}function Tr(e,t){return{type:Rr,payload:{documentId:e,isSmoothScrolling:t}}}function Er(e,t){return{type:Br,payload:{documentId:e,key:t}}}function Dr(e,t){return{type:Vr,payload:{documentId:e,key:t}}}var Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr;function Jr(){return(Jr=t((()=>{G(),Or=`viewport`,kr={id:Or,name:`Viewport Plugin`,version:`1.0.0`,provides:[`viewport`],requires:[],optional:[],defaultConfig:{viewportGap:10,scrollEndDelay:300}},Ar=`INIT_VIEWPORT_STATE`,jr=`CLEANUP_VIEWPORT_STATE`,Mr=`REGISTER_VIEWPORT`,Nr=`UNREGISTER_VIEWPORT`,Pr=`SET_VIEWPORT_METRICS`,Fr=`SET_VIEWPORT_SCROLL_METRICS`,Ir=`SET_VIEWPORT_GAP`,Lr=`SET_SCROLL_ACTIVITY`,Rr=`SET_SMOOTH_SCROLL_ACTIVITY`,zr=`SET_ACTIVE_VIEWPORT_DOCUMENT`,Br=`ADD_VIEWPORT_GATE`,Vr=`REMOVE_VIEWPORT_GATE`,Hr={viewportMetrics:{width:0,height:0,scrollTop:0,scrollLeft:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0,clientLeft:0,clientTop:0,relativePosition:{x:0,y:0}},isScrolling:!1,isSmoothScrolling:!1,gates:/* @__PURE__ */ new Set},Ur={viewportGap:0,documents:{},activeViewports:/* @__PURE__ */ new Set,activeDocumentId:null},Wr=(e=Ur,t)=>{switch(t.type){case Ar:{let{documentId:n}=t.payload;return{...e,documents:{...e.documents,[n]:{...Hr,gates:/* @__PURE__ */ new Set}}}}case jr:{let{documentId:n}=t.payload,{[n]:r,...i}=e.documents,a=new Set(e.activeViewports);return a.delete(n),{...e,documents:i,activeViewports:a,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case Mr:{let{documentId:n}=t.payload,r=new Set(e.activeViewports);return r.add(n),{...e,activeViewports:r,activeDocumentId:e.activeDocumentId??n}}case Nr:{let{documentId:n}=t.payload,r=new Set(e.activeViewports);return r.delete(n),{...e,activeViewports:r}}case zr:return{...e,activeDocumentId:t.payload};case Ir:return{...e,viewportGap:t.payload};case Pr:{let{documentId:n,metrics:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,viewportMetrics:{width:r.width,height:r.height,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft,clientWidth:r.clientWidth,clientHeight:r.clientHeight,scrollWidth:r.scrollWidth,scrollHeight:r.scrollHeight,clientLeft:r.clientLeft,clientTop:r.clientTop,relativePosition:{x:r.scrollWidth<=r.clientWidth?0:r.scrollLeft/(r.scrollWidth-r.clientWidth),y:r.scrollHeight<=r.clientHeight?0:r.scrollTop/(r.scrollHeight-r.clientHeight)}}}}}:e}case Fr:{let{documentId:n,scrollMetrics:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,viewportMetrics:{...i.viewportMetrics,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft},isScrolling:!0}}}:e}case Lr:{let{documentId:n,isScrolling:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,isScrolling:r}}}:e}case Rr:{let{documentId:n,isSmoothScrolling:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,isSmoothScrolling:r}}}:e}case Br:{let{documentId:n,key:r}=t.payload,i=e.documents[n];if(!i)return e;let a=new Set(i.gates);return a.add(r),{...e,documents:{...e.documents,[n]:{...i,gates:a}}}}case Vr:{let{documentId:n,key:r}=t.payload,i=e.documents[n];if(!i)return e;let a=new Set(i.gates);return a.delete(r),{...e,documents:{...e.documents,[n]:{...i,gates:a}}}}default:return e}},Gr=class extends W{constructor(e,t,n){super(e,t),this.id=e,this.viewportResize$=B(),this.viewportMetrics$=B(),this.scrollMetrics$=B(),this.scrollActivity$=B(),this.gateState$=B(),this.scrollRequests$=/* @__PURE__ */ new Map,n.viewportGap&&this.dispatch(xr(n.viewportGap)),this.scrollEndDelay=n.scrollEndDelay||100}onDocumentLoadingStarted(e){this.dispatch(_r(e)),this.scrollRequests$.set(e,z()),this.logger.debug(`ViewportPlugin`,`DocumentOpened`,`Initialized viewport state for document: ${e}`)}onDocumentClosed(e){var t;this.dispatch(vr(e)),(t=this.scrollRequests$.get(e))==null||t.clear(),this.scrollRequests$.delete(e),this.logger.debug(`ViewportPlugin`,`DocumentClosed`,`Cleaned up viewport state for document: ${e}`)}buildCapability(){return{getViewportGap:()=>this.state.viewportGap,getMetrics:()=>this.getMetrics(),scrollTo:e=>this.scrollTo(e),isScrolling:()=>this.isScrolling(),isSmoothScrolling:()=>this.isSmoothScrolling(),isGated:e=>this.isGated(e),hasGate:(e,t)=>this.hasGate(e,t),getGates:e=>this.getGates(e),forDocument:e=>this.createViewportScope(e),gate:(e,t)=>this.gate(e,t),releaseGate:(e,t)=>this.releaseGate(e,t),isViewportMounted:e=>this.state.activeViewports.has(e),onViewportChange:this.viewportMetrics$.on,onViewportResize:this.viewportResize$.on,onScrollChange:this.scrollMetrics$.on,onScrollActivity:this.scrollActivity$.on,onGateChange:this.gateState$.on}}createViewportScope(e){return{getMetrics:()=>this.getMetrics(e),scrollTo:t=>this.scrollTo(t,e),isScrolling:()=>this.isScrolling(e),isSmoothScrolling:()=>this.isSmoothScrolling(e),isGated:()=>this.isGated(e),hasGate:t=>this.hasGate(t,e),getGates:()=>this.getGates(e),gate:t=>this.gate(t,e),releaseGate:t=>this.releaseGate(t,e),onViewportChange:t=>this.viewportMetrics$.on(n=>{n.documentId===e&&t(n.metrics)}),onScrollChange:t=>this.scrollMetrics$.on(n=>{n.documentId===e&&t(n.scrollMetrics)}),onScrollActivity:t=>this.scrollActivity$.on(n=>{n.documentId===e&&t(n.activity)}),onGateChange:t=>this.gateState$.on(n=>{n?.documentId===e&&t(n)})}}registerViewport(e){if(!this.state.documents[e])throw Error(`Cannot register viewport for ${e}: document state not found. Document must be opened before registering viewport.`);this.state.activeViewports.has(e)||(this.dispatch(yr(e)),this.logger.debug(`ViewportPlugin`,`RegisterViewport`,`Registered viewport (DOM mounted) for document: ${e}`))}unregisterViewport(e){this.registry.isDestroyed()||this.state.activeViewports.has(e)&&(this.dispatch(br(e)),this.logger.debug(`ViewportPlugin`,`UnregisterViewport`,`Unregistered viewport (DOM unmounted) for document: ${e}. State preserved.`))}setViewportResizeMetrics(e,t){if(this.registry.isDestroyed())return;this.dispatch(Sr(e,t));let n=this.state.documents[e];n&&this.viewportResize$.emit({documentId:e,metrics:n.viewportMetrics})}setViewportScrollMetrics(e,t){if(this.registry.isDestroyed())return;let n=this.state.documents[e];n&&(t.scrollTop!==n.viewportMetrics.scrollTop||t.scrollLeft!==n.viewportMetrics.scrollLeft)&&(this.dispatch(Cr(e,t)),this.bumpScrollActivity(e),this.scrollMetrics$.emit({documentId:e,scrollMetrics:t}))}onScrollRequest(e,t){let n=this.scrollRequests$.get(e);if(!n)throw Error(`Cannot subscribe to scroll requests for ${e}: document state not initialized`);return n.on(t)}gate(e,t){let n=this.state.documents[t];n?n.gates.has(e)||(this.dispatch(Er(t,e)),this.logger.debug(`ViewportPlugin`,`GateAdded`,`Added gate '${e}' for document: ${t}. Total gates: ${n.gates.size+1}`)):this.logger.warn(`ViewportPlugin`,`GateViewport`,`Cannot gate viewport for ${t}: document not found`)}releaseGate(e,t){let n=this.state.documents[t];n?n.gates.has(e)&&(this.dispatch(Dr(t,e)),this.logger.debug(`ViewportPlugin`,`GateReleased`,`Released gate '${e}' for document: ${t}. Remaining gates: ${n.gates.size-1}`)):this.logger.warn(`ViewportPlugin`,`ReleaseGate`,`Cannot release gate for ${t}: document not found`)}getViewportState(e){let t=e??this.getActiveDocumentId(),n=this.state.documents[t];if(!n)throw Error(`Viewport state not found for document: ${t}`);return n}getMetrics(e){return this.getViewportState(e).viewportMetrics}isScrolling(e){return this.getViewportState(e).isScrolling}isSmoothScrolling(e){return this.getViewportState(e).isSmoothScrolling}isGated(e){return this.getViewportState(e).gates.size>0}hasGate(e,t){return this.getViewportState(t).gates.has(e)}getGates(e){let t=this.getViewportState(e);return Array.from(t.gates)}scrollTo(e,t){let n=t??this.getActiveDocumentId(),r=this.getViewportState(n),{x:i,y:a,alignX:o,alignY:s,behavior:c=`auto`}=e;c===`smooth`&&this.dispatch(Tr(n,!0));let l=r.viewportMetrics,u=i,d=a;o!==void 0&&(u=i-l.clientWidth*(o/100)),s!==void 0&&(d=a-l.clientHeight*(s/100));let f=this.scrollRequests$.get(n);f&&f.emit({x:u,y:d,behavior:c})}bumpScrollActivity(e){this.debouncedDispatch(wr(e,!1),this.scrollEndDelay),this.debouncedDispatch(Tr(e,!1),this.scrollEndDelay)}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];if(r!==i&&(this.viewportMetrics$.emit({documentId:n,metrics:i.viewportMetrics}),r&&(r.isScrolling!==i.isScrolling||r.isSmoothScrolling!==i.isSmoothScrolling)&&this.scrollActivity$.emit({documentId:n,activity:{isScrolling:i.isScrolling,isSmoothScrolling:i.isSmoothScrolling}}),r&&r.gates!==i.gates)){let e=Array.from(r.gates),t=Array.from(i.gates),a=t.find(t=>!e.includes(t)),o=e.find(e=>!t.includes(e));this.gateState$.emit({documentId:n,isGated:i.gates.size>0,gates:t,addedGate:a,removedGate:o}),this.logger.debug(`ViewportPlugin`,`GateStateChanged`,`Gate state changed for document ${n}. Gates: [${t.join(`, `)}], Gated: ${i.gates.size>0}`)}}}async initialize(e){this.logger.info(`ViewportPlugin`,`Initialize`,`Viewport plugin initialized`)}async destroy(){this.viewportMetrics$.clear(),this.viewportResize$.clear(),this.scrollMetrics$.clear(),this.scrollActivity$.clear(),this.gateState$.clear(),this.scrollRequests$.forEach(e=>e.clear()),this.scrollRequests$.clear(),super.destroy()}},Gr.id=`viewport`,Kr=Gr,qr={manifest:kr,create:(e,t)=>new Kr(Or,e,t),reducer:Wr,initialState:Ur}})))()}function Yr(e){let{plugin:t}=Qr(),n=w(null);return le(()=>{if(!t)return;let r=n.current;if(!r)return;try{t.registerViewport(e)}catch(t){console.error(`Failed to register viewport for document ${e}:`,t);return}let i=()=>{t.setViewportScrollMetrics(e,{scrollTop:r.scrollTop,scrollLeft:r.scrollLeft})};r.addEventListener(`scroll`,i);let a=new ResizeObserver(()=>{t.setViewportResizeMetrics(e,{width:r.offsetWidth,height:r.offsetHeight,clientWidth:r.clientWidth,clientHeight:r.clientHeight,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft,scrollWidth:r.scrollWidth,scrollHeight:r.scrollHeight,clientLeft:r.clientLeft,clientTop:r.clientTop})});a.observe(r);let o=t.onScrollRequest(e,({x:e,y:t,behavior:n=`auto`})=>{requestAnimationFrame(()=>{r.scrollTo({left:e,top:t,behavior:n})})});return()=>{t.unregisterViewport(e),a.disconnect(),r.removeEventListener(`scroll`,i),o()}},[t,e]),n}function Xr({children:e,documentId:t,...n}){let[r,i]=T(0),a=Yr(t),{provides:o}=$r(),s=ei(t);S(()=>{o&&i(o.getViewportGap())},[o]);let{style:c,...l}=n;return/* @__PURE__ */ E(Zr.Provider,{value:a,children:/* @__PURE__ */ E(`div`,{...l,ref:a,style:{width:`100%`,height:`100%`,overflow:`auto`,...typeof c==`object`?c:{},padding:`${r}px`},children:!s&&e})})}var Zr,Qr,$r,ei;function ti(){return(ti=t((()=>{J(),Jr(),Zr=ae(null),Qr=()=>K(Kr.id),$r=()=>q(Kr.id),ei=e=>{let{provides:t}=$r(),[n,r]=T(t?.isGated(e)??!1);return S(()=>{if(t)return r(t.isGated(e)),t.onGateChange(t=>{t.documentId===e&&r(t.isGated)})},[t,e]),n}})))()}function ni(e,t){return{type:li,payload:{documentId:e,state:t}}}function ri(e){return{type:ui,payload:e}}function ii(e,t){return{type:di,payload:{documentId:e,state:t}}}function ai(e,t){return{type:fi,payload:{documentId:e,strategy:t}}}var Y,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi;function Si(){return(Si=t((()=>{G(),I(),Y=/* @__PURE__ */ (e=>(e.Vertical=`vertical`,e.Horizontal=`horizontal`,e))(Y||{}),oi=class{constructor(e){this.pageGap=e.pageGap??20,this.viewportGap=e.viewportGap??20,this.bufferSize=e.bufferSize??2}getCenteringOffsetX(e,t){return!t||e.width>=t.width?0:(t.width-e.width)/2}getCenteringOffsetY(e,t){return 0}getVisibleRange(e,t,n){let r=this.getScrollOffset(e),i=this.getClientSize(e),a=r,o=r+i,s=0;for(;s<t.length&&(t[s].offset+this.getItemSizeAlongScrollAxis(t[s]))*n<=a;)s++;let c=s;for(;c<t.length&&t[c].offset*n<=o;)c++;return{start:Math.max(0,s-this.bufferSize),end:Math.min(t.length-1,c+this.bufferSize-1)}}handleScroll(e,t,n){let r=this.getVisibleRange(e,t,n),i=t.slice(r.start,r.end+1),a=this.getTotalContentSize(t),o=this.calculatePageVisibility(i,e,n,a),s=o.map(e=>e.pageNumber),c=t.slice(r.start,r.end+1).flatMap(e=>e.index),l=this.determineCurrentPage(o),u=t[r.start],d=t[r.end],f=u?u.offset*n:0,p=t[t.length-1],m=d?(p.offset+this.getItemSizeAlongScrollAxis(p))*n-(d.offset+this.getItemSizeAlongScrollAxis(d))*n:0;return{currentPage:l,visiblePages:s,pageVisibilityMetrics:o,renderedPageIndexes:c,scrollOffset:{x:e.scrollLeft,y:e.scrollTop},startSpacing:f,endSpacing:m}}calculatePageVisibility(e,t,n,r){let i=[];return e.forEach(e=>{let a=this.getCenteringOffsetX(e,r),o=this.getCenteringOffsetY(e,r);e.pageLayouts.forEach(r=>{let s=(e.x+a)*n,c=(e.y+o)*n,l=s+r.x*n,u=c+r.y*n,d=r.rotatedWidth*n,f=r.rotatedHeight*n,p=t.scrollLeft,m=t.scrollTop,h=p+t.clientWidth,g=m+t.clientHeight,_=Math.max(l,p),v=Math.max(u,m),y=Math.min(l+d,h),b=Math.min(u+f,g);if(_<y&&v<b){let e=y-_,t=b-v,a=d*f,o=e*t;i.push({pageNumber:r.pageNumber,viewportX:_-p,viewportY:v-m,visiblePercentage:o/a*100,original:{pageX:(_-l)/n,pageY:(v-u)/n,visibleWidth:e/n,visibleHeight:t/n,scale:1},scaled:{pageX:_-l,pageY:v-u,visibleWidth:e,visibleHeight:t,scale:n}})}})}),i}determineCurrentPage(e){if(e.length===0)return 1;let t=Math.max(...e.map(e=>e.visiblePercentage)),n=e.filter(e=>e.visiblePercentage===t);return n.length===1?n[0].pageNumber:n.sort((e,t)=>e.pageNumber-t.pageNumber)[0].pageNumber}getRectLocationForPage(e,t,n){let r=t.find(t=>t.pageNumbers.includes(e));if(!r)return null;let i=r.pageLayouts.find(t=>t.pageNumber===e);if(!i)return null;let a=this.getCenteringOffsetX(r,n),o=this.getCenteringOffsetY(r,n);return{origin:{x:r.x+i.x+a,y:r.y+i.y+o},size:{width:i.width,height:i.height}}}getScrollPositionForPage(e,t,n,r,i){let a=this.getTotalContentSize(t),o=this.getRectLocationForPage(e,t,a);if(!o)return null;let s=Le(o.origin,n);if(i){let e=Re({width:o.size.width,height:o.size.height},{x:i.x,y:i.y},r,n);return{x:s.x+e.x+this.viewportGap,y:s.y+e.y+this.viewportGap}}return{x:s.x+this.viewportGap,y:s.y+this.viewportGap}}getRectPositionForPage(e,t,n,r,i){let a=this.getTotalContentSize(t),o=this.getRectLocationForPage(e,t,a);if(!o)return null;let s=Le(o.origin,n),c=He({width:o.size.width,height:o.size.height},i,r,n);return{origin:{x:s.x+c.origin.x,y:s.y+c.origin.y},size:c.size}}},si=class extends oi{constructor(e){super(e)}createVirtualItems(e){let t=0;return e.map((e,n)=>{let r=0,i=e.map(e=>{let t={pageNumber:e.index+1,pageIndex:e.index,x:r,y:0,width:e.size.width,height:e.size.height,rotatedWidth:e.rotatedSize.width,rotatedHeight:e.rotatedSize.height,elevated:!1};return r+=e.rotatedSize.width+this.pageGap,t}),a=e.reduce((t,n,r)=>t+n.rotatedSize.width+(r<e.length-1?this.pageGap:0),0),o=Math.max(...e.map(e=>e.rotatedSize.height)),s={id:`item-${n}`,x:0,y:t,offset:t,width:a,height:o,pageLayouts:i,pageNumbers:e.map(e=>e.index+1),index:n};return t+=o+this.pageGap,s})}getTotalContentSize(e){return e.length===0?{width:0,height:0}:{width:Math.max(...e.map(e=>e.width)),height:e[e.length-1].y+e[e.length-1].height}}getScrollOffset(e){return e.scrollTop}getClientSize(e){return e.clientHeight}getItemSizeAlongScrollAxis(e){return e.height}},ci=class extends oi{constructor(e){super(e)}createVirtualItems(e){let t=0;return e.map((e,n)=>{let r=0,i=e.map(e=>{let t={pageNumber:e.index+1,pageIndex:e.index,x:r,y:0,width:e.size.width,height:e.size.height,rotatedWidth:e.rotatedSize.width,rotatedHeight:e.rotatedSize.height,elevated:!1};return r+=e.rotatedSize.width+this.pageGap,t}),a=e.reduce((t,n,r)=>t+n.rotatedSize.width+(r<e.length-1?this.pageGap:0),0),o=Math.max(...e.map(e=>e.rotatedSize.height)),s={id:`item-${n}`,x:t,y:0,offset:t,width:a,height:o,pageLayouts:i,pageNumbers:e.map(e=>e.index+1),index:n};return t+=a+this.pageGap,s})}getTotalContentSize(e){return e.length===0?{width:0,height:0}:{width:e[e.length-1].x+e[e.length-1].width,height:Math.max(...e.map(e=>e.height))}}getScrollOffset(e){return e.scrollLeft}getClientSize(e){return e.clientWidth}getItemSizeAlongScrollAxis(e){return e.width}getCenteringOffsetX(e,t){return 0}getCenteringOffsetY(e,t){return!t||e.height>=t.height?0:(t.height-e.height)/2}},li=`INIT_SCROLL_STATE`,ui=`CLEANUP_SCROLL_STATE`,di=`UPDATE_DOCUMENT_SCROLL_STATE`,fi=`SET_SCROLL_STRATEGY`,pi={isChanging:!1,targetPage:1,fromPage:1,startTime:0},mi=(e,t)=>({defaultStrategy:t.defaultStrategy??Y.Vertical,defaultPageGap:t.defaultPageGap??10,defaultBufferSize:t.defaultBufferSize??2,documents:{}}),hi=(e,t)=>{switch(t.type){case li:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r}}}case ui:{let{[t.payload]:n,...r}=e.documents;return{...e,documents:r}}case di:{let{documentId:n,state:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,...r}}}:e}case fi:{let{documentId:n,strategy:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,strategy:r}}}:e}default:return e}},gi=(e,t,n)=>({startSpacing:e.startSpacing,endSpacing:e.endSpacing,totalWidth:e.totalContentSize.width*t,totalHeight:e.totalContentSize.height*t,pageGap:e.pageGap*t,strategy:e.strategy,items:e.renderedPageIndexes.map(r=>({...e.virtualItems[r],pageLayouts:e.virtualItems[r].pageLayouts.map(e=>({...e,rotatedWidth:e.rotatedWidth*t,rotatedHeight:e.rotatedHeight*t,width:e.width*t,height:e.height*t,elevated:n?.has(e.pageIndex)??!1}))}))}),_i=class extends W{constructor(e,t,n){var r;super(e,t),this.id=e,this.config=n,this.elevatedPages=/* @__PURE__ */ new Map,this.strategies=/* @__PURE__ */ new Map,this.layoutReady=/* @__PURE__ */ new Set,this.initialLayoutFired=/* @__PURE__ */ new Set,this.scrollerLayoutEmitters=/* @__PURE__ */ new Map,this.pageChange$=B(),this.scroll$=B(),this.layoutChange$=B(),this.pageChangeState$=B(),this.layoutReady$=B(),this.state$=B(),this.viewport=this.registry.getPlugin(`viewport`).provides(),this.spread=this.registry.getPlugin(`spread`)?.provides()??null,this.viewport.onScrollActivity(e=>{this.getDocumentState(e.documentId)?.pageChangeState.isChanging&&!e.activity.isSmoothScrolling&&this.completePageChange(e.documentId)}),(r=this.spread)==null||r.onSpreadChange(e=>{this.refreshDocumentLayout(e.documentId)});let i=this.registry.getPlugin(`interaction-manager`)?.provides();i&&i.onPageActivityChange(e=>{let t=this.elevatedPages.get(e.documentId);e.hasActivity?(t||(t=/* @__PURE__ */ new Set,this.elevatedPages.set(e.documentId,t)),t.add(e.pageIndex)):t?.delete(e.pageIndex),this.pushScrollerLayout(e.documentId)}),this.viewport.onViewportChange(e=>{let t=this.getDocumentState(e.documentId);if(!t)return;let n=this.computeMetrics(e.documentId,e.metrics);this.layoutReady.has(e.documentId)?this.commitMetrics(e.documentId,n):this.commitMetrics(e.documentId,{...n,scrollOffset:t.scrollOffset})})}onDocumentLoadingStarted(e){let t=this.getCoreDocument(e);if(!t)return;let n=this.createDocumentState(t);this.dispatch(ni(e,n));let r=this.createStrategy(n.strategy);this.strategies.set(e,r),this.scrollerLayoutEmitters.set(e,B())}onDocumentLoaded(e){let t=this.getCoreDocument(e);t&&(this.dispatch(ii(e,{totalPages:t.document?.pageCount??0})),this.refreshDocumentLayout(e),this.logger.debug(`ScrollPlugin`,`DocumentOpened`,`Initialized scroll state for document: ${e}`))}onDocumentClosed(e){this.strategies.delete(e),this.layoutReady.delete(e),this.initialLayoutFired.delete(e),this.elevatedPages.delete(e);let t=this.scrollerLayoutEmitters.get(e);t&&(t.clear(),this.scrollerLayoutEmitters.delete(e)),this.dispatch(ri(e)),this.logger.debug(`ScrollPlugin`,`DocumentClosed`,`Cleaned up scroll state for document: ${e}`)}onScaleChanged(e){let t=this.coreState.core.documents[e];if(!t||t.status!==`loaded`)return;let n=this.viewport.forDocument(e),r=this.computeMetrics(e,n.getMetrics());this.commitMetrics(e,r)}onRotationChanged(e){this.refreshDocumentLayout(e)}onScrollerData(e,t){let n=this.scrollerLayoutEmitters.get(e);if(!n)throw Error(`No scroller layout emitter found for document: ${e}`);return n.on(t)}getScrollerLayout(e){let t=this.getDocumentState(e),n=this.getCoreDocumentOrThrow(e);if(!t||!n)throw Error(`Cannot get scroller layout for document: ${e}`);return gi(t,n.scale,this.elevatedPages.get(e))}setLayoutReady(e){if(this.layoutReady.has(e))return;let t=this.getDocumentState(e);if(!t)return;this.layoutReady.add(e);let n=!this.initialLayoutFired.has(e);n&&this.initialLayoutFired.add(e),this.viewport.forDocument(e).scrollTo({...t.scrollOffset,behavior:`instant`}),this.layoutReady$.emit({documentId:e,isInitial:n,pageNumber:t.currentPage,totalPages:t.totalPages})}clearLayoutReady(e){this.layoutReady.delete(e)}buildCapability(){return{getCurrentPage:()=>this.getCurrentPage(),getTotalPages:()=>this.getTotalPages(),getPageChangeState:()=>this.getPageChangeState(),scrollToPage:e=>this.scrollToPage(e),scrollToNextPage:e=>this.scrollToNextPage(e),scrollToPreviousPage:e=>this.scrollToPreviousPage(e),getMetrics:e=>this.getMetrics(e),getLayout:()=>this.getLayout(),getRectPositionForPage:(e,t,n,r)=>this.getRectPositionForPage(e,t,n,r),forDocument:e=>this.createScrollScope(e),setScrollStrategy:(e,t)=>this.setScrollStrategyForDocument(e,t),getPageGap:()=>this.state.defaultPageGap,onPageChange:this.pageChange$.on,onScroll:this.scroll$.on,onLayoutChange:this.layoutChange$.on,onLayoutReady:this.layoutReady$.on,onPageChangeState:this.pageChangeState$.on,onStateChange:this.state$.on}}createScrollScope(e){return{getCurrentPage:()=>this.getCurrentPage(e),getTotalPages:()=>this.getTotalPages(e),getPageChangeState:()=>this.getPageChangeState(e),scrollToPage:t=>this.scrollToPage(t,e),scrollToNextPage:t=>this.scrollToNextPage(t,e),scrollToPreviousPage:t=>this.scrollToPreviousPage(t,e),getSpreadPagesWithRotatedSize:()=>this.getSpreadPagesWithRotatedSize(e),getMetrics:t=>this.getMetrics(t,e),getLayout:()=>this.getLayout(e),getRectPositionForPage:(t,n,r,i)=>this.getRectPositionForPage(t,n,r,i,e),setScrollStrategy:t=>this.setScrollStrategyForDocument(t,e),onPageChange:t=>this.pageChange$.on(n=>{n.documentId===e&&t(n)}),onScroll:t=>this.scroll$.on(n=>{n.documentId===e&&t(n.metrics)}),onLayoutChange:t=>this.layoutChange$.on(n=>{n.documentId===e&&t(n.layout)})}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}getDocumentStateOrThrow(e){let t=this.getDocumentState(e);if(!t)throw Error(`Scroll state not found for document: ${e??`active`}`);return t}getStrategy(e){let t=e??this.getActiveDocumentId(),n=this.strategies.get(t);if(!n)throw Error(`Strategy not found for document: ${t}`);return n}createStrategy(e){let t={pageGap:this.state.defaultPageGap,viewportGap:this.viewport.getViewportGap(),bufferSize:this.state.defaultBufferSize};return e===Y.Horizontal?new ci(t):new si(t)}createDocumentState(e){return{virtualItems:[],totalPages:e.document?.pageCount??0,currentPage:1,totalContentSize:{width:0,height:0},strategy:this.state.defaultStrategy,pageGap:this.state.defaultPageGap,visiblePages:[],pageVisibilityMetrics:[],renderedPageIndexes:[],scrollOffset:{x:0,y:0},startSpacing:0,endSpacing:0,pageChangeState:pi}}startPageChange(e,t,n=`smooth`){let r=this.getDocumentState(e);if(!r)return;let i={isChanging:!0,targetPage:t,fromPage:r.currentPage,startTime:Date.now()};this.dispatch(ii(e,{pageChangeState:i,currentPage:t})),this.pageChange$.emit({documentId:e,pageNumber:t,totalPages:r.totalPages}),n===`instant`&&this.completePageChange(e)}completePageChange(e){let t=this.getDocumentState(e);if(!t||!t.pageChangeState.isChanging)return;let n={isChanging:!1,targetPage:t.pageChangeState.targetPage,fromPage:t.pageChangeState.fromPage,startTime:t.pageChangeState.startTime};this.dispatch(ii(e,{pageChangeState:n}))}computeLayout(e,t){let n=this.getStrategy(e),r=n.createVirtualItems(t);return{virtualItems:r,totalContentSize:n.getTotalContentSize(r)}}computeMetrics(e,t,n){let r=this.getCoreDocumentOrThrow(e),i=this.getDocumentState(e),a=this.getStrategy(e);if(!i)throw Error(`Document state not found: ${e}`);return a.handleScroll(t,n??i.virtualItems,r.scale)}commitMetrics(e,t){let n=this.getDocumentState(e);if(!n)return;let r=n.pageChangeState.isChanging,i=r&&t.currentPage!==n.currentPage?{...t,currentPage:n.currentPage}:t;this.dispatch(ii(e,i)),this.scroll$.emit({documentId:e,metrics:i}),!r&&t.currentPage!==n.currentPage&&this.pageChange$.emit({documentId:e,pageNumber:t.currentPage,totalPages:n.totalPages}),this.pushScrollerLayout(e)}pushScrollerLayout(e){let t=this.scrollerLayoutEmitters.get(e);if(t)try{let n=this.getScrollerLayout(e);t.emit(n)}catch{}}refreshDocumentLayout(e){let t=this.coreState.core.documents[e],n=this.getDocumentState(e);if(!t||!n||t.status!==`loaded`)return;let r=this.getSpreadPagesWithRotatedSize(e),i=this.computeLayout(e,r),a=this.viewport.forDocument(e),o=this.computeMetrics(e,a.getMetrics(),i.virtualItems);this.dispatch(ii(e,{...i,...o})),this.layoutChange$.emit({documentId:e,layout:i}),this.pushScrollerLayout(e)}getSpreadPagesWithRotatedSize(e){let t=e??this.getActiveDocumentId(),n=this.coreState.core.documents[t];if(!n)throw Error(`Document ${t} not loaded`);return(this.spread?.forDocument(t).getSpreadPages()||n.document?.pages.map(e=>[e])||[]).map(e=>e.map(e=>{let t=((e.rotation??0)+n.rotation)%4;return{...e,rotatedSize:Ne(e.size,t,1)}}))}getCurrentPage(e){return this.getDocumentStateOrThrow(e).currentPage}getTotalPages(e){return this.getDocumentStateOrThrow(e).totalPages}getPageChangeState(e){return this.getDocumentStateOrThrow(e).pageChangeState}scrollToPage(e,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentStateOrThrow(n),i=this.getStrategy(n),a=this.getCoreDocumentOrThrow(n),{pageNumber:o,behavior:s=`smooth`,pageCoordinates:c,alignX:l,alignY:u}=e;this.startPageChange(n,o,s);let d=((a.document?.pages[o-1]?.rotation??0)+a.rotation)%4,f=i.getScrollPositionForPage(o,r.virtualItems,a.scale,d,c);f?this.viewport.forDocument(n).scrollTo({...f,behavior:s,alignX:l,alignY:u}):this.completePageChange(n)}scrollToNextPage(e=`smooth`,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentStateOrThrow(n),i=this.getStrategy(n),a=this.getCoreDocumentOrThrow(n),o=r.virtualItems.findIndex(e=>e.pageNumbers.includes(r.currentPage));if(o>=0&&o<r.virtualItems.length-1){let t=r.virtualItems[o+1].pageNumbers[0];this.startPageChange(n,t,e);let s=i.getScrollPositionForPage(t,r.virtualItems,a.scale,a.rotation);s?this.viewport.forDocument(n).scrollTo({...s,behavior:e}):this.completePageChange(n)}}scrollToPreviousPage(e=`smooth`,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentStateOrThrow(n),i=this.getStrategy(n),a=this.coreState.core.documents[n],o=r.virtualItems.findIndex(e=>e.pageNumbers.includes(r.currentPage));if(o>0){let t=r.virtualItems[o-1].pageNumbers[0];this.startPageChange(n,t,e);let s=i.getScrollPositionForPage(t,r.virtualItems,a.scale,a.rotation);s?this.viewport.forDocument(n).scrollTo({...s,behavior:e}):this.completePageChange(n)}}getMetrics(e,t){let n=t??this.getActiveDocumentId();if(e)return this.computeMetrics(n,e);let r=this.viewport.forDocument(n);return this.computeMetrics(n,r.getMetrics())}getLayout(e){let t=this.getDocumentStateOrThrow(e);return{virtualItems:t.virtualItems,totalContentSize:t.totalContentSize}}getRectPositionForPage(e,t,n,r,i){let a=i??this.getActiveDocumentId(),o=this.getDocumentStateOrThrow(a),s=this.getStrategy(a),c=this.getCoreDocumentOrThrow(a),l=r;return l===void 0&&(l=((c.document?.pages[e]?.rotation??0)+c.rotation)%4),s.getRectPositionForPage(e+1,o.virtualItems,n??c.scale,l,t)}setScrollStrategyForDocument(e,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentState(n);if(!r||r.strategy===e)return;let i=this.createStrategy(e);this.strategies.set(n,i),this.dispatch(ai(n,e)),this.refreshDocumentLayout(n)}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r!==i&&(this.state$.emit(i),r?.pageChangeState!==i.pageChangeState&&this.pageChangeState$.emit({documentId:n,state:i.pageChangeState}),this.pushScrollerLayout(n))}}async initialize(){this.logger.info(`ScrollPlugin`,`Initialize`,`Scroll plugin initialized`)}async destroy(){this.strategies.clear(),this.layoutReady.clear(),this.initialLayoutFired.clear(),this.elevatedPages.clear();for(let e of this.scrollerLayoutEmitters.values())e.clear();this.scrollerLayoutEmitters.clear(),this.pageChange$.clear(),this.scroll$.clear(),this.layoutChange$.clear(),this.pageChangeState$.clear(),this.layoutReady$.clear(),this.state$.clear(),super.destroy()}},_i.id=`scroll`,vi=_i,yi=`scroll`,bi={id:yi,name:`Scroll Plugin`,version:`1.0.0`,provides:[`scroll`],requires:[`viewport`],optional:[`spread`,`interaction-manager`],defaultConfig:{defaultPageGap:10,defaultBufferSize:4,defaultStrategy:Y.Vertical}},xi={manifest:bi,create:(e,t)=>new vi(yi,e,t),reducer:hi,initialState:(e,t)=>mi(e,t)}})))()}function Ci({documentId:e,renderPage:t,...n}){let{plugin:r}=wi(),[i,a]=T({layout:null,docId:null});S(()=>{if(!r||!e)return;let t=r.onScrollerData(e,t=>{a({layout:t,docId:e})});return()=>{t(),a({layout:null,docId:null}),r.clearLayoutReady(e)}},[r,e]);let o=i.docId===e?i.layout:null;return le(()=>{r&&e&&o&&r.setLayoutReady(e)},[r,e,o]),o?/* @__PURE__ */ D(`div`,{...n,style:{width:`${o.totalWidth}px`,height:`${o.totalHeight}px`,position:`relative`,boxSizing:`border-box`,margin:`0 auto`,...o.strategy===Y.Horizontal&&{display:`flex`,flexDirection:`row`}},children:[/* @__PURE__ */ E(`div`,{style:{...o.strategy===Y.Horizontal?{width:o.startSpacing,height:`100%`,flexShrink:0}:{height:o.startSpacing,width:`100%`}}}),/* @__PURE__ */ E(`div`,{style:{gap:o.pageGap,display:`flex`,alignItems:`center`,position:`relative`,boxSizing:`border-box`,...o.strategy===Y.Horizontal?{flexDirection:`row`,minHeight:`100%`}:{flexDirection:`column`,minWidth:`fit-content`}},children:o.items.map(e=>/* @__PURE__ */ E(`div`,{style:{display:`flex`,justifyContent:`center`,gap:o.pageGap},children:e.pageLayouts.map(e=>/* @__PURE__ */ E(`div`,{style:{width:`${e.rotatedWidth}px`,height:`${e.rotatedHeight}px`,position:`relative`,zIndex:e.elevated?1:void 0},children:t({...e})},e.pageNumber))},e.pageNumbers[0]))}),/* @__PURE__ */ E(`div`,{style:{...o.strategy===Y.Horizontal?{width:o.endSpacing,height:`100%`,flexShrink:0}:{height:o.endSpacing,width:`100%`}}})]}):null}var wi,Ti,Ei;function Di(){return(Di=t((()=>{J(),Si(),wi=()=>K(vi.id),Ti=()=>q(vi.id),Ei=e=>{let{provides:t}=Ti(),[n,r]=T(1),[i,a]=T(1);return S(()=>{if(!t||!e)return;let n=t.forDocument(e);return r(n.getCurrentPage()),a(n.getTotalPages()),t.onPageChange(t=>{t.documentId===e&&(r(t.pageNumber),a(t.totalPages))})},[t,e]),{provides:t?.forDocument(e)??null,state:{currentPage:n,totalPages:i}}}})))()}var Oi,ki,Ai,ji;function Mi(){return(Mi=t((()=>{G(),Oi=class extends W{constructor(e,t,n){super(e,t),this.config=n}buildCapability(){return{renderPage:e=>this.renderPage(e),renderPageRect:e=>this.renderPageRect(e),renderPageRaw:e=>this.renderPageRaw(e),renderPageRectRaw:e=>this.renderPageRectRaw(e),forDocument:e=>this.createRenderScope(e)}}createRenderScope(e){return{renderPage:t=>this.renderPage(t,e),renderPageRect:t=>this.renderPageRect(t,e),renderPageRaw:t=>this.renderPageRaw(t,e),renderPageRectRaw:t=>this.renderPageRectRaw(t,e)}}renderPage({pageIndex:e,options:t},n){let r=n??this.getActiveDocumentId(),i=this.coreState.core.documents[r];if(!i?.document)throw Error(`Document ${r} not loaded`);let a=i.document.pages.find(t=>t.index===e);if(!a)throw Error(`Page ${e} not found in document ${r}`);let o={...t??{},withForms:t?.withForms??this.config.withForms??!1,withAnnotations:t?.withAnnotations??this.config.withAnnotations??!1,imageType:t?.imageType??this.config.defaultImageType??`image/png`,imageQuality:t?.imageQuality??this.config.defaultImageQuality??.92};return this.engine.renderPage(i.document,a,o)}renderPageRect({pageIndex:e,rect:t,options:n},r){let i=r??this.getActiveDocumentId(),a=this.coreState.core.documents[i];if(!a?.document)throw Error(`Document ${i} not loaded`);let o=a.document.pages.find(t=>t.index===e);if(!o)throw Error(`Page ${e} not found in document ${i}`);let s={...n??{},withForms:n?.withForms??this.config.withForms??!1,withAnnotations:n?.withAnnotations??this.config.withAnnotations??!1,imageType:n?.imageType??this.config.defaultImageType??`image/png`,imageQuality:n?.imageQuality??this.config.defaultImageQuality??.92};return this.engine.renderPageRect(a.document,o,t,s)}renderPageRaw({pageIndex:e,options:t},n){let r=n??this.getActiveDocumentId(),i=this.coreState.core.documents[r];if(!i?.document)throw Error(`Document ${r} not loaded`);let a=i.document.pages.find(t=>t.index===e);if(!a)throw Error(`Page ${e} not found in document ${r}`);let o={...t??{},withForms:t?.withForms??this.config.withForms??!1,withAnnotations:t?.withAnnotations??this.config.withAnnotations??!1};return this.engine.renderPageRaw(i.document,a,o)}renderPageRectRaw({pageIndex:e,rect:t,options:n},r){let i=r??this.getActiveDocumentId(),a=this.coreState.core.documents[i];if(!a?.document)throw Error(`Document ${i} not loaded`);let o=a.document.pages.find(t=>t.index===e);if(!o)throw Error(`Page ${e} not found in document ${i}`);let s={...n??{},withForms:n?.withForms??this.config.withForms??!1,withAnnotations:n?.withAnnotations??this.config.withAnnotations??!1};return this.engine.renderPageRectRaw(a.document,o,t,s)}async initialize(e){this.logger.info(`RenderPlugin`,`Initialize`,`Render plugin initialized`)}async destroy(){super.destroy()}},Oi.id=`render`,ki=Oi,Ai=`render`,ji={manifest:{id:Ai,name:`Render Plugin`,version:`1.0.0`,provides:[`render`],requires:[],optional:[],defaultConfig:{}},create:(e,t)=>new ki(Ai,e,t),reducer:()=>{},initialState:{}}})))()}function Ni({documentId:e,pageIndex:t,scale:n,dpr:r,style:i,...a}){let{provides:o}=Pi(),s=er(e),[c,l]=T(null),u=w(null),d=C(()=>s&&s.pageRefreshVersions[t]||0,[s,t]),f=C(()=>n===void 0?s?.scale??1:n,[n,s?.scale]),p=C(()=>r===void 0?window.devicePixelRatio:r,[r]);return S(()=>{if(!o)return;let n=o.forDocument(e).renderPage({pageIndex:t,options:{scaleFactor:f,dpr:p}});return n.wait(e=>{let t=URL.createObjectURL(e);l(t),u.current=t},O),()=>{u.current?(URL.revokeObjectURL(u.current),u.current=null):n.abort({code:P.Cancelled,message:`canceled render task`})}},[e,t,f,p,o,d]),/* @__PURE__ */ E(ie,{children:c&&/* @__PURE__ */ E(`img`,{src:c,onLoad:()=>{u.current&&=(URL.revokeObjectURL(u.current),null)},...a,style:{width:`100%`,height:`100%`,...i||{}}})})}var Pi;function Fi(){return(Fi=t((()=>{I(),J(),Mi(),Pi=()=>q(ki.id)})))()}function Ii(e,t){return{type:Ui,payload:{documentId:e,state:t}}}function Li(e){return{type:Wi,payload:e}}function Ri(e,t,n){return{type:Ki,payload:{documentId:e,zoomLevel:t,currentZoomLevel:n}}}function zi(e,t){return{type:qi,payload:{documentId:e,isActive:t}}}function Bi(e){let{pageSize:t,scale:n,minDragPx:r=5,onPreview:i,onCommit:a,onSmallDrag:o}=e,s=null,c=null;return{onPointerDown:(e,t)=>{var n;s=e,c={origin:{x:e.x,y:e.y},size:{width:0,height:0}},i?.(c),(n=t.setPointerCapture)==null||n.call(t)},onPointerMove:e=>{if(!s)return;let n=R(e.x,0,t.width),r=R(e.y,0,t.height);c={origin:{x:Math.min(s.x,n),y:Math.min(s.y,r)},size:{width:Math.abs(n-s.x),height:Math.abs(r-s.y)}},i?.(c)},onPointerUp:(e,t)=>{var l;c&&(Math.max(c.size.width,c.size.height)*n>r?a?.(c):o?.()),s=null,c=null,i?.(null),(l=t.releasePointerCapture)==null||l.call(t)},onPointerCancel:(e,t)=>{var n;s=null,c=null,i?.(null),(n=t.releasePointerCapture)==null||n.call(t)}}}var X,Z,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i;function ea(){return(ea=t((()=>{G(),I(),X=/* @__PURE__ */ (e=>(e.Automatic=`automatic`,e.FitPage=`fit-page`,e.FitWidth=`fit-width`,e))(X||{}),Z=/* @__PURE__ */ (e=>(e[e.Center=0]=`Center`,e[e.Top=1]=`Top`,e))(Z||{}),Vi=`zoom`,Hi={id:Vi,name:`Zoom Plugin`,version:`1.0.0`,provides:[`zoom`],requires:[`viewport`,`scroll`],optional:[`interaction-manager`,`spread`],defaultConfig:{defaultZoomLevel:X.Automatic,minZoom:.2,maxZoom:60,zoomStep:.1,zoomRanges:[{min:.2,max:.5,step:.05},{min:.5,max:1,step:.1},{min:1,max:2,step:.2},{min:2,max:4,step:.4},{min:4,max:10,step:.8},{min:10,max:20,step:1.6},{min:20,max:40,step:3.2},{min:40,max:60,step:6.4}],presets:[{name:`Fit Page`,value:X.FitPage},{name:`Fit Width`,value:X.FitWidth},{name:`Automatic`,value:X.Automatic},{name:`25%`,value:.25},{name:`50%`,value:.5},{name:`100%`,value:1},{name:`125%`,value:1.25},{name:`150%`,value:1.5},{name:`200%`,value:2},{name:`400%`,value:4},{name:`800%`,value:8},{name:`1600%`,value:16}]}},Ui=`ZOOM/INIT_STATE`,Wi=`ZOOM/CLEANUP_STATE`,Gi=`ZOOM/SET_ACTIVE_DOCUMENT`,Ki=`ZOOM/SET_ZOOM_LEVEL`,qi=`ZOOM/SET_MARQUEE_ZOOM_ACTIVE`,Ji={zoomLevel:X.Automatic,currentZoomLevel:1,isMarqueeZoomActive:!1},Yi={documents:{},activeDocumentId:null},Xi=(e=Yi,t)=>{switch(t.type){case Ui:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r},activeDocumentId:e.activeDocumentId??n}}case Wi:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case Gi:return{...e,activeDocumentId:t.payload};case Ki:{let{documentId:n,zoomLevel:r,currentZoomLevel:i}=t.payload,a=e.documents[n];return a?{...e,documents:{...e.documents,[n]:{...a,zoomLevel:r,currentZoomLevel:i}}}:e}case qi:{let{documentId:n,isActive:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,isMarqueeZoomActive:r}}}:e}default:return e}},Zi=class extends W{constructor(e,t,n){var r,i,a;super(e,t),this.zoom$=z(),this.state$=B(),this.viewportPlugin=t.getPlugin(`viewport`),this.viewport=this.viewportPlugin.provides(),this.scroll=t.getPlugin(`scroll`).provides();let o=t.getPlugin(`interaction-manager`);this.interactionManager=o?.provides()??null;let s=t.getPlugin(`spread`);this.spread=s?.provides()??null,this.minZoom=n.minZoom??.25,this.maxZoom=n.maxZoom??10,this.zoomStep=n.zoomStep??.1,this.defaultZoomLevel=n.defaultZoomLevel,this.presets=n.presets??[],this.zoomRanges=this.normalizeRanges(n.zoomRanges??[]),this.viewport.onViewportResize(e=>this.recalcAuto(e.documentId,Z.Top),{mode:`debounce`,wait:150,keyExtractor:e=>e.documentId}),(r=this.spread)==null||r.onSpreadChange(e=>{this.recalcAuto(e.documentId,Z.Top)}),(i=this.interactionManager)==null||i.registerMode({id:`marqueeZoom`,scope:`page`,exclusive:!0,cursor:`zoom-in`}),(a=this.interactionManager)==null||a.onModeChange(e=>{let t=e.activeMode===`marqueeZoom`,n=this.getDocumentState(e.documentId);n&&n.isMarqueeZoomActive!==t&&this.dispatch(zi(e.documentId,t))})}onDocumentLoadingStarted(e){this.viewport.gate(`zoom`,e);let t={...Ji,zoomLevel:this.defaultZoomLevel};this.dispatch(Ii(e,t)),this.logger.debug(`ZoomPlugin`,`DocumentOpened`,`Initialized zoom state for document: ${e}`)}onDocumentLoaded(e){this.recalcAuto(e,Z.Top)}onDocumentClosed(e){this.dispatch(Li(e)),this.logger.debug(`ZoomPlugin`,`DocumentClosed`,`Cleaned up zoom state for document: ${e}`)}onRotationChanged(e){this.recalcAuto(e,Z.Top)}buildCapability(){return{requestZoom:(e,t)=>this.requestZoom(e,t),requestZoomBy:(e,t)=>this.requestZoomBy(e,t),zoomIn:()=>this.zoomIn(),zoomOut:()=>this.zoomOut(),zoomToArea:(e,t)=>this.zoomToArea(e,t),enableMarqueeZoom:()=>this.enableMarqueeZoom(),disableMarqueeZoom:()=>this.disableMarqueeZoom(),toggleMarqueeZoom:()=>this.toggleMarqueeZoom(),isMarqueeZoomActive:()=>this.isMarqueeZoomActive(),getState:()=>this.getDocumentStateOrThrow(),forDocument:e=>this.createZoomScope(e),registerMarqueeOnPage:e=>this.registerMarqueeOnPage(e),getPresets:()=>this.presets,onZoomChange:this.zoom$.on,onStateChange:this.state$.on}}createZoomScope(e){return{requestZoom:(t,n)=>this.requestZoom(t,n,e),requestZoomBy:(t,n)=>this.requestZoomBy(t,n,e),zoomIn:()=>this.zoomIn(e),zoomOut:()=>this.zoomOut(e),zoomToArea:(t,n)=>this.zoomToArea(t,n,e),enableMarqueeZoom:()=>this.enableMarqueeZoom(e),disableMarqueeZoom:()=>this.disableMarqueeZoom(e),toggleMarqueeZoom:()=>this.toggleMarqueeZoom(e),isMarqueeZoomActive:()=>this.isMarqueeZoomActive(e),getState:()=>this.getDocumentStateOrThrow(e),onZoomChange:t=>this.zoom$.on(n=>{n.documentId===e&&t(n)}),onStateChange:t=>this.state$.on(n=>{n.documentId===e&&t(n.state)})}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}getDocumentStateOrThrow(e){let t=this.getDocumentState(e);if(!t)throw Error(`Zoom state not found for document: ${e??`active`}`);return t}requestZoom(e,t,n){this.handleRequest({level:e,center:t},n)}requestZoomBy(e,t,n){let r=n??this.getActiveDocumentId(),i=this.getDocumentStateOrThrow(r).currentZoomLevel,a=this.toZoom(i+e);this.handleRequest({level:a,center:t},r)}zoomIn(e){let t=e??this.getActiveDocumentId(),n=this.getDocumentStateOrThrow(t).currentZoomLevel;this.handleRequest({level:n,delta:this.stepFor(n)},t)}zoomOut(e){let t=e??this.getActiveDocumentId(),n=this.getDocumentStateOrThrow(t).currentZoomLevel;this.handleRequest({level:n,delta:-this.stepFor(n)},t)}zoomToArea(e,t,n){let r=n??this.getActiveDocumentId();this.handleZoomToArea(r,e,t)}enableMarqueeZoom(e){var t;let n=e??this.getActiveDocumentId();(t=this.interactionManager)==null||t.forDocument(n).activate(`marqueeZoom`)}disableMarqueeZoom(e){var t;let n=e??this.getActiveDocumentId();(t=this.interactionManager)==null||t.forDocument(n).activateDefaultMode()}toggleMarqueeZoom(e){let t=e??this.getActiveDocumentId(),n=this.interactionManager?.forDocument(t);n?.getActiveMode()===`marqueeZoom`?n.activateDefaultMode():n?.activate(`marqueeZoom`)}isMarqueeZoomActive(e){let t=e??this.getActiveDocumentId();return this.interactionManager?.forDocument(t).getActiveMode()===`marqueeZoom`}handleRequest({level:e,delta:t=0,center:n,focus:r=Z.Center,align:i=`keep`},a){let o=a??this.getActiveDocumentId(),s=this.getDocumentStateOrThrow(o);if(!this.coreState.core.documents[o])return;let c=this.viewport.forDocument(o),l=c.getMetrics(),u=s.currentZoomLevel;if(l.clientWidth===0||l.clientHeight===0)return;let d=typeof e==`number`?e:this.computeZoomForMode(o,e,l);if(d===!1)return;let f=R(d+t,this.minZoom,this.maxZoom),p=Math.floor(f*1e3)/1e3,m=n??{vx:l.clientWidth/2,vy:r===Z.Top?0:l.clientHeight/2},{desiredScrollLeft:h,desiredScrollTop:g}=this.computeScrollForZoomChange(o,l,u,p,m,i);!isNaN(h)&&!isNaN(g)&&this.viewportPlugin.setViewportScrollMetrics(o,{scrollLeft:h,scrollTop:g}),this.dispatch(Ri(o,typeof e==`number`?p:e,p)),this.dispatchCoreAction(Pn(p,o)),this.viewport.isGated(o)&&this.viewport.releaseGate(`zoom`,o),c.scrollTo({x:h,y:g,behavior:`instant`});let _={documentId:o,oldZoom:u,newZoom:p,level:e,center:m,desiredScrollLeft:h,desiredScrollTop:g,viewport:l};this.zoom$.emit(_)}computeZoomForMode(e,t,n){if(!this.coreState.core.documents[e])return!1;let r=this.scroll.forDocument(e),i=r?this.scroll.getPageGap():0,a=this.viewport.getViewportGap(),o=r.getSpreadPagesWithRotatedSize();if(!o.length||n.clientWidth===0||n.clientHeight===0)return!1;let s=n.clientWidth-2*a,c=n.clientHeight-2*a;if(s<=0||c<=0)return!1;let l=0,u=0;switch(o.forEach(e=>{let t=e.reduce((e,t,n)=>e+t.rotatedSize.width+(n?i:0),0),n=Math.max(...e.map(e=>e.rotatedSize.height));l=Math.max(l,t),u=Math.max(u,n)}),t){case X.FitWidth:return s/l;case X.FitPage:return Math.min(s/l,c/u);case X.Automatic:return Math.min(s/l,1);default:return 1}}computeScrollForZoomChange(e,t,n,r,i,a=`keep`){let o=this.scroll.forDocument(e).getLayout(),s=this.viewport.getViewportGap(),c=o.totalContentSize.width,l=o.totalContentSize.height,u=t.clientWidth-2*s,d=t.clientHeight-2*s,f=(e,t,n)=>t*n<e?(e-t*n)/2:0,p=f(u,c,n),m=f(d,l,n),h=f(u,c,r),g=f(d,l,r),_=(t.scrollLeft+i.vx-s-p)/n,v=(t.scrollTop+i.vy-s-m)/n,y=_*r+s+h,b=v*r+s+g,x=a===`center`?y-t.clientWidth/2:y-i.vx,ee=a===`center`?b-t.clientHeight/2:b-i.vy;return{desiredScrollLeft:Math.max(0,x),desiredScrollTop:Math.max(0,ee)}}handleZoomToArea(e,t,n){let r=this.coreState.core.documents[e];if(!r)return;let i=r.rotation,a=this.viewport.forDocument(e).getMetrics(),o=this.viewport.getViewportGap(),s=this.getDocumentStateOrThrow(e).currentZoomLevel,c=a.clientWidth-2*o,l=a.clientHeight-2*o,u=this.scroll.forDocument(e).getLayout(),d=u.virtualItems.find(e=>e.pageLayouts.some(e=>e.pageIndex===t));if(!d)return;let f=d.pageLayouts.find(e=>e.pageIndex===t),p=Be({width:f.width,height:f.height},n,i),m=this.toZoom(Math.min(c/p.size.width,l/p.size.height)),h=d.x+f.x,g=d.y+f.y,_=h+p.origin.x+p.size.width/2,v=g+p.origin.y+p.size.height/2,y=(e,t,n)=>t*n<e?(e-t*n)/2:0,b=y(c,u.totalContentSize.width,s),x=y(l,u.totalContentSize.height,s),ee=o+b+_*s-a.scrollLeft,te=o+x+v*s-a.scrollTop;this.handleRequest({level:m,center:{vx:ee,vy:te},align:`center`},e)}recalcAuto(e,t){let n=this.getDocumentState(e);n&&(n.zoomLevel===X.Automatic||n.zoomLevel===X.FitPage||n.zoomLevel===X.FitWidth)&&this.handleRequest({level:n.zoomLevel,focus:t},e)}normalizeRanges(e){return[...e].filter(e=>e.step>0&&e.max>e.min).sort((e,t)=>e.min-t.min)}stepFor(e){let t=this.zoomRanges.find(t=>e>=t.min&&e<t.max);return t?t.step:this.zoomStep}toZoom(e){return parseFloat(R(e,this.minZoom,this.maxZoom).toFixed(2))}registerMarqueeOnPage(e){if(!this.interactionManager)return this.logger.warn(`ZoomPlugin`,`MissingDependency`,`Interaction manager plugin not loaded, marquee zoom disabled`),()=>{};let t=this.coreState.core.documents[e.documentId];if(!t||!t.document)return this.logger.warn(`ZoomPlugin`,`DocumentNotFound`,`Document not found`),()=>{};let n=t.document.pages[e.pageIndex];if(!n)return this.logger.warn(`ZoomPlugin`,`PageNotFound`,`Page ${e.pageIndex} not found`),()=>{};let r=Bi({pageSize:n.size,scale:e.scale,onPreview:e.callback.onPreview,onCommit:t=>{var n,r;this.zoomToArea(e.pageIndex,t,e.documentId),(r=(n=e.callback).onCommit)==null||r.call(n,t)},onSmallDrag:()=>{var t,n;this.zoomIn(e.documentId),(n=(t=e.callback).onSmallDrag)==null||n.call(t)}});return this.interactionManager.registerHandlers({documentId:e.documentId,modeId:`marqueeZoom`,handlers:r,pageIndex:e.pageIndex})}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r&&i&&(r.currentZoomLevel!==i.currentZoomLevel||r.zoomLevel!==i.zoomLevel||r.isMarqueeZoomActive!==i.isMarqueeZoomActive)&&this.state$.emit({documentId:n,state:i})}}async initialize(){this.logger.info(`ZoomPlugin`,`Initialize`,`Zoom plugin initialized`)}async destroy(){this.zoom$.clear(),this.state$.clear(),super.destroy()}},Zi.id=`zoom`,Qi=Zi,$i={manifest:Hi,create:(e,t)=>new Qi(Vi,e,t),reducer:Xi,initialState:Yi}})))()}var ta,na;function ra(){return(ra=t((()=>{J(),ea(),ti(),ta=()=>q(Qi.id),na=e=>{let{provides:t}=ta(),[n,r]=T(Ji);return S(()=>{if(!t)return;let n=t.forDocument(e);return r(n.getState()),n.onStateChange(e=>{r(e)})},[t,e]),{state:n,provides:t?.forDocument(e)??null}}})))()}function ia(e,t){return{type:ma,payload:{documentId:e,state:t}}}function aa(e){return{type:ha,payload:e}}function oa(e){return{type:ga,payload:{documentId:e}}}function sa(e){return{type:_a,payload:{documentId:e}}}function ca(e,t){return{type:va,payload:{documentId:e,flags:t}}}function la(e,t){return{type:ya,payload:{documentId:e,showAll:t}}}function ua(e,t){return{type:ba,payload:{documentId:e,query:t}}}function da(e,t,n,r){return{type:xa,payload:{documentId:e,results:t,total:n,activeResultIndex:r}}}function fa(e,t){return{type:Sa,payload:{documentId:e,results:t}}}function pa(e,t){return{type:Ca,payload:{documentId:e,index:t}}}var ma,ha,ga,_a,va,ya,ba,xa,Sa,Ca,wa,Ta,Q,Ea,Da,Oa,ka,Aa,ja;function Ma(){return(Ma=t((()=>{G(),I(),ma=`SEARCH/INIT_STATE`,ha=`SEARCH/CLEANUP_STATE`,ga=`SEARCH/START_SEARCH_SESSION`,_a=`SEARCH/STOP_SEARCH_SESSION`,va=`SEARCH/SET_SEARCH_FLAGS`,ya=`SEARCH/SET_SHOW_ALL_RESULTS`,ba=`SEARCH/START_SEARCH`,xa=`SEARCH/SET_SEARCH_RESULTS`,Sa=`SEARCH/APPEND_SEARCH_RESULTS`,Ca=`SEARCH/SET_ACTIVE_RESULT_INDEX`,wa={flags:[],results:[],total:0,activeResultIndex:-1,showAllResults:!0,query:``,loading:!1,active:!1},Ta={documents:{}},Q=(e,t,n)=>{let r=e.documents[t]||wa;return{...e,documents:{...e.documents,[t]:{...r,...n}}}},Ea=(e=Ta,t)=>{switch(t.type){case ma:return{...e,documents:{...e.documents,[t.payload.documentId]:t.payload.state}};case ha:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i}}case ga:return Q(e,t.payload.documentId,{active:!0});case _a:return Q(e,t.payload.documentId,{results:[],total:0,activeResultIndex:-1,query:``,loading:!1,active:!1});case va:return Q(e,t.payload.documentId,{flags:t.payload.flags});case ya:return Q(e,t.payload.documentId,{showAllResults:t.payload.showAll});case ba:return Q(e,t.payload.documentId,{loading:!0,query:t.payload.query,results:[],total:0,activeResultIndex:-1});case Sa:{let{documentId:n,results:r}=t.payload,i=e.documents[n];if(!i)return e;let a=[...i.results,...r],o=i.activeResultIndex===-1&&a.length>0?0:i.activeResultIndex;return Q(e,n,{results:a,total:a.length,activeResultIndex:o,loading:!0})}case xa:{let{documentId:n,results:r,total:i,activeResultIndex:a}=t.payload;return Q(e,n,{results:r,total:i,activeResultIndex:a,loading:!1})}case Ca:return Q(e,t.payload.documentId,{activeResultIndex:t.payload.index});default:return e}},Da=class extends W{constructor(e,t,n){super(e,t),this.searchStop$=B(),this.searchStart$=B(),this.searchResult$=B(),this.searchActiveResultChange$=B(),this.searchResultState$=B(),this.searchState$=B(),this.currentTask=/* @__PURE__ */ new Map,this.pluginConfig=n}onDocumentLoadingStarted(e){let t={...wa,flags:this.pluginConfig.flags||[],showAllResults:this.pluginConfig.showAllResults??!0};this.dispatch(ia(e,t))}onDocumentClosed(e){this.stopSearchSession(e),this.dispatch(aa(e)),this.currentTask.delete(e)}async initialize(){}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r!==i&&(this.searchState$.emit({documentId:n,state:i}),r&&r.results===i.results&&r.activeResultIndex===i.activeResultIndex&&r.showAllResults===i.showAllResults&&r.active===i.active||this.searchResultState$.emit({documentId:n,state:{results:i.results,activeResultIndex:i.activeResultIndex,showAllResults:i.showAllResults,active:i.active}}))}}buildCapability(){let e=e=>e??this.getActiveDocumentId(),t=t=>{let n=e(t),r=this.state.documents[n];if(!r)throw Error(`Search state not found for document ${n}`);return r};return{startSearch:t=>this.startSearchSession(e(t)),stopSearch:t=>this.stopSearchSession(e(t)),searchAllPages:(t,n)=>this.searchAllPages(t,e(n)),nextResult:t=>this.nextResult(e(t)),previousResult:t=>this.previousResult(e(t)),goToResult:(t,n)=>this.goToResult(t,e(n)),setShowAllResults:(t,n)=>this.dispatch(la(e(n),t)),getShowAllResults:e=>t(e).showAllResults,getFlags:e=>t(e).flags,setFlags:(t,n)=>this.setFlags(t,e(n)),getState:e=>t(e),forDocument:this.createSearchScope.bind(this),onSearchResult:this.searchResult$.on,onSearchStart:this.searchStart$.on,onSearchStop:this.searchStop$.on,onActiveResultChange:this.searchActiveResultChange$.on,onSearchResultStateChange:this.searchResultState$.on,onStateChange:this.searchState$.on}}createSearchScope(e){let t=()=>{let t=this.state.documents[e];if(!t)throw Error(`Search state not found for document ${e}`);return t};return{startSearch:()=>this.startSearchSession(e),stopSearch:()=>this.stopSearchSession(e),searchAllPages:t=>this.searchAllPages(t,e),nextResult:()=>this.nextResult(e),previousResult:()=>this.previousResult(e),goToResult:t=>this.goToResult(t,e),setShowAllResults:t=>this.dispatch(la(e,t)),getShowAllResults:()=>t().showAllResults,getFlags:()=>t().flags,setFlags:t=>this.setFlags(t,e),getState:t,onSearchResult:t=>this.searchResult$.on(n=>{n.documentId===e&&t(n.results)}),onSearchStart:t=>this.searchStart$.on(n=>{n.documentId===e&&t()}),onSearchStop:t=>this.searchStop$.on(n=>{n.documentId===e&&t()}),onActiveResultChange:t=>this.searchActiveResultChange$.on(n=>{n.documentId===e&&t(n.index)}),onSearchResultStateChange:t=>this.searchResultState$.on(n=>{n.documentId===e&&t(n.state)}),onStateChange:t=>this.searchState$.on(n=>{n.documentId===e&&t(n.state)})}}setFlags(e,t){this.dispatch(ca(t,e));let n=this.state.documents[t];n?.active&&this.searchAllPages(n.query,t,!0)}notifySearchStart(e){this.searchStart$.emit({documentId:e})}notifySearchStop(e){this.searchStop$.emit({documentId:e})}notifyActiveResultChange(e,t){this.searchActiveResultChange$.emit({documentId:e,index:t})}startSearchSession(e){this.getCoreDocument(e)&&(this.dispatch(oa(e)),this.notifySearchStart(e))}stopSearchSession(e){var t;if(!this.state.documents[e]?.active)return;let n=this.currentTask.get(e);if(n){try{(t=n.abort)==null||t.call(n,{code:P.Cancelled,message:`search stopped`})}catch{}this.currentTask.delete(e)}this.dispatch(sa(e)),this.notifySearchStop(e)}searchAllPages(e,t,n=!1){var r;let i=this.state.documents[t];if(!i)return F.reject({code:P.NotFound,message:`Search state not initialized`});let a=this.getCoreDocument(t);if(!a?.document)return F.reject({code:P.NotFound,message:`Document not loaded`});let o=e.trim();if(i.query===o&&!n)return F.resolve({results:i.results,total:i.total});let s=this.currentTask.get(t);if(s){try{(r=s.abort)==null||r.call(s,{code:P.Cancelled,message:`new search`})}catch{}this.currentTask.delete(t)}if(this.dispatch(ua(t,o)),!o)return this.dispatch(da(t,[],0,-1)),F.resolve({results:[],total:0});i.active||this.startSearchSession(t);let c=this.engine.searchAllPages(a.document,o,{flags:i.flags});return this.currentTask.set(t,c),c.onProgress(e=>{e?.results?.length&&this.currentTask.get(t)===c&&(this.dispatch(fa(t,e.results)),this.state.documents[t].activeResultIndex===-1&&(this.dispatch(pa(t,0)),this.notifyActiveResultChange(t,0)))}),c.wait(e=>{this.currentTask.delete(t);let n=e.total>0?0:-1;this.dispatch(da(t,e.results,e.total,n)),this.searchResult$.emit({documentId:t,results:e}),e.total>0&&this.notifyActiveResultChange(t,0)},e=>{e?.reason?.code!==P.Cancelled&&(console.error(`Error during search:`,e),this.dispatch(da(t,[],0,-1))),this.currentTask.delete(t)}),c}nextResult(e){let t=this.state.documents[e];if(!t||t.results.length===0)return-1;let n=t.activeResultIndex>=t.results.length-1?0:t.activeResultIndex+1;return this.goToResult(n,e)}previousResult(e){let t=this.state.documents[e];if(!t||t.results.length===0)return-1;let n=t.activeResultIndex<=0?t.results.length-1:t.activeResultIndex-1;return this.goToResult(n,e)}goToResult(e,t){let n=this.state.documents[t];return!n||n.results.length===0||e<0||e>=n.results.length?-1:(this.dispatch(pa(t,e)),this.notifyActiveResultChange(t,e),e)}async destroy(){for(let e of Object.keys(this.state.documents))this.stopSearchSession(e);this.searchResult$.clear(),this.searchStart$.clear(),this.searchStop$.clear(),this.searchActiveResultChange$.clear(),this.searchResultState$.clear(),this.searchState$.clear(),super.destroy()}},Da.id=`search`,Oa=Da,ka=`search`,Aa={id:ka,name:`Search Plugin`,version:`1.0.0`,provides:[`search`],requires:[],optional:[],defaultConfig:{flags:[]}},ja={manifest:Aa,create:(e,t)=>new Oa(ka,e,t),reducer:Ea,initialState:Ta}})))()}function Na({documentId:e,pageIndex:t,scale:n,style:r,highlightColor:i=`#FFFF00`,activeHighlightColor:a=`#FFBF00`,...o}){let{provides:s}=Pa(),[c,l]=T(null),u=er(e),d=C(()=>s?.forDocument(e),[s,e]),f=C(()=>n===void 0?u?.scale??1:n,[n,u?.scale]);if(S(()=>{if(!d){l(null);return}let e=d.getState();return l({results:e.results,activeResultIndex:e.activeResultIndex,showAllResults:e.showAllResults,active:e.active}),d.onSearchResultStateChange(e=>{l(e)})},[d]),!c||!c.active)return null;let p=c.results.map((e,t)=>({result:e,originalIndex:t})).filter(({result:e})=>e.pageIndex===t).filter(({originalIndex:e})=>c.showAllResults||e===c.activeResultIndex);return/* @__PURE__ */ E(`div`,{style:{...r,pointerEvents:`none`},...o,children:p.map(({result:e,originalIndex:t})=>e.rects.map((e,n)=>/* @__PURE__ */ E(`div`,{style:{position:`absolute`,top:e.origin.y*f,left:e.origin.x*f,width:e.size.width*f,height:e.size.height*f,backgroundColor:t===c.activeResultIndex?a:i,mixBlendMode:`multiply`,transform:`scale(1.02)`,transformOrigin:`center`,transition:`opacity .3s ease-in-out`,opacity:1}},`${t}-${n}`)))})}var Pa,Fa;function Ia(){return(Ia=t((()=>{J(),Ma(),Pa=()=>q(Oa.id),Fa=e=>{let{provides:t}=Pa(),[n,r]=T(wa),i=C(()=>t?.forDocument(e),[t,e]);return S(()=>{if(!i)r(wa);else return r(i.getState()),i.onStateChange(e=>r(e))},[i]),{state:n,provides:i??null}}})))()}function La(e,t){return e.rects[t]??[]}function Ra(e,t){return Ue(La(e,t))}function za(e){let t=[],n=e.rects;for(let e in n){let r=Number(e),i=Ue(n[r]);i&&t.push({page:r,rect:i})}return t}function Ba(e,t){let n=e.rects[t]||[];if(n.length===0)return null;let r=Ra(e,t);return r?{pageIndex:t,rect:r,segmentRects:n}:null}function Va(e){let t=[],n=Object.keys(e.rects).map(Number);for(let r of n){let n=e.rects[r]||[];if(n.length===0)continue;let i=Ra(e,r);i&&t.push({pageIndex:r,rect:i,segmentRects:n})}return t}function Ha(e,t,n=1.5){for(let n of e.runs){if(!(t.y>=n.rect.y&&t.y<=n.rect.y+n.rect.height&&t.x>=n.rect.x&&t.x<=n.rect.x+n.rect.width))continue;let e=n.glyphs.findIndex(e=>{let n=e.tightX??e.x,r=e.tightY??e.y,i=e.tightWidth??e.width,a=e.tightHeight??e.height;return t.x>=n&&t.x<=n+i&&t.y>=r&&t.y<=r+a});if(e!==-1)return n.charStart+e}if(n<=0)return-1;let r=Ua(e,n)/2,i=-1,a=1/0;for(let n of e.runs)if(!(t.y<n.rect.y-r||t.y>n.rect.y+n.rect.height+r||t.x<n.rect.x-r||t.x>n.rect.x+n.rect.width+r))for(let e=0;e<n.glyphs.length;e++){let o=n.glyphs[e];if(o.flags===2)continue;let s=o.tightX??o.x,c=o.tightY??o.y,l=o.tightWidth??o.width,u=o.tightHeight??o.height,d=s-r,f=s+l+r,p=c-r,m=c+u+r;if(t.x<d||t.x>f||t.y<p||t.y>m)continue;let h=Math.min(Math.abs(t.x-s),Math.abs(t.x-(s+l)))+Math.min(Math.abs(t.y-c),Math.abs(t.y-(c+u)));h<a&&(a=h,i=n.charStart+e)}return i}function Ua(e,t){let n=0,r=0;for(let t of e.runs)for(let e of t.glyphs)e.flags!==2&&(n+=e.height,r++);return r===0?0:n/r*t}function Wa(e,t,n){if(!e||!t||n<e.start.page||n>e.end.page)return null;let r=n===e.start.page?e.start.index:0,i=t.runs[t.runs.length-1],a=i.charStart+i.glyphs.length-1;return{from:r,to:n===e.end.page?e.end.index:a}}function Ga(e,t,n,r=!0){let i=[];for(let r of e.runs){let e=r.charStart,a=e+r.glyphs.length-1;if(a<t||e>n)continue;let o=Math.max(t,e)-e,s=Math.min(n,a)-e,c=1/0,l=-1/0,u=1/0,d=-1/0,f=0,p=0,m=-1/0,h=()=>{c!==1/0&&f>0&&i.push({rect:{origin:{x:c,y:u},size:{width:l-c,height:d-u}},charCount:f,fontSize:r.fontSize}),c=1/0,l=-1/0,u=1/0,d=-1/0,f=0,p=0,m=-1/0};for(let e=o;e<=s;e++){let t=r.glyphs[e];if(t.flags!==2){if(f>0&&m>-1/0){let e=Math.abs(t.x-m),n=p/f;n>0&&e>2.5*n&&h()}c=Math.min(c,t.x),l=Math.max(l,t.x+t.width),u=Math.min(u,t.y),d=Math.max(d,t.y+t.height),f++,p+=t.width,m=t.x+t.width}}h()}return r?Za(i):i.map(e=>e.rect)}function Ka(e,t){let n=Math.min(e.origin.x,t.origin.x),r=Math.min(e.origin.y,t.origin.y),i=Math.max(e.origin.x+e.size.width,t.origin.x+t.size.width),a=Math.max(e.origin.y+e.size.height,t.origin.y+t.size.height);return{origin:{x:n,y:r},size:{width:i-n,height:a-r}}}function qa(e,t){let n=Math.max(e.origin.x,t.origin.x),r=Math.max(e.origin.y,t.origin.y),i=Math.min(e.origin.x+e.size.width,t.origin.x+t.size.width),a=Math.min(e.origin.y+e.size.height,t.origin.y+t.size.height),o=Math.max(0,i-n),s=Math.max(0,a-r);return{origin:{x:n,y:r},size:{width:o,height:s}}}function Ja(e){return e.size.width<=0||e.size.height<=0}function Ya(e,t){if(Ja(e)||Ja(t))return 0;let n=Ka(e,t);return n.size.height===e.size.height||n.size.height===t.size.height?1:qa(e,t).size.height/n.size.height}function Xa(e,t){if(e.fontSize!=null&&t.fontSize!=null&&e.fontSize>0&&t.fontSize>0&&Math.max(e.fontSize,t.fontSize)/Math.min(e.fontSize,t.fontSize)>1.5)return!1;let n=e.rect,r=t.rect;if(Ya(n,r)<.8)return!1;let i=1*n.size.width/e.charCount,a=1*r.size.width/t.charCount,o=n.origin.x-i,s=n.origin.x+n.size.width+i,c=r.origin.x-a;return o<r.origin.x+r.size.width+a&&s>c}function Za(e){let t=[],n=null,r=null;for(let i of e)n&&r?Xa(n,i)?r=Ka(r,i.rect):(t.push(r),r=i.rect):r=i.rect,n=i;return r&&!Ja(r)&&t.push(r),t}function Qa(e,t){for(let n=0;n<e.runs.length;n++){let r=e.runs[n],i=t-r.charStart;if(i>=0&&i<r.glyphs.length)return{runIdx:n,localIdx:i}}return null}function $a(e){return e===1||e===2}function eo(e,t){if(!Qa(e,t))return null;let n=io(e);if(n===0)return null;let r=t;for(;r>0;){let t=Qa(e,r-1);if(!t||$a(e.runs[t.runIdx].glyphs[t.localIdx].flags))break;r--}let i=t;for(;i<n-1;){let t=Qa(e,i+1);if(!t||$a(e.runs[t.runIdx].glyphs[t.localIdx].flags))break;i++}return{from:r,to:i}}function to(e,t){let n=Qa(e,t);if(!n)return null;let r=e.runs[n.runIdx],i=r.rect.y,a=r.rect.y+r.rect.height,o=r.charStart,s=r.charStart+r.glyphs.length-1;for(let t=n.runIdx-1;t>=0;t--){let n=e.runs[t];if(!no(n)){if(!ro(n.rect.y,n.rect.y+n.rect.height,i,a))break;o=n.charStart}}for(let t=n.runIdx+1;t<e.runs.length;t++){let n=e.runs[t];if(!no(n)){if(!ro(n.rect.y,n.rect.y+n.rect.height,i,a))break;s=n.charStart+n.glyphs.length-1}}return{from:o,to:s}}function no(e){return e.rect.width===0&&e.rect.height===0}function ro(e,t,n,r){let i=Math.max(t,r)-Math.min(e,n),a=Math.max(0,Math.min(t,r)-Math.max(e,n));return i!==0&&a/i>=Po}function io(e){if(e.runs.length===0)return 0;let t=e.runs[e.runs.length-1];return t.charStart+t.glyphs.length}function ao(e){let t=e.minDragDistance??3,n=e.toleranceFactor??1.5,r=null,i=null,a=!1,o=0;function s(){var t;r=null,i=null,a=!1,(t=e.setHasTextAnchor)==null||t.call(e,!1)}return{onPointerDown:(t,s,c)=>{var l,u;if(s.target===s.currentTarget&&((l=e.onEmptySpaceClick)==null||l.call(e,c)),!e.isEnabled(c))return;(o===0||Date.now()-o>=Fo)&&e.onClear(c);let d=e.getGeometry();if(!d)return;let f=Ha(d,t,n);f!==-1&&(r=f,i=t,a=!1,(u=e.setHasTextAnchor)==null||u.call(e,!0))},onPointerMove:(o,s,c)=>{if(!e.isEnabled(c))return;let l=e.getGeometry();if(!l)return;let u=Ha(l,o,n);if(e.setCursor(u===-1?null:`text`),r!==null&&i&&!a){let n=o.x-i.x,s=o.y-i.y;Math.sqrt(n*n+s*s)>=t&&(a=!0,e.onBegin(r,c),u!==-1&&e.onUpdate(u,c))}else e.isSelecting()&&u!==-1&&e.onUpdate(u,c)},onPointerUp:(t,n,r)=>{e.isEnabled(r)&&a&&e.onEnd(r),s()},onDoubleClick:(t,r,i)=>{var a;if(!e.isEnabled(i))return;let s=e.getGeometry();if(!s)return;let c=Ha(s,t,n);c!==-1&&(o=Date.now(),(a=e.onWordSelect)==null||a.call(e,c,i))},onClick:(t,r,i)=>{var a;if(!e.isEnabled(i)||o===0)return;if(Date.now()-o>Fo){o=0;return}o=0;let s=e.getGeometry();if(!s)return;let c=Ha(s,t,n);c!==-1&&((a=e.onLineSelect)==null||a.call(e,c,i))},onHandlerActiveEnd:t=>{s(),e.isEnabled(t)&&e.onClear(t)}}}function oo(e){let{pageSize:t,scale:n,minDragPx:r=5}=e,i=null,a=null;return{onPointerDown:(t,n,r)=>{var o;e.isEnabled(r)&&(e.isTextSelecting?.call(e)||(i=t,a={origin:{x:t.x,y:t.y},size:{width:0,height:0}},e.onBegin(t,r),(o=n.setPointerCapture)==null||o.call(n)))},onPointerMove:(n,r,o)=>{if(!i||!e.isEnabled(o))return;let s=R(n.x,0,t.width),c=R(n.y,0,t.height);a={origin:{x:Math.min(i.x,s),y:Math.min(i.y,c)},size:{width:Math.abs(s-i.x),height:Math.abs(c-i.y)}},e.onChange(a,o)},onPointerUp:(t,o,s)=>{var c;e.isEnabled(s)&&(a&&i&&(Math.max(a.size.width,a.size.height)*n>r?e.onEnd(a,s):e.onCancel(s)),i=null,a=null,(c=o.releasePointerCapture)==null||c.call(o))},onPointerCancel:(t,n,r)=>{var o;e.isEnabled(r)&&(i=null,a=null,e.onCancel(r),(o=n.releasePointerCapture)==null||o.call(n))}}}var so,co,lo,uo,fo,po,mo,ho,go,_o,vo,yo,bo,xo,So,Co,wo,To,Eo,Do,Oo,ko,Ao,jo,Mo,$,No,Po,Fo,Io,Lo,Ro;function zo(){return(zo=t((()=>{G(),I(),so=`selection`,co={id:so,name:`Selection Plugin`,version:`1.0.0`,provides:[`selection`],requires:[`interaction-manager`],optional:[`viewport`,`scroll`],defaultConfig:{menuHeight:40}},lo=`SELECTION/INIT_STATE`,uo=`SELECTION/CLEANUP_STATE`,fo=`SELECTION/CACHE_PAGE_GEOMETRY`,po=`SELECTION/SET_SELECTION`,mo=`SELECTION/START_SELECTION`,ho=`SELECTION/END_SELECTION`,go=`SELECTION/CLEAR_SELECTION`,_o=`SELECTION/SET_RECTS`,vo=`SELECTION/SET_SLICES`,yo=`SELECTION/EVICT_PAGE_GEOMETRY`,bo=`SELECTION/RESET`,xo=(e,t)=>({type:lo,payload:{documentId:e,state:t}}),So=e=>({type:uo,payload:e}),Co=(e,t,n)=>({type:fo,payload:{documentId:e,page:t,geo:n}}),wo=(e,t)=>({type:po,payload:{documentId:e,selection:t}}),To=e=>({type:mo,payload:{documentId:e}}),Eo=e=>({type:ho,payload:{documentId:e}}),Do=e=>({type:go,payload:{documentId:e}}),Oo=(e,t)=>({type:_o,payload:{documentId:e,rects:t}}),ko=(e,t)=>({type:vo,payload:{documentId:e,slices:t}}),Ao=(e,t)=>({type:yo,payload:{documentId:e,pages:t}}),jo={geometry:{},rects:{},slices:{},selection:null,active:!1,selecting:!1},Mo={documents:{}},$=(e,t,n)=>({...e,documents:{...e.documents,[t]:n}}),No=(e=Mo,t)=>{switch(t.type){case lo:{let{documentId:n,state:r}=t.payload;return $(e,n,r)}case uo:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i}}case fo:{let{documentId:n,page:r,geo:i}=t.payload,a=e.documents[n];return a?$(e,n,{...a,geometry:{...a.geometry,[r]:i}}):e}case po:{let{documentId:n,selection:r}=t.payload,i=e.documents[n];return i?$(e,n,{...i,selection:r,active:!0}):e}case mo:{let{documentId:n}=t.payload,r=e.documents[n];return r?$(e,n,{...r,selecting:!0,selection:null,rects:{}}):e}case ho:{let{documentId:n}=t.payload,r=e.documents[n];return r?$(e,n,{...r,selecting:!1}):e}case go:{let{documentId:n}=t.payload,r=e.documents[n];return r?$(e,n,{...r,selecting:!1,selection:null,rects:{},active:!1}):e}case _o:{let{documentId:n,rects:r}=t.payload,i=e.documents[n];return i?$(e,n,{...i,rects:r}):e}case vo:{let{documentId:n,slices:r}=t.payload,i=e.documents[n];return i?$(e,n,{...i,slices:r}):e}case yo:{let{documentId:n,pages:r}=t.payload,i=e.documents[n];if(!i)return e;let a={...i.geometry},o={...i.rects},s={...i.slices};for(let e of r)delete a[e],delete o[e],delete s[e];return $(e,n,{...i,geometry:a,rects:o,slices:s})}case bo:{let{documentId:n}=t.payload;return e.documents[n]?$(e,n,jo):e}default:return e}},Po=.5,Fo=500,Io=class extends W{constructor(e,t,n){var r;super(e,t),this.enabledModesPerDoc=/* @__PURE__ */ new Map,this.selecting=/* @__PURE__ */ new Map,this.anchor=/* @__PURE__ */ new Map,this.hasTextAnchor=/* @__PURE__ */ new Map,this.marqueePage=/* @__PURE__ */ new Map,this.pageCallbacks=/* @__PURE__ */ new Map,this.geoAccessOrder=/* @__PURE__ */ new Map,this.menuPlacement$=V((e,t)=>({documentId:e,placement:t})),this.selChange$=V((e,t)=>({documentId:e,selection:t,modeId:this.interactionManagerCapability.forDocument(e).getActiveMode()})),this.textRetrieved$=V((e,t)=>({documentId:e,text:t})),this.copyToClipboard$=V((e,t)=>({documentId:e,text:t}),{cache:!1}),this.beginSelection$=V((e,t)=>({documentId:e,page:t.page,index:t.index,modeId:t.modeId}),{cache:!1}),this.endSelection$=V((e,t)=>({documentId:e,modeId:t.modeId}),{cache:!1}),this.marqueeChange$=V((e,t)=>({documentId:e,pageIndex:t.pageIndex,rect:t.rect,modeId:t.modeId}),{cache:!1}),this.marqueeEnd$=V((e,t)=>({documentId:e,pageIndex:t.pageIndex,rect:t.rect,modeId:t.modeId}),{cache:!1}),this.emptySpaceClick$=V((e,t)=>({documentId:e,pageIndex:t.pageIndex,modeId:t.modeId}),{cache:!1}),this.viewportCapability=null,this.scrollCapability=null,this.config=n,this.menuHeight=n.menuHeight??40;let i=t.getPlugin(`interaction-manager`);if(!i)throw Error(`SelectionPlugin: InteractionManagerPlugin is required.`);this.interactionManagerCapability=i.provides(),this.viewportCapability=t.getPlugin(`viewport`)?.provides()??null,this.scrollCapability=t.getPlugin(`scroll`)?.provides()??null,this.coreStore.onAction(xn,e=>{let{documentId:t,pageIndexes:n}=e.payload,r=n.map(e=>this.getNewPageGeometryAndCache(t,e));A.all(r).wait(()=>{n.forEach(e=>{this.notifyPage(t,e)})},O)}),(r=this.viewportCapability)==null||r.onViewportChange(e=>{this.recalculateMenuPlacement(e.documentId)},{mode:`throttle`,wait:100})}onDocumentLoadingStarted(e){this.dispatch(xo(e,jo));let t=this.config.marquee?.enabled!==!1;this.enabledModesPerDoc.set(e,/* @__PURE__ */ new Map([[`pointerMode`,{enableSelection:!0,showSelectionRects:!0,enableMarquee:t,showMarqueeRects:!0}]])),this.pageCallbacks.set(e,/* @__PURE__ */ new Map),this.geoAccessOrder.set(e,[]),this.selecting.set(e,!1),this.anchor.set(e,void 0),this.hasTextAnchor.set(e,!1)}onDocumentClosed(e){this.dispatch(So(e)),this.enabledModesPerDoc.delete(e),this.pageCallbacks.delete(e),this.geoAccessOrder.delete(e),this.selecting.delete(e),this.hasTextAnchor.delete(e),this.anchor.delete(e),this.marqueePage.delete(e),this.selChange$.clearScope(e),this.textRetrieved$.clearScope(e),this.copyToClipboard$.clearScope(e),this.beginSelection$.clearScope(e),this.endSelection$.clearScope(e),this.menuPlacement$.clearScope(e),this.marqueeChange$.clearScope(e),this.marqueeEnd$.clearScope(e),this.emptySpaceClick$.clearScope(e)}async initialize(){}async destroy(){this.selChange$.clear(),this.textRetrieved$.clear(),this.copyToClipboard$.clear(),this.beginSelection$.clear(),this.endSelection$.clear(),this.menuPlacement$.clear(),this.marqueeChange$.clear(),this.marqueeEnd$.clear(),this.emptySpaceClick$.clear(),super.destroy()}buildCapability(){let e=e=>e??this.getActiveDocumentId();return{getFormattedSelection:t=>Va(this.getDocumentState(e(t))),getFormattedSelectionForPage:(t,n)=>Ba(this.getDocumentState(e(n)),t),getHighlightRectsForPage:(t,n)=>La(this.getDocumentState(e(n)),t),getHighlightRects:t=>this.getDocumentState(e(t)).rects,getBoundingRectForPage:(t,n)=>Ra(this.getDocumentState(e(n)),t),getBoundingRects:t=>za(this.getDocumentState(e(t))),getSelectedText:t=>this.getSelectedText(e(t)),setSelection:(t,n)=>this.applySelection(e(n),t),clear:t=>this.clearSelection(e(t)),copyToClipboard:t=>this.copyToClipboard(e(t)),getState:t=>this.getDocumentState(e(t)),enableForMode:(t,n,r)=>this.enabledModesPerDoc.get(e(r))?.set(t,{...n}),isEnabledForMode:(t,n)=>this.enabledModesPerDoc.get(e(n))?.has(t)??!1,setMarqueeEnabled:(t,n)=>this.setMarqueeEnabled(e(n),t),isMarqueeEnabled:t=>this.isMarqueeEnabled(e(t)),forDocument:this.createSelectionScope.bind(this),onCopyToClipboard:this.copyToClipboard$.onGlobal,onSelectionChange:this.selChange$.onGlobal,onTextRetrieved:this.textRetrieved$.onGlobal,onBeginSelection:this.beginSelection$.onGlobal,onEndSelection:this.endSelection$.onGlobal,onMarqueeChange:this.marqueeChange$.onGlobal,onMarqueeEnd:this.marqueeEnd$.onGlobal,onEmptySpaceClick:this.emptySpaceClick$.onGlobal}}createSelectionScope(e){return{getFormattedSelection:()=>Va(this.getDocumentState(e)),getFormattedSelectionForPage:t=>Ba(this.getDocumentState(e),t),getHighlightRectsForPage:t=>La(this.getDocumentState(e),t),getHighlightRects:()=>this.getDocumentState(e).rects,getBoundingRectForPage:t=>Ra(this.getDocumentState(e),t),getBoundingRects:()=>za(this.getDocumentState(e)),getSelectedText:()=>this.getSelectedText(e),setSelection:t=>this.applySelection(e,t),clear:()=>this.clearSelection(e),copyToClipboard:()=>this.copyToClipboard(e),getState:()=>this.getDocumentState(e),setMarqueeEnabled:t=>this.setMarqueeEnabled(e,t),isMarqueeEnabled:()=>this.isMarqueeEnabled(e),onSelectionChange:this.selChange$.forScope(e),onTextRetrieved:this.textRetrieved$.forScope(e),onCopyToClipboard:this.copyToClipboard$.forScope(e),onBeginSelection:this.beginSelection$.forScope(e),onEndSelection:this.endSelection$.forScope(e),onMarqueeChange:this.marqueeChange$.forScope(e),onMarqueeEnd:this.marqueeEnd$.forScope(e),onEmptySpaceClick:this.emptySpaceClick$.forScope(e)}}getDocumentState(e){let t=this.state.documents[e];if(!t)throw Error(`Selection state not found for document: ${e}`);return t}onMenuPlacement(e,t){return this.menuPlacement$.forScope(e)(t)}registerSelectionOnPage(e){var t;let{documentId:n,pageIndex:r,onRectsChange:i}=e,a=this.state.documents[n];if(!a)return this.logger.warn(`SelectionPlugin`,`RegisterFailed`,`Cannot register selection on page ${r} for document ${n}: document state not initialized.`),()=>{};(t=this.pageCallbacks.get(n))==null||t.set(r,i);let o=this.getOrLoadGeometry(n,r),s=this.interactionManagerCapability.forDocument(n),c=this.enabledModesPerDoc.get(n);i({rects:La(a,r),boundingRect:Ra(a,r)}),o.wait(e=>{let t=this.getDocumentState(n),i=t.selection;if(!i||r<i.start.page||r>i.end.page)return;let a=Wa(i,e,r);if(!a)return;let o=Ga(e,a.from,a.to);this.dispatch(Oo(n,{...t.rects,[r]:o})),this.dispatch(ko(n,{...t.slices,[r]:{start:a.from,count:a.to-a.from+1}})),this.notifyPage(n,r)},O);let l=ao({getGeometry:()=>this.getDocumentState(n).geometry[r],isEnabled:e=>{let t=c?.get(e);return t?t.enableSelection!==!1:!1},onBegin:(e,t)=>this.beginSelection(n,r,e,t),onUpdate:(e,t)=>this.updateSelection(n,r,e,t),onEnd:e=>this.endSelection(n,e),onClear:e=>this.clearSelection(n,e),isSelecting:()=>this.selecting.get(n)??!1,setCursor:e=>e?s.setCursor(`selection-text`,e,10):s.removeCursor(`selection-text`),onEmptySpaceClick:e=>this.emptySpaceClick$.emit(n,{pageIndex:r,modeId:e}),onWordSelect:(e,t)=>this.selectWord(n,r,e,t),onLineSelect:(e,t)=>this.selectLine(n,r,e,t),setHasTextAnchor:e=>this.hasTextAnchor.set(n,e),minDragDistance:this.config.minSelectionDragDistance,toleranceFactor:this.config.toleranceFactor}),u=this.interactionManagerCapability.registerAlways({scope:{type:`page`,documentId:n,pageIndex:r},handlers:l});return()=>{var e;u(),(e=this.pageCallbacks.get(n))==null||e.delete(r),o.abort({code:P.Cancelled,message:`Cleanup`})}}registerMarqueeOnPage(e){let{documentId:t,pageIndex:n,scale:r,onRectChange:i}=e;if(!this.state.documents[t])return this.logger.warn(`SelectionPlugin`,`RegisterMarqueeFailed`,`Cannot register marquee on page ${n} for document ${t}: document state not initialized.`),()=>{};let a=this.coreState.core.documents[t];if(!a||!a.document)return this.logger.warn(`SelectionPlugin`,`DocumentNotFound`,`Cannot register marquee on page ${n}: document not found`),()=>{};let o=a.document.pages[n];if(!o)return this.logger.warn(`SelectionPlugin`,`PageNotFound`,`Cannot register marquee on page ${n}: page not found`),()=>{};let s=o.size,c=this.config.marquee?.minDragPx??5,l=()=>{let e=this.interactionManagerCapability.forDocument(t).getActiveMode();return this.enabledModesPerDoc.get(t)?.get(e)?.showMarqueeRects!==!1},u=oo({pageSize:s,scale:r,minDragPx:c,isEnabled:e=>this.enabledModesPerDoc.get(t)?.get(e)?.enableMarquee===!0,isTextSelecting:()=>(this.selecting.get(t)??!1)||(this.hasTextAnchor.get(t)??!1),onBegin:(e,r)=>this.beginMarquee(t,n,e,r),onChange:(e,r)=>{this.updateMarquee(t,n,e,r),i(l()?e:null)},onEnd:(e,r)=>{this.endMarquee(t,n,e,r),i(null)},onCancel:e=>{this.cancelMarquee(t,e),i(null)}});return this.interactionManagerCapability.registerAlways({scope:{type:`page`,documentId:t,pageIndex:n},handlers:u})}getPlacementMetrics(e,t,n,r){let i=(this.scrollCapability?.forDocument(e))?.getRectPositionForPage(t,n);if(!i)return null;let a=i.origin.y-r.scrollTop,o=i.origin.y+i.size.height-r.scrollTop;return{pageIndex:t,rect:n,spaceAbove:a,spaceBelow:r.clientHeight-o,isBottomVisible:o>0&&o<=r.clientHeight,isTopVisible:a>=0&&a<r.clientHeight}}emitMenuPlacement(e,t){this.menuPlacement$.emit(e,t),t?this.interactionManagerCapability.claimPageActivity(e,`selection-menu`,t.pageIndex):this.interactionManagerCapability.releasePageActivity(e,`selection-menu`)}recalculateMenuPlacement(e){let t=this.state.documents[e];if(!t)return;if(t.selecting||t.selection===null){this.emitMenuPlacement(e,null);return}let n=za(t);if(n.length===0){this.emitMenuPlacement(e,null);return}let r=n[n.length-1];if(!this.viewportCapability||!this.scrollCapability){this.emitMenuPlacement(e,{pageIndex:r.page,rect:r.rect,spaceAbove:0,spaceBelow:1/0,suggestTop:!1,isVisible:!0});return}let i=this.viewportCapability.forDocument(e).getMetrics(),a=n[0],o=this.getPlacementMetrics(e,r.page,r.rect,i),s=this.getPlacementMetrics(e,a.page,a.rect,i);o&&o.isBottomVisible&&o.spaceBelow>this.menuHeight?this.emitMenuPlacement(e,{...o,suggestTop:!1,isVisible:!0}):s&&s.isTopVisible?this.emitMenuPlacement(e,{...s,suggestTop:!0,isVisible:!0}):o&&o.isBottomVisible?this.emitMenuPlacement(e,{...o,suggestTop:!1,isVisible:!0}):this.emitMenuPlacement(e,null)}notifyPage(e,t){let n=this.pageCallbacks.get(e)?.get(t);if(n){let r=this.getDocumentState(e),i=this.interactionManagerCapability.forDocument(e).getActiveMode(),a=this.enabledModesPerDoc.get(e)?.get(i);a&&(a.showSelectionRects??a.showRects)!==!1?n({rects:La(r,t),boundingRect:Ra(r,t)}):n({rects:[],boundingRect:null})}}notifyAllPages(e){var t;(t=this.pageCallbacks.get(e))==null||t.forEach((t,n)=>{this.notifyPage(e,n)})}getNewPageGeometryAndCache(e,t){let n=this.getCoreDocument(e);if(!n||!n.document)return F.reject({code:P.NotFound,message:`Doc Not Found`});let r=n.document.pages.find(e=>e.index===t),i=this.engine.getPageGeometry(n.document,r);return i.wait(n=>{this.dispatch(Co(e,t,n)),this.touchGeometry(e,t)},O),i}getOrLoadGeometry(e,t){let n=this.getDocumentState(e).geometry[t];return n?(this.touchGeometry(e,t),F.resolve(n)):this.getNewPageGeometryAndCache(e,t)}touchGeometry(e,t){let n=this.geoAccessOrder.get(e);if(!n)return;let r=n.indexOf(t);r>-1&&n.splice(r,1),n.push(t),this.evictGeometryIfNeeded(e)}evictGeometryIfNeeded(e){let t=this.config.maxCachedGeometries??50,n=this.geoAccessOrder.get(e);if(!n||n.length<=t)return;let r=this.pageCallbacks.get(e),i=[];for(;n.length-i.length>t;){let e=n.find(e=>!i.includes(e)&&!r?.has(e));if(e===void 0)break;i.push(e)}if(i.length!==0){for(let e of i){let t=n.indexOf(e);t>-1&&n.splice(t,1)}this.dispatch(Ao(e,i))}}beginSelection(e,t,n,r){this.selecting.set(e,!0),this.anchor.set(e,{page:t,index:n}),this.dispatch(To(e)),this.beginSelection$.emit(e,{page:t,index:n,modeId:r}),this.recalculateMenuPlacement(e)}endSelection(e,t){this.selecting.set(e,!1),this.anchor.set(e,void 0),this.dispatch(Eo(e)),this.endSelection$.emit(e,{modeId:t}),this.recalculateMenuPlacement(e)}clearSelection(e,t){this.selecting.set(e,!1),this.anchor.set(e,void 0),this.dispatch(Do(e)),this.selChange$.emit(e,null),this.emitMenuPlacement(e,null),this.notifyAllPages(e)}applySelection(e,t){if(!this.state.documents[e])return F.reject({code:P.NotFound,message:`Selection state not found for document: ${e}`});if(t===null)return this.clearSelection(e),F.resolve(void 0);let n=this.validateRange(e,t);if(n)return F.reject(n);let r=this.normalizeRange(t),i=[];for(let e=r.start.page;e<=r.end.page;e++)i.push(e);let a=i.map(t=>this.getOrLoadGeometry(e,t)),o=F.create();return A.all(a).wait(()=>{if(!this.state.documents[e]){o.reject({code:P.NotFound,message:`Selection state not found for document: ${e}`});return}let t=this.clampRangeToGeometry(e,r);if(!t){o.reject({code:P.NotFound,message:`Cannot apply selection: page(s) ${r.start.page}-${r.end.page} have no text geometry`});return}this.selecting.set(e,!1),this.anchor.set(e,void 0);let n=Object.keys(this.getDocumentState(e).rects).map(Number);this.dispatch(To(e)),this.dispatch(wo(e,t)),this.updateRectsAndSlices(e,t),this.dispatch(Eo(e)),this.selChange$.emit(e,t);let i=new Set(n);for(let e=t.start.page;e<=t.end.page;e++)i.add(e);i.forEach(t=>this.notifyPage(e,t)),this.recalculateMenuPlacement(e),o.resolve(void 0)},e=>o.reject(e.reason)),o}validateRange(e,t){let n=e=>!!e&&typeof e==`object`&&Number.isInteger(e.page)&&Number.isInteger(e.index);if(!t||typeof t!=`object`||!t.start||!t.end)return{code:P.Unknown,message:`Invalid selection range: expected { start, end }`};if(!n(t.start)||!n(t.end))return{code:P.Unknown,message:`Invalid selection range: start/end must have integer page and index`};if(t.start.index<0||t.end.index<0)return{code:P.Unknown,message:`Invalid selection range: glyph index cannot be negative`};let r=this.getCoreDocument(e)?.document?.pageCount??0,i=Math.min(t.start.page,t.end.page),a=Math.max(t.start.page,t.end.page);return i<0||a>=r?{code:P.NotFound,message:`Invalid selection range: page ${i<0?i:a} out of bounds [0, ${r})`}:null}clampRangeToGeometry(e,t){let n=this.getDocumentState(e),r=e=>{let t=n.geometry[e];if(!t||t.runs.length===0)return-1;let r=t.runs[t.runs.length-1];return r.charStart+r.glyphs.length-1},i=r(t.start.page),a=r(t.end.page);if(i<0&&a<0)return null;let o=(e,t)=>t<0?0:Math.min(Math.max(e,0),t);return{start:{page:t.start.page,index:o(t.start.index,i)},end:{page:t.end.page,index:o(t.end.index,a)}}}normalizeRange(e){let{start:t,end:n}=e;return n.page>t.page||n.page===t.page&&n.index>=t.index?{start:t,end:n}:{start:n,end:t}}selectWord(e,t,n,r){let i=this.getDocumentState(e).geometry[t];if(!i)return;let a=eo(i,n);a&&this.applyInstantSelection(e,t,a.from,a.to,r)}selectLine(e,t,n,r){let i=this.getDocumentState(e).geometry[t];if(!i)return;let a=to(i,n);a&&this.applyInstantSelection(e,t,a.from,a.to,r)}applyInstantSelection(e,t,n,r,i){let a={start:{page:t,index:n},end:{page:t,index:r}};this.selecting.set(e,!1),this.anchor.set(e,void 0),this.dispatch(To(e)),this.dispatch(wo(e,a)),this.updateRectsAndSlices(e,a),this.dispatch(Eo(e)),this.selChange$.emit(e,a),this.beginSelection$.emit(e,{page:t,index:n,modeId:i}),this.endSelection$.emit(e,{modeId:i});for(let t=a.start.page;t<=a.end.page;t++)this.notifyPage(e,t);this.recalculateMenuPlacement(e)}updateSelection(e,t,n,r){if(!this.selecting.get(e)||!this.anchor.get(e))return;let i=this.anchor.get(e),a=t>i.page||t===i.page&&n>=i.index,o={start:a?i:{page:t,index:n},end:a?{page:t,index:n}:i};this.dispatch(wo(e,o)),this.updateRectsAndSlices(e,o),this.selChange$.emit(e,o);for(let t=o.start.page;t<=o.end.page;t++)this.notifyPage(e,t)}updateRectsAndSlices(e,t){let n=this.getDocumentState(e),r={},i={};for(let e=t.start.page;e<=t.end.page;e++){let a=n.geometry[e],o=Wa(t,a,e);o&&(r[e]=Ga(a,o.from,o.to),i[e]={start:o.from,count:o.to-o.from+1})}this.dispatch(Oo(e,r)),this.dispatch(ko(e,i))}getSelectedText(e){if(!this.checkPermission(e,N.CopyContents))return this.logger.debug(`SelectionPlugin`,`GetSelectedText`,`Cannot get selected text: document ${e} lacks CopyContents permission`),F.reject({code:P.Security,message:`Document lacks CopyContents permission`});let t=this.getCoreDocument(e),n=this.getDocumentState(e);if(!t?.document||!n.selection)return F.reject({code:P.NotFound,message:`Doc Not Found or No Selection`});let r=n.selection,i=[];for(let e=r.start.page;e<=r.end.page;e++){let t=n.slices[e];t&&i.push({pageIndex:e,charIndex:t.start,charCount:t.count})}if(i.length===0)return F.resolve([]);let a=this.engine.getTextSlices(t.document,i);return a.wait(t=>{this.textRetrieved$.emit(e,t)},O),a}copyToClipboard(e){this.checkPermission(e,N.CopyContents)?this.getSelectedText(e).wait(t=>{this.copyToClipboard$.emit(e,t.join(`
|
|
37
37
|
`))},O):this.logger.debug(`SelectionPlugin`,`CopyToClipboard`,`Cannot copy to clipboard: document ${e} lacks CopyContents permission`)}beginMarquee(e,t,n,r){this.marqueePage.set(e,t)}updateMarquee(e,t,n,r){this.marqueeChange$.emit(e,{pageIndex:t,rect:n,modeId:r})}endMarquee(e,t,n,r){this.marqueeEnd$.emit(e,{pageIndex:t,rect:n,modeId:r}),this.marqueeChange$.emit(e,{pageIndex:t,rect:null,modeId:r}),this.marqueePage.delete(e)}cancelMarquee(e,t){let n=this.marqueePage.get(e);n!==void 0&&(this.marqueeChange$.emit(e,{pageIndex:n,rect:null,modeId:t}),this.marqueePage.delete(e))}setMarqueeEnabled(e,t){let n=this.enabledModesPerDoc.get(e);if(!n)return;let r=n.get(`pointerMode`);r?r.enableMarquee=t:t&&n.set(`pointerMode`,{enableMarquee:!0})}isMarqueeEnabled(e){return this.enabledModesPerDoc.get(e)?.get(`pointerMode`)?.enableMarquee!==!1}},Io.id=`selection`,Lo=Io,Ro={manifest:co,create:(e,t)=>new Lo(so,e,t),reducer:No,initialState:Mo}})))()}function Bo(e,t){let{width:n,height:r}=e.size;switch(t%4){case 1:return{matrix:`matrix(0, -1, 1, 0, 0, ${r})`,width:r,height:n};case 2:return{matrix:`matrix(-1, 0, 0, -1, ${n}, ${r})`,width:n,height:r};case 3:return{matrix:`matrix(0, 1, -1, 0, ${n}, 0)`,width:r,height:n};default:return{matrix:`matrix(1, 0, 0, 1, 0, 0)`,width:n,height:r}}}function Vo({children:e,...t}){let{rect:n,rotation:r}=t,{matrix:i,width:a,height:o}=Bo(n,r),s=w(null);S(()=>{let e=s.current;if(!e)return;let t=e=>{e.stopPropagation()},n=e=>{e.stopPropagation()};return e.addEventListener(`pointerdown`,t,{capture:!0}),e.addEventListener(`touchstart`,n,{capture:!0,passive:!0}),()=>{e.removeEventListener(`pointerdown`,t,{capture:!0}),e.removeEventListener(`touchstart`,n,{capture:!0})}},[]);let c={style:{position:`absolute`,left:n.origin.x,top:n.origin.y,transform:i,transformOrigin:`0 0`,width:a,height:o,pointerEvents:`none`,zIndex:3},ref:e=>{s.current=e}};return/* @__PURE__ */ E(ie,{children:e({menuWrapperProps:c,matrix:i,rect:{origin:{x:n.origin.x,y:n.origin.y},size:{width:a,height:o}}})})}function Ho(){return(Ho=t((()=>{I()})))()}function Uo({documentId:e,pageIndex:t,scale:n,rotation:r,background:i=`rgba(33,150,243)`,selectionMenu:a}){let{plugin:o}=qo(),s=er(e),c=s?.document?.pages?.[t],[l,u]=T([]),[d,f]=T(null),[p,m]=T(null);S(()=>{if(o&&e)return o.registerSelectionOnPage({documentId:e,pageIndex:t,onRectsChange:({rects:e,boundingRect:t})=>{u(e),f(t)}})},[o,e,t]),S(()=>{if(o&&e)return o.onMenuPlacement(e,e=>{m(e)})},[o,e]);let h=C(()=>n===void 0?s?.scale??1:n,[n,s?.scale]),g=C(()=>r===void 0?((c?.rotation??0)+(s?.rotation??0))%4:r,[r,c?.rotation,s?.rotation]),_=a&&p&&p.pageIndex===t&&p.isVisible;return d?/* @__PURE__ */ D(ue,{children:[/* @__PURE__ */ E(`div`,{style:{position:`absolute`,left:d.origin.x*h,top:d.origin.y*h,width:d.size.width*h,height:d.size.height*h,mixBlendMode:`multiply`,isolation:`isolate`,pointerEvents:`none`},children:l.map((e,t)=>/* @__PURE__ */ E(`div`,{style:{position:`absolute`,left:(e.origin.x-d.origin.x)*h,top:(e.origin.y-d.origin.y)*h,width:e.size.width*h,height:e.size.height*h,background:i}},t))}),_&&/* @__PURE__ */ E(Vo,{rect:{origin:{x:p.rect.origin.x*h,y:p.rect.origin.y*h},size:{width:p.rect.size.width*h,height:p.rect.size.height*h}},rotation:g,children:e=>a({...e,context:{type:`selection`,pageIndex:t},selected:!0,placement:p})})]}):null}function Wo({documentId:e,pageIndex:t,scale:n,rotation:r,background:i,textStyle:a,marqueeStyle:o,marqueeClassName:s,selectionMenu:c}){return/* @__PURE__ */ D(ie,{children:[/* @__PURE__ */ E(Uo,{documentId:e,pageIndex:t,scale:n,rotation:r,background:a?.background??i,selectionMenu:c}),/* @__PURE__ */ E(Jo,{documentId:e,pageIndex:t,scale:n,background:o?.background,borderColor:o?.borderColor,borderStyle:o?.borderStyle,className:s})]})}function Go(){let{provides:e}=Ko();return S(()=>{if(e)return e.onCopyToClipboard(({text:e})=>{navigator.clipboard.writeText(e)})},[e]),null}var Ko,qo,Jo,Yo;function Xo(){return(Xo=t((()=>{G(),zo(),J(),Ho(),Ko=()=>q(Lo.id),qo=()=>K(Lo.id),Jo=({documentId:e,pageIndex:t,scale:n,className:r,background:i,borderColor:a,borderStyle:o=`dashed`,stroke:s,fill:c})=>{let{plugin:l}=qo(),u=er(e),[d,f]=T(null),p=a??s??`rgba(0,122,204,0.8)`,m=i??c??`rgba(0,122,204,0.15)`,h=C(()=>n===void 0?u?.scale??1:n,[n,u?.scale]);return S(()=>{if(l&&e)return l.registerMarqueeOnPage({documentId:e,pageIndex:t,scale:h,onRectChange:f})},[l,e,t,h]),d?/* @__PURE__ */ E(`div`,{style:{position:`absolute`,pointerEvents:`none`,left:d.origin.x*h,top:d.origin.y*h,width:d.size.width*h,height:d.size.height*h,border:`1px ${o} ${p}`,background:m,boxSizing:`border-box`,zIndex:1e3},className:r}):null},Yo=an(Ro).addUtility(Go).build()})))()}function Zo(e,t){return{type:us,payload:{documentId:e,state:t}}}function Qo(e){return{type:ds,payload:e}}function $o(e,t){return{type:fs,payload:{documentId:e,mode:t}}}function es(e){return{type:ps,payload:e}}function ts(e){return{type:ms,payload:e}}function ns(e,t){return{type:hs,payload:{documentId:e,cursor:t}}}function rs(e){return{type:_s,payload:{mode:e}}}function is(e){return{type:vs,payload:{rules:e}}}function as(e){return{type:ys,payload:{className:e}}}function os(e){return{type:bs,payload:{className:e}}}function ss(e){return{type:xs,payload:{attribute:e}}}function cs(e){return{type:Ss,payload:{attribute:e}}}function ls(e){let t=[`onPointerDown`,`onPointerUp`,`onPointerMove`,`onPointerEnter`,`onPointerLeave`,`onPointerCancel`,`onMouseDown`,`onMouseUp`,`onMouseMove`,`onMouseEnter`,`onMouseLeave`,`onMouseCancel`,`onClick`,`onDoubleClick`],n={};for(let r of t)n[r]=(t,n,i)=>{var a;for(let o of e){if(n.isImmediatePropagationStopped())break;(a=o[r])==null||a.call(o,t,n,i)}};return n}var us,ds,fs,ps,ms,hs,gs,_s,vs,ys,bs,xs,Ss,Cs,ws,Ts,Es,Ds,Os,ks,As,js;function Ms(){return(Ms=t((()=>{G(),us=`INTERACTION/INIT_STATE`,ds=`INTERACTION/CLEANUP_STATE`,fs=`INTERACTION/ACTIVATE_MODE`,ps=`INTERACTION/PAUSE`,ms=`INTERACTION/RESUME`,hs=`INTERACTION/SET_CURSOR`,gs=`INTERACTION/SET_ACTIVE_DOCUMENT`,_s=`INTERACTION/SET_DEFAULT_MODE`,vs=`INTERACTION/SET_EXCLUSION_RULES`,ys=`INTERACTION/ADD_EXCLUSION_CLASS`,bs=`INTERACTION/REMOVE_EXCLUSION_CLASS`,xs=`INTERACTION/ADD_EXCLUSION_ATTRIBUTE`,Ss=`INTERACTION/REMOVE_EXCLUSION_ATTRIBUTE`,Cs=`pointerMode`,ws=class extends W{constructor(e,t,n){super(e,t),this.modes=/* @__PURE__ */ new Map,this.cursorClaims=/* @__PURE__ */ new Map,this.buckets=/* @__PURE__ */ new Map,this.alwaysGlobal=/* @__PURE__ */ new Map,this.alwaysPage=/* @__PURE__ */ new Map,this.pageActivities=/* @__PURE__ */ new Map,this.onModeChange$=z(),this.onHandlerChange$=z(),this.onCursorChange$=z(),this.onStateChange$=B(),this.onPageActivityChange$=z(),this.registerMode({id:Cs,scope:`page`,exclusive:!1,cursor:`auto`}),this.dispatch(rs(Cs)),n.exclusionRules&&this.dispatch(is(n.exclusionRules))}onDocumentLoadingStarted(e){let t={activeMode:this.state.defaultMode,cursor:`auto`,paused:!1};this.dispatch(Zo(e,t)),this.cursorClaims.set(e,/* @__PURE__ */ new Map),this.buckets.set(e,/* @__PURE__ */ new Map),this.alwaysGlobal.set(e,/* @__PURE__ */ new Set),this.alwaysPage.set(e,/* @__PURE__ */ new Map),this.pageActivities.set(e,/* @__PURE__ */ new Map);let n=this.buckets.get(e);for(let e of this.modes.keys())n.set(e,{global:/* @__PURE__ */ new Set,page:/* @__PURE__ */ new Map});this.logger.debug(`InteractionManagerPlugin`,`DocumentOpened`,`Initialized interaction state for document: ${e}`)}onDocumentClosed(e){let t=this.pageActivities.get(e);if(t){let n=new Set(t.values());t.clear();for(let t of n)this.onPageActivityChange$.emit({documentId:e,pageIndex:t,hasActivity:!1})}this.cursorClaims.delete(e),this.buckets.delete(e),this.alwaysGlobal.delete(e),this.alwaysPage.delete(e),this.pageActivities.delete(e),this.dispatch(Qo(e)),this.logger.debug(`InteractionManagerPlugin`,`DocumentClosed`,`Cleaned up interaction state for document: ${e}`)}buildCapability(){return{getActiveMode:()=>this.getActiveMode(),getActiveInteractionMode:()=>this.getActiveInteractionMode(),activate:e=>this.activate(e),activateDefaultMode:()=>this.activateDefaultMode(),setCursor:(e,t,n)=>this.setCursor(e,t,n),getCurrentCursor:()=>this.getCurrentCursor(),removeCursor:e=>this.removeCursor(e),getHandlersForScope:e=>this.getHandlersForScope(e),activeModeIsExclusive:()=>this.activeModeIsExclusive(),pause:()=>this.pause(),resume:()=>this.resume(),isPaused:()=>this.registry.isDestroyed()||this.isPaused(),getState:()=>this.getDocumentStateOrThrow(),forDocument:e=>this.createInteractionScope(e),registerMode:e=>this.registerMode(e),registerHandlers:e=>this.registerHandlers(e),registerAlways:e=>this.registerAlways(e),setDefaultMode:e=>this.setDefaultMode(e),getDefaultMode:()=>this.state.defaultMode,getExclusionRules:()=>this.state.exclusionRules,setExclusionRules:e=>this.dispatch(is(e)),addExclusionClass:e=>this.dispatch(as(e)),removeExclusionClass:e=>this.dispatch(os(e)),addExclusionAttribute:e=>this.dispatch(ss(e)),removeExclusionAttribute:e=>this.dispatch(cs(e)),claimPageActivity:(e,t,n)=>this.claimPageActivity(e,t,n),releasePageActivity:(e,t)=>this.releasePageActivity(e,t),hasPageActivity:(e,t)=>this.hasPageActivity(e,t),onModeChange:this.onModeChange$.on,onCursorChange:this.onCursorChange$.on,onHandlerChange:this.onHandlerChange$.on,onStateChange:this.onStateChange$.on,onPageActivityChange:this.onPageActivityChange$.on}}createInteractionScope(e){return{getActiveMode:()=>this.getActiveMode(e),getActiveInteractionMode:()=>this.getActiveInteractionMode(e),activate:t=>this.activate(t,e),activateDefaultMode:()=>this.activateDefaultMode(e),setCursor:(t,n,r)=>this.setCursor(t,n,r,e),getCurrentCursor:()=>this.getCurrentCursor(e),removeCursor:t=>this.removeCursor(t,e),getHandlersForScope:e=>this.getHandlersForScope(e),activeModeIsExclusive:()=>this.activeModeIsExclusive(e),pause:()=>this.pause(e),resume:()=>this.resume(e),isPaused:()=>this.isPaused(e),getState:()=>this.getDocumentStateOrThrow(e),claimPageActivity:(t,n)=>this.claimPageActivity(e,t,n),releasePageActivity:t=>this.releasePageActivity(e,t),hasPageActivity:t=>this.hasPageActivity(e,t),onModeChange:t=>this.onModeChange$.on(n=>{n.documentId===e&&t(n.activeMode)}),onCursorChange:t=>this.onCursorChange$.on(n=>{n.documentId===e&&t(n.cursor)}),onStateChange:t=>this.onStateChange$.on(n=>{n.documentId===e&&t(n.state)}),onPageActivityChange:t=>this.onPageActivityChange$.on(n=>{n.documentId===e&&t({pageIndex:n.pageIndex,hasActivity:n.hasActivity})})}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}getDocumentStateOrThrow(e){let t=this.getDocumentState(e);if(!t)throw Error(`Interaction state not found for document: ${e??`active`}`);return t}activate(e,t){var n;let r=t??this.getActiveDocumentId(),i=this.getDocumentStateOrThrow(r);if(!this.modes.has(e))throw Error(`[interaction] unknown mode '${e}'`);if(e===i.activeMode)return;let a=i.activeMode;(n=this.cursorClaims.get(r))==null||n.clear(),this.notifyHandlersInactive(r,a),this.dispatch($o(r,e)),this.emitCursor(r),this.notifyHandlersActive(r,e),this.onModeChange$.emit({documentId:r,activeMode:e,previousMode:a})}activateDefaultMode(e){let t=e??this.getActiveDocumentIdOrNull();t&&this.activate(this.state.defaultMode,t)}setDefaultMode(e){if(!this.modes.has(e))throw Error(`[interaction] cannot set unknown mode '${e}' as default`);this.dispatch(rs(e))}getActiveMode(e){return this.getDocumentStateOrThrow(e).activeMode}getActiveInteractionMode(e){let t=this.getDocumentState(e);return t?this.modes.get(t.activeMode)??null:null}activeModeIsExclusive(e){return!!this.getActiveInteractionMode(e)?.exclusive}pause(e){let t=e??this.getActiveDocumentId();this.dispatch(es(t))}resume(e){let t=e??this.getActiveDocumentId();this.dispatch(ts(t))}isPaused(e){return this.getDocumentStateOrThrow(e).paused}registerMode(e){this.modes.set(e.id,e);for(let t of this.buckets.keys()){let n=this.buckets.get(t);n.has(e.id)||n.set(e.id,{global:/* @__PURE__ */ new Set,page:/* @__PURE__ */ new Map})}}registerHandlers({documentId:e,modeId:t,handlers:n,pageIndex:r}){let i=Array.isArray(t)?t:[t],a=[],o=this.buckets.get(e);if(!o)throw Error(`No buckets found for document: ${e}`);for(let e of i){let t=o.get(e);if(!t)throw Error(`unknown mode '${e}'`);if(r==null)t.global.add(n);else{let e=t.page.get(r)??/* @__PURE__ */ new Set;e.add(n),t.page.set(r,e)}a.push(()=>{if(r==null)t.global.delete(n);else{let e=t.page.get(r);e&&(e.delete(n),e.size===0&&t.page.delete(r))}})}return this.onHandlerChange$.emit({...this.state}),()=>{a.forEach(e=>e()),this.onHandlerChange$.emit({...this.state})}}registerAlways({scope:e,handlers:t}){if(e.type===`global`){let n=this.alwaysGlobal.get(e.documentId)??/* @__PURE__ */ new Set;return n.add(t),this.alwaysGlobal.set(e.documentId,n),this.onHandlerChange$.emit({...this.state}),()=>{n.delete(t),this.onHandlerChange$.emit({...this.state})}}let n=this.alwaysPage.get(e.documentId)??/* @__PURE__ */ new Map,r=n.get(e.pageIndex)??/* @__PURE__ */ new Set;return r.add(t),n.set(e.pageIndex,r),this.alwaysPage.set(e.documentId,n),this.onHandlerChange$.emit({...this.state}),()=>{r.delete(t),this.onHandlerChange$.emit({...this.state})}}getHandlersForScope(e){let t=this.getDocumentState(e.documentId);if(!t)return null;let n=this.modes.get(t.activeMode);if(!n)return null;let r=this.buckets.get(e.documentId);if(!r)return null;let i=r.get(n.id);if(!i)return null;let a=(e,t)=>e.size||t.size?ls([...e,...t]):null;return e.type===`global`?a(this.alwaysGlobal.get(e.documentId)??/* @__PURE__ */ new Set,n.scope===`global`?i.global:/* @__PURE__ */ new Set):a(this.alwaysPage.get(e.documentId)?.get(e.pageIndex)??/* @__PURE__ */ new Set,n.scope===`page`?i.page.get(e.pageIndex)??/* @__PURE__ */ new Set:/* @__PURE__ */ new Set)}setCursor(e,t,n=0,r){let i=r??this.getActiveDocumentId(),a=this.cursorClaims.get(i);a&&(a.set(e,{cursor:t,priority:n}),this.emitCursor(i))}removeCursor(e,t){let n=t??this.getActiveDocumentId(),r=this.cursorClaims.get(n);r&&(r.delete(e),this.emitCursor(n))}getCurrentCursor(e){return this.getDocumentStateOrThrow(e).cursor}emitCursor(e){let t=this.cursorClaims.get(e);if(!t)return;let n=this.getDocumentState(e);if(!n)return;let r=[...t.values()].sort((e,t)=>t.priority-e.priority)[0]??{cursor:this.modes.get(n.activeMode)?.cursor??`auto`};r.cursor!==n.cursor&&(this.dispatch(ns(e,r.cursor)),this.onCursorChange$.emit({documentId:e,cursor:r.cursor}))}claimPageActivity(e,t,n){let r=this.pageActivities.get(e);r||(r=/* @__PURE__ */ new Map,this.pageActivities.set(e,r));let i=r.get(t);i!==n&&(r.set(t,n),i!==void 0&&!this.pageHasAnyTopic(e,i)&&this.onPageActivityChange$.emit({documentId:e,pageIndex:i,hasActivity:!1}),this.countTopicsOnPage(e,n)===1&&this.onPageActivityChange$.emit({documentId:e,pageIndex:n,hasActivity:!0}))}releasePageActivity(e,t){let n=this.pageActivities.get(e);if(!n)return;let r=n.get(t);r!==void 0&&(n.delete(t),this.pageHasAnyTopic(e,r)||this.onPageActivityChange$.emit({documentId:e,pageIndex:r,hasActivity:!1}))}hasPageActivity(e,t){return this.pageHasAnyTopic(e,t)}pageHasAnyTopic(e,t){let n=this.pageActivities.get(e);if(!n)return!1;for(let e of n.values())if(e===t)return!0;return!1}countTopicsOnPage(e,t){let n=this.pageActivities.get(e);if(!n)return 0;let r=0;for(let e of n.values())e===t&&r++;return r}notifyHandlersActive(e,t){var n,r;(n=this.alwaysGlobal.get(e))==null||n.forEach(e=>{var n;(n=e.onHandlerActiveStart)==null||n.call(e,t)}),(r=this.alwaysPage.get(e))==null||r.forEach(e=>{e.forEach(e=>{var n;(n=e.onHandlerActiveStart)==null||n.call(e,t)})});let i=this.modes.get(t);if(!i)return;let a=this.buckets.get(e);if(!a)return;let o=a.get(t);o&&(i.scope===`global`&&o.global.forEach(e=>{var n;(n=e.onHandlerActiveStart)==null||n.call(e,t)}),i.scope===`page`&&o.page.forEach(e=>{e.forEach(e=>{var n;(n=e.onHandlerActiveStart)==null||n.call(e,t)})}))}notifyHandlersInactive(e,t){var n,r;(n=this.alwaysGlobal.get(e))==null||n.forEach(e=>{var n;(n=e.onHandlerActiveEnd)==null||n.call(e,t)}),(r=this.alwaysPage.get(e))==null||r.forEach(e=>{e.forEach(e=>{var n;(n=e.onHandlerActiveEnd)==null||n.call(e,t)})});let i=this.modes.get(t);if(!i)return;let a=this.buckets.get(e);if(!a)return;let o=a.get(t);o&&(i.scope===`global`&&o.global.forEach(e=>{var n;(n=e.onHandlerActiveEnd)==null||n.call(e,t)}),i.scope===`page`&&o.page.forEach(e=>{e.forEach(e=>{var n;(n=e.onHandlerActiveEnd)==null||n.call(e,t)})}))}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r!==i&&this.onStateChange$.emit({documentId:n,state:i})}}async initialize(e){this.logger.info(`InteractionManagerPlugin`,`Initialize`,`Interaction Manager Plugin initialized`)}async destroy(){this.pageActivities.clear(),this.onModeChange$.clear(),this.onCursorChange$.clear(),this.onHandlerChange$.clear(),this.onStateChange$.clear(),this.onPageActivityChange$.clear(),await super.destroy()}},ws.id=`interaction-manager`,Ts=ws,Es=`interaction-manager`,Ds={id:Es,name:`Interaction Manager Plugin`,version:`1.0.0`,provides:[`interaction-manager`],requires:[],optional:[],defaultConfig:{exclusionRules:{classes:[],dataAttributes:[`data-no-interaction`]}}},Os=`pointerMode`,ks={defaultMode:Os,exclusionRules:{classes:[],dataAttributes:[`data-no-interaction`]},documents:{},activeDocumentId:null},As=(e=ks,t)=>{switch(t.type){case us:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r},activeDocumentId:e.activeDocumentId??n}}case ds:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case gs:return{...e,activeDocumentId:t.payload};case fs:{let{documentId:n,mode:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,activeMode:r}}}:e}case hs:{let{documentId:n,cursor:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,cursor:r}}}:e}case ps:{let n=t.payload,r=e.documents[n];return r?{...e,documents:{...e.documents,[n]:{...r,paused:!0}}}:e}case ms:{let n=t.payload,r=e.documents[n];return r?{...e,documents:{...e.documents,[n]:{...r,paused:!1}}}:e}case _s:return{...e,defaultMode:t.payload.mode};case vs:return{...e,exclusionRules:t.payload.rules};case ys:return{...e,exclusionRules:{...e.exclusionRules,classes:[...e.exclusionRules.classes||[],t.payload.className].filter((e,t,n)=>n.indexOf(e)===t)}};case bs:return{...e,exclusionRules:{...e.exclusionRules,classes:(e.exclusionRules.classes||[]).filter(e=>e!==t.payload.className)}};case xs:return{...e,exclusionRules:{...e.exclusionRules,dataAttributes:[...e.exclusionRules.dataAttributes||[],t.payload.attribute].filter((e,t,n)=>n.indexOf(e)===t)}};case Ss:return{...e,exclusionRules:{...e.exclusionRules,dataAttributes:(e.exclusionRules.dataAttributes||[]).filter(e=>e!==t.payload.attribute)}};default:return e}},js={manifest:Ds,create:(e,t)=>new Ts(Es,e,t),reducer:As,initialState:ks}})))()}function Ns(e){let{provides:t}=Rs(),[n,r]=T(()=>{if(!t)return!1;let n=t.forDocument(e).getActiveInteractionMode();return n?.scope===`page`&&!!n.exclusive});return S(()=>{if(!t)return;let n=t.forDocument(e);return n.onModeChange(()=>{let e=n.getActiveInteractionMode();r(e?.scope===`page`&&!!e?.exclusive)})},[t,e]),n}function Ps(e,t){return e.startsWith(`touch`)?{passive:!t}:{passive:!1}}function Fs(e){return typeof TouchEvent<`u`&&e instanceof TouchEvent}function Is(e,t){if(!e)return!1;let n=e;for(;n;){if(t.classes?.length){for(let e of t.classes)if(n.classList?.contains(e))return!0}if(t.dataAttributes?.length){for(let e of t.dataAttributes)if(n.hasAttribute(e))return!0}n=n.parentElement}return!1}function Ls(e,t,n,r){let i=e.forDocument(t.documentId),a=e.getHandlersForScope(t),o=()=>i.getActiveInteractionMode()?.wantsRawTouch!==!1,s={},c=o(),l=e=>{Hs.forEach(t=>{let r=s[t]??(s[t]=_);n.addEventListener(t,r,Ps(t,e))})},u=()=>{Hs.forEach(e=>{let t=s[e];t&&n.removeEventListener(e,t)})};l(c),n.style.touchAction=c?`none`:``;let d=i.onModeChange(()=>{if(t.type===`global`){let e=i.getActiveInteractionMode();n.style.cursor=e?.scope===`global`?e.cursor??`auto`:`auto`}a=e.getHandlersForScope(t);let r=o();r!==c&&(u(),l(r),c=r,n.style.touchAction=c?`none`:``)}),f=e.onHandlerChange(()=>{a=e.getHandlersForScope(t)}),p=i.getActiveInteractionMode(),m=i.getCurrentCursor();n.style.cursor=t.type===`global`&&p?.scope!==`global`?`auto`:m;let h=i.onCursorChange(e=>{(t.type!==`global`||i.getActiveInteractionMode()?.scope===`global`)&&(n.style.cursor=e)}),g=(e,t)=>{if(r)return r(e,t);let n=t.getBoundingClientRect();return{x:e.clientX-n.left,y:e.clientY-n.top}};function _(t){var r;if(e.isPaused())return;let o=e.getExclusionRules();if(t.target&&Is(t.target,o))return;let s=zs[t.type];if(!s||!a?.[s])return;Fs(t)&&c&&(t.type===`touchmove`||t.type===`touchcancel`)&&t.preventDefault();let l,u,d=!1;if(Fs(t)){let e=t.type===`touchend`||t.type===`touchcancel`?t.changedTouches[0]:t.touches[0];if(!e)return;l=g(e,n),u={clientX:e.clientX,clientY:e.clientY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,target:t.target,currentTarget:t.currentTarget,setPointerCapture:()=>{},releasePointerCapture:()=>{},stopImmediatePropagation:()=>{d=!0},isImmediatePropagationStopped:()=>d}}else{let e=t;l=g(e,n),u={clientX:e.clientX,clientY:e.clientY,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,metaKey:e.metaKey,target:e.target,currentTarget:e.currentTarget,setPointerCapture:()=>{var t,n;(n=(t=e.target)?.setPointerCapture)==null||n.call(t,e.pointerId)},releasePointerCapture:()=>{var t,n;(n=(t=e.target)?.releasePointerCapture)==null||n.call(t,e.pointerId)},stopImmediatePropagation:()=>{d=!0},isImmediatePropagationStopped:()=>d}}(r=a[s])==null||r.call(a,l,u,i.getActiveMode())}return()=>{u(),d(),h(),f()}}var Rs,zs,Bs,Vs,Hs,Us;function Ws(){return(Ws=t((()=>{J(),Ms(),I(),Rs=()=>q(Ts.id),zs={pointerdown:`onPointerDown`,pointerup:`onPointerUp`,pointermove:`onPointerMove`,pointerenter:`onPointerEnter`,pointerleave:`onPointerLeave`,pointercancel:`onPointerCancel`,mousedown:`onMouseDown`,mouseup:`onMouseUp`,mousemove:`onMouseMove`,mouseenter:`onMouseEnter`,mouseleave:`onMouseLeave`,mousecancel:`onMouseCancel`,click:`onClick`,dblclick:`onDoubleClick`,touchstart:`onPointerDown`,touchend:`onPointerUp`,touchmove:`onPointerMove`,touchcancel:`onPointerCancel`},Bs=[`pointerdown`,`pointerup`,`pointermove`,`pointerenter`,`pointerleave`,`pointercancel`,`mousedown`,`mouseup`,`mousemove`,`mouseenter`,`mouseleave`,`mousecancel`,`click`,`dblclick`],Vs=[`touchstart`,`touchend`,`touchmove`,`touchcancel`],Hs=typeof PointerEvent<`u`?Bs:[...Bs,...Vs],Us=({documentId:e,pageIndex:t,children:n,rotation:r,scale:i,convertEventToPoint:a,style:o,...s})=>{let c=w(null),{provides:l}=Rs(),u=Ns(e),d=er(e),f=d?.document?.pages?.[t],p=f?.size??{width:0,height:0},m=f?.rotation??0,h=d?.rotation??0,g=r===void 0?(m+h)%4:r,_=i??d?.scale??1,v=Ne(p,0,_),y=oe((e,t)=>{let n=t.getBoundingClientRect(),r={x:e.clientX-n.left,y:e.clientY-n.top};return ze(Ne({width:v.width,height:v.height},g,1),r,g,_)},[p,g,_]);return S(()=>{if(l&&c.current)return Ls(l,{type:`page`,documentId:e,pageIndex:t},c.current,a||y)},[l,e,t,a,y]),/* @__PURE__ */ D(`div`,{ref:c,style:{position:`relative`,width:v.width,height:v.height,...o},...s,children:[n,u&&/* @__PURE__ */ E(`div`,{style:{position:`absolute`,top:0,left:0,right:0,bottom:0,zIndex:10}})]})}})))()}function Gs(e,t,n){let r=1,i=0,a=0,o=1,s=0,c=0;switch(e){case 1:r=0,i=1,a=-1,o=0,s=n;break;case 2:r=-1,i=0,a=0,o=-1,s=t,c=n;break;case 3:r=0,i=-1,a=1,o=0,c=t}return[r,i,a,o,s,c]}function Ks(e,t,n){let[r,i,a,o,s,c]=Gs(e,t,n);return`matrix(${r},${i},${a},${o},${s},${c})`}function qs(e){return(e+1)%4}function Js(e){return(e+3)%4}function Ys(e,t){return{type:ec,payload:{documentId:e,state:t}}}function Xs(e){return{type:tc,payload:e}}function Zs(e,t){return{type:rc,payload:{documentId:e,rotation:t}}}var Qs,$s,ec,tc,nc,rc,ic,ac,oc,sc,cc,lc;function uc(){return(uc=t((()=>{G(),Qs=`rotate`,$s={id:Qs,name:`Rotate Plugin`,version:`1.0.0`,provides:[`rotate`],requires:[],optional:[],defaultConfig:{}},ec=`ROTATE/INIT_STATE`,tc=`ROTATE/CLEANUP_STATE`,nc=`ROTATE/SET_ACTIVE_DOCUMENT`,rc=`ROTATE/SET_ROTATION`,ic=class extends W{constructor(e,t,n){super(e,t),this.rotate$=B(),this.defaultRotation=n.defaultRotation??0}onDocumentLoadingStarted(e){let t={rotation:this.defaultRotation};this.dispatch(Ys(e,t)),this.dispatchCoreAction(Fn(this.defaultRotation,e)),this.logger.debug(`RotatePlugin`,`DocumentOpened`,`Initialized rotation state for document: ${e}`)}onDocumentClosed(e){this.dispatch(Xs(e)),this.logger.debug(`RotatePlugin`,`DocumentClosed`,`Cleaned up rotation state for document: ${e}`)}buildCapability(){return{setRotation:e=>this.setRotationForDocument(e),getRotation:()=>this.getRotationForDocument(),rotateForward:()=>this.rotateForward(),rotateBackward:()=>this.rotateBackward(),forDocument:e=>this.createRotateScope(e),onRotateChange:this.rotate$.on}}createRotateScope(e){return{setRotation:t=>this.setRotationForDocument(t,e),getRotation:()=>this.getRotationForDocument(e),rotateForward:()=>this.rotateForward(e),rotateBackward:()=>this.rotateBackward(e),onRotateChange:t=>this.rotate$.on(n=>{n.documentId===e&&t(n.rotation)})}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}getDocumentStateOrThrow(e){let t=this.getDocumentState(e);if(!t)throw Error(`Rotation state not found for document: ${e??`active`}`);return t}setRotationForDocument(e,t){let n=t??this.getActiveDocumentId();if(!this.coreState.core.documents[n]?.document)throw Error(`Document ${n} not loaded`);this.dispatch(Zs(n,e)),this.dispatchCoreAction(Fn(e,n)),this.rotate$.emit({documentId:n,rotation:e})}getRotationForDocument(e){return this.getDocumentStateOrThrow(e).rotation}rotateForward(e){let t=e??this.getActiveDocumentId(),n=qs(this.getRotationForDocument(t));this.setRotationForDocument(n,t)}rotateBackward(e){let t=e??this.getActiveDocumentId(),n=Js(this.getRotationForDocument(t));this.setRotationForDocument(n,t)}getMatrixAsString(e){return Ks(e.rotation,e.width,e.height)}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r?.rotation!==i.rotation&&this.logger.debug(`RotatePlugin`,`RotationChanged`,`Rotation changed for document ${n}: ${r?.rotation??0} -> ${i.rotation}`)}}async initialize(e){this.logger.info(`RotatePlugin`,`Initialize`,`Rotate plugin initialized`)}async destroy(){this.rotate$.clear(),super.destroy()}},ic.id=`rotate`,ac=ic,oc={rotation:0},sc={documents:{},activeDocumentId:null},cc=(e=sc,t)=>{switch(t.type){case ec:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r},activeDocumentId:e.activeDocumentId??n}}case tc:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case nc:return{...e,activeDocumentId:t.payload};case rc:{let{documentId:n,rotation:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,rotation:r}}}:e}default:return e}},lc={manifest:$s,create:(e,t)=>new ac(Qs,e,t),reducer:cc,initialState:sc}})))()}var dc,fc;function pc(){return(pc=t((()=>{J(),uc(),dc=()=>q(ac.id),fc=e=>{let{provides:t}=dc(),[n,r]=T(oc.rotation);return S(()=>{if(!t)return;let n=t.forDocument(e);return r(n.getRotation()),n.onRotateChange(e=>{r(e)})},[t,e]),{rotation:n,provides:t?.forDocument(e)??null}}})))()}function mc(e,t){return{type:_c,payload:{documentId:e,state:t}}}function hc(e){return{type:vc,payload:e}}function gc(e,t){return{type:bc,payload:{documentId:e,isPanMode:t}}}var _c,vc,yc,bc,xc,Sc,Cc,wc,Tc,Ec,Dc;function Oc(){return(Oc=t((()=>{G(),Ms(),Jr(),_c=`PAN/INIT_STATE`,vc=`PAN/CLEANUP_STATE`,yc=`PAN/SET_ACTIVE_DOCUMENT`,bc=`PAN/SET_PAN_MODE`,xc=class extends W{constructor(e,t,n){var r;super(e,t),this.panMode$=B(),this.documentHandlers=/* @__PURE__ */ new Map,this.config=n,this.interactionManager=t.getPlugin(Ts.id)?.provides(),this.viewport=t.getPlugin(Kr.id)?.provides(),this.interactionManager&&(this.interactionManager.registerMode({id:`panMode`,scope:`global`,exclusive:!1,cursor:`grab`,wantsRawTouch:!1}),(r=this.interactionManager)==null||r.onModeChange(e=>{let t=e.activeMode===`panMode`,n=this.getDocumentState(e.documentId);n&&n.isPanMode!==t&&this.dispatch(gc(e.documentId,t))}))}onDocumentLoadingStarted(e){this.dispatch(mc(e,{isPanMode:!1})),this.registerPanHandlersForDocument(e),this.config.defaultMode===`always`&&this.makePanDefault(!0),this.logger.debug(`PanPlugin`,`DocumentOpened`,`Initialized pan state for document: ${e}`)}onDocumentClosed(e){let t=this.documentHandlers.get(e);t&&(t(),this.documentHandlers.delete(e)),this.dispatch(hc(e)),this.logger.debug(`PanPlugin`,`DocumentClosed`,`Cleaned up pan state for document: ${e}`)}buildCapability(){return{enablePan:()=>this.enablePan(),disablePan:()=>this.disablePan(),togglePan:()=>this.togglePan(),makePanDefault:e=>this.makePanDefault(e),isPanMode:()=>this.isPanMode(),forDocument:e=>this.createPanScope(e),onPanModeChange:this.panMode$.on}}createPanScope(e){return{enablePan:()=>this.enablePan(e),disablePan:()=>this.disablePan(e),togglePan:()=>this.togglePan(e),isPanMode:()=>this.isPanMode(e),onPanModeChange:t=>this.panMode$.on(n=>{n.documentId===e&&t(n.isPanMode)})}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}getDocumentStateOrThrow(e){let t=this.getDocumentState(e);if(!t)throw Error(`Pan state not found for document: ${e??`active`}`);return t}enablePan(e){let t=e??this.getActiveDocumentId();this.interactionManager.forDocument(t).activate(`panMode`)}disablePan(e){let t=e??this.getActiveDocumentId();this.interactionManager.forDocument(t).activateDefaultMode()}togglePan(e){let t=e??this.getActiveDocumentId(),n=this.interactionManager.forDocument(t);n.getActiveMode()===`panMode`?n.activateDefaultMode():n.activate(`panMode`)}makePanDefault(e=!0){this.interactionManager&&(this.interactionManager.setDefaultMode(`panMode`),e&&this.interactionManager.activateDefaultMode())}isPanMode(e){return this.getDocumentStateOrThrow(e).isPanMode}registerPanHandlersForDocument(e){if(!this.interactionManager||!this.viewport)return;let t=null,n=this.interactionManager.forDocument(e),r=this.viewport.forDocument(e),i=this.interactionManager.registerHandlers({documentId:e,modeId:`panMode`,handlers:{onMouseDown:(e,i)=>{let a=r.getMetrics();t={startX:i.clientX,startY:i.clientY,startLeft:a.scrollLeft,startTop:a.scrollTop},n.setCursor(`panMode`,`grabbing`,10)},onMouseMove:(e,n)=>{if(!t)return;let i=n.clientX-t.startX,a=n.clientY-t.startY;r.scrollTo({x:t.startLeft-i,y:t.startTop-a})},onMouseUp:()=>{t&&(t=null,n.removeCursor(`panMode`))},onMouseLeave:()=>{t&&(t=null,n.removeCursor(`panMode`))},onMouseCancel:()=>{t&&(t=null,n.removeCursor(`panMode`))}}});this.documentHandlers.set(e,i)}onStoreUpdated(e,t){for(let n in t.documents){let r=e.documents[n],i=t.documents[n];r?.isPanMode!==i.isPanMode&&(this.panMode$.emit({documentId:n,isPanMode:i.isPanMode}),this.logger.debug(`PanPlugin`,`PanModeChanged`,`Pan mode changed for document ${n}: ${r?.isPanMode??!1} -> ${i.isPanMode}`))}}async initialize(e){this.logger.info(`PanPlugin`,`Initialize`,`Pan plugin initialized`)}async destroy(){this.documentHandlers.forEach(e=>e()),this.documentHandlers.clear(),this.panMode$.clear(),await super.destroy()}},xc.id=`pan`,Sc=xc,Cc={id:`pan`,name:`Pan Plugin`,version:`1.0.0`,provides:[`pan`],requires:[`interaction-manager`,`viewport`],optional:[],defaultConfig:{defaultMode:`mobile`}},wc={isPanMode:!1},Tc={documents:{},activeDocumentId:null},Ec=(e=Tc,t)=>{switch(t.type){case _c:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r},activeDocumentId:e.activeDocumentId??n}}case vc:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case yc:return{...e,activeDocumentId:t.payload};case bc:{let{documentId:n,isPanMode:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,isPanMode:r}}}:e}default:return e}},Dc={manifest:Cc,create:(e,t)=>new Sc(`pan`,e,t),reducer:Ec,initialState:Tc}})))()}var kc,Ac,jc,Mc,Nc;function Pc(){return(Pc=t((()=>{G(),Oc(),J(),kc=()=>K(Sc.id),Ac=()=>q(Sc.id),jc=e=>{let{provides:t}=Ac(),[n,r]=T(wc.isPanMode);return S(()=>{if(!t)return;let n=t.forDocument(e);return r(n.isPanMode()),n.onPanModeChange(e=>{r(e)})},[t,e]),{provides:t?.forDocument(e)??null,isPanning:n}},Mc=()=>{let{provides:e}=Ac(),{plugin:t}=kc();return S(()=>{if(!e||!t)return;let n=t.config?.defaultMode??`never`,r=typeof window<`u`&&(`ontouchstart`in window||navigator.maxTouchPoints>0);n===`mobile`&&r&&e.makePanDefault()},[e,t]),null},Nc=an(Dc).addUtility(Mc).build()})))()}function Fc(e,t){return{type:Vc,payload:{documentId:e,state:t}}}function Ic(e){return{type:Hc,payload:e}}function Lc(e,t){return{type:Wc,payload:{documentId:e,window:t}}}function Rc(e,t,n){return{type:Gc,payload:{documentId:e,scrollY:t,viewportH:n}}}var zc,Bc,Vc,Hc,Uc,Wc,Gc,Kc,qc,Jc,Yc,Xc,Zc;function Qc(){return(Qc=t((()=>{G(),I(),zc=`thumbnail`,Bc={id:zc,name:`Thumbnail Plugin`,version:`1.0.0`,provides:[`thumbnail`],requires:[`render`],optional:[`scroll`],defaultConfig:{width:150,gap:10,buffer:3,labelHeight:16,autoScroll:!0,scrollBehavior:`smooth`,imagePadding:0,paddingY:0}},Vc=`THUMBNAIL/INIT_STATE`,Hc=`THUMBNAIL/CLEANUP_STATE`,Uc=`THUMBNAIL/SET_ACTIVE_DOCUMENT`,Wc=`THUMBNAIL/SET_WINDOW_STATE`,Gc=`THUMBNAIL/UPDATE_VIEWPORT_METRICS`,Kc={thumbs:[],window:null,viewportH:0,scrollY:0},qc={documents:{},activeDocumentId:null},Jc=(e=qc,t)=>{switch(t.type){case Vc:{let{documentId:n,state:r}=t.payload;return{...e,documents:{...e.documents,[n]:r},activeDocumentId:e.activeDocumentId??n}}case Hc:{let n=t.payload,{[n]:r,...i}=e.documents;return{...e,documents:i,activeDocumentId:e.activeDocumentId===n?null:e.activeDocumentId}}case Uc:return{...e,activeDocumentId:t.payload};case Wc:{let{documentId:n,window:r}=t.payload,i=e.documents[n];return i?{...e,documents:{...e.documents,[n]:{...i,window:r}}}:e}case Gc:{let{documentId:n,scrollY:r,viewportH:i}=t.payload,a=e.documents[n];return a?{...e,documents:{...e.documents,[n]:{...a,scrollY:r,viewportH:i}}}:e}default:return e}},Yc=class extends W{constructor(e,t,n){super(e,t),this.cfg=n,this.scrollCapability=null,this.taskCaches=/* @__PURE__ */ new Map,this.canAutoScroll=/* @__PURE__ */ new Map,this.window$=V((e,t)=>({documentId:e,window:t})),this.scrollTo$=V((e,t)=>({documentId:e,options:t})),this.refreshPages$=V((e,t)=>({documentId:e,pages:t}),{cache:!1}),this.renderCapability=this.registry.getPlugin(`render`).provides(),this.scrollCapability=this.registry.getPlugin(`scroll`)?.provides()??null,this.coreStore.onAction(xn,e=>{let t=e.payload.documentId??this.getActiveDocumentId(),n=e.payload.pageIndexes;this.refreshPages$.emit(t,n);let r=this.taskCaches.get(t);if(r)for(let e of n)r.delete(e)}),this.scrollCapability&&this.cfg.autoScroll!==!1&&(this.scrollCapability.onPageChangeState(({documentId:e,state:t})=>{this.canAutoScroll.set(e,!t.isChanging),t.isChanging||this.scrollToThumb(t.targetPage-1,e)}),this.scrollCapability.onPageChange(({documentId:e,pageNumber:t})=>{this.canAutoScroll.get(e)!==!1&&this.scrollToThumb(t-1,e)}))}onDocumentLoadingStarted(e){this.dispatch(Fc(e,{...Kc})),this.taskCaches.set(e,/* @__PURE__ */ new Map),this.canAutoScroll.set(e,!0),this.logger.debug(`ThumbnailPlugin`,`DocumentOpened`,`Initialized thumbnail state for document: ${e}`)}onDocumentLoaded(e){this.calculateWindowState(e)}onDocumentClosed(e){this.dispatch(Ic(e));let t=this.taskCaches.get(e);t&&(t.forEach(e=>{e.abort({code:`cancelled`,message:`Document closed`})}),t.clear(),this.taskCaches.delete(e)),this.canAutoScroll.delete(e),this.window$.clearScope(e),this.scrollTo$.clearScope(e),this.refreshPages$.clearScope(e),this.logger.debug(`ThumbnailPlugin`,`DocumentClosed`,`Cleaned up thumbnail state for document: ${e}`)}onRotationChanged(e){this.calculateWindowState(e)}buildCapability(){return{scrollToThumb:e=>this.scrollToThumb(e),renderThumb:(e,t)=>this.renderThumb(e,t),updateWindow:(e,t)=>this.updateWindow(e,t),getWindow:()=>this.getWindow(),forDocument:e=>this.createThumbnailScope(e),onWindow:this.window$.onGlobal,onScrollTo:this.scrollTo$.onGlobal,onRefreshPages:this.refreshPages$.onGlobal}}createThumbnailScope(e){return{scrollToThumb:t=>this.scrollToThumb(t,e),renderThumb:(t,n)=>this.renderThumb(t,n,e),updateWindow:(t,n)=>this.updateWindow(t,n,e),getWindow:()=>this.getWindow(e),onWindow:this.window$.forScope(e),onScrollTo:this.scrollTo$.forScope(e),onRefreshPages:this.refreshPages$.forScope(e)}}getDocumentState(e){let t=e??this.getActiveDocumentId();return this.state.documents[t]??null}calculateWindowState(e){let t=this.coreState.core.documents[e];if(!t?.document)return;let n=this.cfg.width??120,r=this.cfg.labelHeight??16,i=this.cfg.gap??8,a=this.cfg.imagePadding??0,o=this.cfg.paddingY??0,s=Math.max(1,n-2*a),c=o,l=t.document.pages.map(e=>{let t=e.rotation%2==1,n=t?e.size.height:e.size.width,o=(t?e.size.width:e.size.height)/n,l=Math.round(s*o),u=a+l+a+r,d={pageIndex:e.index,width:s,height:l,wrapperHeight:u,top:c,labelHeight:r,padding:a};return c+=u+i,d}),u={start:-1,end:-1,items:[],totalHeight:c-i+o},d=this.getDocumentState(e);d&&(this.dispatch(Fc(e,{...d,thumbs:l,window:u})),d.viewportH>0?this.updateWindow(d.scrollY,d.viewportH,e):this.window$.emit(e,u))}updateWindow(e,t,n){let r=n??this.getActiveDocumentId(),i=this.getDocumentState(r);if(!i||!i.window||i.thumbs.length===0)return;let a=this.cfg.buffer??3;this.dispatch(Rc(r,e,t));let o=0,s=i.thumbs.length-1,c=0;for(;o<=s;){let t=o+s>>1,n=i.thumbs[t];n.top+n.wrapperHeight<e?o=t+1:(c=t,s=t-1)}let l=c,u=e+t;for(;l+1<i.thumbs.length&&i.thumbs[l].top<u;)l++;l=Math.min(i.thumbs.length-1,l+a);let d=Math.max(0,c-a);if(d===i.window.start&&l===i.window.end)return;let f={start:d,end:l,items:i.thumbs.slice(d,l+1),totalHeight:i.window.totalHeight};this.dispatch(Lc(r,f)),this.window$.emit(r,f)}getWindow(e){return this.getDocumentState(e)?.window??null}scrollToThumb(e,t){let n=t??this.getActiveDocumentId(),r=this.getDocumentState(n);if(!r||!r.window)return;let i=r.thumbs[e];if(!i)return;let a=this.cfg.scrollBehavior??`smooth`,o=this.cfg.paddingY??0;if(r.viewportH<=0){let e=Math.max(o,i.top-i.wrapperHeight);this.scrollTo$.emit(n,{top:e,behavior:a});return}let s=i.top,c=i.top+i.wrapperHeight,l=s<r.scrollY+8+o,u=c>r.scrollY+r.viewportH-8;l?this.scrollTo$.emit(n,{top:Math.max(0,s-o),behavior:a}):u&&this.scrollTo$.emit(n,{top:Math.max(0,c-r.viewportH+o),behavior:a})}renderThumb(e,t,n){let r=n??this.getActiveDocumentId(),i=this.taskCaches.get(r);if(!i)throw Error(`Task cache not found for document: ${r}`);if(i.has(e))return i.get(e);let a=this.coreState.core.documents[r];if(!a?.document)throw Error(`Document not found: ${r}`);let o=a.document.pages[e];if(!o)throw Error(`Page ${e} not found in document: ${r}`);let s=this.cfg.width??120,c=this.cfg.imagePadding??0,l=Math.max(1,s-2*c)/o.size.width,u=this.renderCapability.forDocument(r).renderPageRect({pageIndex:e,rect:{origin:{x:0,y:0},size:o.size},options:{scaleFactor:l,dpr:t,rotation:o.rotation}});return i.set(e,u),u.wait(O,()=>i.delete(e)),u}async initialize(){this.logger.info(`ThumbnailPlugin`,`Initialize`,`Thumbnail plugin initialized`)}async destroy(){this.window$.clear(),this.refreshPages$.clear(),this.scrollTo$.clear(),this.taskCaches.forEach(e=>{e.forEach(e=>{e.abort({code:`cancelled`,message:`Plugin destroyed`})}),e.clear()}),this.taskCaches.clear(),this.canAutoScroll.clear(),super.destroy()}},Yc.id=`thumbnail`,Xc=Yc,Zc={manifest:Bc,create:(e,t)=>new Xc(zc,e,t),reducer:Jc,initialState:qc}})))()}function $c({documentId:e,style:t,children:n,...r}){let{plugin:i}=tl(),a=w(null),[o,s]=T({window:null,docId:null}),c=o.docId===e?o.window:null;S(()=>{if(!i)return;let t=i.provides().forDocument(e),n=t.getWindow();n&&s({window:n,docId:e});let r=t.onWindow(t=>{s({window:t,docId:e})});return()=>{r(),s({window:null,docId:null})}},[i,e]),S(()=>{let t=a.current;if(!t||!i)return;let n=i.provides().forDocument(e),r=()=>n.updateWindow(t.scrollTop,t.clientHeight);return t.addEventListener(`scroll`,r),()=>t.removeEventListener(`scroll`,r)},[i,e]),S(()=>{let t=a.current;if(!t||!i)return;let n=i.provides().forDocument(e),r=new ResizeObserver(()=>{n.updateWindow(t.scrollTop,t.clientHeight)});return r.observe(t),()=>r.disconnect()},[i,e]),S(()=>{let t=a.current;t&&i&&i.provides().forDocument(e).updateWindow(t.scrollTop,t.clientHeight)},[c,i,e]),S(()=>{let t=a.current;if(t&&i&&c)return i.provides().forDocument(e).onScrollTo(({top:e,behavior:n})=>{t.scrollTo({top:e,behavior:n})})},[i,e,!!c]);let l=i?.cfg.paddingY??0;return/* @__PURE__ */ E(`div`,{ref:a,style:{overflowY:`auto`,position:`relative`,paddingTop:l,paddingBottom:l,height:`100%`,...t},...r,children:/* @__PURE__ */ E(`div`,{style:{height:c?.totalHeight??0,position:`relative`},children:c?.items.map(e=>n(e))})})}function el({documentId:e,meta:t,style:n,...r}){let{provides:i}=nl(),{plugin:a}=tl(),[o,s]=T(),c=w(null),[l,u]=T(0);return S(()=>{if(a)return a.provides().forDocument(e).onRefreshPages(e=>{e.includes(t.pageIndex)&&u(e=>e+1)})},[a,e,t.pageIndex]),S(()=>{let n=(i?.forDocument(e))?.renderThumb(t.pageIndex,window.devicePixelRatio);return n?.wait(e=>{let t=URL.createObjectURL(e);c.current=t,s(t)},O),()=>{c.current?(URL.revokeObjectURL(c.current),c.current=null):n?.abort({code:P.Cancelled,message:`canceled render task`})}},[i,e,t.pageIndex,l]),o?/* @__PURE__ */ E(`img`,{src:o,onLoad:()=>{c.current&&=(URL.revokeObjectURL(c.current),null)},style:n,...r}):null}var tl,nl;function rl(){return(rl=t((()=>{J(),Qc(),I(),tl=()=>K(Xc.id),nl=()=>q(Xc.id)})))()}var il,al,ol,sl,cl;function ll(){return(ll=t((()=>{G(),I(),il=`print`,al={id:il,name:`Print Plugin`,version:`1.0.0`,provides:[`print`],requires:[],optional:[],defaultConfig:{}},ol=class extends W{constructor(e,t,n){super(e,t),this.printReady$=z()}buildCapability(){return{print:e=>this.print(e),forDocument:e=>this.createPrintScope(e)}}createPrintScope(e){return{print:t=>this.print(t,e)}}print(e,t){let n=t??this.getActiveDocumentId();if(!this.checkPermission(n,N.Print))return this.logger.debug(`PrintPlugin`,`Print`,`Cannot print: document ${n} lacks Print permission`),F.reject({code:P.Security,message:`Document lacks Print permission`});let r=e??{},i=new A;return i.progress({stage:`preparing`,message:`Preparing document...`}),this.preparePrintDocument(r,n).wait(e=>{i.progress({stage:`document-ready`,message:`Document prepared successfully`}),this.printReady$.emit({documentId:n,options:r,buffer:e,task:i})},e=>i.fail(e)),i}preparePrintDocument(e,t){let n=this.coreState.core.documents[t];return n?.document?this.engine.preparePrintDocument(n.document,e):F.reject({code:P.DocNotOpen,message:`Document ${t} not found`})}onPrintRequest(e){return this.printReady$.on(e)}async initialize(e){this.logger.info(`PrintPlugin`,`Initialize`,`Print plugin initialized`)}async destroy(){this.printReady$.clear(),await super.destroy()}},ol.id=`print`,sl=ol,cl={manifest:al,create:(e,t)=>new sl(il,e,t),reducer:()=>{},initialState:{}}})))()}function ul(){if(pl)return fl;pl=1;var e=de;return fl.createRoot=e.createRoot,fl.hydrateRoot=e.hydrateRoot,fl}function dl(){let{provides:e}=hl(),{plugin:t}=ml(),n=w(null),r=w(null);return S(()=>{if(!e||!t)return;let i=t.onPrintRequest(({buffer:e,task:t})=>{let i=n.current;if(!i)return;r.current&&=(URL.revokeObjectURL(r.current),null);let a=URL.createObjectURL(new Blob([e],{type:`application/pdf`}));r.current=a,i.onload=()=>{var n,r;i.src===a&&(t.progress({stage:`iframe-ready`,message:`Ready to print`}),(n=i.contentWindow)==null||n.focus(),(r=i.contentWindow)==null||r.print(),t.progress({stage:`printing`,message:`Print dialog opened`}),t.resolve(e))},i.src=a});return()=>{i(),r.current&&URL.revokeObjectURL(r.current)}},[e,t]),/* @__PURE__ */ E(`iframe`,{ref:n,style:{position:`absolute`,display:`none`},title:`Print Document`,src:`about:blank`})}var fl,pl,ml,hl,gl,_l;function vl(){return(vl=t((()=>{G(),ll(),J(),fl={},ul(),ml=()=>K(sl.id),hl=()=>q(sl.id),gl=e=>{let{provides:t}=hl();return{provides:t?.forDocument(e)??null}},_l=an(cl).addUtility(dl).build()})))()}var yl;function bl(){return(bl=t((()=>{yl=new URL(`../assets/pdfium-BJ2Yip8Q.wasm`,import.meta.url).href})))()}var xl=/* @__PURE__ */ r({PDFPreviewPanel:()=>Tl});function Sl({documentId:e,url:t,fileName:n}){let{provides:r,state:i}=Ei(e),{provides:a}=na(e),{provides:o,state:s}=Fa(e),{provides:l}=fc(e),{provides:d,isPanning:f}=jc(e),{provides:p}=gl(e),g=ce(),[y,b]=T(X.FitWidth),[x,ee]=T(``),[te,ne]=T(!1);return/* @__PURE__ */ D(ue,{children:[/* @__PURE__ */ D(`div`,{role:`toolbar`,"aria-label":`PDF 工具栏`,style:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:6,padding:8,borderBottom:`1px solid var(--color-border)`},children:[/* @__PURE__ */ E(u,{"aria-label":`缩略图`,theme:`borderless`,icon:/* @__PURE__ */ E(Se,{size:16}),onClick:()=>ne(!te)}),/* @__PURE__ */ E(u,{"aria-label":`上一页`,disabled:i.currentPage<=1,theme:`borderless`,icon:/* @__PURE__ */ E(m,{size:16}),onClick:()=>r?.scrollToPreviousPage()}),/* @__PURE__ */ D(`span`,{"aria-label":`PDF 页码`,children:[i.currentPage,` / `,i.totalPages]}),/* @__PURE__ */ E(u,{"aria-label":`下一页`,disabled:i.currentPage>=i.totalPages,theme:`borderless`,icon:/* @__PURE__ */ E(h,{size:16}),onClick:()=>r?.scrollToNextPage()}),/* @__PURE__ */ E(`span`,{id:g,className:`sr-only`,children:`PDF 缩放`}),/* @__PURE__ */ E(c,{"aria-labelledby":g,size:`small`,value:String(y),style:{width:110},optionList:Dl,onChange:e=>{let t=e===`1`?1:e;b(t),a?.requestZoom(t)}}),/* @__PURE__ */ E(u,{"aria-label":`旋转`,theme:`borderless`,icon:/* @__PURE__ */ E(_,{size:16}),onClick:()=>l?.rotateForward()}),/* @__PURE__ */ E(u,{"aria-label":`拖动页面`,"aria-pressed":f,theme:f?`solid`:`borderless`,icon:/* @__PURE__ */ E(pe,{size:16}),onClick:()=>d?.togglePan()}),/* @__PURE__ */ D(`form`,{"aria-label":`PDF 搜索`,style:{display:`flex`,gap:4},onSubmit:e=>{e.preventDefault(),x.trim()?(o?.startSearch(),o?.searchAllPages(x)):o?.stopSearch()},children:[/* @__PURE__ */ E(`input`,{"aria-label":`搜索 PDF 文本`,placeholder:`搜索 PDF 文本`,value:x,style:{width:120,color:`inherit`,background:`transparent`,border:`1px solid var(--color-border)`,borderRadius:`var(--semi-border-radius-small)`},onChange:e=>{ee(e.target.value),e.target.value||o?.stopSearch()}}),/* @__PURE__ */ E(u,{htmlType:`submit`,size:`small`,children:`搜索`})]}),s.active&&/* @__PURE__ */ D(ue,{children:[/* @__PURE__ */ D(`span`,{role:`status`,"aria-label":`搜索结果`,children:[s.total?s.activeResultIndex+1:0,` / `,s.total]}),/* @__PURE__ */ E(u,{"aria-label":`上个结果`,size:`small`,disabled:!s.total,onClick:()=>o?.previousResult(),children:`↑`}),/* @__PURE__ */ E(u,{"aria-label":`下个结果`,size:`small`,disabled:!s.total,onClick:()=>o?.nextResult(),children:`↓`})]}),/* @__PURE__ */ E(u,{"aria-label":`打印 PDF`,theme:`borderless`,icon:/* @__PURE__ */ E(Te,{size:16}),onClick:()=>p?.print()}),/* @__PURE__ */ E(`a`,{href:t,download:n,"aria-label":`下载 PDF`,children:/* @__PURE__ */ E(v,{size:16})})]}),/* @__PURE__ */ D(`div`,{style:{display:`flex`,flex:1,minHeight:0},children:[te&&/* @__PURE__ */ E($c,{documentId:e,"aria-label":`PDF 缩略图`,style:{width:140,flexShrink:0},children:t=>/* @__PURE__ */ D(`button`,{"aria-label":`跳到第 `+(t.pageIndex+1)+` 页`,style:{position:`absolute`,top:t.top,height:t.wrapperHeight,width:`100%`,border:0,background:`transparent`,color:`inherit`},onClick:()=>r?.scrollToPage({pageNumber:t.pageIndex+1}),children:[/* @__PURE__ */ E(el,{documentId:e,meta:t,style:{display:`block`,margin:`auto`}}),t.pageIndex+1]},t.pageIndex)}),/* @__PURE__ */ E(Xr,{documentId:e,style:{flex:1,minWidth:0,height:`100%`,background:`var(--color-content-bg)`},children:/* @__PURE__ */ E(Ci,{documentId:e,renderPage:({width:t,height:n,pageIndex:r})=>/* @__PURE__ */ D(Us,{documentId:e,pageIndex:r,style:{width:t,height:n,position:`relative`},children:[/* @__PURE__ */ E(Ni,{documentId:e,pageIndex:r}),/* @__PURE__ */ E(Na,{documentId:e,pageIndex:r}),/* @__PURE__ */ E(Wo,{documentId:e,pageIndex:r})]})})})]})]})}function Cl({documentId:e,message:t}){let{provides:n}=mr(),[r,i]=T(``);return/* @__PURE__ */ D(`form`,{role:`alert`,style:{padding:16},onSubmit:t=>{t.preventDefault(),n?.retryDocument(e,{password:r})},children:[/* @__PURE__ */ D(`p`,{children:[`PDF 加载失败:`,t]}),/* @__PURE__ */ E(`input`,{"aria-label":`PDF 密码`,placeholder:`加密 PDF 密码`,type:`password`,value:r,onChange:e=>i(e.target.value)}),/* @__PURE__ */ E(u,{htmlType:`submit`,children:`重试`})]})}function wl({file:e}){let t=new URL(yl,globalThis.location.href).href,{engine:n,error:r}=nr({wasmUrl:t}),[i,a]=T(null);S(()=>{let t=URL.createObjectURL(e);return a({file:e,url:t}),()=>URL.revokeObjectURL(t)},[e]);let o=i?.file===e?i.url:null,s=C(()=>[L(hr,{initialDocuments:o?[{url:o,name:e.name}]:[]}),L(qr),L(xi),L(ji),L(js),L($i,{defaultZoomLevel:X.FitWidth}),L(ja),L(Yo),L(lc),L(Nc),L(Zc),L(_l)],[o,e.name]);return r?/* @__PURE__ */ D(`div`,{role:`alert`,children:[`PDF 引擎加载失败:`,r.message]}):!n||!o?/* @__PURE__ */ E(`div`,{role:`status`,children:`正在加载 PDF…`}):/* @__PURE__ */ E(Zn,{engine:n,plugins:s,children:({activeDocumentId:t})=>t?/* @__PURE__ */ D(ue,{children:[/* @__PURE__ */ E(Mc,{}),/* @__PURE__ */ E(dr,{documentId:t,children:({isLoaded:n,isError:r,documentState:i})=>n?/* @__PURE__ */ E(Sl,{documentId:t,url:o,fileName:e.name}):r?/* @__PURE__ */ E(Cl,{documentId:t,message:i.error}):/* @__PURE__ */ E(`div`,{role:`status`,children:`正在加载 PDF…`})})]}):null},o)}function Tl({file:e,onClose:t,fullscreen:n,onToggleFullscreen:r,style:i,actions:a}){let{isDark:o}=b();return/* @__PURE__ */ D(`div`,{style:{width:`50%`,minWidth:320,display:`flex`,flexDirection:`column`,borderLeft:`1px solid var(--color-border)`,overflow:`hidden`,flexShrink:0,colorScheme:o?`dark`:`light`,...i},children:[/* @__PURE__ */ D(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,padding:`10px 16px`,borderBottom:`1px solid var(--color-border)`,flexShrink:0},children:[/* @__PURE__ */ E(re,{icon:`vscode-icons:file-type-pdf2`,size:15}),/* @__PURE__ */ E(El,{ellipsis:{showTooltip:!0},style:{flex:1,fontSize:13,fontWeight:500,minWidth:0},children:e.name}),a,r&&/* @__PURE__ */ E(u,{"aria-label":n?`退出全屏`:`全屏`,theme:`borderless`,size:`small`,icon:E(n?ye:ge,{size:14}),onClick:r}),/* @__PURE__ */ E(u,{"aria-label":`关闭预览`,theme:`borderless`,size:`small`,icon:/* @__PURE__ */ E(x,{size:14}),onClick:t})]}),/* @__PURE__ */ E(wl,{file:e})]})}var El,Dl;function Ol(){return(Ol=t((()=>{G(),J(),ir(),gr(),ti(),Di(),Fi(),ra(),Ia(),Xo(),Ws(),pc(),Pc(),rl(),vl(),bl(),s(),f(),p(),te(),me(),_e(),be(),Ce(),Ee(),g(),y(),ne(),ee(),{Text:El}=o,Dl=[{value:X.Automatic,label:`自动缩放`},{value:X.FitPage,label:`适合页高`},{value:X.FitWidth,label:`适合页宽`},{value:`1`,label:`实际大小`}]})))()}export{$e as A,et as B,j as C,ot as D,gt as E,Xe as F,Ye as G,je as H,Je as I,Ze as K,Qe as L,rt as M,I as N,A as O,qe as P,Pe as R,yt as S,_t as T,He as U,Ge as V,nt as W,P as _,st as a,Rt as b,Et as c,Dt as d,wt as f,It as g,xt as h,Gt as i,Ke as j,We as k,bt as l,Tt as m,Ol as n,Nt as o,Ct as p,St as r,kt as s,xl as t,Ot as u,Ft as v,F as w,At as x,Pt as y,Fe as z};
|
|
38
|
-
//# sourceMappingURL=PDFPreviewPanel-
|
|
38
|
+
//# sourceMappingURL=PDFPreviewPanel-CMmnWBKW.js.map
|