jit-pdf 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -61,8 +61,8 @@ Latest:
61
61
  Pinned version:
62
62
 
63
63
  ```html
64
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jit-pdf@0.1.3/dist/style.css" />
65
- <script src="https://cdn.jsdelivr.net/npm/jit-pdf@0.1.3/dist/jit-pdf.umd.js"></script>
64
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jit-pdf@0.1.4/dist/style.css" />
65
+ <script src="https://cdn.jsdelivr.net/npm/jit-pdf@0.1.4/dist/jit-pdf.umd.js"></script>
66
66
  ```
67
67
 
68
68
  ### UNPKG
@@ -77,8 +77,8 @@ Latest:
77
77
  Pinned version:
78
78
 
79
79
  ```html
80
- <link rel="stylesheet" href="https://unpkg.com/jit-pdf@0.1.3/dist/style.css" />
81
- <script src="https://unpkg.com/jit-pdf@0.1.3/dist/jit-pdf.umd.js"></script>
80
+ <link rel="stylesheet" href="https://unpkg.com/jit-pdf@0.1.4/dist/style.css" />
81
+ <script src="https://unpkg.com/jit-pdf@0.1.4/dist/jit-pdf.umd.js"></script>
82
82
  ```
83
83
 
84
84
  Global browser variable:
package/dist/browser.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),i=require("./http-service-R05ATCDe.cjs"),b=".jit-copyright-badge",v="data-jit-pdf-copyright-notice",o="data-jit-pdf-copyright-target",w="https://jitword.com/jit-pdf.html";function E(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`jit-pdf-${crypto.randomUUID()}`:`jit-pdf-${Date.now()}-${Math.random().toString(16).slice(2)}`}function I(t){const r=t.getAttribute(o);if(r)return r;const e=E();return t.setAttribute(o,e),e}function g(t){return document.querySelector(`.jit-copyright-integrity-notice[${o}="${t}"]`)}function y(t){var r;(r=g(t))==null||r.remove()}function S(t){const r=g(t);if(r)return r;const e=document.createElement("a");return e.className="jit-copyright-integrity-notice",e.href=w,e.target="_blank",e.rel="noopener noreferrer",e.setAttribute(v,"true"),e.setAttribute(o,t),e.setAttribute("aria-label","Jit PDF 版权提示,点击查看"),e.innerHTML=`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),i=require("./http-service-D7BocPD1.cjs"),b=".jit-copyright-badge",v="data-jit-pdf-copyright-notice",o="data-jit-pdf-copyright-target",w="https://jitword.com/jit-pdf.html";function E(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`jit-pdf-${crypto.randomUUID()}`:`jit-pdf-${Date.now()}-${Math.random().toString(16).slice(2)}`}function I(t){const r=t.getAttribute(o);if(r)return r;const e=E();return t.setAttribute(o,e),e}function g(t){return document.querySelector(`.jit-copyright-integrity-notice[${o}="${t}"]`)}function y(t){var r;(r=g(t))==null||r.remove()}function S(t){const r=g(t);if(r)return r;const e=document.createElement("a");return e.className="jit-copyright-integrity-notice",e.href=w,e.target="_blank",e.rel="noopener noreferrer",e.setAttribute(v,"true"),e.setAttribute(o,t),e.setAttribute("aria-label","Jit PDF 版权提示,点击查看"),e.innerHTML=`
2
2
  <span class="jit-copyright-integrity-notice__mark">!</span>
3
3
  <span class="jit-copyright-integrity-notice__content">
4
4
  <strong>请保留 Jit PDF 版权信息</strong>
package/dist/browser.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createApp as m, h as g } from "vue";
2
- import { a as h, c as w, _ as b } from "./http-service-DVJ0n9L_.js";
3
- import { u as U } from "./http-service-DVJ0n9L_.js";
2
+ import { a as h, c as w, _ as b } from "./http-service-gGWjQiuE.js";
3
+ import { u as U } from "./http-service-gGWjQiuE.js";
4
4
  const v = ".jit-copyright-badge", I = "data-jit-pdf-copyright-notice", i = "data-jit-pdf-copyright-target", E = "https://jitword.com/jit-pdf.html";
5
5
  function T() {
6
6
  return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? `jit-pdf-${crypto.randomUUID()}` : `jit-pdf-${Date.now()}-${Math.random().toString(16).slice(2)}`;
@@ -17,5 +17,6 @@ declare const _default: import("vue").DefineComponent<JitPdfEditorProps, {}, {},
17
17
  readonly: boolean;
18
18
  locale: "zh-CN";
19
19
  theme: "blue-enterprise";
20
+ showToolbar: boolean;
20
21
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
22
  export default _default;
@@ -18841,4 +18841,4 @@ self.onmessage = async (event) => {
18841
18841
  self.postMessage(response);
18842
18842
  }
18843
18843
  };
18844
- `],{type:"application/javascript"})),d=new FF(r??2,c,o);return new lF(l,{imageConverter:dF(d),logger:o})}function yF(n="latest"){return{jp:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-jp@${n}/fonts`,kr:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-kr@${n}/fonts`,sc:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-sc@${n}/fonts`,tc:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-tc@${n}/fonts`,arabic:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-arabic@${n}/fonts`,hebrew:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-hebrew@${n}/fonts`,latin:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-latin@${n}/fonts`}}function St(n,e){return n.map(t=>({url:`${e}/${t.file}`,weight:t.weight,italic:t.italic}))}function vF(n){return{fonts:{[bt.SHIFTJIS]:St(uF,n.jp),[bt.HANGEUL]:St(pF,n.kr),[bt.GB2312]:St(mF,n.sc),[bt.CHINESEBIG5]:St(gF,n.tc),[bt.ARABIC]:St(hF,n.arabic),[bt.HEBREW]:St(fF,n.hebrew),[bt.CYRILLIC]:St(zo,n.latin),[bt.GREEK]:St(zo,n.latin),[bt.VIETNAMESE]:St(zo,n.latin)}}}const _F=yF("latest"),EF=vF(_F),DF="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.10.1/dist/pdfium.wasm",Gc=()=>je(Oc.id);function Za(n){const[e,t]=[n[0],n[1]],o=t.clientX-e.clientX,r=t.clientY-e.clientY;return Math.hypot(o,r)}function SF(n){const[e,t]=[n[0],n[1]];return{x:(e.clientX+t.clientX)/2,y:(e.clientY+t.clientY)/2}}function AF({element:n,container:e,documentId:t,zoomProvides:o,viewportGap:r=0,options:i={}}){const{enablePinch:s=!0,enableWheel:l=!0}=i;if(typeof window>"u")return()=>{};const c=o.forDocument(t),d=()=>c.getState();let u=0,p=1,g=!1,m=0,h=null,f=1,F=0,b=0,y=0,_=0,D=0,S=0,N=0,M=0,R=0,G=0,B=0,V=0,z=0;const $=(x,W,q)=>Math.min(Math.max(x,W),q),Y=()=>{const x=e.clientWidth-2*r,W=n.offsetWidth,q=W<x?(x-W)/2:0;n.style.marginLeft=`${q}px`},K=x=>{const W=F*x,q=b*x;let J=R*(1-x);const Ve=M-W/2-y,Rt=G-z*x-y,me=Math.max(0,W-N),st=N*.3,Le=Math.min(1,me/st);let Ne=Ve+(Rt-Ve)*Le;const Je=S-V*2;if(q>Je){const Me=_+J,De=V,ut=S-V-q;J=$(Me,ut,De)-_}const et=D-V*2;if(W>et){const Me=y+Ne,De=V,ut=D-V-W;Ne=$(Me,ut,De)-y}return{tx:Ne,ty:J,blend:Le,finalWidth:W}},ne=x=>{p=x;const{tx:W,ty:q}=K(x);n.style.transformOrigin="0 0",n.style.transform=`translate(${W}px, ${q}px) scale(${x})`},ve=()=>{n.style.transform="none",n.style.transformOrigin="0 0",p=1},Z=()=>{const{tx:x,finalWidth:W}=K(p),q=(p-1)*u;let J,it=B;if(W<=N)J=M;else{const Ve=1-p;J=Math.abs(Ve)>.001?y+x/Ve:G}c.requestZoomBy(q,{vx:J,vy:it}),ve(),u=0},Fe=(x,W)=>{const q=e.getBoundingClientRect(),J=n.getBoundingClientRect();V=r,F=J.width,b=J.height,y=J.left-q.left,_=J.top-q.top,D=q.width,S=q.height,N=e.clientWidth,M=e.clientLeft+N/2;const it=x-J.left;R=W-J.top,G=x-q.left,B=W-q.top,F<N?z=G*F/N:z=it},Re=x=>{if(x.touches.length!==2)return;g=!0,u=d().currentZoomLevel,m=Za(x.touches);const W=SF(x.touches);Fe(W.x,W.y),x.preventDefault()},be=x=>{if(!g||x.touches.length!==2)return;const q=Za(x.touches)/m;ne(q),x.preventDefault()},A=x=>{g&&(x.touches.length>=2||(g=!1,Z()))},O=x=>{if(!x.ctrlKey&&!x.metaKey)return;x.preventDefault(),h===null?(u=d().currentZoomLevel,f=1,Fe(x.clientX,x.clientY)):clearTimeout(h);const W=1-x.deltaY*.01;f*=W,f=Math.max(.1,Math.min(10,f)),ne(f),h=setTimeout(()=>{h=null,Z(),f=1},150)},w=c.onStateChange(()=>Y()),j=new ResizeObserver(()=>Y());return j.observe(n),j.observe(e),Y(),s&&(e.addEventListener("touchstart",Re,{passive:!1}),e.addEventListener("touchmove",be,{passive:!1}),e.addEventListener("touchend",A),e.addEventListener("touchcancel",A)),l&&e.addEventListener("wheel",O,{passive:!1}),()=>{s&&(e.removeEventListener("touchstart",Re),e.removeEventListener("touchmove",be),e.removeEventListener("touchend",A),e.removeEventListener("touchcancel",A)),l&&e.removeEventListener("wheel",O),h&&clearTimeout(h),w(),j.disconnect(),ve(),n.style.marginLeft=""}}function xF(n,e={}){const{provides:t}=je("viewport"),{provides:o}=Gc(),r=a.inject("viewport-element"),i=a.ref(null);let s;return a.watch([i,t,o,()=>a.toValue(n),()=>a.toValue(e.enablePinch??!0),()=>a.toValue(e.enableWheel??!0)],([l,c,d,u,p,g])=>{s&&(s(),s=void 0);const m=r==null?void 0:r.value;!l||!m||!d||(s=AF({element:l,container:m,documentId:u,zoomProvides:d,viewportGap:(c==null?void 0:c.getViewportGap())||0,options:{enablePinch:p,enableWheel:g}}))},{immediate:!0}),{elementRef:i}}const CF=a.defineComponent({__name:"zoom-gesture-wrapper",props:{documentId:{},enablePinch:{type:Boolean,default:!0},enableWheel:{type:Boolean,default:!0}},setup(n){const e=n,{elementRef:t}=xF(()=>e.documentId,{enablePinch:a.toRef(()=>e.enablePinch),enableWheel:a.toRef(()=>e.enableWheel)});return(o,r)=>(a.openBlock(),a.createElementBlock("div",a.mergeProps({ref_key:"elementRef",ref:t,style:{display:"inline-block",overflow:"visible",boxSizing:"border-box"}},o.$attrs),[a.renderSlot(o.$slots,"default")],16))}}),Lc=()=>kt(Ir.id),MF=()=>je(Ir.id),TF=a.defineComponent({__name:"thumbnails-pane",props:{documentId:{}},setup(n){const e=n,{plugin:t}=Lc(),o=a.ref(null),r=a.ref({window:null,docId:null}),i=a.ref(null);a.watch(r,l=>{i.value=l.docId===e.documentId?l.window:null},{deep:!0}),a.watch([()=>t.value,()=>e.documentId],([l,c],d,u)=>{if(!l){r.value={window:null,docId:null};return}const p=l.provides().forDocument(c),g=p.getWindow();g&&(r.value={window:g,docId:c});const m=p.onWindow(h=>{r.value={window:h,docId:c}});u(()=>{m(),r.value={window:null,docId:null}})},{immediate:!0}),a.watch([o,()=>t.value,()=>e.documentId],([l,c,d],u,p)=>{if(!l||!c)return;const g=c.provides().forDocument(d),m=()=>g.updateWindow(l.scrollTop,l.clientHeight);l.addEventListener("scroll",m);const h=new ResizeObserver(()=>{g.updateWindow(l.scrollTop,l.clientHeight)});h.observe(l),g.updateWindow(l.scrollTop,l.clientHeight),p(()=>{l.removeEventListener("scroll",m),h.disconnect()})},{immediate:!0}),a.watch([o,()=>t.value,()=>e.documentId,i],([l,c,d])=>{if(!l||!c)return;c.provides().forDocument(d).updateWindow(l.scrollTop,l.clientHeight)}),a.watch([o,()=>t.value,()=>e.documentId,()=>!!i.value],([l,c,d,u],p,g)=>{if(!l||!c||!u)return;const h=c.provides().forDocument(d).onScrollTo(({top:f,behavior:F})=>{a.nextTick(()=>{l.scrollTo({top:f,behavior:F})})});g(h)},{immediate:!0});const s=a.ref(0);return a.watch(()=>t.value,l=>{s.value=(l==null?void 0:l.cfg.paddingY)??0},{immediate:!0}),(l,c)=>{var d,u;return a.openBlock(),a.createElementBlock("div",a.mergeProps({ref_key:"viewportRef",ref:o,style:{overflowY:"auto",position:"relative",paddingTop:`${s.value}px`,paddingBottom:`${s.value}px`,height:"100%"}},l.$attrs),[a.createElementVNode("div",{style:a.normalizeStyle({height:`${((d=i.value)==null?void 0:d.totalHeight)??0}px`,position:"relative"})},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(((u=i.value)==null?void 0:u.items)??[],p=>a.renderSlot(l.$slots,"default",{key:p.pageIndex,meta:p})),128))],4)],16)}}}),kF=["src"],RF=a.defineComponent({__name:"thumbnail-img",props:{documentId:{},meta:{}},setup(n){const e=n,{provides:t}=MF(),{plugin:o}=Lc(),r=a.ref(null);let i=null;const s=a.ref(0);a.watch([()=>o.value,()=>e.documentId,()=>e.meta.pageIndex],([d,u,p],g,m)=>{if(!d)return;const f=d.provides().forDocument(u).onRefreshPages(F=>{F.includes(p)&&s.value++});m(f)},{immediate:!0});function l(){i&&(URL.revokeObjectURL(i),i=null)}let c=null;return a.watch([()=>t.value,()=>e.documentId,()=>e.meta.pageIndex,s],([d,u,p],g,m)=>{if(c&&(c(),c=null),!d){r.value=null;return}const f=d.forDocument(u).renderThumb(p,window.devicePixelRatio);c=()=>f.abort({code:X.Cancelled,message:"canceled render task"}),f.wait(F=>{l();const b=URL.createObjectURL(F);i=b,r.value=b,c=null},Ke),m(()=>{c&&(c(),c=null),l()})},{immediate:!0}),(d,u)=>r.value?(a.openBlock(),a.createElementBlock("img",a.mergeProps({key:0,src:r.value},d.$attrs,{onLoad:l}),null,16,kF)):a.createCommentVNode("",!0)}}),Nc=()=>je(Zl.id),wF=a.defineComponent({__name:"search-layer",props:{documentId:{},pageIndex:{},scale:{},highlightColor:{default:"#FFFF00"},activeHighlightColor:{default:"#FFBF00"}},setup(n){const e=n,{provides:t}=Nc(),o=vt(()=>e.documentId),r=a.ref(null),i=a.computed(()=>{var d;return((d=t.value)==null?void 0:d.forDocument(e.documentId))??null}),s=a.computed(()=>{var d;return e.scale!==void 0?e.scale:((d=o.value)==null?void 0:d.scale)??1});a.watch(i,(d,u,p)=>{if(!d){r.value=null;return}const g=d.getState();r.value={results:g.results,activeResultIndex:g.activeResultIndex,showAllResults:g.showAllResults,active:g.active};const m=d.onSearchResultStateChange(h=>{r.value=h});p(m)},{immediate:!0});const l=a.computed(()=>r.value?r.value.results.map((d,u)=>({result:d,originalIndex:u})).filter(({result:d})=>d.pageIndex===e.pageIndex):[]),c=a.computed(()=>r.value?l.value.filter(({originalIndex:d})=>r.value.showAllResults||d===r.value.activeResultIndex):[]);return(d,u)=>r.value&&r.value.active?(a.openBlock(),a.createElementBlock("div",a.mergeProps({key:0,style:{pointerEvents:"none"}},d.$attrs),[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(c.value,({result:p,originalIndex:g},m)=>(a.openBlock(),a.createElementBlock(a.Fragment,{key:`result-${m}`},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(p.rects,(h,f)=>(a.openBlock(),a.createElementBlock("div",{key:`rect-${m}-${f}`,style:a.normalizeStyle({position:"absolute",top:`${h.origin.y*s.value}px`,left:`${h.origin.x*s.value}px`,width:`${h.size.width*s.value}px`,height:`${h.size.height*s.value}px`,backgroundColor:g===r.value.activeResultIndex?n.activeHighlightColor:n.highlightColor,mixBlendMode:"multiply",transform:"scale(1.02)",transformOrigin:"center",transition:"opacity .3s ease-in-out",opacity:1})},null,4))),128))],64))),128))],16)):a.createCommentVNode("",!0)}}),OF=()=>kt(Or.id),IF=()=>je(Or.id),GF=a.defineComponent({__name:"scroller",props:{documentId:{}},setup(n){const e=n,{plugin:t}=OF(),o=a.ref({layout:null,docId:null});a.watch([t,()=>e.documentId],([i,s],l,c)=>{if(!i||!s){o.value={layout:null,docId:null};return}const d=i.onScrollerData(s,u=>{o.value={layout:u,docId:s}});c(()=>{d(),o.value={layout:null,docId:null},i.clearLayoutReady(s)})},{immediate:!0});const r=a.computed(()=>o.value.docId===e.documentId?o.value.layout:null);return a.watch([t,()=>e.documentId,r],([i,s,l])=>{!i||!s||!l||i.setLayoutReady(s)},{immediate:!0}),(i,s)=>r.value?(a.openBlock(),a.createElementBlock("div",a.mergeProps({key:0,style:{width:`${r.value.totalWidth}px`,height:`${r.value.totalHeight}px`,position:"relative",boxSizing:"border-box",margin:"0 auto",...r.value.strategy===a.unref(jt).Horizontal&&{display:"flex",flexDirection:"row"}}},i.$attrs),[a.createElementVNode("div",{style:a.normalizeStyle(r.value.strategy===a.unref(jt).Horizontal?{width:`${r.value.startSpacing}px`,height:"100%",flexShrink:0}:{height:`${r.value.startSpacing}px`,width:"100%"})},null,4),a.createElementVNode("div",{style:a.normalizeStyle({gap:`${r.value.pageGap}px`,display:"flex",alignItems:"center",position:"relative",boxSizing:"border-box",...r.value.strategy===a.unref(jt).Horizontal?{flexDirection:"row",minHeight:"100%"}:{flexDirection:"column",minWidth:"fit-content"}})},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(r.value.items,l=>(a.openBlock(),a.createElementBlock("div",{key:l.pageNumbers[0],style:a.normalizeStyle({display:"flex",justifyContent:"center",gap:`${r.value.pageGap}px`})},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(l.pageLayouts,c=>(a.openBlock(),a.createElementBlock("div",{key:c.pageNumber,style:a.normalizeStyle({width:`${c.rotatedWidth}px`,height:`${c.rotatedHeight}px`,position:"relative",zIndex:c.elevated?1:void 0})},[a.renderSlot(i.$slots,"default",{page:c})],4))),128))],4))),128))],4),a.createElementVNode("div",{style:a.normalizeStyle(r.value.strategy===a.unref(jt).Horizontal?{width:`${r.value.endSpacing}px`,height:"100%",flexShrink:0}:{height:`${r.value.endSpacing}px`,width:"100%"})},null,4)],16)):a.createCommentVNode("",!0)}}),LF=()=>je(il.id),NF=()=>kt(Gr.id),$c=()=>je(Gr.id),$F=n=>{const{provides:e}=$c(),t=a.ref(!1);return a.watch([e,()=>a.toValue(n)],([o,r],i,s)=>{if(!o){t.value=!1;return}t.value=o.isGated(r);const l=o.onGateChange(c=>{c.documentId===r&&(t.value=c.isGated)});s(l)},{immediate:!0}),t};function BF(n){const{plugin:e}=NF(),t=a.ref(null);let o=null;const r=i=>{const s=e.value,l=t.value;if(!l||!s)return;try{s.registerViewport(i)}catch(p){console.error(`Failed to register viewport for document ${i}:`,p);return}const c=()=>{s.setViewportScrollMetrics(i,{scrollTop:l.scrollTop,scrollLeft:l.scrollLeft})};l.addEventListener("scroll",c),new ResizeObserver(()=>{s.setViewportResizeMetrics(i,{width:l.offsetWidth,height:l.offsetHeight,clientWidth:l.clientWidth,clientHeight:l.clientHeight,scrollTop:l.scrollTop,scrollLeft:l.scrollLeft,scrollWidth:l.scrollWidth,scrollHeight:l.scrollHeight,clientLeft:l.clientLeft,clientTop:l.clientTop})}).observe(l);const u=s.onScrollRequest(i,({x:p,y:g,behavior:m="auto"})=>{requestAnimationFrame(()=>{l.scrollTo({left:p,top:g,behavior:m})})});return()=>{s.unregisterViewport(i),l.removeEventListener("scroll",c),u()}};return a.watch([e,t,()=>a.toValue(n)],([,,i])=>{o&&(o(),o=null),o=r(i)||null},{immediate:!0}),a.onBeforeUnmount(()=>{o&&(o(),o=null)}),t}const jF=a.defineComponent({__name:"viewport",props:{documentId:{}},setup(n){const e=n,t=a.useAttrs(),{provides:o}=$c(),r=a.ref(0);a.watch(o,l=>{l&&(r.value=l.getViewportGap())},{immediate:!0});const i=$F(()=>e.documentId),s=BF(()=>e.documentId);return a.provide("viewport-element",s),(l,c)=>(a.openBlock(),a.createElementBlock("div",a.mergeProps({ref_key:"viewportRef",ref:s},a.unref(t),{style:{padding:`${r.value}px`,width:"100%",height:"100%",overflow:"auto"}}),[a.unref(i)?a.createCommentVNode("",!0):a.renderSlot(l.$slots,"default",{key:0})],16))}}),Bc=()=>je(pc.id),UF=["src"],zF=a.defineComponent({__name:"tile-img",props:{documentId:{},pageIndex:{},tile:{},scale:{},dpr:{default:()=>typeof window<"u"?window.devicePixelRatio:1}},setup(n){const e=n,{provides:t}=Bc(),o=a.ref(),r=a.computed(()=>e.scale/e.tile.srcScale);let i,s=null;return a.watch([()=>e.tile.id,()=>e.documentId,t],([l,c,d],[u,p])=>{if(!d)return;const g=d.forDocument(c);p!==void 0&&p!==c&&(o.value&&(URL.revokeObjectURL(o.value),o.value=void 0),s&&(s.abort({code:X.Cancelled,message:"switching documents"}),s=null),i=void 0),!(i===l&&p===c)&&(s&&(s.abort({code:X.Cancelled,message:"switching tiles"}),s=null),o.value&&(URL.revokeObjectURL(o.value),o.value=void 0),i=l,s=g.renderTile({pageIndex:e.pageIndex,tile:a.toRaw(e.tile),dpr:e.dpr}),s.wait(m=>{o.value=URL.createObjectURL(m),s=null},Ke))},{immediate:!0}),a.onBeforeUnmount(()=>{s&&s.abort({code:X.Cancelled,message:"unmounting"}),o.value&&URL.revokeObjectURL(o.value)}),(l,c)=>o.value?(a.openBlock(),a.createElementBlock("img",{key:0,src:o.value,style:a.normalizeStyle({position:"absolute",left:`${n.tile.screenRect.origin.x*r.value}px`,top:`${n.tile.screenRect.origin.y*r.value}px`,width:`${n.tile.screenRect.size.width*r.value}px`,height:`${n.tile.screenRect.size.height*r.value}px`,display:"block"})},null,12,UF)):a.createCommentVNode("",!0)}}),WF=a.defineComponent({__name:"tiling-layer",props:{documentId:{},pageIndex:{},scale:{}},setup(n){const e=n,{provides:t}=Bc(),o=vt(()=>e.documentId),r=a.ref([]),i=a.computed(()=>{var s;return e.scale!==void 0?e.scale:((s=o.value)==null?void 0:s.scale)??1});return a.watch([t,()=>e.documentId,()=>e.pageIndex],([s,l,c],d,u)=>{if(!s){r.value=[];return}const p=s.onTileRendering(g=>{g.documentId===l&&(r.value=g.tiles[c]??[])});u(p)},{immediate:!0}),(s,l)=>(a.openBlock(),a.createElementBlock("div",a.normalizeProps(a.guardReactiveProps(s.$attrs)),[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(r.value,c=>(a.openBlock(),a.createBlock(zF,{key:c.id,documentId:n.documentId,pageIndex:n.pageIndex,tile:c,scale:i.value},null,8,["documentId","pageIndex","tile","scale"]))),128))],16))}}),HF=()=>je(Tl.id),VF=["src"],YF=a.defineComponent({__name:"render-layer",props:{documentId:{},pageIndex:{},scale:{},dpr:{}},setup(n){const e=n,{provides:t}=HF(),o=vt(()=>e.documentId),r=a.ref(null);let i=null,s=!1;const l=a.computed(()=>o.value&&o.value.pageRefreshVersions[e.pageIndex]||0),c=a.computed(()=>{var p;return e.scale!==void 0?e.scale:((p=o.value)==null?void 0:p.scale)??1}),d=a.computed(()=>e.dpr!==void 0?e.dpr:window.devicePixelRatio);a.watch([()=>e.documentId,()=>e.pageIndex,c,d,t,l],([p,g,m,h,f],[F],b)=>{if(!f){r.value=null;return}F!==void 0&&F!==p&&(r.value=null,i&&s&&(URL.revokeObjectURL(i),i=null,s=!1)),i&&s&&F===p&&(URL.revokeObjectURL(i),i=null,s=!1);const y=f.forDocument(p).renderPage({pageIndex:g,options:{scaleFactor:m,dpr:h}});y.wait(_=>{const D=URL.createObjectURL(_);i=D,r.value=D,s=!1},Ke),b(()=>{i?s&&(URL.revokeObjectURL(i),i=null,s=!1):y.abort({code:X.Cancelled,message:"canceled render task"})})},{immediate:!0});function u(){s=!0}return(p,g)=>r.value?(a.openBlock(),a.createElementBlock("img",a.mergeProps({key:0,src:r.value,style:{width:"100%",height:"100%"},onLoad:u},p.$attrs),null,16,VF)):a.createCommentVNode("",!0)}}),qF={annotation:!0,ink:!0,freeText:!0,redaction:!0,export:!0,thumbnail:!0,search:!0};function jc(n){const e=a.ref("正在初始化 PDF 编辑器"),t=a.ref(!1),o=a.ref(!1),r=a.computed(()=>{var s,l,c,d,u;return{...qF,...n.capabilities??{},annotation:n.readonly?!1:((s=n.capabilities)==null?void 0:s.annotation)??!0,ink:n.readonly?!1:((l=n.capabilities)==null?void 0:l.ink)??!0,freeText:n.readonly?!1:((c=n.capabilities)==null?void 0:c.freeText)??!0,redaction:n.readonly?!1:((d=n.capabilities)==null?void 0:d.redaction)??!0,export:((u=n.capabilities)==null?void 0:u.export)??!0}}),i=a.computed(()=>n.source.type!=="url"&&r.value.export);return{capabilities:r,canSaveToService:i,statusMessage:e,leftDrawerOpen:t,rightDrawerOpen:o}}function or(n,e){if(n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="bigint")return n.toString();if(!(typeof n>"u"||typeof n=="function"||typeof n=="symbol")){if(n instanceof Date)return n.toISOString();if(n instanceof Blob||n instanceof ArrayBuffer||ArrayBuffer.isView(n))return n;if(Array.isArray(n))return n.map(t=>or(t,e)).filter(t=>t!==void 0);if(typeof n=="object"){const t=n;if(e.has(t))return e.get(t);const o={};e.set(t,o);for(const[r,i]of Object.entries(t)){const s=or(i,e);s!==void 0&&(o[r]=s)}return o}}}function Uc(n){return n.map(e=>or(e,new WeakMap)).filter(e=>!!e)}const XF={class:"jit-pdf-editor"},KF={class:"jit-ribbon"},ZF={class:"jit-ribbon__topbar"},QF={class:"jit-ribbon__document"},JF={class:"jit-toolbar__title"},eb={class:"jit-ribbon__meta"},tb={class:"jit-ribbon__badge"},nb={class:"jit-ribbon__page"},ob={class:"jit-ribbon__actions"},rb=["disabled"],ab=["disabled"],ib=["data-tooltip"],sb=["data-tooltip"],lb=["data-tooltip"],cb={class:"jit-ribbon__tabs",role:"tablist","aria-label":"编辑器功能区"},db=["data-tooltip","aria-selected","onClick"],ub={class:"jit-ribbon__panels"},pb={key:0,class:"jit-ribbon__bar"},mb={class:"jit-ribbon__section jit-ribbon__section--view"},gb={class:"jit-ribbon__section-body"},hb={class:"jit-zoom-chip"},fb={class:"jit-ribbon__section jit-ribbon__section--history"},Pb={class:"jit-ribbon__section-body"},Fb=["disabled"],bb=["disabled"],yb={class:"jit-ribbon__section jit-ribbon__section--save"},vb={class:"jit-ribbon__section-body jit-ribbon__section-body--save"},_b=["disabled"],Eb=["disabled"],Db={key:1,class:"jit-ribbon__bar jit-ribbon__bar--annotate"},Sb={class:"jit-ribbon__section jit-ribbon__section--tools"},Ab={class:"jit-ribbon__section-body jit-ribbon__section-body--tools"},xb=["aria-label","disabled","onClick"],Cb={key:0,viewBox:"0 0 24 24","aria-hidden":"true"},Mb={key:1,viewBox:"0 0 24 24","aria-hidden":"true"},Tb={key:2,viewBox:"0 0 24 24","aria-hidden":"true"},kb={key:3,viewBox:"0 0 24 24","aria-hidden":"true"},Rb={key:4,viewBox:"0 0 24 24","aria-hidden":"true"},wb={key:5,viewBox:"0 0 24 24","aria-hidden":"true"},Ob={class:"jit-ribbon__section jit-ribbon__section--style"},Ib={class:"jit-style-panel"},Gb={class:"jit-style-row"},Lb={class:"jit-color-palette"},Nb=["title","disabled","onClick"],$b={key:0,class:"jit-style-row"},Bb={class:"jit-style-control"},jb={key:1,class:"jit-style-row"},Ub={class:"jit-style-control"},zb={key:2,class:"jit-style-row"},Wb={class:"jit-style-control"},Hb={class:"jit-ribbon__section jit-ribbon__section--hint"},Vb={class:"jit-ribbon__hint"},Yb={class:"jit-ribbon__metric"},qb={class:"jit-ribbon__hint-chip"},Xb=["disabled"],Kb={key:2,class:"jit-ribbon__bar jit-ribbon__bar--view"},Zb={class:"jit-ribbon__section jit-ribbon__section--view"},Qb={class:"jit-ribbon__section-body"},Jb={class:"jit-zoom-chip"},ey={class:"jit-ribbon__section jit-ribbon__section--layout"},ty={class:"jit-ribbon__section-body"},ny=["aria-label"],oy=["aria-label"],ry={class:"jit-ribbon__section jit-ribbon__section--summary"},ay={class:"jit-ribbon__summary"},iy={class:"jit-ribbon__metric"},sy={class:"jit-ribbon__metric"},ly={key:3,class:"jit-ribbon__bar jit-ribbon__bar--review"},cy={class:"jit-ribbon__section jit-ribbon__section--search-wide"},dy={class:"jit-ribbon__section-body jit-ribbon__section-body--search"},uy={class:"jit-search-box"},py=["onKeydown"],my=["disabled"],gy=["disabled"],hy=["disabled"],fy={class:"jit-ribbon__section jit-ribbon__section--save"},Py={class:"jit-ribbon__section-body jit-ribbon__section-body--save"},Fy=["disabled"],by=["disabled"],yy={class:"jit-ribbon__section jit-ribbon__section--summary"},vy={class:"jit-ribbon__summary"},_y={class:"jit-ribbon__metric"},Ey={class:"jit-ribbon__metric"},Dy={class:"jit-sidebar__header"},Sy={key:0,class:"jit-sidebar__headline"},Ay=["aria-label"],xy={key:0,viewBox:"0 0 24 24","aria-hidden":"true"},Cy={key:1,viewBox:"0 0 24 24","aria-hidden":"true"},My=["onClick"],Ty={class:"jit-thumbnail__paper"},ky={class:"jit-thumbnail__meta"},Ry={class:"jit-thumbnail__label"},wy={key:0,class:"jit-thumbnail__current"},Oy={key:1,class:"jit-sidebar__empty"},Iy={class:"jit-canvas"},Gy={class:"jit-right-rail"},Ly=["aria-label"],Ny=["aria-label"],$y={class:"jit-inspector__header"},By={class:"jit-inspector__body"},jy={key:0,class:"jit-note-editor"},Uy={class:"jit-note-editor__header"},zy={class:"jit-note-editor__title-row"},Wy=["disabled"],Hy={class:"jit-note-editor__field"},Vy={class:"jit-note-editor__footer"},Yy={class:"jit-meta"},qy={class:"jit-panel-note"},Xy={key:0},Ky={key:1},Zy={key:2},Qy={class:"jit-annotation-panel__header"},Jy={class:"jit-annotation-panel__header-actions"},ev=["disabled"],tv=["disabled"],nv={class:"jit-annotation-panel__body"},ov={class:"jit-annotation-toolbar"},rv={class:"jit-annotation-toolbar__search"},av={class:"jit-annotation-toolbar__filter"},iv=["value"],sv={key:0,class:"jit-annotation-list"},lv={class:"jit-annotation-group__header"},cv=["aria-label","onClick"],dv={key:0},uv=["onClick"],pv={class:"jit-annotation-item__meta"},mv={class:"jit-annotation-item__chips"},gv={key:0,class:"jit-annotation-chip"},hv={key:1,class:"jit-annotation-chip"},fv={key:2,class:"jit-annotation-chip is-active"},Pv={key:3,class:"jit-annotation-chip is-warning"},Fv=["aria-label","onClick"],bv={key:1,class:"jit-annotation-panel__empty"},yv={key:0,class:"jit-state"},vv={key:1,class:"jit-state jit-state--error"},_v={key:3,class:"jit-state"},Ev="https://jitword.com/jit-pdf.html",Dv=a.defineComponent({__name:"JitPdfEditorInner",props:{source:{},locale:{},theme:{},capabilities:{},service:{},readonly:{type:Boolean},activeDocumentId:{},pluginsReady:{type:Boolean},isInitializing:{type:Boolean}},emits:["ready","dirty-change","save-start","save-success","save-error","load-error"],setup(n,{emit:e}){const t=n,o=e,{capabilities:r,canSaveToService:i,leftDrawerOpen:s,rightDrawerOpen:l,statusMessage:c}=jc(t),d=a.ref(""),u=a.ref(""),p=a.ref("浏览"),g=a.ref(!1),m=a.ref("home"),h=a.computed(()=>t.source.type==="url"?`url:${t.source.url}`:`${t.source.type}:${t.source.fileId}`),f=a.computed(()=>t.source.type==="url"?null:t.source.fileId),{provides:F}=Zs(),{provides:b}=Tt(),{provides:y}=LF(),_=yr(()=>t.activeDocumentId??"");function D(v){const{provides:P}=Gc(),T=a.ref(to);return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=to;return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=to;return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function S(v){const{provides:P}=Nc(),T=a.ref(xn);return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=xn;return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=xn;return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function N(v){const{provides:P}=Tt(),T=a.ref(Qn());return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=Qn();return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=Qn();return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function M(v){const{provides:P}=Dl(),T=a.ref(eo);return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=eo;return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=eo;return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function R(v){const{provides:P}=IF(),T=a.ref({currentPage:1,totalPages:1});return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value={currentPage:1,totalPages:1};return}const ie=U.forDocument(C);T.value={currentPage:ie.getCurrentPage(),totalPages:ie.getTotalPages()};const _t=U.onPageChange(ct=>{ct.documentId===C&&(T.value={currentPage:ct.pageNumber,totalPages:ct.totalPages})});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function G(v){const{provides:P}=el();return{provides:a.computed(()=>{const T=v.value;return T&&P.value?P.value.forDocument(T):null})}}const B=a.computed(()=>t.activeDocumentId??null),{provides:V,state:z}=D(B),{provides:$,state:Y}=S(B),{provides:K,state:ne}=N(B),{provides:ve,state:Z}=M(B),{provides:Fe}=G(B),{provides:Re,state:be}=R(B),A=a.computed(()=>ne.value.hasPendingChanges||Z.value.pendingCount>0),O=a.computed(()=>z.value.currentZoomLevel||1),w=a.computed(()=>be.value.currentPage||1),j=a.computed(()=>be.value.totalPages||0),x=a.computed(()=>{var v;return((v=y.value)==null?void 0:v.canUndo())??!1}),W=a.computed(()=>{var v;return((v=y.value)==null?void 0:v.canRedo())??!1}),q=a.computed(()=>Y.value.total||0),J=a.computed(()=>`${Math.round(O.value*100)}%`),it=a.computed(()=>!t.readonly&&_.value.canModifyAnnotations),Ve=a.computed(()=>t.readonly?"只读":it.value?"可批注":"受限"),Rt=a.computed(()=>{var v;return[...((v=b.value)==null?void 0:v.getColorPresets())??[],"#1677FF","#0958D9","#18A058","#D03050","#FA8C16"].filter((P,T,U)=>U.indexOf(P)===T)}),me=a.ref(null),st=a.ref("#1677FF"),Le=a.ref(.7),Ne=a.ref(6),Je=a.ref(14),et=a.ref(""),Me=a.ref("idle");let De=null;const ut=a.computed(()=>["highlight","textComment","freeText","ink"].includes(me.value??"")),Yt=a.computed(()=>["highlight","textComment","freeText","ink"].includes(me.value??"")),lt=a.computed(()=>me.value==="ink"),Pn=a.computed(()=>me.value==="freeText"),wt=a.computed(()=>ne.value.selectedUids??[]),Ye=a.computed(()=>wt.value.length),Ue=a.computed(()=>wt.value[0]??null),Te=a.computed(()=>Ue.value?ne.value.byUid[Ue.value]??null:null),k=a.computed(()=>Ue.value?le(Ue.value):null),oe=a.computed(()=>{var v,P;return Te.value?((P=(v=K.value)==null?void 0:v.findToolForAnnotation(Te.value.object))==null?void 0:P.id)??null:null}),ce=a.computed(()=>oe.value==="textComment"),Se=a.computed(()=>{if(!ce.value||!Te.value)return"";const{contents:v}=Te.value.object;return typeof v=="string"?v:""}),ge=a.computed(()=>!ce.value||!Te.value?null:{id:Ue.value,pageIndex:k.value,pageLabel:k.value===null?"-":String(k.value+1)}),pt=a.computed(()=>et.value.length),mt=a.computed(()=>{if(!ce.value)return"未选中便签";switch(Me.value){case"editing":return"编辑中";case"saving":return"正在保存";case"saved":return"已保存";case"error":return"保存失败";default:return"可编辑"}}),Ae=a.computed(()=>Zu(ne.value)),ze=a.computed(()=>Ae.value.length),$e=a.ref(""),Ee=a.ref("all"),Be=a.ref(!1),se=a.ref([]),tt=a.ref(!1);function gt(v){return Uc(v)}const Fn=a.computed(()=>gt(Object.values(ne.value.byUid).filter(v=>v.commitState!=="deleted").map(v=>v.object))),Ot={browse:"浏览",highlight:"高亮",textComment:"便签",freeText:"自由文本",ink:"涂鸦",redact:"脱敏"},Ln=[{id:"home",label:"开始",description:"页面浏览、缩放和保存"},{id:"annotate",label:"批注",description:"高亮、便签、文本框、涂鸦、脱敏"},{id:"view",label:"视图",description:"页面定位、目录和阅读布局"},{id:"review",label:"审阅",description:"搜索、结果导航和脱敏提交"}],_o=a.computed(()=>[{id:"browse",label:"浏览",icon:"pointer",active:p.value==="浏览",disabled:!1,danger:!1,onClick:()=>ht(null,"浏览")},{id:"highlight",label:"高亮",icon:"highlight",active:p.value==="高亮",disabled:!r.value.annotation,danger:!1,onClick:()=>ht("highlight","高亮")},{id:"note",label:"便签",icon:"note",active:p.value==="便签",disabled:!r.value.annotation,danger:!1,onClick:()=>ht("textComment","便签")},{id:"freeText",label:"文本框",icon:"text",active:p.value==="自由文本",disabled:!r.value.freeText,danger:!1,onClick:()=>ht("freeText","自由文本")},{id:"ink",label:"涂鸦",icon:"draw",active:p.value==="涂鸦",disabled:!r.value.ink,danger:!1,onClick:()=>ht("ink","涂鸦")},{id:"redact",label:"脱敏",icon:"redact",active:p.value==="脱敏",disabled:!r.value.redaction,danger:!0,onClick:()=>I()}]);let Nn="",It=!1,Gt=0,on="",qt=null;function Eo(v){return/^(https?:\/\/|\/)/.test(v)}a.watch(A,v=>{o("dirty-change",{dirty:v})}),a.watch([h,()=>t.pluginsReady,F],async([v,P,T])=>{if(!P||!T||v===Nn)return;const U=++Gt;It=!1,on="",p.value="浏览",me.value=null,c.value="正在分段加载文档",u.value="";try{const C=t.source.type==="url"?t.source.url:t.service.getFileStreamUrl(t.source.fileId),Q=t.source.name??(t.source.type==="url"?"外部文档.pdf":(await t.service.getFileMeta(t.source.fileId)).name);if(U!==Gt||(await T.closeAllDocuments().toPromise().catch(()=>[]),U!==Gt))return;const ie=await T.openDocumentUrl({url:C,name:Q,autoActivate:!0,...Eo(C)?{mode:"range-request"}:{}}).toPromise();if(U!==Gt){await T.closeAllDocuments().toPromise().catch(()=>[]);return}Nn=v,It=!0,c.value="文档已就绪",o("ready",{documentId:ie.documentId})}catch(C){if(U!==Gt)return;c.value="文档加载失败",o("load-error",{message:C instanceof Error?C.message:"文档加载失败",cause:C})}},{immediate:!0}),a.watch([f,()=>t.activeDocumentId,K,()=>t.pluginsReady],async([v,P,T,U])=>{if(!v||!P||!T||!U||!It)return;const C=`${v}:${P}`;if(on!==C){on=C,tt.value=!0;try{const Q=await t.service.loadAnnotations(v),fe=Object.keys(ne.value.byUid).length>0;Q.length&&!fe&&T.importAnnotations(Q.map(ie=>({annotation:ie})))}catch(Q){u.value=Q instanceof Error?`批注恢复失败:${Q.message}`:"批注恢复失败"}finally{window.setTimeout(()=>{tt.value=!1},0)}}},{immediate:!0}),a.watch([f,Fn,()=>t.activeDocumentId],([v,P,T])=>{!v||!T||tt.value||!It||(qt!==null&&window.clearTimeout(qt),qt=window.setTimeout(async()=>{try{await t.service.saveAnnotations(v,P)}catch(U){u.value=U instanceof Error?`批注同步失败:${U.message}`:"批注同步失败"}},320))},{deep:!0});function ht(v,P){var T,U;if((T=ve.value)==null||T.endRedact(),v&&!it.value){me.value=null,p.value="浏览",u.value="当前文档未授予批注权限,已保持浏览模式。",c.value="当前文档禁止批注";return}(U=K.value)==null||U.setActiveTool(v),queueMicrotask(()=>{var Q,fe;const C=((fe=(Q=K.value)==null?void 0:Q.getActiveTool())==null?void 0:fe.id)??ne.value.activeToolId??null;if(v&&C!==v){me.value=C,p.value=Ot[C??"browse"]??P,u.value="批注工具尚未真正激活,已保持当前浏览状态。",c.value="批注工具未成功激活";return}if(me.value=C,p.value=Ot[C??"browse"]??P,u.value="",C){he(C),c.value=`已切换到${Ot[C]??P}`;return}c.value="浏览模式"})}a.watch(()=>ne.value.activeToolId,v=>{me.value==="redact"&&!v||(me.value=v,p.value=Ot[v??"browse"]??"浏览",v&&he(v))}),a.watch([ce,Se,Ue],([v,P])=>{if(De!==null&&(window.clearTimeout(De),De=null),!v){et.value="",Me.value="idle";return}et.value=P,Me.value="idle",l.value=!0},{immediate:!0}),a.watch(()=>me.value,v=>{v==="textComment"&&(l.value=!0,u.value="点击页面插入便签,随后可在右侧填写说明内容。",c.value="便签模式")});function I(){var v,P;(v=ve.value)==null||v.enableRedact(),(P=K.value)==null||P.setActiveTool(null),me.value="redact",p.value="脱敏",u.value="",c.value="脱敏模式"}function te(){g.value=!g.value}function qe(){l.value=!l.value}function xe(v){var P;(P=Re.value)==null||P.scrollToPage({pageNumber:v+1,behavior:"smooth",alignY:0}),c.value=`已定位到第 ${v+1} 页`}function he(v){var T,U;const P=(U=(T=b.value)==null?void 0:T.getTool(v))==null?void 0:U.defaults;P&&(st.value=String(P.strokeColor??P.fontColor??P.color??st.value),Le.value=Number(P.opacity??Le.value),Ne.value=Number(P.strokeWidth??Ne.value),Je.value=Number(P.fontSize??Je.value))}function le(v){const P=Object.entries(ne.value.pages).find(([,T])=>T.includes(v));return P?Number(P[0]):null}function nt(){var T;if(!((T=ge.value)!=null&&T.id)||ge.value.pageIndex===null||!K.value)return;const v=et.value.replace(/\u00A0/g," "),P=Se.value.replace(/\u00A0/g," ");if(v===P){Me.value=Me.value==="error"?"error":"saved";return}Me.value="saving";try{K.value.updateAnnotation(ge.value.pageIndex,ge.value.id,{contents:v}),Me.value="saved",c.value="便签内容已更新",u.value="便签内容已自动保存。"}catch(U){Me.value="error",u.value=U instanceof Error?`便签保存失败:${U.message}`:"便签保存失败"}}function we(){De!==null&&window.clearTimeout(De),De=window.setTimeout(()=>{De=null,nt()},320)}function rn(){ce.value&&(Me.value="editing",we())}function $n(){ce.value&&(De!==null&&(window.clearTimeout(De),De=null),nt())}function Xe(v){const P=Object.entries(ne.value.byUid).find(([T,U])=>T===v.object.id||U===v||U.object===v.object);return(P==null?void 0:P[0])??v.object.id}function Xt(v){const P=new Map;for(const T of v){const U=[T.annotation,...T.groupMembers??[],...T.replies];for(const C of U){const Q=Xe(C),fe=le(Q)??T.page;fe!==null&&P.set(Q,{id:Q,pageIndex:fe})}}return[...P.values()]}function bn(v){var T;const P=Xe(v.annotation);xe(v.page),(T=K.value)==null||T.selectAnnotation(v.page,P),u.value=`已定位到第 ${v.page+1} 页的${Ao(v)}。`}function Do(){if(!K.value||!Ye.value){u.value="当前没有选中的批注。";return}const v=wt.value.map(P=>{const T=le(P);return T===null?null:{id:P,pageIndex:T}}).filter(P=>P!==null);if(!v.length){u.value="当前选中的批注暂时无法删除。";return}K.value.deleteAnnotations(v),u.value=`已删除 ${v.length} 个选中批注。`,c.value=`已删除 ${v.length} 个批注`}function Hc(v){if(!K.value)return;const P=Xt([v]);if(!P.length){u.value="当前批注暂时无法删除。";return}K.value.deleteAnnotations(P),u.value=`已删除第 ${v.page+1} 页的${Ao(v)}。`,c.value="批注已删除"}function So(){Be.value=!Be.value}function Vc(v){se.value=se.value.includes(v)?se.value.filter(P=>P!==v):[...se.value,v]}function Yc(){if(Br.value){const v=new Set(yn.value);se.value=se.value.filter(P=>!v.has(P));return}se.value=[...new Set([...se.value,...yn.value])]}function qc(){if(!K.value||!jn.value){u.value="请先在批注管理面板中勾选要删除的批注。";return}const v=se.value.map(P=>{const T=le(P);return T===null?null:{id:P,pageIndex:T}}).filter(P=>P!==null);if(!v.length){u.value="当前筛选结果里没有可删除的批注。";return}K.value.deleteAnnotations(v),se.value=[],u.value=`已批量删除 ${v.length} 个批注。`,c.value=`已删除 ${v.length} 个批注`}function Ao(v){var T,U;const P=(U=(T=K.value)==null?void 0:T.findToolForAnnotation(v.annotation.object))==null?void 0:U.id;return Ot[P??""]??"批注"}function Xc(v){const P=v.annotation.object.contents,T=typeof P=="string"?P.trim():"";if(T)return T;const U=v.replies.map(C=>C.object.contents).find(C=>typeof C=="string"&&C.trim().length>0);return U?U.trim():`${Ao(v)} · 第 ${v.page+1} 页`}const Bn=a.computed(()=>Ae.value.map(v=>{var Q,fe,ie;const P=Xe(v.annotation),T=((fe=(Q=K.value)==null?void 0:Q.findToolForAnnotation(v.annotation.object))==null?void 0:fe.id)??"annotation",U=Ot[T]??"批注",C=Xc(v);return{id:P,page:v.page,kindId:T,kindLabel:U,summary:C,repliesCount:v.replies.length,groupCount:(((ie=v.groupMembers)==null?void 0:ie.length)??0)+1,isCanvasSelected:wt.value.includes(P),entry:v,searchText:`${U} ${C} 第 ${v.page+1} 页`.toLowerCase()}})),Lr=a.computed(()=>{const v=new Map;for(const P of Bn.value){const T=v.get(P.kindId);if(T){T.count+=1;continue}v.set(P.kindId,{id:P.kindId,label:P.kindLabel,count:1})}return[{id:"all",label:"全部类型",count:Bn.value.length},...[...v.values()].sort((P,T)=>P.label.localeCompare(T.label,"zh-CN"))]}),Nr=a.computed(()=>{const v=$e.value.trim().toLowerCase();return Bn.value.filter(P=>{const T=Ee.value==="all"||P.kindId===Ee.value,U=!v||P.searchText.includes(v);return T&&U})}),$r=a.computed(()=>{const v=new Map;for(const P of Nr.value){const T=v.get(P.page)??[];T.push(P),v.set(P.page,T)}return[...v.entries()].sort(([P],[T])=>P-T).map(([P,T])=>({page:P,items:T}))}),yn=a.computed(()=>Nr.value.map(v=>v.id)),jn=a.computed(()=>se.value.length),Br=a.computed(()=>yn.value.length>0&&yn.value.every(v=>se.value.includes(v)));a.watch(Bn,v=>{const P=new Set(v.map(T=>T.id));se.value=se.value.filter(T=>P.has(T))}),a.watch(Lr,v=>{v.some(P=>P.id===Ee.value)||(Ee.value="all")});function jr(v){const P=v.target;P&&(P instanceof HTMLInputElement||P instanceof HTMLTextAreaElement||P.isContentEditable)||v.key!=="Backspace"&&v.key!=="Delete"||Ye.value&&(v.preventDefault(),Do())}function an(v){var P;!me.value||me.value==="redact"||(P=b.value)==null||P.setToolDefaults(me.value,v)}function Kc(v){if(st.value=v,me.value==="freeText"){an({fontColor:v});return}if(me.value==="ink"){an({strokeColor:v,color:v});return}an({strokeColor:v})}function Zc(){an({opacity:Le.value})}function Qc(){me.value==="ink"&&an({strokeWidth:Ne.value})}function Jc(){me.value==="freeText"&&an({fontSize:Je.value})}async function Ur(){const v=d.value.trim();!v||!$.value||(c.value="正在检索全文",await $.value.searchAllPages(v).toPromise(),$.value.setShowAllResults(!0),Y.value.total>0&&$.value.goToResult(0),c.value=Y.value.total?`已定位 ${Y.value.total} 处结果`:"未找到匹配内容")}function ed(){var v;(v=V.value)==null||v.zoomIn()}function td(){var v;(v=V.value)==null||v.zoomOut()}function zr(){var v;(v=V.value)==null||v.requestZoom(Ge.FitWidth)}function Wr(){var v;(v=V.value)==null||v.requestZoom(Ge.FitPage)}function nd(){var v;(v=V.value)==null||v.requestZoom(Ge.Automatic)}function Hr(){var v;(v=Re.value)==null||v.scrollToPreviousPage("smooth")}function Vr(){var v;(v=Re.value)==null||v.scrollToNextPage("smooth")}function Yr(){var v;(v=y.value)==null||v.undo()}function qr(){var v;(v=y.value)==null||v.redo()}async function xo(v="manual-save"){if(!t.activeDocumentId||!Fe.value||!i.value){u.value="当前文档来源不支持另存副本";return}o("save-start");try{const P=await Fe.value.saveAsCopy().toPromise(),T=await t.service.saveCopy({fileId:f.value??t.activeDocumentId,fileName:t.source.name??"document.pdf",content:new Blob([P],{type:"application/pdf"}),reason:v});u.value=`已保存到 ${T.relativePath}`,o("save-success",T)}catch(P){const T=P instanceof Error?P.message:"保存失败";u.value=T,o("save-error",{message:T,cause:P})}}async function Xr(){if(!ve.value||!Z.value.pendingCount){u.value="当前没有待提交的脱敏内容";return}if(!window.confirm("脱敏提交后将影响导出副本内容,是否继续并另存新副本?"))return;if(!await ve.value.commitAllPending().toPromise()){u.value="脱敏提交未完成";return}await xo("redaction-save")}const od=a.computed(()=>t.readonly?"只读状态":ce.value?"便签编辑":Z.value.pendingCount>0?"待提交脱敏":"编辑状态");return a.onMounted(()=>{window.addEventListener("keydown",jr)}),a.onBeforeUnmount(()=>{window.removeEventListener("keydown",jr),qt!==null&&window.clearTimeout(qt),De!==null&&window.clearTimeout(De)}),a.watch(()=>t.activeDocumentId,v=>{v&&It&&(c.value="文档已就绪")}),(v,P)=>{var T,U;return a.openBlock(),a.createElementBlock("div",XF,[a.createElementVNode("header",KF,[a.createElementVNode("div",ZF,[a.createElementVNode("div",QF,[a.createElementVNode("button",{class:"jit-toolbar__toggle",onClick:P[0]||(P[0]=C=>s.value=!a.unref(s))},"目录"),a.createElementVNode("div",JF,[a.createElementVNode("strong",null,a.toDisplayString(n.source.name??"未命名文档"),1),a.createElementVNode("span",null,a.toDisplayString(a.unref(c)),1)])]),a.createElementVNode("div",eb,[a.createElementVNode("span",tb,a.toDisplayString(((T=Ln.find(C=>C.id===m.value))==null?void 0:T.label)??"开始"),1),a.createElementVNode("span",nb,"第 "+a.toDisplayString(w.value)+" 页 / 共 "+a.toDisplayString(j.value||"-")+" 页",1)]),a.createElementVNode("div",ob,[a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":"撤销最近一次操作",disabled:!x.value,onClick:Yr},"撤销",8,rb),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":"重做刚刚撤销的内容",disabled:!W.value,onClick:qr},"重做",8,ab),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":g.value?"展开左侧缩略图导航":"收起左侧缩略图导航",onClick:te},a.toDisplayString(g.value?"展开目录":"收起目录"),9,ib),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":Be.value?"隐藏批注管理抽屉":"显示批注管理抽屉",onClick:So},a.toDisplayString(Be.value?"隐藏批注":"显示批注"),9,sb),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":a.unref(l)?"隐藏悬浮属性面板":"显示悬浮属性面板",onClick:qe},a.toDisplayString(a.unref(l)?"隐藏属性":"显示属性"),9,lb),a.createElementVNode("button",{class:"jit-toolbar__toggle",onClick:qe},"状态")])]),a.createElementVNode("div",cb,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(Ln,C=>a.createElementVNode("button",{key:C.id,class:a.normalizeClass(["jit-ribbon__tab",{"is-active":m.value===C.id}]),"data-tooltip":C.description,"aria-selected":m.value===C.id,onClick:Q=>m.value=C.id},a.toDisplayString(C.label),11,db)),64))]),a.createElementVNode("div",ub,[m.value==="home"?(a.openBlock(),a.createElementBlock("div",pb,[a.createElementVNode("section",{class:"jit-ribbon__section jit-ribbon__section--nav"},[a.createElementVNode("div",{class:"jit-ribbon__section-body"},[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"上一页",onClick:Hr},[...P[12]||(P[12]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 18l-6-6 6-6"})],-1),a.createElementVNode("span",null,"上一页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"下一页",onClick:Vr},[...P[13]||(P[13]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 6l6 6-6 6"})],-1),a.createElementVNode("span",null,"下一页",-1)])])]),P[14]||(P[14]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"页面浏览",-1))]),a.createElementVNode("section",mb,[a.createElementVNode("div",gb,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"缩小",onClick:td},[...P[15]||(P[15]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 12h8"}),a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1),a.createElementVNode("span",null,"缩小",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"放大",onClick:ed},[...P[16]||(P[16]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M10 7v6"></path><path d="M7 10h6"></path><path d="M14.5 14.5L20 20"></path><circle cx="10" cy="10" r="6"></circle></svg><span>放大</span>',2)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应整页",onClick:Wr},[...P[17]||(P[17]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("rect",{x:"7",y:"4",width:"10",height:"16",rx:"1.5"})],-1),a.createElementVNode("span",null,"整页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应页宽",onClick:zr},[...P[18]||(P[18]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 8V5h3"></path><path d="M20 8V5h-3"></path><path d="M4 16v3h3"></path><path d="M20 16v3h-3"></path><path d="M8 12h8"></path></svg><span>页宽</span>',2)])]),a.createElementVNode("div",hb,a.toDisplayString(J.value),1)]),P[19]||(P[19]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"缩放与阅读",-1))]),a.createElementVNode("section",fb,[a.createElementVNode("div",Pb,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"撤销",disabled:!x.value,onClick:Yr},[...P[20]||(P[20]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 7H5v4"}),a.createElementVNode("path",{d:"M5 11c2-3 5-5 9-5 3 0 6 2 7 5"})],-1),a.createElementVNode("span",null,"撤销",-1)])],8,Fb),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"重做",disabled:!W.value,onClick:qr},[...P[21]||(P[21]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 7h4v4"}),a.createElementVNode("path",{d:"M19 11c-2-3-5-5-9-5-3 0-6 2-7 5"})],-1),a.createElementVNode("span",null,"重做",-1)])],8,bb)]),P[22]||(P[22]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"历史记录",-1))]),a.createElementVNode("section",yb,[a.createElementVNode("div",vb,[a.createElementVNode("button",{class:"jit-icon-button jit-icon-button--primary","aria-label":"另存副本",disabled:!a.unref(i),onClick:P[1]||(P[1]=C=>xo())},[...P[23]||(P[23]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 4h9l3 3v13H6z"}),a.createElementVNode("path",{d:"M9 4v5h6"}),a.createElementVNode("path",{d:"M9 16h6"})],-1),a.createElementVNode("span",null,"另存副本",-1)])],8,_b),a.createElementVNode("button",{class:"jit-icon-button is-danger","aria-label":"提交脱敏并导出",disabled:!a.unref(r).redaction||!a.unref(Z).pendingCount,onClick:Xr},[...P[24]||(P[24]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg><span>提交脱敏</span>',2)])],8,Eb)]),P[25]||(P[25]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"保存导出",-1))])])):m.value==="annotate"?(a.openBlock(),a.createElementBlock("div",Db,[a.createElementVNode("section",Sb,[a.createElementVNode("div",Ab,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(_o.value,C=>(a.openBlock(),a.createElementBlock("button",{key:C.id,class:a.normalizeClass(["jit-icon-button jit-icon-button--tool",{"is-active":C.active,"is-danger":C.danger}]),"aria-label":C.label,disabled:C.disabled,onClick:C.onClick},[C.icon==="pointer"?(a.openBlock(),a.createElementBlock("svg",Cb,[...P[26]||(P[26]=[a.createElementVNode("path",{d:"M6 4l10 8-5 1 2 5-2 1-2-5-3 3z"},null,-1)])])):C.icon==="highlight"?(a.openBlock(),a.createElementBlock("svg",Mb,[...P[27]||(P[27]=[a.createElementVNode("path",{d:"M6 15l5-5 4 4-5 5H6z"},null,-1),a.createElementVNode("path",{d:"M13 8l2-2 3 3-2 2z"},null,-1),a.createElementVNode("path",{d:"M5 19h9"},null,-1)])])):C.icon==="note"?(a.openBlock(),a.createElementBlock("svg",Tb,[...P[28]||(P[28]=[a.createElementVNode("path",{d:"M7 4h10v12H7z"},null,-1),a.createElementVNode("path",{d:"M9 8h6"},null,-1),a.createElementVNode("path",{d:"M9 12h4"},null,-1),a.createElementVNode("path",{d:"M7 16h3"},null,-1)])])):C.icon==="text"?(a.openBlock(),a.createElementBlock("svg",kb,[...P[29]||(P[29]=[a.createElementVNode("path",{d:"M6 6h12"},null,-1),a.createElementVNode("path",{d:"M12 6v12"},null,-1),a.createElementVNode("path",{d:"M8 18h8"},null,-1)])])):C.icon==="draw"?(a.openBlock(),a.createElementBlock("svg",Rb,[...P[30]||(P[30]=[a.createElementVNode("path",{d:"M4 16c2-4 5-6 8-7 2-1 4 0 5 2 1 2 0 4-2 5-3 2-7 2-11 0z"},null,-1),a.createElementVNode("path",{d:"M14 6l2-2 4 4-2 2z"},null,-1)])])):(a.openBlock(),a.createElementBlock("svg",wb,[...P[31]||(P[31]=[a.createStaticVNode('<path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M7 11h10"></path><path d="M7 15h10"></path><path d="M7 19h10"></path>',5)])])),a.createElementVNode("span",null,a.toDisplayString(C.label),1)],10,xb))),128))]),P[32]||(P[32]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"批注工具",-1))]),a.createElementVNode("section",Ob,[a.createElementVNode("div",Ib,[a.createElementVNode("div",Gb,[P[33]||(P[33]=a.createElementVNode("span",{class:"jit-style-label"},"颜色",-1)),a.createElementVNode("div",Lb,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(Rt.value,C=>(a.openBlock(),a.createElementBlock("button",{key:C,class:a.normalizeClass(["jit-color-swatch",{"is-active":st.value===C}]),style:a.normalizeStyle({background:C}),title:C,disabled:!ut.value,onClick:Q=>Kc(C)},null,14,Nb))),128))])]),lt.value?(a.openBlock(),a.createElementBlock("div",$b,[P[34]||(P[34]=a.createElementVNode("label",{class:"jit-style-label",for:"jit-stroke-width"},"线条粗细",-1)),a.createElementVNode("div",Bb,[a.withDirectives(a.createElementVNode("input",{id:"jit-stroke-width","onUpdate:modelValue":P[2]||(P[2]=C=>Ne.value=C),type:"range",min:"2",max:"20",step:"1",onChange:Qc},null,544),[[a.vModelText,Ne.value,void 0,{number:!0}]]),a.createElementVNode("span",null,a.toDisplayString(Ne.value),1)])])):a.createCommentVNode("",!0),Pn.value?(a.openBlock(),a.createElementBlock("div",jb,[P[35]||(P[35]=a.createElementVNode("label",{class:"jit-style-label",for:"jit-font-size"},"字号",-1)),a.createElementVNode("div",Ub,[a.withDirectives(a.createElementVNode("input",{id:"jit-font-size","onUpdate:modelValue":P[3]||(P[3]=C=>Je.value=C),type:"range",min:"10",max:"32",step:"1",onChange:Jc},null,544),[[a.vModelText,Je.value,void 0,{number:!0}]]),a.createElementVNode("span",null,a.toDisplayString(Je.value),1)])])):a.createCommentVNode("",!0),Yt.value?(a.openBlock(),a.createElementBlock("div",zb,[P[36]||(P[36]=a.createElementVNode("label",{class:"jit-style-label",for:"jit-opacity"},"透明度",-1)),a.createElementVNode("div",Wb,[a.withDirectives(a.createElementVNode("input",{id:"jit-opacity","onUpdate:modelValue":P[4]||(P[4]=C=>Le.value=C),type:"range",min:"0.2",max:"1",step:"0.1",onChange:Zc},null,544),[[a.vModelText,Le.value,void 0,{number:!0}]]),a.createElementVNode("span",null,a.toDisplayString(Math.round(Le.value*100))+"%",1)])])):a.createCommentVNode("",!0)]),P[37]||(P[37]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"样式属性",-1))]),a.createElementVNode("section",Hb,[a.createElementVNode("div",Vb,[a.createElementVNode("div",Yb,[P[38]||(P[38]=a.createElementVNode("em",null,"当前工具",-1)),a.createElementVNode("strong",null,a.toDisplayString(p.value),1)]),a.createElementVNode("span",{class:a.normalizeClass(["jit-ribbon__hint-chip",{"is-danger":Ve.value==="受限"}])},a.toDisplayString(Ve.value),3),a.createElementVNode("span",qb,"待脱敏 "+a.toDisplayString(a.unref(Z).pendingCount)+" 处",1),a.createElementVNode("button",{class:"jit-ribbon__hint-action",disabled:!Ye.value,onClick:Do}," 删除选中 "+a.toDisplayString(Ye.value||""),9,Xb)]),P[39]||(P[39]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"使用提示",-1))])])):m.value==="view"?(a.openBlock(),a.createElementBlock("div",Kb,[a.createElementVNode("section",{class:"jit-ribbon__section jit-ribbon__section--nav"},[a.createElementVNode("div",{class:"jit-ribbon__section-body"},[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"上一页",onClick:Hr},[...P[40]||(P[40]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 18l-6-6 6-6"})],-1),a.createElementVNode("span",null,"上一页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"下一页",onClick:Vr},[...P[41]||(P[41]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 6l6 6-6 6"})],-1),a.createElementVNode("span",null,"下一页",-1)])])]),P[42]||(P[42]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"翻页",-1))]),a.createElementVNode("section",Zb,[a.createElementVNode("div",Qb,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应整页",onClick:Wr},[...P[43]||(P[43]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("rect",{x:"7",y:"4",width:"10",height:"16",rx:"1.5"})],-1),a.createElementVNode("span",null,"整页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应页宽",onClick:zr},[...P[44]||(P[44]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 8V5h3"></path><path d="M20 8V5h-3"></path><path d="M4 16v3h3"></path><path d="M20 16v3h-3"></path><path d="M8 12h8"></path></svg><span>页宽</span>',2)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"自动缩放",onClick:nd},[...P[45]||(P[45]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("circle",{cx:"12",cy:"12",r:"8"}),a.createElementVNode("path",{d:"M12 8v4l3 2"})],-1),a.createElementVNode("span",null,"自动",-1)])]),a.createElementVNode("div",Jb,a.toDisplayString(J.value),1)]),P[46]||(P[46]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"阅读模式",-1))]),a.createElementVNode("section",ey,[a.createElementVNode("div",ty,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":g.value?"展开缩略图":"收起缩略图",onClick:te},[P[47]||(P[47]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M4 6h16"}),a.createElementVNode("path",{d:"M4 12h10"}),a.createElementVNode("path",{d:"M4 18h16"})],-1)),a.createElementVNode("span",null,a.toDisplayString(g.value?"展开目录":"收起目录"),1)],8,ny),a.createElementVNode("button",{class:"jit-icon-button","aria-label":a.unref(l)?"隐藏属性面板":"显示属性面板",onClick:qe},[P[48]||(P[48]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 5h14v14H5z"}),a.createElementVNode("path",{d:"M12 5v14"})],-1)),a.createElementVNode("span",null,a.toDisplayString(a.unref(l)?"隐藏侧栏":"显示侧栏"),1)],8,oy)]),P[49]||(P[49]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"界面布局",-1))]),a.createElementVNode("section",ry,[a.createElementVNode("div",ay,[a.createElementVNode("div",iy,[P[50]||(P[50]=a.createElementVNode("em",null,"工具",-1)),a.createElementVNode("strong",null,a.toDisplayString(p.value),1)]),a.createElementVNode("div",sy,[P[51]||(P[51]=a.createElementVNode("em",null,"搜索",-1)),a.createElementVNode("strong",null,a.toDisplayString(q.value)+" 处",1)])]),P[52]||(P[52]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"阅读摘要",-1))])])):(a.openBlock(),a.createElementBlock("div",ly,[a.createElementVNode("section",cy,[a.createElementVNode("div",dy,[a.createElementVNode("div",uy,[P[53]||(P[53]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1)),a.withDirectives(a.createElementVNode("input",{"onUpdate:modelValue":P[5]||(P[5]=C=>d.value=C),placeholder:"搜索全文",onKeydown:a.withKeys(a.withModifiers(Ur,["prevent"]),["enter"])},null,40,py),[[a.vModelText,d.value]])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"执行搜索",disabled:!a.unref(r).search,onClick:Ur},[...P[54]||(P[54]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1),a.createElementVNode("span",null,"查找",-1)])],8,my),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"上一个结果",disabled:!a.unref(r).search||!q.value,onClick:P[6]||(P[6]=C=>{var Q;return(Q=a.unref($))==null?void 0:Q.previousResult()})},[...P[55]||(P[55]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 6l-6 6 6 6"})],-1),a.createElementVNode("span",null,"上一个",-1)])],8,gy),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"下一个结果",disabled:!a.unref(r).search||!q.value,onClick:P[7]||(P[7]=C=>{var Q;return(Q=a.unref($))==null?void 0:Q.nextResult()})},[...P[56]||(P[56]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 6l6 6-6 6"})],-1),a.createElementVNode("span",null,"下一个",-1)])],8,hy)]),P[57]||(P[57]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"全文检索",-1))]),a.createElementVNode("section",fy,[a.createElementVNode("div",Py,[a.createElementVNode("button",{class:"jit-icon-button jit-icon-button--primary","aria-label":"另存副本",disabled:!a.unref(i),onClick:P[8]||(P[8]=C=>xo())},[...P[58]||(P[58]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 4h9l3 3v13H6z"}),a.createElementVNode("path",{d:"M9 4v5h6"}),a.createElementVNode("path",{d:"M9 16h6"})],-1),a.createElementVNode("span",null,"另存副本",-1)])],8,Fy),a.createElementVNode("button",{class:"jit-icon-button is-danger","aria-label":"提交脱敏并导出",disabled:!a.unref(r).redaction||!a.unref(Z).pendingCount,onClick:Xr},[...P[59]||(P[59]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg><span>提交脱敏</span>',2)])],8,by)]),P[60]||(P[60]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"审阅输出",-1))]),a.createElementVNode("section",yy,[a.createElementVNode("div",vy,[a.createElementVNode("div",_y,[P[61]||(P[61]=a.createElementVNode("em",null,"搜索",-1)),a.createElementVNode("strong",null,a.toDisplayString(q.value)+" 处",1)]),a.createElementVNode("div",Ey,[P[62]||(P[62]=a.createElementVNode("em",null,"修改",-1)),a.createElementVNode("strong",null,a.toDisplayString(A.value?"待保存":"已同步"),1)])]),P[63]||(P[63]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"当前状态",-1))])]))])]),a.createElementVNode("div",{class:a.normalizeClass(["jit-layout",{"is-left-collapsed":g.value}])},[a.createElementVNode("aside",{class:a.normalizeClass(["jit-sidebar jit-sidebar--left",{"is-open":a.unref(s),"is-collapsed":g.value}])},[a.createElementVNode("div",Dy,[g.value?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",Sy,[P[64]||(P[64]=a.createElementVNode("strong",null,"缩略图",-1)),a.createElementVNode("span",null,"第 "+a.toDisplayString(w.value)+" / "+a.toDisplayString(j.value||"-")+" 页",1)])),a.createElementVNode("button",{class:"jit-sidebar__collapse","aria-label":g.value?"展开缩略图":"收起缩略图",onClick:te},[g.value?(a.openBlock(),a.createElementBlock("svg",xy,[...P[65]||(P[65]=[a.createElementVNode("path",{d:"M9 6l6 6-6 6"},null,-1)])])):(a.openBlock(),a.createElementBlock("svg",Cy,[...P[66]||(P[66]=[a.createElementVNode("path",{d:"M15 6l-6 6 6 6"},null,-1)])]))],8,Ay)]),!g.value&&a.unref(r).thumbnail&&n.activeDocumentId?(a.openBlock(),a.createBlock(a.unref(TF),{key:0,class:"jit-thumbnails","document-id":n.activeDocumentId},{default:a.withCtx(({meta:C})=>[a.createElementVNode("button",{class:a.normalizeClass(["jit-thumbnail",{"is-active":w.value===C.pageIndex+1}]),style:a.normalizeStyle({top:`${C.top}px`,height:`${C.wrapperHeight}px`}),onClick:Q=>xe(C.pageIndex)},[a.createElementVNode("div",Ty,[a.createVNode(a.unref(RF),{"document-id":n.activeDocumentId,meta:C,class:"jit-thumbnail__image"},null,8,["document-id","meta"])]),a.createElementVNode("div",ky,[a.createElementVNode("span",Ry,"第 "+a.toDisplayString(C.pageIndex+1)+" 页",1),w.value===C.pageIndex+1?(a.openBlock(),a.createElementBlock("span",wy,"当前")):a.createCommentVNode("",!0)])],14,My)]),_:1},8,["document-id"])):g.value?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("p",Oy,"缩略图已关闭"))],2),a.createElementVNode("main",Iy,[a.createElementVNode("div",Gy,[a.createElementVNode("button",{class:"jit-annotation-drawer-toggle","aria-label":Be.value?"隐藏批注管理抽屉":"显示批注管理抽屉",onClick:So},[...P[67]||(P[67]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 6h14"}),a.createElementVNode("path",{d:"M5 12h14"}),a.createElementVNode("path",{d:"M5 18h10"})],-1)])],8,Ly),a.createElementVNode("button",{class:"jit-inspector-toggle","aria-label":a.unref(l)?"隐藏属性面板":"显示属性面板",onClick:qe},[...P[68]||(P[68]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 5h14v14H5z"}),a.createElementVNode("path",{d:"M12 5v14"})],-1)])],8,Ny),a.createElementVNode("aside",{class:a.normalizeClass(["jit-inspector",{"is-open":a.unref(l)}])},[a.createElementVNode("div",$y,[a.createElementVNode("div",null,[a.createElementVNode("strong",null,a.toDisplayString(od.value),1),a.createElementVNode("span",null,a.toDisplayString(p.value)+" · "+a.toDisplayString(Math.round(O.value*100))+"%",1)]),a.createElementVNode("button",{class:"jit-inspector__close","aria-label":"收起属性面板",onClick:qe},[...P[69]||(P[69]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 6l12 12"}),a.createElementVNode("path",{d:"M18 6L6 18"})],-1)])])]),a.createElementVNode("div",By,[ce.value?(a.openBlock(),a.createElementBlock("section",jy,[a.createElementVNode("div",Uy,[a.createElementVNode("div",null,[a.createElementVNode("div",zy,[P[71]||(P[71]=a.createElementVNode("strong",null,"便签内容",-1)),a.createElementVNode("button",{class:"jit-note-editor__delete",disabled:!Ye.value,"aria-label":"删除便签",onClick:Do},[...P[70]||(P[70]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg>',1)])],8,Wy)]),a.createElementVNode("span",null,"第 "+a.toDisplayString((U=ge.value)==null?void 0:U.pageLabel)+" 页 · "+a.toDisplayString(mt.value),1)])]),a.createElementVNode("label",Hy,[P[72]||(P[72]=a.createElementVNode("span",null,"说明内容",-1)),a.withDirectives(a.createElementVNode("textarea",{"onUpdate:modelValue":P[9]||(P[9]=C=>et.value=C),placeholder:"为这条便签补充说明、结论或处理意见",onInput:rn,onBlur:$n},null,544),[[a.vModelText,et.value]])]),a.createElementVNode("div",Vy,[P[73]||(P[73]=a.createElementVNode("span",null,"便签会在停止输入后自动保存",-1)),a.createElementVNode("strong",null,a.toDisplayString(pt.value)+" 字",1)])])):a.createCommentVNode("",!0),a.createElementVNode("dl",Yy,[a.createElementVNode("div",null,[P[74]||(P[74]=a.createElementVNode("dt",null,"当前工具",-1)),a.createElementVNode("dd",null,a.toDisplayString(p.value),1)]),a.createElementVNode("div",null,[P[75]||(P[75]=a.createElementVNode("dt",null,"批注权限",-1)),a.createElementVNode("dd",null,a.toDisplayString(Ve.value),1)]),a.createElementVNode("div",null,[P[76]||(P[76]=a.createElementVNode("dt",null,"缩放",-1)),a.createElementVNode("dd",null,a.toDisplayString(Math.round(O.value*100))+"%",1)]),a.createElementVNode("div",null,[P[77]||(P[77]=a.createElementVNode("dt",null,"搜索结果",-1)),a.createElementVNode("dd",null,a.toDisplayString(q.value)+" 处",1)]),a.createElementVNode("div",null,[P[78]||(P[78]=a.createElementVNode("dt",null,"待提交脱敏",-1)),a.createElementVNode("dd",null,a.toDisplayString(a.unref(Z).pendingCount)+" 处",1)]),a.createElementVNode("div",null,[P[79]||(P[79]=a.createElementVNode("dt",null,"待保存修改",-1)),a.createElementVNode("dd",null,a.toDisplayString(A.value?"是":"否"),1)]),P[80]||(P[80]=a.createElementVNode("div",null,[a.createElementVNode("dt",null,"保存策略"),a.createElementVNode("dd",null,"仅另存新副本")],-1))]),a.createElementVNode("div",qy,[P[81]||(P[81]=a.createElementVNode("p",null,"属性面板已改成悬浮检查器,需要时展开,不占主阅读空间。",-1)),ce.value?(a.openBlock(),a.createElementBlock("p",Xy,"当前便签已接入内容编辑器,支持随写随存,适合记录审核意见和处理说明。")):(a.openBlock(),a.createElementBlock("p",Ky,"高亮类工具需要先框选文本;涂鸦和文本框工具可以直接在画布中绘制或点击创建。")),u.value?(a.openBlock(),a.createElementBlock("p",Zy,a.toDisplayString(u.value),1)):a.createCommentVNode("",!0)])])],2)]),a.createElementVNode("aside",{class:a.normalizeClass(["jit-annotation-drawer",{"is-open":Be.value}])},[a.createElementVNode("div",Qy,[a.createElementVNode("div",null,[P[82]||(P[82]=a.createElementVNode("strong",null,"批注管理",-1)),a.createElementVNode("span",null,a.toDisplayString(ze.value)+" 个批注,"+a.toDisplayString(jn.value)+" 个待批量操作",1)]),a.createElementVNode("div",Jy,[a.createElementVNode("button",{class:"jit-annotation-panel__action jit-annotation-panel__action--secondary",disabled:!yn.value.length,onClick:Yc},a.toDisplayString(Br.value?"清空当前结果":"全选当前结果"),9,ev),a.createElementVNode("button",{class:"jit-annotation-panel__action",disabled:!jn.value,onClick:qc}," 批量删除 "+a.toDisplayString(jn.value||""),9,tv),a.createElementVNode("button",{class:"jit-annotation-panel__close","aria-label":"关闭批注管理抽屉",onClick:So},[...P[83]||(P[83]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 6l12 12"}),a.createElementVNode("path",{d:"M18 6L6 18"})],-1)])])])]),a.createElementVNode("div",nv,[a.createElementVNode("div",ov,[a.createElementVNode("label",rv,[P[84]||(P[84]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1)),a.withDirectives(a.createElementVNode("input",{"onUpdate:modelValue":P[10]||(P[10]=C=>$e.value=C),placeholder:"搜索批注内容、页码或类型"},null,512),[[a.vModelText,$e.value]])]),a.createElementVNode("label",av,[P[85]||(P[85]=a.createElementVNode("span",null,"类型",-1)),a.withDirectives(a.createElementVNode("select",{"onUpdate:modelValue":P[11]||(P[11]=C=>Ee.value=C)},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(Lr.value,C=>(a.openBlock(),a.createElementBlock("option",{key:C.id,value:C.id},a.toDisplayString(C.label)+"("+a.toDisplayString(C.count)+") ",9,iv))),128))],512),[[a.vModelSelect,Ee.value]])])]),$r.value.length?(a.openBlock(),a.createElementBlock("div",sv,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList($r.value,C=>(a.openBlock(),a.createElementBlock("section",{key:C.page,class:"jit-annotation-group"},[a.createElementVNode("header",lv,[a.createElementVNode("strong",null,"第 "+a.toDisplayString(C.page+1)+" 页",1),a.createElementVNode("span",null,a.toDisplayString(C.items.length)+" 条批注",1)]),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(C.items,Q=>(a.openBlock(),a.createElementBlock("article",{key:Q.id,class:a.normalizeClass(["jit-annotation-item",{"is-selected":Q.isCanvasSelected,"is-batch-selected":se.value.includes(Q.id)}])},[a.createElementVNode("button",{class:"jit-annotation-item__selector","aria-label":se.value.includes(Q.id)?"取消批量选择":"加入批量选择",onClick:a.withModifiers(fe=>Vc(Q.id),["stop"])},[se.value.includes(Q.id)?(a.openBlock(),a.createElementBlock("span",dv)):a.createCommentVNode("",!0)],8,cv),a.createElementVNode("button",{class:"jit-annotation-item__main",onClick:fe=>bn(Q.entry)},[a.createElementVNode("div",pv,[a.createElementVNode("strong",null,a.toDisplayString(Q.kindLabel),1),a.createElementVNode("span",null,"第 "+a.toDisplayString(Q.page+1)+" 页",1)]),a.createElementVNode("p",null,a.toDisplayString(Q.summary),1),a.createElementVNode("div",mv,[Q.groupCount>1?(a.openBlock(),a.createElementBlock("span",gv," 组合 "+a.toDisplayString(Q.groupCount),1)):a.createCommentVNode("",!0),Q.repliesCount?(a.openBlock(),a.createElementBlock("span",hv," 回复 "+a.toDisplayString(Q.repliesCount),1)):a.createCommentVNode("",!0),Q.isCanvasSelected?(a.openBlock(),a.createElementBlock("span",fv," 画布已选中 ")):a.createCommentVNode("",!0),se.value.includes(Q.id)?(a.openBlock(),a.createElementBlock("span",Pv," 待批量处理 ")):a.createCommentVNode("",!0)])],8,uv),a.createElementVNode("button",{class:"jit-annotation-item__delete","aria-label":`删除第 ${Q.page+1} 页的${Q.kindLabel}`,onClick:a.withModifiers(fe=>Hc(Q.entry),["stop"])},[...P[86]||(P[86]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg>',1)])],8,Fv)],2))),128))]))),128))])):(a.openBlock(),a.createElementBlock("div",bv,[...P[87]||(P[87]=[a.createElementVNode("p",null,"当前筛选条件下没有批注。你可以修改类型筛选,或直接搜索批注内容与页码。",-1)])]))])],2),a.createElementVNode("a",{class:"jit-copyright-badge",href:Ev,target:"_blank",rel:"noopener noreferrer","aria-label":"查看 Jit PDF 版权信息",title:"Jit PDF 版权所有,点击查看"},[...P[88]||(P[88]=[a.createElementVNode("span",{class:"jit-copyright-badge__mark"},"©",-1),a.createElementVNode("span",{class:"jit-copyright-badge__text"},"Jit PDF",-1)])]),a.createVNode(a.unref(Ff),{"document-id":n.activeDocumentId},{default:a.withCtx(({isLoading:C,isError:Q,isLoaded:fe})=>[C||n.isInitializing?(a.openBlock(),a.createElementBlock("div",yv,"正在分段加载文档")):Q?(a.openBlock(),a.createElementBlock("div",vv," 文档加载失败,请检查本地文件服务和 PDF 路径 ")):fe&&n.activeDocumentId?(a.openBlock(),a.createBlock(a.unref(jF),{key:2,class:"jit-viewport","document-id":n.activeDocumentId},{default:a.withCtx(()=>[a.createVNode(a.unref(Nm),{"document-id":n.activeDocumentId},{default:a.withCtx(()=>[a.createVNode(a.unref(CF),{class:"jit-zoom-surface","document-id":n.activeDocumentId},{default:a.withCtx(()=>[a.createVNode(a.unref(GF),{class:"jit-scroller","document-id":n.activeDocumentId},{default:a.withCtx(({page:ie})=>[a.createVNode(a.unref(Bm),{class:"jit-page","document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,style:a.normalizeStyle({zIndex:ie.elevated?1:void 0})},{default:a.withCtx(()=>[a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(Cl),{key:0})):a.createCommentVNode("",!0),a.createVNode(a.unref(YF),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"]),a.createVNode(a.unref(WF),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"]),a.createVNode(a.unref(cg),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,"text-style":{background:"rgba(22, 119, 255, 0.22)"}},null,8,["document-id","page-index","scale"]),a.createVNode(a.unref(wF),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,"highlight-color":"rgba(22, 119, 255, 0.28)","active-highlight-color":"rgba(9, 88, 217, 0.42)"},null,8,["document-id","page-index","scale"]),a.unref(r).annotation||a.unref(r).ink||a.unref(r).freeText?(a.openBlock(),a.createBlock(a.unref(qs),{key:1,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).annotation||a.unref(r).ink||a.unref(r).freeText?(a.openBlock(),a.createBlock(a.unref(uf),{key:2,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(Sl),{key:3,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,stroke:"rgba(208, 48, 80, 0.9)",fill:"rgba(208, 48, 80, 0.14)"},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(Al),{key:4,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(xl),{key:5,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,rotation:0},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(qf),{key:6,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0)]),_:2},1032,["document-id","page-index","scale","style"])]),_:1},8,["document-id"])]),_:1},8,["document-id"])]),_:1},8,["document-id"])]),_:1},8,["document-id"])):(a.openBlock(),a.createElementBlock("div",_v,"准备打开文档"))]),_:1},8,["document-id"])])],2)])}}}),Sv=a.defineComponent({__name:"JitPdfEditor",props:{source:{},locale:{default:"zh-CN"},theme:{default:"blue-enterprise"},capabilities:{},service:{},readonly:{type:Boolean,default:!1}},emits:["ready","dirty-change","save-start","save-success","save-error","load-error"],setup(n,{emit:e}){const t=n,o=e,r=bF(DF,{encoderPoolSize:2,fontFallback:EF}),i=a.computed(()=>({permissions:{enforceDocumentPermissions:!1,overrides:{modifyAnnotations:!t.readonly,modifyContents:!t.readonly,copyContents:!0,print:!0}}})),s=a.computed(()=>[{package:vf},{package:ZP},{package:uP,config:{defaultPageGap:40,defaultBufferSize:4}},{package:eP},{package:GP},{package:Tm},{package:ug},{package:Of},{package:vP,config:{showAllResults:!0}},{package:MP},{package:iF,config:{defaultZoomLevel:Ge.FitPage}},{package:hf,config:{autoCommit:!0,annotationAuthor:"Jit PDF",locked:{type:t.readonly?xt.All:xt.None},colorPresets:["#1677FF","#0958D9","#18A058","#D03050","#FAAD14"]}},{package:Qf,config:{drawBlackBoxes:!0,useAnnotationMode:!0}},{package:Af,config:{defaultFileName:t.source.name??"jit-pdf-export.pdf"}}]);return(l,c)=>(a.openBlock(),a.createBlock(a.unref(fu),{class:"jit-pdf-shell",engine:a.unref(r),config:i.value,plugins:s.value,"auto-mount-dom-elements":!0},{default:a.withCtx(({activeDocumentId:d,pluginsReady:u,isInitializing:p})=>[a.createVNode(Dv,a.mergeProps(t,{"active-document-id":d,"plugins-ready":u,"is-initializing":p,onReady:c[0]||(c[0]=g=>o("ready",g)),onDirtyChange:c[1]||(c[1]=g=>o("dirty-change",g)),onSaveStart:c[2]||(c[2]=g=>o("save-start")),onSaveSuccess:c[3]||(c[3]=g=>o("save-success",g)),onSaveError:c[4]||(c[4]=g=>o("save-error",g)),onLoadError:c[5]||(c[5]=g=>o("load-error",g))}),null,16,["active-document-id","plugins-ready","is-initializing"])]),_:1},8,["engine","config","plugins"]))}}),zc="jit-pdf-sdk",Zt="files",co="annotations";function Qa(n){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`${n}-${crypto.randomUUID()}`:`${n}-${Date.now()}-${Math.random().toString(16).slice(2)}`}function Av(n=new Date){const e=t=>t.toString().padStart(2,"0");return[n.getFullYear(),e(n.getMonth()+1),e(n.getDate())].join("")+`-${e(n.getHours())}${e(n.getMinutes())}${e(n.getSeconds())}`}function xv(n){const e=n.lastIndexOf(".");return e>=0?n.slice(0,e):n}function Cv(n){const e=n.lastIndexOf(".");return e>=0?n.slice(e):".pdf"}function Mv(n){return`${xv(n)}-副本-${Av()}${Cv(n)}`}function Ja(n){return Uc(n)}function Tv(n){return new Promise((e,t)=>{const o=indexedDB.open(n,1);o.onupgradeneeded=()=>{const r=o.result;if(!r.objectStoreNames.contains(Zt)){const i=r.createObjectStore(Zt,{keyPath:"id"});i.createIndex("updatedAt","updatedAt",{unique:!1}),i.createIndex("originId","originId",{unique:!1})}r.objectStoreNames.contains(co)||r.createObjectStore(co,{keyPath:"fileId"})},o.onsuccess=()=>e(o.result),o.onerror=()=>t(o.error??new Error("IndexedDB 打开失败"))})}function rr(n){return new Promise((e,t)=>{n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??new Error("IndexedDB 请求失败"))})}async function Qt(n,e,t,o){const r=await Tv(n);try{const i=r.transaction(e,t),s=i.objectStore(e),l=await o(s);return await new Promise((c,d)=>{i.oncomplete=()=>c(),i.onerror=()=>d(i.error??new Error("IndexedDB 事务失败")),i.onabort=()=>d(i.error??new Error("IndexedDB 事务中断"))}),l}finally{r.close()}}function kv(n){return{id:n.id,name:n.name,relativePath:n.relativePath,size:n.size,updatedAt:n.updatedAt,pageCount:null}}function Rv(n){return{id:n.id,name:n.name,relativePath:n.relativePath,size:n.size,updatedAt:n.updatedAt}}function wv(n){return{kind:"file",id:n.id,name:n.name,relativePath:n.relativePath,size:n.size,updatedAt:n.updatedAt}}function Wc(n){return{async load(e){const t=await Qt(n,co,"readonly",async o=>rr(o.get(e)));return Ja((t==null?void 0:t.annotations)??[])},async save(e,t){await Qt(n,co,"readwrite",async o=>{o.put({fileId:e,annotations:Ja(t),updatedAt:new Date().toISOString()})})}}}function Ov(n={}){const e=n.databaseName??zc,t=Wc(e),o=new Map;function r(l){const c=o.get(l.id);if(c)return c;const d=URL.createObjectURL(l.blob);return o.set(l.id,d),d}async function i(){const l=await Qt(e,Zt,"readonly",async c=>rr(c.getAll()));return l.forEach(c=>r(c)),l.sort((c,d)=>d.updatedAt.localeCompare(c.updatedAt))}async function s(l){const c=await Qt(e,Zt,"readonly",async d=>rr(d.get(l)));if(!c)throw new Error("未找到本地 PDF 文件");return r(c),c}return{async getFileList(){return{rootDir:"IndexedDB",items:(await i()).map(wv)}},async getFileMeta(l){return kv(await s(l))},async getFileHistory(l){const c=await s(l),d=c.originId||c.id;return(await i()).filter(p=>p.id!==c.id&&p.originId===d).map(Rv)},getFileStreamUrl(l){return o.get(l)??""},async uploadFile(l){const c=Qa("local"),d=new Date().toISOString(),u={id:c,name:l.name,relativePath:`indexeddb/${c}/${l.name}`,size:l.size,updatedAt:d,blob:l,originId:c};await Qt(e,Zt,"readwrite",async g=>{g.put(u)});const p=o.get(c);return p&&URL.revokeObjectURL(p),o.set(c,URL.createObjectURL(l)),{id:c,name:u.name,relativePath:u.relativePath,size:u.size,updatedAt:d}},async deleteFile(l){const c=await s(l);await Qt(e,Zt,"readwrite",async u=>{u.delete(l)});const d=o.get(l);return d&&(URL.revokeObjectURL(d),o.delete(l)),await t.save(l,[]),{fileId:l,relativePath:c.relativePath}},async saveCopy(l){const c=await s(l.fileId),d=new Blob([await l.content.arrayBuffer()],{type:"application/pdf"}),u=Qa("local-copy"),p=Mv(l.fileName||c.name),g=new Date().toISOString(),m={id:u,name:p,relativePath:`indexeddb/${u}/${p}`,size:d.size,updatedAt:g,blob:d,originId:c.originId||c.id};await Qt(e,Zt,"readwrite",async f=>{f.put(m)});const h=o.get(u);return h&&URL.revokeObjectURL(h),o.set(u,URL.createObjectURL(d)),await t.save(u,[]),{fileId:u,fileName:p,relativePath:m.relativePath,absolutePath:m.relativePath,savedAt:g,size:m.size}},async loadAnnotations(l){return t.load(l)},async saveAnnotations(l,c){await t.save(l,c)}}}function Iv(n={}){const e=n.databaseName??zc;return Wc(e)}function Gv(n){return encodeURIComponent(n)}async function cn(n){if(!n.ok){let e=null;try{e=await n.json()}catch{e=null}throw new Error((e==null?void 0:e.message)??`请求失败: ${n.status}`)}return await n.json()}function Lv(n={}){const e=n.baseUrl??"",t=Iv({databaseName:n.annotationDatabaseName});return{async getFileList(){const o=await fetch(`${e}/api/files`);return cn(o)},async getFileMeta(o){const r=await fetch(`${e}/api/files/${encodeURIComponent(o)}/meta`);return cn(r)},async getFileHistory(o){const r=await fetch(`${e}/api/files/${encodeURIComponent(o)}/history`);return cn(r)},getFileStreamUrl(o){return`${e}/api/files/${encodeURIComponent(o)}/content`},async uploadFile(o){const r=new FormData;r.append("file",o);const i=await fetch(`${e}/api/files/upload`,{method:"POST",body:r});return cn(i)},async deleteFile(o){const r=await fetch(`${e}/api/files/${encodeURIComponent(o)}`,{method:"DELETE"});return cn(r)},async saveCopy(o){const r=await o.content.arrayBuffer(),i=await fetch(`${e}/api/files/${encodeURIComponent(o.fileId)}/save-copy`,{method:"POST",headers:{"Content-Type":"application/pdf","X-File-Name":Gv(o.fileName),"X-Save-Reason":o.reason??"manual-save"},body:r});return cn(i)},async loadAnnotations(o){return t.load(o)},async saveAnnotations(o,r){await t.save(o,r)}}}exports._sfc_main=Sv;exports.createHttpPdfEditorService=Lv;exports.createIndexedDbPdfEditorService=Ov;exports.usePdfEditorSdk=jc;
18844
+ `],{type:"application/javascript"})),d=new FF(r??2,c,o);return new lF(l,{imageConverter:dF(d),logger:o})}function yF(n="latest"){return{jp:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-jp@${n}/fonts`,kr:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-kr@${n}/fonts`,sc:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-sc@${n}/fonts`,tc:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-tc@${n}/fonts`,arabic:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-arabic@${n}/fonts`,hebrew:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-hebrew@${n}/fonts`,latin:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-latin@${n}/fonts`}}function St(n,e){return n.map(t=>({url:`${e}/${t.file}`,weight:t.weight,italic:t.italic}))}function vF(n){return{fonts:{[bt.SHIFTJIS]:St(uF,n.jp),[bt.HANGEUL]:St(pF,n.kr),[bt.GB2312]:St(mF,n.sc),[bt.CHINESEBIG5]:St(gF,n.tc),[bt.ARABIC]:St(hF,n.arabic),[bt.HEBREW]:St(fF,n.hebrew),[bt.CYRILLIC]:St(zo,n.latin),[bt.GREEK]:St(zo,n.latin),[bt.VIETNAMESE]:St(zo,n.latin)}}}const _F=yF("latest"),EF=vF(_F),DF="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.10.1/dist/pdfium.wasm",Gc=()=>je(Oc.id);function Za(n){const[e,t]=[n[0],n[1]],o=t.clientX-e.clientX,r=t.clientY-e.clientY;return Math.hypot(o,r)}function SF(n){const[e,t]=[n[0],n[1]];return{x:(e.clientX+t.clientX)/2,y:(e.clientY+t.clientY)/2}}function AF({element:n,container:e,documentId:t,zoomProvides:o,viewportGap:r=0,options:i={}}){const{enablePinch:s=!0,enableWheel:l=!0}=i;if(typeof window>"u")return()=>{};const c=o.forDocument(t),d=()=>c.getState();let u=0,p=1,g=!1,m=0,h=null,f=1,F=0,b=0,y=0,_=0,D=0,S=0,N=0,M=0,R=0,G=0,B=0,V=0,z=0;const $=(x,W,q)=>Math.min(Math.max(x,W),q),Y=()=>{const x=e.clientWidth-2*r,W=n.offsetWidth,q=W<x?(x-W)/2:0;n.style.marginLeft=`${q}px`},K=x=>{const W=F*x,q=b*x;let J=R*(1-x);const Ve=M-W/2-y,Rt=G-z*x-y,me=Math.max(0,W-N),st=N*.3,Le=Math.min(1,me/st);let Ne=Ve+(Rt-Ve)*Le;const Je=S-V*2;if(q>Je){const Me=_+J,De=V,ut=S-V-q;J=$(Me,ut,De)-_}const et=D-V*2;if(W>et){const Me=y+Ne,De=V,ut=D-V-W;Ne=$(Me,ut,De)-y}return{tx:Ne,ty:J,blend:Le,finalWidth:W}},ne=x=>{p=x;const{tx:W,ty:q}=K(x);n.style.transformOrigin="0 0",n.style.transform=`translate(${W}px, ${q}px) scale(${x})`},ve=()=>{n.style.transform="none",n.style.transformOrigin="0 0",p=1},Z=()=>{const{tx:x,finalWidth:W}=K(p),q=(p-1)*u;let J,it=B;if(W<=N)J=M;else{const Ve=1-p;J=Math.abs(Ve)>.001?y+x/Ve:G}c.requestZoomBy(q,{vx:J,vy:it}),ve(),u=0},Fe=(x,W)=>{const q=e.getBoundingClientRect(),J=n.getBoundingClientRect();V=r,F=J.width,b=J.height,y=J.left-q.left,_=J.top-q.top,D=q.width,S=q.height,N=e.clientWidth,M=e.clientLeft+N/2;const it=x-J.left;R=W-J.top,G=x-q.left,B=W-q.top,F<N?z=G*F/N:z=it},Re=x=>{if(x.touches.length!==2)return;g=!0,u=d().currentZoomLevel,m=Za(x.touches);const W=SF(x.touches);Fe(W.x,W.y),x.preventDefault()},be=x=>{if(!g||x.touches.length!==2)return;const q=Za(x.touches)/m;ne(q),x.preventDefault()},A=x=>{g&&(x.touches.length>=2||(g=!1,Z()))},O=x=>{if(!x.ctrlKey&&!x.metaKey)return;x.preventDefault(),h===null?(u=d().currentZoomLevel,f=1,Fe(x.clientX,x.clientY)):clearTimeout(h);const W=1-x.deltaY*.01;f*=W,f=Math.max(.1,Math.min(10,f)),ne(f),h=setTimeout(()=>{h=null,Z(),f=1},150)},w=c.onStateChange(()=>Y()),j=new ResizeObserver(()=>Y());return j.observe(n),j.observe(e),Y(),s&&(e.addEventListener("touchstart",Re,{passive:!1}),e.addEventListener("touchmove",be,{passive:!1}),e.addEventListener("touchend",A),e.addEventListener("touchcancel",A)),l&&e.addEventListener("wheel",O,{passive:!1}),()=>{s&&(e.removeEventListener("touchstart",Re),e.removeEventListener("touchmove",be),e.removeEventListener("touchend",A),e.removeEventListener("touchcancel",A)),l&&e.removeEventListener("wheel",O),h&&clearTimeout(h),w(),j.disconnect(),ve(),n.style.marginLeft=""}}function xF(n,e={}){const{provides:t}=je("viewport"),{provides:o}=Gc(),r=a.inject("viewport-element"),i=a.ref(null);let s;return a.watch([i,t,o,()=>a.toValue(n),()=>a.toValue(e.enablePinch??!0),()=>a.toValue(e.enableWheel??!0)],([l,c,d,u,p,g])=>{s&&(s(),s=void 0);const m=r==null?void 0:r.value;!l||!m||!d||(s=AF({element:l,container:m,documentId:u,zoomProvides:d,viewportGap:(c==null?void 0:c.getViewportGap())||0,options:{enablePinch:p,enableWheel:g}}))},{immediate:!0}),{elementRef:i}}const CF=a.defineComponent({__name:"zoom-gesture-wrapper",props:{documentId:{},enablePinch:{type:Boolean,default:!0},enableWheel:{type:Boolean,default:!0}},setup(n){const e=n,{elementRef:t}=xF(()=>e.documentId,{enablePinch:a.toRef(()=>e.enablePinch),enableWheel:a.toRef(()=>e.enableWheel)});return(o,r)=>(a.openBlock(),a.createElementBlock("div",a.mergeProps({ref_key:"elementRef",ref:t,style:{display:"inline-block",overflow:"visible",boxSizing:"border-box"}},o.$attrs),[a.renderSlot(o.$slots,"default")],16))}}),Lc=()=>kt(Ir.id),MF=()=>je(Ir.id),TF=a.defineComponent({__name:"thumbnails-pane",props:{documentId:{}},setup(n){const e=n,{plugin:t}=Lc(),o=a.ref(null),r=a.ref({window:null,docId:null}),i=a.ref(null);a.watch(r,l=>{i.value=l.docId===e.documentId?l.window:null},{deep:!0}),a.watch([()=>t.value,()=>e.documentId],([l,c],d,u)=>{if(!l){r.value={window:null,docId:null};return}const p=l.provides().forDocument(c),g=p.getWindow();g&&(r.value={window:g,docId:c});const m=p.onWindow(h=>{r.value={window:h,docId:c}});u(()=>{m(),r.value={window:null,docId:null}})},{immediate:!0}),a.watch([o,()=>t.value,()=>e.documentId],([l,c,d],u,p)=>{if(!l||!c)return;const g=c.provides().forDocument(d),m=()=>g.updateWindow(l.scrollTop,l.clientHeight);l.addEventListener("scroll",m);const h=new ResizeObserver(()=>{g.updateWindow(l.scrollTop,l.clientHeight)});h.observe(l),g.updateWindow(l.scrollTop,l.clientHeight),p(()=>{l.removeEventListener("scroll",m),h.disconnect()})},{immediate:!0}),a.watch([o,()=>t.value,()=>e.documentId,i],([l,c,d])=>{if(!l||!c)return;c.provides().forDocument(d).updateWindow(l.scrollTop,l.clientHeight)}),a.watch([o,()=>t.value,()=>e.documentId,()=>!!i.value],([l,c,d,u],p,g)=>{if(!l||!c||!u)return;const h=c.provides().forDocument(d).onScrollTo(({top:f,behavior:F})=>{a.nextTick(()=>{l.scrollTo({top:f,behavior:F})})});g(h)},{immediate:!0});const s=a.ref(0);return a.watch(()=>t.value,l=>{s.value=(l==null?void 0:l.cfg.paddingY)??0},{immediate:!0}),(l,c)=>{var d,u;return a.openBlock(),a.createElementBlock("div",a.mergeProps({ref_key:"viewportRef",ref:o,style:{overflowY:"auto",position:"relative",paddingTop:`${s.value}px`,paddingBottom:`${s.value}px`,height:"100%"}},l.$attrs),[a.createElementVNode("div",{style:a.normalizeStyle({height:`${((d=i.value)==null?void 0:d.totalHeight)??0}px`,position:"relative"})},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(((u=i.value)==null?void 0:u.items)??[],p=>a.renderSlot(l.$slots,"default",{key:p.pageIndex,meta:p})),128))],4)],16)}}}),kF=["src"],RF=a.defineComponent({__name:"thumbnail-img",props:{documentId:{},meta:{}},setup(n){const e=n,{provides:t}=MF(),{plugin:o}=Lc(),r=a.ref(null);let i=null;const s=a.ref(0);a.watch([()=>o.value,()=>e.documentId,()=>e.meta.pageIndex],([d,u,p],g,m)=>{if(!d)return;const f=d.provides().forDocument(u).onRefreshPages(F=>{F.includes(p)&&s.value++});m(f)},{immediate:!0});function l(){i&&(URL.revokeObjectURL(i),i=null)}let c=null;return a.watch([()=>t.value,()=>e.documentId,()=>e.meta.pageIndex,s],([d,u,p],g,m)=>{if(c&&(c(),c=null),!d){r.value=null;return}const f=d.forDocument(u).renderThumb(p,window.devicePixelRatio);c=()=>f.abort({code:X.Cancelled,message:"canceled render task"}),f.wait(F=>{l();const b=URL.createObjectURL(F);i=b,r.value=b,c=null},Ke),m(()=>{c&&(c(),c=null),l()})},{immediate:!0}),(d,u)=>r.value?(a.openBlock(),a.createElementBlock("img",a.mergeProps({key:0,src:r.value},d.$attrs,{onLoad:l}),null,16,kF)):a.createCommentVNode("",!0)}}),Nc=()=>je(Zl.id),wF=a.defineComponent({__name:"search-layer",props:{documentId:{},pageIndex:{},scale:{},highlightColor:{default:"#FFFF00"},activeHighlightColor:{default:"#FFBF00"}},setup(n){const e=n,{provides:t}=Nc(),o=vt(()=>e.documentId),r=a.ref(null),i=a.computed(()=>{var d;return((d=t.value)==null?void 0:d.forDocument(e.documentId))??null}),s=a.computed(()=>{var d;return e.scale!==void 0?e.scale:((d=o.value)==null?void 0:d.scale)??1});a.watch(i,(d,u,p)=>{if(!d){r.value=null;return}const g=d.getState();r.value={results:g.results,activeResultIndex:g.activeResultIndex,showAllResults:g.showAllResults,active:g.active};const m=d.onSearchResultStateChange(h=>{r.value=h});p(m)},{immediate:!0});const l=a.computed(()=>r.value?r.value.results.map((d,u)=>({result:d,originalIndex:u})).filter(({result:d})=>d.pageIndex===e.pageIndex):[]),c=a.computed(()=>r.value?l.value.filter(({originalIndex:d})=>r.value.showAllResults||d===r.value.activeResultIndex):[]);return(d,u)=>r.value&&r.value.active?(a.openBlock(),a.createElementBlock("div",a.mergeProps({key:0,style:{pointerEvents:"none"}},d.$attrs),[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(c.value,({result:p,originalIndex:g},m)=>(a.openBlock(),a.createElementBlock(a.Fragment,{key:`result-${m}`},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(p.rects,(h,f)=>(a.openBlock(),a.createElementBlock("div",{key:`rect-${m}-${f}`,style:a.normalizeStyle({position:"absolute",top:`${h.origin.y*s.value}px`,left:`${h.origin.x*s.value}px`,width:`${h.size.width*s.value}px`,height:`${h.size.height*s.value}px`,backgroundColor:g===r.value.activeResultIndex?n.activeHighlightColor:n.highlightColor,mixBlendMode:"multiply",transform:"scale(1.02)",transformOrigin:"center",transition:"opacity .3s ease-in-out",opacity:1})},null,4))),128))],64))),128))],16)):a.createCommentVNode("",!0)}}),OF=()=>kt(Or.id),IF=()=>je(Or.id),GF=a.defineComponent({__name:"scroller",props:{documentId:{}},setup(n){const e=n,{plugin:t}=OF(),o=a.ref({layout:null,docId:null});a.watch([t,()=>e.documentId],([i,s],l,c)=>{if(!i||!s){o.value={layout:null,docId:null};return}const d=i.onScrollerData(s,u=>{o.value={layout:u,docId:s}});c(()=>{d(),o.value={layout:null,docId:null},i.clearLayoutReady(s)})},{immediate:!0});const r=a.computed(()=>o.value.docId===e.documentId?o.value.layout:null);return a.watch([t,()=>e.documentId,r],([i,s,l])=>{!i||!s||!l||i.setLayoutReady(s)},{immediate:!0}),(i,s)=>r.value?(a.openBlock(),a.createElementBlock("div",a.mergeProps({key:0,style:{width:`${r.value.totalWidth}px`,height:`${r.value.totalHeight}px`,position:"relative",boxSizing:"border-box",margin:"0 auto",...r.value.strategy===a.unref(jt).Horizontal&&{display:"flex",flexDirection:"row"}}},i.$attrs),[a.createElementVNode("div",{style:a.normalizeStyle(r.value.strategy===a.unref(jt).Horizontal?{width:`${r.value.startSpacing}px`,height:"100%",flexShrink:0}:{height:`${r.value.startSpacing}px`,width:"100%"})},null,4),a.createElementVNode("div",{style:a.normalizeStyle({gap:`${r.value.pageGap}px`,display:"flex",alignItems:"center",position:"relative",boxSizing:"border-box",...r.value.strategy===a.unref(jt).Horizontal?{flexDirection:"row",minHeight:"100%"}:{flexDirection:"column",minWidth:"fit-content"}})},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(r.value.items,l=>(a.openBlock(),a.createElementBlock("div",{key:l.pageNumbers[0],style:a.normalizeStyle({display:"flex",justifyContent:"center",gap:`${r.value.pageGap}px`})},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(l.pageLayouts,c=>(a.openBlock(),a.createElementBlock("div",{key:c.pageNumber,style:a.normalizeStyle({width:`${c.rotatedWidth}px`,height:`${c.rotatedHeight}px`,position:"relative",zIndex:c.elevated?1:void 0})},[a.renderSlot(i.$slots,"default",{page:c})],4))),128))],4))),128))],4),a.createElementVNode("div",{style:a.normalizeStyle(r.value.strategy===a.unref(jt).Horizontal?{width:`${r.value.endSpacing}px`,height:"100%",flexShrink:0}:{height:`${r.value.endSpacing}px`,width:"100%"})},null,4)],16)):a.createCommentVNode("",!0)}}),LF=()=>je(il.id),NF=()=>kt(Gr.id),$c=()=>je(Gr.id),$F=n=>{const{provides:e}=$c(),t=a.ref(!1);return a.watch([e,()=>a.toValue(n)],([o,r],i,s)=>{if(!o){t.value=!1;return}t.value=o.isGated(r);const l=o.onGateChange(c=>{c.documentId===r&&(t.value=c.isGated)});s(l)},{immediate:!0}),t};function BF(n){const{plugin:e}=NF(),t=a.ref(null);let o=null;const r=i=>{const s=e.value,l=t.value;if(!l||!s)return;try{s.registerViewport(i)}catch(p){console.error(`Failed to register viewport for document ${i}:`,p);return}const c=()=>{s.setViewportScrollMetrics(i,{scrollTop:l.scrollTop,scrollLeft:l.scrollLeft})};l.addEventListener("scroll",c),new ResizeObserver(()=>{s.setViewportResizeMetrics(i,{width:l.offsetWidth,height:l.offsetHeight,clientWidth:l.clientWidth,clientHeight:l.clientHeight,scrollTop:l.scrollTop,scrollLeft:l.scrollLeft,scrollWidth:l.scrollWidth,scrollHeight:l.scrollHeight,clientLeft:l.clientLeft,clientTop:l.clientTop})}).observe(l);const u=s.onScrollRequest(i,({x:p,y:g,behavior:m="auto"})=>{requestAnimationFrame(()=>{l.scrollTo({left:p,top:g,behavior:m})})});return()=>{s.unregisterViewport(i),l.removeEventListener("scroll",c),u()}};return a.watch([e,t,()=>a.toValue(n)],([,,i])=>{o&&(o(),o=null),o=r(i)||null},{immediate:!0}),a.onBeforeUnmount(()=>{o&&(o(),o=null)}),t}const jF=a.defineComponent({__name:"viewport",props:{documentId:{}},setup(n){const e=n,t=a.useAttrs(),{provides:o}=$c(),r=a.ref(0);a.watch(o,l=>{l&&(r.value=l.getViewportGap())},{immediate:!0});const i=$F(()=>e.documentId),s=BF(()=>e.documentId);return a.provide("viewport-element",s),(l,c)=>(a.openBlock(),a.createElementBlock("div",a.mergeProps({ref_key:"viewportRef",ref:s},a.unref(t),{style:{padding:`${r.value}px`,width:"100%",height:"100%",overflow:"auto"}}),[a.unref(i)?a.createCommentVNode("",!0):a.renderSlot(l.$slots,"default",{key:0})],16))}}),Bc=()=>je(pc.id),UF=["src"],zF=a.defineComponent({__name:"tile-img",props:{documentId:{},pageIndex:{},tile:{},scale:{},dpr:{default:()=>typeof window<"u"?window.devicePixelRatio:1}},setup(n){const e=n,{provides:t}=Bc(),o=a.ref(),r=a.computed(()=>e.scale/e.tile.srcScale);let i,s=null;return a.watch([()=>e.tile.id,()=>e.documentId,t],([l,c,d],[u,p])=>{if(!d)return;const g=d.forDocument(c);p!==void 0&&p!==c&&(o.value&&(URL.revokeObjectURL(o.value),o.value=void 0),s&&(s.abort({code:X.Cancelled,message:"switching documents"}),s=null),i=void 0),!(i===l&&p===c)&&(s&&(s.abort({code:X.Cancelled,message:"switching tiles"}),s=null),o.value&&(URL.revokeObjectURL(o.value),o.value=void 0),i=l,s=g.renderTile({pageIndex:e.pageIndex,tile:a.toRaw(e.tile),dpr:e.dpr}),s.wait(m=>{o.value=URL.createObjectURL(m),s=null},Ke))},{immediate:!0}),a.onBeforeUnmount(()=>{s&&s.abort({code:X.Cancelled,message:"unmounting"}),o.value&&URL.revokeObjectURL(o.value)}),(l,c)=>o.value?(a.openBlock(),a.createElementBlock("img",{key:0,src:o.value,style:a.normalizeStyle({position:"absolute",left:`${n.tile.screenRect.origin.x*r.value}px`,top:`${n.tile.screenRect.origin.y*r.value}px`,width:`${n.tile.screenRect.size.width*r.value}px`,height:`${n.tile.screenRect.size.height*r.value}px`,display:"block"})},null,12,UF)):a.createCommentVNode("",!0)}}),WF=a.defineComponent({__name:"tiling-layer",props:{documentId:{},pageIndex:{},scale:{}},setup(n){const e=n,{provides:t}=Bc(),o=vt(()=>e.documentId),r=a.ref([]),i=a.computed(()=>{var s;return e.scale!==void 0?e.scale:((s=o.value)==null?void 0:s.scale)??1});return a.watch([t,()=>e.documentId,()=>e.pageIndex],([s,l,c],d,u)=>{if(!s){r.value=[];return}const p=s.onTileRendering(g=>{g.documentId===l&&(r.value=g.tiles[c]??[])});u(p)},{immediate:!0}),(s,l)=>(a.openBlock(),a.createElementBlock("div",a.normalizeProps(a.guardReactiveProps(s.$attrs)),[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(r.value,c=>(a.openBlock(),a.createBlock(zF,{key:c.id,documentId:n.documentId,pageIndex:n.pageIndex,tile:c,scale:i.value},null,8,["documentId","pageIndex","tile","scale"]))),128))],16))}}),HF=()=>je(Tl.id),VF=["src"],YF=a.defineComponent({__name:"render-layer",props:{documentId:{},pageIndex:{},scale:{},dpr:{}},setup(n){const e=n,{provides:t}=HF(),o=vt(()=>e.documentId),r=a.ref(null);let i=null,s=!1;const l=a.computed(()=>o.value&&o.value.pageRefreshVersions[e.pageIndex]||0),c=a.computed(()=>{var p;return e.scale!==void 0?e.scale:((p=o.value)==null?void 0:p.scale)??1}),d=a.computed(()=>e.dpr!==void 0?e.dpr:window.devicePixelRatio);a.watch([()=>e.documentId,()=>e.pageIndex,c,d,t,l],([p,g,m,h,f],[F],b)=>{if(!f){r.value=null;return}F!==void 0&&F!==p&&(r.value=null,i&&s&&(URL.revokeObjectURL(i),i=null,s=!1)),i&&s&&F===p&&(URL.revokeObjectURL(i),i=null,s=!1);const y=f.forDocument(p).renderPage({pageIndex:g,options:{scaleFactor:m,dpr:h}});y.wait(_=>{const D=URL.createObjectURL(_);i=D,r.value=D,s=!1},Ke),b(()=>{i?s&&(URL.revokeObjectURL(i),i=null,s=!1):y.abort({code:X.Cancelled,message:"canceled render task"})})},{immediate:!0});function u(){s=!0}return(p,g)=>r.value?(a.openBlock(),a.createElementBlock("img",a.mergeProps({key:0,src:r.value,style:{width:"100%",height:"100%"},onLoad:u},p.$attrs),null,16,VF)):a.createCommentVNode("",!0)}}),qF={annotation:!0,ink:!0,freeText:!0,redaction:!0,export:!0,thumbnail:!0,search:!0};function jc(n){const e=a.ref("正在初始化 PDF 编辑器"),t=a.ref(!1),o=a.ref(!1),r=a.computed(()=>{var s,l,c,d,u;return{...qF,...n.capabilities??{},annotation:n.readonly?!1:((s=n.capabilities)==null?void 0:s.annotation)??!0,ink:n.readonly?!1:((l=n.capabilities)==null?void 0:l.ink)??!0,freeText:n.readonly?!1:((c=n.capabilities)==null?void 0:c.freeText)??!0,redaction:n.readonly?!1:((d=n.capabilities)==null?void 0:d.redaction)??!0,export:((u=n.capabilities)==null?void 0:u.export)??!0}}),i=a.computed(()=>n.source.type!=="url"&&r.value.export);return{capabilities:r,canSaveToService:i,statusMessage:e,leftDrawerOpen:t,rightDrawerOpen:o}}function or(n,e){if(n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean")return n;if(typeof n=="bigint")return n.toString();if(!(typeof n>"u"||typeof n=="function"||typeof n=="symbol")){if(n instanceof Date)return n.toISOString();if(n instanceof Blob||n instanceof ArrayBuffer||ArrayBuffer.isView(n))return n;if(Array.isArray(n))return n.map(t=>or(t,e)).filter(t=>t!==void 0);if(typeof n=="object"){const t=n;if(e.has(t))return e.get(t);const o={};e.set(t,o);for(const[r,i]of Object.entries(t)){const s=or(i,e);s!==void 0&&(o[r]=s)}return o}}}function Uc(n){return n.map(e=>or(e,new WeakMap)).filter(e=>!!e)}const XF={key:0,class:"jit-ribbon"},KF={class:"jit-ribbon__topbar"},ZF={class:"jit-ribbon__document"},QF={class:"jit-toolbar__title"},JF={class:"jit-ribbon__meta"},eb={class:"jit-ribbon__badge"},tb={class:"jit-ribbon__page"},nb={class:"jit-ribbon__actions"},ob=["disabled"],rb=["disabled"],ab=["data-tooltip"],ib=["data-tooltip"],sb=["data-tooltip"],lb={class:"jit-ribbon__tabs",role:"tablist","aria-label":"编辑器功能区"},cb=["data-tooltip","aria-selected","onClick"],db={class:"jit-ribbon__panels"},ub={key:0,class:"jit-ribbon__bar"},pb={class:"jit-ribbon__section jit-ribbon__section--view"},mb={class:"jit-ribbon__section-body"},gb={class:"jit-zoom-chip"},hb={class:"jit-ribbon__section jit-ribbon__section--history"},fb={class:"jit-ribbon__section-body"},Pb=["disabled"],Fb=["disabled"],bb={class:"jit-ribbon__section jit-ribbon__section--save"},yb={class:"jit-ribbon__section-body jit-ribbon__section-body--save"},vb=["disabled"],_b=["disabled"],Eb={key:1,class:"jit-ribbon__bar jit-ribbon__bar--annotate"},Db={class:"jit-ribbon__section jit-ribbon__section--tools"},Sb={class:"jit-ribbon__section-body jit-ribbon__section-body--tools"},Ab=["aria-label","disabled","onClick"],xb={key:0,viewBox:"0 0 24 24","aria-hidden":"true"},Cb={key:1,viewBox:"0 0 24 24","aria-hidden":"true"},Mb={key:2,viewBox:"0 0 24 24","aria-hidden":"true"},Tb={key:3,viewBox:"0 0 24 24","aria-hidden":"true"},kb={key:4,viewBox:"0 0 24 24","aria-hidden":"true"},Rb={key:5,viewBox:"0 0 24 24","aria-hidden":"true"},wb={class:"jit-ribbon__section jit-ribbon__section--style"},Ob={class:"jit-style-panel"},Ib={class:"jit-style-row"},Gb={class:"jit-color-palette"},Lb=["title","disabled","onClick"],Nb={key:0,class:"jit-style-row"},$b={class:"jit-style-control"},Bb={key:1,class:"jit-style-row"},jb={class:"jit-style-control"},Ub={key:2,class:"jit-style-row"},zb={class:"jit-style-control"},Wb={class:"jit-ribbon__section jit-ribbon__section--hint"},Hb={class:"jit-ribbon__hint"},Vb={class:"jit-ribbon__metric"},Yb={class:"jit-ribbon__hint-chip"},qb=["disabled"],Xb={key:2,class:"jit-ribbon__bar jit-ribbon__bar--view"},Kb={class:"jit-ribbon__section jit-ribbon__section--view"},Zb={class:"jit-ribbon__section-body"},Qb={class:"jit-zoom-chip"},Jb={class:"jit-ribbon__section jit-ribbon__section--layout"},ey={class:"jit-ribbon__section-body"},ty=["aria-label"],ny=["aria-label"],oy={class:"jit-ribbon__section jit-ribbon__section--summary"},ry={class:"jit-ribbon__summary"},ay={class:"jit-ribbon__metric"},iy={class:"jit-ribbon__metric"},sy={key:3,class:"jit-ribbon__bar jit-ribbon__bar--review"},ly={class:"jit-ribbon__section jit-ribbon__section--search-wide"},cy={class:"jit-ribbon__section-body jit-ribbon__section-body--search"},dy={class:"jit-search-box"},uy=["onKeydown"],py=["disabled"],my=["disabled"],gy=["disabled"],hy={class:"jit-ribbon__section jit-ribbon__section--save"},fy={class:"jit-ribbon__section-body jit-ribbon__section-body--save"},Py=["disabled"],Fy=["disabled"],by={class:"jit-ribbon__section jit-ribbon__section--summary"},yy={class:"jit-ribbon__summary"},vy={class:"jit-ribbon__metric"},_y={class:"jit-ribbon__metric"},Ey={class:"jit-sidebar__header"},Dy={key:0,class:"jit-sidebar__headline"},Sy=["aria-label"],Ay={key:0,viewBox:"0 0 24 24","aria-hidden":"true"},xy={key:1,viewBox:"0 0 24 24","aria-hidden":"true"},Cy=["onClick"],My={class:"jit-thumbnail__paper"},Ty={class:"jit-thumbnail__meta"},ky={class:"jit-thumbnail__label"},Ry={key:0,class:"jit-thumbnail__current"},wy={key:1,class:"jit-sidebar__empty"},Oy={class:"jit-canvas"},Iy={class:"jit-right-rail"},Gy=["aria-label"],Ly=["aria-label"],Ny=["aria-label"],$y={class:"jit-inspector__header"},By={class:"jit-inspector__body"},jy={key:0,class:"jit-note-editor"},Uy={class:"jit-note-editor__header"},zy={class:"jit-note-editor__title-row"},Wy=["disabled"],Hy={class:"jit-note-editor__field"},Vy={class:"jit-note-editor__footer"},Yy={class:"jit-meta"},qy={class:"jit-panel-note"},Xy={key:0},Ky={key:1},Zy={key:2},Qy={class:"jit-annotation-panel__header"},Jy={class:"jit-annotation-panel__header-actions"},ev=["disabled"],tv=["disabled"],nv={class:"jit-annotation-panel__body"},ov={class:"jit-annotation-toolbar"},rv={class:"jit-annotation-toolbar__search"},av={class:"jit-annotation-toolbar__filter"},iv=["value"],sv={key:0,class:"jit-annotation-list"},lv={class:"jit-annotation-group__header"},cv=["aria-label","onClick"],dv={key:0},uv=["onClick"],pv={class:"jit-annotation-item__meta"},mv={class:"jit-annotation-item__chips"},gv={key:0,class:"jit-annotation-chip"},hv={key:1,class:"jit-annotation-chip"},fv={key:2,class:"jit-annotation-chip is-active"},Pv={key:3,class:"jit-annotation-chip is-warning"},Fv=["aria-label","onClick"],bv={key:1,class:"jit-annotation-panel__empty"},yv={key:0,class:"jit-state"},vv={key:1,class:"jit-state jit-state--error"},_v={key:3,class:"jit-state"},Ev="https://jitword.com/jit-pdf.html",Dv=a.defineComponent({__name:"JitPdfEditorInner",props:{source:{},locale:{},theme:{},capabilities:{},service:{},readonly:{type:Boolean},showToolbar:{type:Boolean},activeDocumentId:{},pluginsReady:{type:Boolean},isInitializing:{type:Boolean}},emits:["ready","dirty-change","save-start","save-success","save-error","load-error"],setup(n,{emit:e}){const t=n,o=e,{capabilities:r,canSaveToService:i,leftDrawerOpen:s,rightDrawerOpen:l,statusMessage:c}=jc(t),d=a.ref(""),u=a.ref(""),p=a.ref("浏览"),g=a.ref(!1),m=a.ref("home"),h=a.computed(()=>t.source.type==="url"?`url:${t.source.url}`:`${t.source.type}:${t.source.fileId}`),f=a.computed(()=>t.source.type==="url"?null:t.source.fileId),{provides:F}=Zs(),{provides:b}=Tt(),{provides:y}=LF(),_=yr(()=>t.activeDocumentId??"");function D(v){const{provides:P}=Gc(),T=a.ref(to);return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=to;return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=to;return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function S(v){const{provides:P}=Nc(),T=a.ref(xn);return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=xn;return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=xn;return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function N(v){const{provides:P}=Tt(),T=a.ref(Qn());return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=Qn();return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=Qn();return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function M(v){const{provides:P}=Dl(),T=a.ref(eo);return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value=eo;return}const ie=U.forDocument(C);try{T.value=ie.getState()}catch{T.value=eo;return}const _t=ie.onStateChange(ct=>{T.value=ct});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function R(v){const{provides:P}=IF(),T=a.ref({currentPage:1,totalPages:1});return a.watch([P,v],([U,C],Q,fe)=>{if(!U||!C){T.value={currentPage:1,totalPages:1};return}const ie=U.forDocument(C);T.value={currentPage:ie.getCurrentPage(),totalPages:ie.getTotalPages()};const _t=U.onPageChange(ct=>{ct.documentId===C&&(T.value={currentPage:ct.pageNumber,totalPages:ct.totalPages})});fe(_t)},{immediate:!0}),{state:T,provides:a.computed(()=>{const U=v.value;return U&&P.value?P.value.forDocument(U):null})}}function G(v){const{provides:P}=el();return{provides:a.computed(()=>{const T=v.value;return T&&P.value?P.value.forDocument(T):null})}}const B=a.computed(()=>t.activeDocumentId??null),{provides:V,state:z}=D(B),{provides:$,state:Y}=S(B),{provides:K,state:ne}=N(B),{provides:ve,state:Z}=M(B),{provides:Fe}=G(B),{provides:Re,state:be}=R(B),A=a.computed(()=>ne.value.hasPendingChanges||Z.value.pendingCount>0),O=a.computed(()=>z.value.currentZoomLevel||1),w=a.computed(()=>be.value.currentPage||1),j=a.computed(()=>be.value.totalPages||0),x=a.computed(()=>{var v;return((v=y.value)==null?void 0:v.canUndo())??!1}),W=a.computed(()=>{var v;return((v=y.value)==null?void 0:v.canRedo())??!1}),q=a.computed(()=>Y.value.total||0),J=a.computed(()=>`${Math.round(O.value*100)}%`),it=a.computed(()=>!t.readonly&&_.value.canModifyAnnotations),Ve=a.computed(()=>t.readonly?"只读":it.value?"可批注":"受限"),Rt=a.computed(()=>{var v;return[...((v=b.value)==null?void 0:v.getColorPresets())??[],"#1677FF","#0958D9","#18A058","#D03050","#FA8C16"].filter((P,T,U)=>U.indexOf(P)===T)}),me=a.ref(null),st=a.ref("#1677FF"),Le=a.ref(.7),Ne=a.ref(6),Je=a.ref(14),et=a.ref(""),Me=a.ref("idle");let De=null;const ut=a.computed(()=>["highlight","textComment","freeText","ink"].includes(me.value??"")),Yt=a.computed(()=>["highlight","textComment","freeText","ink"].includes(me.value??"")),lt=a.computed(()=>me.value==="ink"),Pn=a.computed(()=>me.value==="freeText"),wt=a.computed(()=>ne.value.selectedUids??[]),Ye=a.computed(()=>wt.value.length),Ue=a.computed(()=>wt.value[0]??null),Te=a.computed(()=>Ue.value?ne.value.byUid[Ue.value]??null:null),k=a.computed(()=>Ue.value?le(Ue.value):null),oe=a.computed(()=>{var v,P;return Te.value?((P=(v=K.value)==null?void 0:v.findToolForAnnotation(Te.value.object))==null?void 0:P.id)??null:null}),ce=a.computed(()=>oe.value==="textComment"),Se=a.computed(()=>{if(!ce.value||!Te.value)return"";const{contents:v}=Te.value.object;return typeof v=="string"?v:""}),ge=a.computed(()=>!ce.value||!Te.value?null:{id:Ue.value,pageIndex:k.value,pageLabel:k.value===null?"-":String(k.value+1)}),pt=a.computed(()=>et.value.length),mt=a.computed(()=>{if(!ce.value)return"未选中便签";switch(Me.value){case"editing":return"编辑中";case"saving":return"正在保存";case"saved":return"已保存";case"error":return"保存失败";default:return"可编辑"}}),Ae=a.computed(()=>Zu(ne.value)),ze=a.computed(()=>Ae.value.length),$e=a.ref(""),Ee=a.ref("all"),Be=a.ref(!1),se=a.ref([]),tt=a.ref(!1);function gt(v){return Uc(v)}const Fn=a.computed(()=>gt(Object.values(ne.value.byUid).filter(v=>v.commitState!=="deleted").map(v=>v.object))),Ot={browse:"浏览",highlight:"高亮",textComment:"便签",freeText:"自由文本",ink:"涂鸦",redact:"脱敏"},Ln=[{id:"home",label:"开始",description:"页面浏览、缩放和保存"},{id:"annotate",label:"批注",description:"高亮、便签、文本框、涂鸦、脱敏"},{id:"view",label:"视图",description:"页面定位、目录和阅读布局"},{id:"review",label:"审阅",description:"搜索、结果导航和脱敏提交"}],_o=a.computed(()=>[{id:"browse",label:"浏览",icon:"pointer",active:p.value==="浏览",disabled:!1,danger:!1,onClick:()=>ht(null,"浏览")},{id:"highlight",label:"高亮",icon:"highlight",active:p.value==="高亮",disabled:!r.value.annotation,danger:!1,onClick:()=>ht("highlight","高亮")},{id:"note",label:"便签",icon:"note",active:p.value==="便签",disabled:!r.value.annotation,danger:!1,onClick:()=>ht("textComment","便签")},{id:"freeText",label:"文本框",icon:"text",active:p.value==="自由文本",disabled:!r.value.freeText,danger:!1,onClick:()=>ht("freeText","自由文本")},{id:"ink",label:"涂鸦",icon:"draw",active:p.value==="涂鸦",disabled:!r.value.ink,danger:!1,onClick:()=>ht("ink","涂鸦")},{id:"redact",label:"脱敏",icon:"redact",active:p.value==="脱敏",disabled:!r.value.redaction,danger:!0,onClick:()=>I()}]);let Nn="",It=!1,Gt=0,on="",qt=null;function Eo(v){return/^(https?:\/\/|\/)/.test(v)}a.watch(A,v=>{o("dirty-change",{dirty:v})}),a.watch([h,()=>t.pluginsReady,F],async([v,P,T])=>{if(!P||!T||v===Nn)return;const U=++Gt;It=!1,on="",p.value="浏览",me.value=null,c.value="正在分段加载文档",u.value="";try{const C=t.source.type==="url"?t.source.url:t.service.getFileStreamUrl(t.source.fileId),Q=t.source.name??(t.source.type==="url"?"外部文档.pdf":(await t.service.getFileMeta(t.source.fileId)).name);if(U!==Gt||(await T.closeAllDocuments().toPromise().catch(()=>[]),U!==Gt))return;const ie=await T.openDocumentUrl({url:C,name:Q,autoActivate:!0,...Eo(C)?{mode:"range-request"}:{}}).toPromise();if(U!==Gt){await T.closeAllDocuments().toPromise().catch(()=>[]);return}Nn=v,It=!0,c.value="文档已就绪",o("ready",{documentId:ie.documentId})}catch(C){if(U!==Gt)return;c.value="文档加载失败",o("load-error",{message:C instanceof Error?C.message:"文档加载失败",cause:C})}},{immediate:!0}),a.watch([f,()=>t.activeDocumentId,K,()=>t.pluginsReady],async([v,P,T,U])=>{if(!v||!P||!T||!U||!It)return;const C=`${v}:${P}`;if(on!==C){on=C,tt.value=!0;try{const Q=await t.service.loadAnnotations(v),fe=Object.keys(ne.value.byUid).length>0;Q.length&&!fe&&T.importAnnotations(Q.map(ie=>({annotation:ie})))}catch(Q){u.value=Q instanceof Error?`批注恢复失败:${Q.message}`:"批注恢复失败"}finally{window.setTimeout(()=>{tt.value=!1},0)}}},{immediate:!0}),a.watch([f,Fn,()=>t.activeDocumentId],([v,P,T])=>{!v||!T||tt.value||!It||(qt!==null&&window.clearTimeout(qt),qt=window.setTimeout(async()=>{try{await t.service.saveAnnotations(v,P)}catch(U){u.value=U instanceof Error?`批注同步失败:${U.message}`:"批注同步失败"}},320))},{deep:!0});function ht(v,P){var T,U;if((T=ve.value)==null||T.endRedact(),v&&!it.value){me.value=null,p.value="浏览",u.value="当前文档未授予批注权限,已保持浏览模式。",c.value="当前文档禁止批注";return}(U=K.value)==null||U.setActiveTool(v),queueMicrotask(()=>{var Q,fe;const C=((fe=(Q=K.value)==null?void 0:Q.getActiveTool())==null?void 0:fe.id)??ne.value.activeToolId??null;if(v&&C!==v){me.value=C,p.value=Ot[C??"browse"]??P,u.value="批注工具尚未真正激活,已保持当前浏览状态。",c.value="批注工具未成功激活";return}if(me.value=C,p.value=Ot[C??"browse"]??P,u.value="",C){he(C),c.value=`已切换到${Ot[C]??P}`;return}c.value="浏览模式"})}a.watch(()=>ne.value.activeToolId,v=>{me.value==="redact"&&!v||(me.value=v,p.value=Ot[v??"browse"]??"浏览",v&&he(v))}),a.watch([ce,Se,Ue],([v,P])=>{if(De!==null&&(window.clearTimeout(De),De=null),!v){et.value="",Me.value="idle";return}et.value=P,Me.value="idle",l.value=!0},{immediate:!0}),a.watch(()=>me.value,v=>{v==="textComment"&&(l.value=!0,u.value="点击页面插入便签,随后可在右侧填写说明内容。",c.value="便签模式")});function I(){var v,P;(v=ve.value)==null||v.enableRedact(),(P=K.value)==null||P.setActiveTool(null),me.value="redact",p.value="脱敏",u.value="",c.value="脱敏模式"}function te(){g.value=!g.value}function qe(){l.value=!l.value}function xe(v){var P;(P=Re.value)==null||P.scrollToPage({pageNumber:v+1,behavior:"smooth",alignY:0}),c.value=`已定位到第 ${v+1} 页`}function he(v){var T,U;const P=(U=(T=b.value)==null?void 0:T.getTool(v))==null?void 0:U.defaults;P&&(st.value=String(P.strokeColor??P.fontColor??P.color??st.value),Le.value=Number(P.opacity??Le.value),Ne.value=Number(P.strokeWidth??Ne.value),Je.value=Number(P.fontSize??Je.value))}function le(v){const P=Object.entries(ne.value.pages).find(([,T])=>T.includes(v));return P?Number(P[0]):null}function nt(){var T;if(!((T=ge.value)!=null&&T.id)||ge.value.pageIndex===null||!K.value)return;const v=et.value.replace(/\u00A0/g," "),P=Se.value.replace(/\u00A0/g," ");if(v===P){Me.value=Me.value==="error"?"error":"saved";return}Me.value="saving";try{K.value.updateAnnotation(ge.value.pageIndex,ge.value.id,{contents:v}),Me.value="saved",c.value="便签内容已更新",u.value="便签内容已自动保存。"}catch(U){Me.value="error",u.value=U instanceof Error?`便签保存失败:${U.message}`:"便签保存失败"}}function we(){De!==null&&window.clearTimeout(De),De=window.setTimeout(()=>{De=null,nt()},320)}function rn(){ce.value&&(Me.value="editing",we())}function $n(){ce.value&&(De!==null&&(window.clearTimeout(De),De=null),nt())}function Xe(v){const P=Object.entries(ne.value.byUid).find(([T,U])=>T===v.object.id||U===v||U.object===v.object);return(P==null?void 0:P[0])??v.object.id}function Xt(v){const P=new Map;for(const T of v){const U=[T.annotation,...T.groupMembers??[],...T.replies];for(const C of U){const Q=Xe(C),fe=le(Q)??T.page;fe!==null&&P.set(Q,{id:Q,pageIndex:fe})}}return[...P.values()]}function bn(v){var T;const P=Xe(v.annotation);xe(v.page),(T=K.value)==null||T.selectAnnotation(v.page,P),u.value=`已定位到第 ${v.page+1} 页的${Ao(v)}。`}function Do(){if(!K.value||!Ye.value){u.value="当前没有选中的批注。";return}const v=wt.value.map(P=>{const T=le(P);return T===null?null:{id:P,pageIndex:T}}).filter(P=>P!==null);if(!v.length){u.value="当前选中的批注暂时无法删除。";return}K.value.deleteAnnotations(v),u.value=`已删除 ${v.length} 个选中批注。`,c.value=`已删除 ${v.length} 个批注`}function Hc(v){if(!K.value)return;const P=Xt([v]);if(!P.length){u.value="当前批注暂时无法删除。";return}K.value.deleteAnnotations(P),u.value=`已删除第 ${v.page+1} 页的${Ao(v)}。`,c.value="批注已删除"}function So(){Be.value=!Be.value}function Vc(v){se.value=se.value.includes(v)?se.value.filter(P=>P!==v):[...se.value,v]}function Yc(){if(Br.value){const v=new Set(yn.value);se.value=se.value.filter(P=>!v.has(P));return}se.value=[...new Set([...se.value,...yn.value])]}function qc(){if(!K.value||!jn.value){u.value="请先在批注管理面板中勾选要删除的批注。";return}const v=se.value.map(P=>{const T=le(P);return T===null?null:{id:P,pageIndex:T}}).filter(P=>P!==null);if(!v.length){u.value="当前筛选结果里没有可删除的批注。";return}K.value.deleteAnnotations(v),se.value=[],u.value=`已批量删除 ${v.length} 个批注。`,c.value=`已删除 ${v.length} 个批注`}function Ao(v){var T,U;const P=(U=(T=K.value)==null?void 0:T.findToolForAnnotation(v.annotation.object))==null?void 0:U.id;return Ot[P??""]??"批注"}function Xc(v){const P=v.annotation.object.contents,T=typeof P=="string"?P.trim():"";if(T)return T;const U=v.replies.map(C=>C.object.contents).find(C=>typeof C=="string"&&C.trim().length>0);return U?U.trim():`${Ao(v)} · 第 ${v.page+1} 页`}const Bn=a.computed(()=>Ae.value.map(v=>{var Q,fe,ie;const P=Xe(v.annotation),T=((fe=(Q=K.value)==null?void 0:Q.findToolForAnnotation(v.annotation.object))==null?void 0:fe.id)??"annotation",U=Ot[T]??"批注",C=Xc(v);return{id:P,page:v.page,kindId:T,kindLabel:U,summary:C,repliesCount:v.replies.length,groupCount:(((ie=v.groupMembers)==null?void 0:ie.length)??0)+1,isCanvasSelected:wt.value.includes(P),entry:v,searchText:`${U} ${C} 第 ${v.page+1} 页`.toLowerCase()}})),Lr=a.computed(()=>{const v=new Map;for(const P of Bn.value){const T=v.get(P.kindId);if(T){T.count+=1;continue}v.set(P.kindId,{id:P.kindId,label:P.kindLabel,count:1})}return[{id:"all",label:"全部类型",count:Bn.value.length},...[...v.values()].sort((P,T)=>P.label.localeCompare(T.label,"zh-CN"))]}),Nr=a.computed(()=>{const v=$e.value.trim().toLowerCase();return Bn.value.filter(P=>{const T=Ee.value==="all"||P.kindId===Ee.value,U=!v||P.searchText.includes(v);return T&&U})}),$r=a.computed(()=>{const v=new Map;for(const P of Nr.value){const T=v.get(P.page)??[];T.push(P),v.set(P.page,T)}return[...v.entries()].sort(([P],[T])=>P-T).map(([P,T])=>({page:P,items:T}))}),yn=a.computed(()=>Nr.value.map(v=>v.id)),jn=a.computed(()=>se.value.length),Br=a.computed(()=>yn.value.length>0&&yn.value.every(v=>se.value.includes(v)));a.watch(Bn,v=>{const P=new Set(v.map(T=>T.id));se.value=se.value.filter(T=>P.has(T))}),a.watch(Lr,v=>{v.some(P=>P.id===Ee.value)||(Ee.value="all")});function jr(v){const P=v.target;P&&(P instanceof HTMLInputElement||P instanceof HTMLTextAreaElement||P.isContentEditable)||v.key!=="Backspace"&&v.key!=="Delete"||Ye.value&&(v.preventDefault(),Do())}function an(v){var P;!me.value||me.value==="redact"||(P=b.value)==null||P.setToolDefaults(me.value,v)}function Kc(v){if(st.value=v,me.value==="freeText"){an({fontColor:v});return}if(me.value==="ink"){an({strokeColor:v,color:v});return}an({strokeColor:v})}function Zc(){an({opacity:Le.value})}function Qc(){me.value==="ink"&&an({strokeWidth:Ne.value})}function Jc(){me.value==="freeText"&&an({fontSize:Je.value})}async function Ur(){const v=d.value.trim();!v||!$.value||(c.value="正在检索全文",await $.value.searchAllPages(v).toPromise(),$.value.setShowAllResults(!0),Y.value.total>0&&$.value.goToResult(0),c.value=Y.value.total?`已定位 ${Y.value.total} 处结果`:"未找到匹配内容")}function ed(){var v;(v=V.value)==null||v.zoomIn()}function td(){var v;(v=V.value)==null||v.zoomOut()}function zr(){var v;(v=V.value)==null||v.requestZoom(Ge.FitWidth)}function Wr(){var v;(v=V.value)==null||v.requestZoom(Ge.FitPage)}function nd(){var v;(v=V.value)==null||v.requestZoom(Ge.Automatic)}function Hr(){var v;(v=Re.value)==null||v.scrollToPreviousPage("smooth")}function Vr(){var v;(v=Re.value)==null||v.scrollToNextPage("smooth")}function Yr(){var v;(v=y.value)==null||v.undo()}function qr(){var v;(v=y.value)==null||v.redo()}async function xo(v="manual-save"){if(!t.activeDocumentId||!Fe.value||!i.value){u.value="当前文档来源不支持另存副本";return}o("save-start");try{const P=await Fe.value.saveAsCopy().toPromise(),T=await t.service.saveCopy({fileId:f.value??t.activeDocumentId,fileName:t.source.name??"document.pdf",content:new Blob([P],{type:"application/pdf"}),reason:v});u.value=`已保存到 ${T.relativePath}`,o("save-success",T)}catch(P){const T=P instanceof Error?P.message:"保存失败";u.value=T,o("save-error",{message:T,cause:P})}}async function Xr(){if(!ve.value||!Z.value.pendingCount){u.value="当前没有待提交的脱敏内容";return}if(!window.confirm("脱敏提交后将影响导出副本内容,是否继续并另存新副本?"))return;if(!await ve.value.commitAllPending().toPromise()){u.value="脱敏提交未完成";return}await xo("redaction-save")}const od=a.computed(()=>t.readonly?"只读状态":ce.value?"便签编辑":Z.value.pendingCount>0?"待提交脱敏":"编辑状态");return a.onMounted(()=>{window.addEventListener("keydown",jr)}),a.onBeforeUnmount(()=>{window.removeEventListener("keydown",jr),qt!==null&&window.clearTimeout(qt),De!==null&&window.clearTimeout(De)}),a.watch(()=>t.activeDocumentId,v=>{v&&It&&(c.value="文档已就绪")}),(v,P)=>{var T,U;return a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["jit-pdf-editor",{"jit-pdf-editor--without-toolbar":!n.showToolbar}])},[n.showToolbar?(a.openBlock(),a.createElementBlock("header",XF,[a.createElementVNode("div",KF,[a.createElementVNode("div",ZF,[a.createElementVNode("button",{class:"jit-toolbar__toggle",onClick:P[0]||(P[0]=C=>s.value=!a.unref(s))},"目录"),a.createElementVNode("div",QF,[a.createElementVNode("strong",null,a.toDisplayString(n.source.name??"未命名文档"),1),a.createElementVNode("span",null,a.toDisplayString(a.unref(c)),1)])]),a.createElementVNode("div",JF,[a.createElementVNode("span",eb,a.toDisplayString(((T=Ln.find(C=>C.id===m.value))==null?void 0:T.label)??"开始"),1),a.createElementVNode("span",tb,"第 "+a.toDisplayString(w.value)+" 页 / 共 "+a.toDisplayString(j.value||"-")+" 页",1)]),a.createElementVNode("div",nb,[a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":"撤销最近一次操作",disabled:!x.value,onClick:Yr},"撤销",8,ob),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":"重做刚刚撤销的内容",disabled:!W.value,onClick:qr},"重做",8,rb),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":g.value?"展开左侧缩略图导航":"收起左侧缩略图导航",onClick:te},a.toDisplayString(g.value?"展开目录":"收起目录"),9,ab),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":Be.value?"隐藏批注管理抽屉":"显示批注管理抽屉",onClick:So},a.toDisplayString(Be.value?"隐藏批注":"显示批注"),9,ib),a.createElementVNode("button",{class:"jit-ribbon__action","data-tooltip":a.unref(l)?"隐藏悬浮属性面板":"显示悬浮属性面板",onClick:qe},a.toDisplayString(a.unref(l)?"隐藏属性":"显示属性"),9,sb),a.createElementVNode("button",{class:"jit-toolbar__toggle",onClick:qe},"状态")])]),a.createElementVNode("div",lb,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(Ln,C=>a.createElementVNode("button",{key:C.id,class:a.normalizeClass(["jit-ribbon__tab",{"is-active":m.value===C.id}]),"data-tooltip":C.description,"aria-selected":m.value===C.id,onClick:Q=>m.value=C.id},a.toDisplayString(C.label),11,cb)),64))]),a.createElementVNode("div",db,[m.value==="home"?(a.openBlock(),a.createElementBlock("div",ub,[a.createElementVNode("section",{class:"jit-ribbon__section jit-ribbon__section--nav"},[a.createElementVNode("div",{class:"jit-ribbon__section-body"},[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"上一页",onClick:Hr},[...P[13]||(P[13]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 18l-6-6 6-6"})],-1),a.createElementVNode("span",null,"上一页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"下一页",onClick:Vr},[...P[14]||(P[14]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 6l6 6-6 6"})],-1),a.createElementVNode("span",null,"下一页",-1)])])]),P[15]||(P[15]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"页面浏览",-1))]),a.createElementVNode("section",pb,[a.createElementVNode("div",mb,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"缩小",onClick:td},[...P[16]||(P[16]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 12h8"}),a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1),a.createElementVNode("span",null,"缩小",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"放大",onClick:ed},[...P[17]||(P[17]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M10 7v6"></path><path d="M7 10h6"></path><path d="M14.5 14.5L20 20"></path><circle cx="10" cy="10" r="6"></circle></svg><span>放大</span>',2)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应整页",onClick:Wr},[...P[18]||(P[18]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("rect",{x:"7",y:"4",width:"10",height:"16",rx:"1.5"})],-1),a.createElementVNode("span",null,"整页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应页宽",onClick:zr},[...P[19]||(P[19]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 8V5h3"></path><path d="M20 8V5h-3"></path><path d="M4 16v3h3"></path><path d="M20 16v3h-3"></path><path d="M8 12h8"></path></svg><span>页宽</span>',2)])]),a.createElementVNode("div",gb,a.toDisplayString(J.value),1)]),P[20]||(P[20]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"缩放与阅读",-1))]),a.createElementVNode("section",hb,[a.createElementVNode("div",fb,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"撤销",disabled:!x.value,onClick:Yr},[...P[21]||(P[21]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 7H5v4"}),a.createElementVNode("path",{d:"M5 11c2-3 5-5 9-5 3 0 6 2 7 5"})],-1),a.createElementVNode("span",null,"撤销",-1)])],8,Pb),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"重做",disabled:!W.value,onClick:qr},[...P[22]||(P[22]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 7h4v4"}),a.createElementVNode("path",{d:"M19 11c-2-3-5-5-9-5-3 0-6 2-7 5"})],-1),a.createElementVNode("span",null,"重做",-1)])],8,Fb)]),P[23]||(P[23]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"历史记录",-1))]),a.createElementVNode("section",bb,[a.createElementVNode("div",yb,[a.createElementVNode("button",{class:"jit-icon-button jit-icon-button--primary","aria-label":"另存副本",disabled:!a.unref(i),onClick:P[1]||(P[1]=C=>xo())},[...P[24]||(P[24]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 4h9l3 3v13H6z"}),a.createElementVNode("path",{d:"M9 4v5h6"}),a.createElementVNode("path",{d:"M9 16h6"})],-1),a.createElementVNode("span",null,"另存副本",-1)])],8,vb),a.createElementVNode("button",{class:"jit-icon-button is-danger","aria-label":"提交脱敏并导出",disabled:!a.unref(r).redaction||!a.unref(Z).pendingCount,onClick:Xr},[...P[25]||(P[25]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg><span>提交脱敏</span>',2)])],8,_b)]),P[26]||(P[26]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"保存导出",-1))])])):m.value==="annotate"?(a.openBlock(),a.createElementBlock("div",Eb,[a.createElementVNode("section",Db,[a.createElementVNode("div",Sb,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(_o.value,C=>(a.openBlock(),a.createElementBlock("button",{key:C.id,class:a.normalizeClass(["jit-icon-button jit-icon-button--tool",{"is-active":C.active,"is-danger":C.danger}]),"aria-label":C.label,disabled:C.disabled,onClick:C.onClick},[C.icon==="pointer"?(a.openBlock(),a.createElementBlock("svg",xb,[...P[27]||(P[27]=[a.createElementVNode("path",{d:"M6 4l10 8-5 1 2 5-2 1-2-5-3 3z"},null,-1)])])):C.icon==="highlight"?(a.openBlock(),a.createElementBlock("svg",Cb,[...P[28]||(P[28]=[a.createElementVNode("path",{d:"M6 15l5-5 4 4-5 5H6z"},null,-1),a.createElementVNode("path",{d:"M13 8l2-2 3 3-2 2z"},null,-1),a.createElementVNode("path",{d:"M5 19h9"},null,-1)])])):C.icon==="note"?(a.openBlock(),a.createElementBlock("svg",Mb,[...P[29]||(P[29]=[a.createElementVNode("path",{d:"M7 4h10v12H7z"},null,-1),a.createElementVNode("path",{d:"M9 8h6"},null,-1),a.createElementVNode("path",{d:"M9 12h4"},null,-1),a.createElementVNode("path",{d:"M7 16h3"},null,-1)])])):C.icon==="text"?(a.openBlock(),a.createElementBlock("svg",Tb,[...P[30]||(P[30]=[a.createElementVNode("path",{d:"M6 6h12"},null,-1),a.createElementVNode("path",{d:"M12 6v12"},null,-1),a.createElementVNode("path",{d:"M8 18h8"},null,-1)])])):C.icon==="draw"?(a.openBlock(),a.createElementBlock("svg",kb,[...P[31]||(P[31]=[a.createElementVNode("path",{d:"M4 16c2-4 5-6 8-7 2-1 4 0 5 2 1 2 0 4-2 5-3 2-7 2-11 0z"},null,-1),a.createElementVNode("path",{d:"M14 6l2-2 4 4-2 2z"},null,-1)])])):(a.openBlock(),a.createElementBlock("svg",Rb,[...P[32]||(P[32]=[a.createStaticVNode('<path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M7 11h10"></path><path d="M7 15h10"></path><path d="M7 19h10"></path>',5)])])),a.createElementVNode("span",null,a.toDisplayString(C.label),1)],10,Ab))),128))]),P[33]||(P[33]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"批注工具",-1))]),a.createElementVNode("section",wb,[a.createElementVNode("div",Ob,[a.createElementVNode("div",Ib,[P[34]||(P[34]=a.createElementVNode("span",{class:"jit-style-label"},"颜色",-1)),a.createElementVNode("div",Gb,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(Rt.value,C=>(a.openBlock(),a.createElementBlock("button",{key:C,class:a.normalizeClass(["jit-color-swatch",{"is-active":st.value===C}]),style:a.normalizeStyle({background:C}),title:C,disabled:!ut.value,onClick:Q=>Kc(C)},null,14,Lb))),128))])]),lt.value?(a.openBlock(),a.createElementBlock("div",Nb,[P[35]||(P[35]=a.createElementVNode("label",{class:"jit-style-label",for:"jit-stroke-width"},"线条粗细",-1)),a.createElementVNode("div",$b,[a.withDirectives(a.createElementVNode("input",{id:"jit-stroke-width","onUpdate:modelValue":P[2]||(P[2]=C=>Ne.value=C),type:"range",min:"2",max:"20",step:"1",onChange:Qc},null,544),[[a.vModelText,Ne.value,void 0,{number:!0}]]),a.createElementVNode("span",null,a.toDisplayString(Ne.value),1)])])):a.createCommentVNode("",!0),Pn.value?(a.openBlock(),a.createElementBlock("div",Bb,[P[36]||(P[36]=a.createElementVNode("label",{class:"jit-style-label",for:"jit-font-size"},"字号",-1)),a.createElementVNode("div",jb,[a.withDirectives(a.createElementVNode("input",{id:"jit-font-size","onUpdate:modelValue":P[3]||(P[3]=C=>Je.value=C),type:"range",min:"10",max:"32",step:"1",onChange:Jc},null,544),[[a.vModelText,Je.value,void 0,{number:!0}]]),a.createElementVNode("span",null,a.toDisplayString(Je.value),1)])])):a.createCommentVNode("",!0),Yt.value?(a.openBlock(),a.createElementBlock("div",Ub,[P[37]||(P[37]=a.createElementVNode("label",{class:"jit-style-label",for:"jit-opacity"},"透明度",-1)),a.createElementVNode("div",zb,[a.withDirectives(a.createElementVNode("input",{id:"jit-opacity","onUpdate:modelValue":P[4]||(P[4]=C=>Le.value=C),type:"range",min:"0.2",max:"1",step:"0.1",onChange:Zc},null,544),[[a.vModelText,Le.value,void 0,{number:!0}]]),a.createElementVNode("span",null,a.toDisplayString(Math.round(Le.value*100))+"%",1)])])):a.createCommentVNode("",!0)]),P[38]||(P[38]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"样式属性",-1))]),a.createElementVNode("section",Wb,[a.createElementVNode("div",Hb,[a.createElementVNode("div",Vb,[P[39]||(P[39]=a.createElementVNode("em",null,"当前工具",-1)),a.createElementVNode("strong",null,a.toDisplayString(p.value),1)]),a.createElementVNode("span",{class:a.normalizeClass(["jit-ribbon__hint-chip",{"is-danger":Ve.value==="受限"}])},a.toDisplayString(Ve.value),3),a.createElementVNode("span",Yb,"待脱敏 "+a.toDisplayString(a.unref(Z).pendingCount)+" 处",1),a.createElementVNode("button",{class:"jit-ribbon__hint-action",disabled:!Ye.value,onClick:Do}," 删除选中 "+a.toDisplayString(Ye.value||""),9,qb)]),P[40]||(P[40]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"使用提示",-1))])])):m.value==="view"?(a.openBlock(),a.createElementBlock("div",Xb,[a.createElementVNode("section",{class:"jit-ribbon__section jit-ribbon__section--nav"},[a.createElementVNode("div",{class:"jit-ribbon__section-body"},[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"上一页",onClick:Hr},[...P[41]||(P[41]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 18l-6-6 6-6"})],-1),a.createElementVNode("span",null,"上一页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"下一页",onClick:Vr},[...P[42]||(P[42]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 6l6 6-6 6"})],-1),a.createElementVNode("span",null,"下一页",-1)])])]),P[43]||(P[43]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"翻页",-1))]),a.createElementVNode("section",Kb,[a.createElementVNode("div",Zb,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应整页",onClick:Wr},[...P[44]||(P[44]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("rect",{x:"7",y:"4",width:"10",height:"16",rx:"1.5"})],-1),a.createElementVNode("span",null,"整页",-1)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"适应页宽",onClick:zr},[...P[45]||(P[45]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 8V5h3"></path><path d="M20 8V5h-3"></path><path d="M4 16v3h3"></path><path d="M20 16v3h-3"></path><path d="M8 12h8"></path></svg><span>页宽</span>',2)])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"自动缩放",onClick:nd},[...P[46]||(P[46]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("circle",{cx:"12",cy:"12",r:"8"}),a.createElementVNode("path",{d:"M12 8v4l3 2"})],-1),a.createElementVNode("span",null,"自动",-1)])]),a.createElementVNode("div",Qb,a.toDisplayString(J.value),1)]),P[47]||(P[47]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"阅读模式",-1))]),a.createElementVNode("section",Jb,[a.createElementVNode("div",ey,[a.createElementVNode("button",{class:"jit-icon-button","aria-label":g.value?"展开缩略图":"收起缩略图",onClick:te},[P[48]||(P[48]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M4 6h16"}),a.createElementVNode("path",{d:"M4 12h10"}),a.createElementVNode("path",{d:"M4 18h16"})],-1)),a.createElementVNode("span",null,a.toDisplayString(g.value?"展开目录":"收起目录"),1)],8,ty),a.createElementVNode("button",{class:"jit-icon-button","aria-label":a.unref(l)?"隐藏属性面板":"显示属性面板",onClick:qe},[P[49]||(P[49]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 5h14v14H5z"}),a.createElementVNode("path",{d:"M12 5v14"})],-1)),a.createElementVNode("span",null,a.toDisplayString(a.unref(l)?"隐藏侧栏":"显示侧栏"),1)],8,ny)]),P[50]||(P[50]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"界面布局",-1))]),a.createElementVNode("section",oy,[a.createElementVNode("div",ry,[a.createElementVNode("div",ay,[P[51]||(P[51]=a.createElementVNode("em",null,"工具",-1)),a.createElementVNode("strong",null,a.toDisplayString(p.value),1)]),a.createElementVNode("div",iy,[P[52]||(P[52]=a.createElementVNode("em",null,"搜索",-1)),a.createElementVNode("strong",null,a.toDisplayString(q.value)+" 处",1)])]),P[53]||(P[53]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"阅读摘要",-1))])])):(a.openBlock(),a.createElementBlock("div",sy,[a.createElementVNode("section",ly,[a.createElementVNode("div",cy,[a.createElementVNode("div",dy,[P[54]||(P[54]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1)),a.withDirectives(a.createElementVNode("input",{"onUpdate:modelValue":P[5]||(P[5]=C=>d.value=C),placeholder:"搜索全文",onKeydown:a.withKeys(a.withModifiers(Ur,["prevent"]),["enter"])},null,40,uy),[[a.vModelText,d.value]])]),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"执行搜索",disabled:!a.unref(r).search,onClick:Ur},[...P[55]||(P[55]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1),a.createElementVNode("span",null,"查找",-1)])],8,py),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"上一个结果",disabled:!a.unref(r).search||!q.value,onClick:P[6]||(P[6]=C=>{var Q;return(Q=a.unref($))==null?void 0:Q.previousResult()})},[...P[56]||(P[56]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M15 6l-6 6 6 6"})],-1),a.createElementVNode("span",null,"上一个",-1)])],8,my),a.createElementVNode("button",{class:"jit-icon-button","aria-label":"下一个结果",disabled:!a.unref(r).search||!q.value,onClick:P[7]||(P[7]=C=>{var Q;return(Q=a.unref($))==null?void 0:Q.nextResult()})},[...P[57]||(P[57]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M9 6l6 6-6 6"})],-1),a.createElementVNode("span",null,"下一个",-1)])],8,gy)]),P[58]||(P[58]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"全文检索",-1))]),a.createElementVNode("section",hy,[a.createElementVNode("div",fy,[a.createElementVNode("button",{class:"jit-icon-button jit-icon-button--primary","aria-label":"另存副本",disabled:!a.unref(i),onClick:P[8]||(P[8]=C=>xo())},[...P[59]||(P[59]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 4h9l3 3v13H6z"}),a.createElementVNode("path",{d:"M9 4v5h6"}),a.createElementVNode("path",{d:"M9 16h6"})],-1),a.createElementVNode("span",null,"另存副本",-1)])],8,Py),a.createElementVNode("button",{class:"jit-icon-button is-danger","aria-label":"提交脱敏并导出",disabled:!a.unref(r).redaction||!a.unref(Z).pendingCount,onClick:Xr},[...P[60]||(P[60]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg><span>提交脱敏</span>',2)])],8,Fy)]),P[61]||(P[61]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"审阅输出",-1))]),a.createElementVNode("section",by,[a.createElementVNode("div",yy,[a.createElementVNode("div",vy,[P[62]||(P[62]=a.createElementVNode("em",null,"搜索",-1)),a.createElementVNode("strong",null,a.toDisplayString(q.value)+" 处",1)]),a.createElementVNode("div",_y,[P[63]||(P[63]=a.createElementVNode("em",null,"修改",-1)),a.createElementVNode("strong",null,a.toDisplayString(A.value?"待保存":"已同步"),1)])]),P[64]||(P[64]=a.createElementVNode("div",{class:"jit-ribbon__section-label"},"当前状态",-1))])]))])])):a.createCommentVNode("",!0),a.createElementVNode("div",{class:a.normalizeClass(["jit-layout",{"is-left-collapsed":g.value}])},[a.createElementVNode("aside",{class:a.normalizeClass(["jit-sidebar jit-sidebar--left",{"is-open":a.unref(s),"is-collapsed":g.value}])},[a.createElementVNode("div",Ey,[g.value?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",Dy,[P[65]||(P[65]=a.createElementVNode("strong",null,"缩略图",-1)),a.createElementVNode("span",null,"第 "+a.toDisplayString(w.value)+" / "+a.toDisplayString(j.value||"-")+" 页",1)])),a.createElementVNode("button",{class:"jit-sidebar__collapse","aria-label":g.value?"展开缩略图":"收起缩略图",onClick:te},[g.value?(a.openBlock(),a.createElementBlock("svg",Ay,[...P[66]||(P[66]=[a.createElementVNode("path",{d:"M9 6l6 6-6 6"},null,-1)])])):(a.openBlock(),a.createElementBlock("svg",xy,[...P[67]||(P[67]=[a.createElementVNode("path",{d:"M15 6l-6 6 6 6"},null,-1)])]))],8,Sy)]),!g.value&&a.unref(r).thumbnail&&n.activeDocumentId?(a.openBlock(),a.createBlock(a.unref(TF),{key:0,class:"jit-thumbnails","document-id":n.activeDocumentId},{default:a.withCtx(({meta:C})=>[a.createElementVNode("button",{class:a.normalizeClass(["jit-thumbnail",{"is-active":w.value===C.pageIndex+1}]),style:a.normalizeStyle({top:`${C.top}px`,height:`${C.wrapperHeight}px`}),onClick:Q=>xe(C.pageIndex)},[a.createElementVNode("div",My,[a.createVNode(a.unref(RF),{"document-id":n.activeDocumentId,meta:C,class:"jit-thumbnail__image"},null,8,["document-id","meta"])]),a.createElementVNode("div",Ty,[a.createElementVNode("span",ky,"第 "+a.toDisplayString(C.pageIndex+1)+" 页",1),w.value===C.pageIndex+1?(a.openBlock(),a.createElementBlock("span",Ry,"当前")):a.createCommentVNode("",!0)])],14,Cy)]),_:1},8,["document-id"])):g.value?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("p",wy,"缩略图已关闭"))],2),a.createElementVNode("main",Oy,[a.createElementVNode("div",Iy,[a.createElementVNode("button",{class:"jit-sidebar-toggle","aria-label":a.unref(s)?"隐藏缩略图导航":"显示缩略图导航",onClick:P[9]||(P[9]=C=>s.value=!a.unref(s))},[...P[68]||(P[68]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M4 6h16"}),a.createElementVNode("path",{d:"M4 12h10"}),a.createElementVNode("path",{d:"M4 18h16"})],-1)])],8,Gy),a.createElementVNode("button",{class:"jit-annotation-drawer-toggle","aria-label":Be.value?"隐藏批注管理抽屉":"显示批注管理抽屉",onClick:So},[...P[69]||(P[69]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 6h14"}),a.createElementVNode("path",{d:"M5 12h14"}),a.createElementVNode("path",{d:"M5 18h10"})],-1)])],8,Ly),a.createElementVNode("button",{class:"jit-inspector-toggle","aria-label":a.unref(l)?"隐藏属性面板":"显示属性面板",onClick:qe},[...P[70]||(P[70]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M5 5h14v14H5z"}),a.createElementVNode("path",{d:"M12 5v14"})],-1)])],8,Ny),a.createElementVNode("aside",{class:a.normalizeClass(["jit-inspector",{"is-open":a.unref(l)}])},[a.createElementVNode("div",$y,[a.createElementVNode("div",null,[a.createElementVNode("strong",null,a.toDisplayString(od.value),1),a.createElementVNode("span",null,a.toDisplayString(p.value)+" · "+a.toDisplayString(Math.round(O.value*100))+"%",1)]),a.createElementVNode("button",{class:"jit-inspector__close","aria-label":"收起属性面板",onClick:qe},[...P[71]||(P[71]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 6l12 12"}),a.createElementVNode("path",{d:"M18 6L6 18"})],-1)])])]),a.createElementVNode("div",By,[ce.value?(a.openBlock(),a.createElementBlock("section",jy,[a.createElementVNode("div",Uy,[a.createElementVNode("div",null,[a.createElementVNode("div",zy,[P[73]||(P[73]=a.createElementVNode("strong",null,"便签内容",-1)),a.createElementVNode("button",{class:"jit-note-editor__delete",disabled:!Ye.value,"aria-label":"删除便签",onClick:Do},[...P[72]||(P[72]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg>',1)])],8,Wy)]),a.createElementVNode("span",null,"第 "+a.toDisplayString((U=ge.value)==null?void 0:U.pageLabel)+" 页 · "+a.toDisplayString(mt.value),1)])]),a.createElementVNode("label",Hy,[P[74]||(P[74]=a.createElementVNode("span",null,"说明内容",-1)),a.withDirectives(a.createElementVNode("textarea",{"onUpdate:modelValue":P[10]||(P[10]=C=>et.value=C),placeholder:"为这条便签补充说明、结论或处理意见",onInput:rn,onBlur:$n},null,544),[[a.vModelText,et.value]])]),a.createElementVNode("div",Vy,[P[75]||(P[75]=a.createElementVNode("span",null,"便签会在停止输入后自动保存",-1)),a.createElementVNode("strong",null,a.toDisplayString(pt.value)+" 字",1)])])):a.createCommentVNode("",!0),a.createElementVNode("dl",Yy,[a.createElementVNode("div",null,[P[76]||(P[76]=a.createElementVNode("dt",null,"当前工具",-1)),a.createElementVNode("dd",null,a.toDisplayString(p.value),1)]),a.createElementVNode("div",null,[P[77]||(P[77]=a.createElementVNode("dt",null,"批注权限",-1)),a.createElementVNode("dd",null,a.toDisplayString(Ve.value),1)]),a.createElementVNode("div",null,[P[78]||(P[78]=a.createElementVNode("dt",null,"缩放",-1)),a.createElementVNode("dd",null,a.toDisplayString(Math.round(O.value*100))+"%",1)]),a.createElementVNode("div",null,[P[79]||(P[79]=a.createElementVNode("dt",null,"搜索结果",-1)),a.createElementVNode("dd",null,a.toDisplayString(q.value)+" 处",1)]),a.createElementVNode("div",null,[P[80]||(P[80]=a.createElementVNode("dt",null,"待提交脱敏",-1)),a.createElementVNode("dd",null,a.toDisplayString(a.unref(Z).pendingCount)+" 处",1)]),a.createElementVNode("div",null,[P[81]||(P[81]=a.createElementVNode("dt",null,"待保存修改",-1)),a.createElementVNode("dd",null,a.toDisplayString(A.value?"是":"否"),1)]),P[82]||(P[82]=a.createElementVNode("div",null,[a.createElementVNode("dt",null,"保存策略"),a.createElementVNode("dd",null,"仅另存新副本")],-1))]),a.createElementVNode("div",qy,[P[83]||(P[83]=a.createElementVNode("p",null,"属性面板已改成悬浮检查器,需要时展开,不占主阅读空间。",-1)),ce.value?(a.openBlock(),a.createElementBlock("p",Xy,"当前便签已接入内容编辑器,支持随写随存,适合记录审核意见和处理说明。")):(a.openBlock(),a.createElementBlock("p",Ky,"高亮类工具需要先框选文本;涂鸦和文本框工具可以直接在画布中绘制或点击创建。")),u.value?(a.openBlock(),a.createElementBlock("p",Zy,a.toDisplayString(u.value),1)):a.createCommentVNode("",!0)])])],2)]),a.createElementVNode("aside",{class:a.normalizeClass(["jit-annotation-drawer",{"is-open":Be.value}])},[a.createElementVNode("div",Qy,[a.createElementVNode("div",null,[P[84]||(P[84]=a.createElementVNode("strong",null,"批注管理",-1)),a.createElementVNode("span",null,a.toDisplayString(ze.value)+" 个批注,"+a.toDisplayString(jn.value)+" 个待批量操作",1)]),a.createElementVNode("div",Jy,[a.createElementVNode("button",{class:"jit-annotation-panel__action jit-annotation-panel__action--secondary",disabled:!yn.value.length,onClick:Yc},a.toDisplayString(Br.value?"清空当前结果":"全选当前结果"),9,ev),a.createElementVNode("button",{class:"jit-annotation-panel__action",disabled:!jn.value,onClick:qc}," 批量删除 "+a.toDisplayString(jn.value||""),9,tv),a.createElementVNode("button",{class:"jit-annotation-panel__close","aria-label":"关闭批注管理抽屉",onClick:So},[...P[85]||(P[85]=[a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M6 6l12 12"}),a.createElementVNode("path",{d:"M18 6L6 18"})],-1)])])])]),a.createElementVNode("div",nv,[a.createElementVNode("div",ov,[a.createElementVNode("label",rv,[P[86]||(P[86]=a.createElementVNode("svg",{viewBox:"0 0 24 24","aria-hidden":"true"},[a.createElementVNode("path",{d:"M14.5 14.5L20 20"}),a.createElementVNode("circle",{cx:"10",cy:"10",r:"6"})],-1)),a.withDirectives(a.createElementVNode("input",{"onUpdate:modelValue":P[11]||(P[11]=C=>$e.value=C),placeholder:"搜索批注内容、页码或类型"},null,512),[[a.vModelText,$e.value]])]),a.createElementVNode("label",av,[P[87]||(P[87]=a.createElementVNode("span",null,"类型",-1)),a.withDirectives(a.createElementVNode("select",{"onUpdate:modelValue":P[12]||(P[12]=C=>Ee.value=C)},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(Lr.value,C=>(a.openBlock(),a.createElementBlock("option",{key:C.id,value:C.id},a.toDisplayString(C.label)+"("+a.toDisplayString(C.count)+") ",9,iv))),128))],512),[[a.vModelSelect,Ee.value]])])]),$r.value.length?(a.openBlock(),a.createElementBlock("div",sv,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList($r.value,C=>(a.openBlock(),a.createElementBlock("section",{key:C.page,class:"jit-annotation-group"},[a.createElementVNode("header",lv,[a.createElementVNode("strong",null,"第 "+a.toDisplayString(C.page+1)+" 页",1),a.createElementVNode("span",null,a.toDisplayString(C.items.length)+" 条批注",1)]),(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(C.items,Q=>(a.openBlock(),a.createElementBlock("article",{key:Q.id,class:a.normalizeClass(["jit-annotation-item",{"is-selected":Q.isCanvasSelected,"is-batch-selected":se.value.includes(Q.id)}])},[a.createElementVNode("button",{class:"jit-annotation-item__selector","aria-label":se.value.includes(Q.id)?"取消批量选择":"加入批量选择",onClick:a.withModifiers(fe=>Vc(Q.id),["stop"])},[se.value.includes(Q.id)?(a.openBlock(),a.createElementBlock("span",dv)):a.createCommentVNode("",!0)],8,cv),a.createElementVNode("button",{class:"jit-annotation-item__main",onClick:fe=>bn(Q.entry)},[a.createElementVNode("div",pv,[a.createElementVNode("strong",null,a.toDisplayString(Q.kindLabel),1),a.createElementVNode("span",null,"第 "+a.toDisplayString(Q.page+1)+" 页",1)]),a.createElementVNode("p",null,a.toDisplayString(Q.summary),1),a.createElementVNode("div",mv,[Q.groupCount>1?(a.openBlock(),a.createElementBlock("span",gv," 组合 "+a.toDisplayString(Q.groupCount),1)):a.createCommentVNode("",!0),Q.repliesCount?(a.openBlock(),a.createElementBlock("span",hv," 回复 "+a.toDisplayString(Q.repliesCount),1)):a.createCommentVNode("",!0),Q.isCanvasSelected?(a.openBlock(),a.createElementBlock("span",fv," 画布已选中 ")):a.createCommentVNode("",!0),se.value.includes(Q.id)?(a.openBlock(),a.createElementBlock("span",Pv," 待批量处理 ")):a.createCommentVNode("",!0)])],8,uv),a.createElementVNode("button",{class:"jit-annotation-item__delete","aria-label":`删除第 ${Q.page+1} 页的${Q.kindLabel}`,onClick:a.withModifiers(fe=>Hc(Q.entry),["stop"])},[...P[88]||(P[88]=[a.createStaticVNode('<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 7h14"></path><path d="M8 7V5h8v2"></path><path d="M8 10v7"></path><path d="M12 10v7"></path><path d="M16 10v7"></path><path d="M6 7l1 12h10l1-12"></path></svg>',1)])],8,Fv)],2))),128))]))),128))])):(a.openBlock(),a.createElementBlock("div",bv,[...P[89]||(P[89]=[a.createElementVNode("p",null,"当前筛选条件下没有批注。你可以修改类型筛选,或直接搜索批注内容与页码。",-1)])]))])],2),a.createElementVNode("a",{class:"jit-copyright-badge",href:Ev,target:"_blank",rel:"noopener noreferrer","aria-label":"查看 Jit PDF 版权信息",title:"Jit PDF 版权所有,点击查看"},[...P[90]||(P[90]=[a.createElementVNode("span",{class:"jit-copyright-badge__mark"},"©",-1),a.createElementVNode("span",{class:"jit-copyright-badge__text"},"Jit PDF",-1)])]),a.createVNode(a.unref(Ff),{"document-id":n.activeDocumentId},{default:a.withCtx(({isLoading:C,isError:Q,isLoaded:fe})=>[C||n.isInitializing?(a.openBlock(),a.createElementBlock("div",yv,"正在分段加载文档")):Q?(a.openBlock(),a.createElementBlock("div",vv," 文档加载失败,请检查本地文件服务和 PDF 路径 ")):fe&&n.activeDocumentId?(a.openBlock(),a.createBlock(a.unref(jF),{key:2,class:"jit-viewport","document-id":n.activeDocumentId},{default:a.withCtx(()=>[a.createVNode(a.unref(Nm),{"document-id":n.activeDocumentId},{default:a.withCtx(()=>[a.createVNode(a.unref(CF),{class:"jit-zoom-surface","document-id":n.activeDocumentId},{default:a.withCtx(()=>[a.createVNode(a.unref(GF),{class:"jit-scroller","document-id":n.activeDocumentId},{default:a.withCtx(({page:ie})=>[a.createVNode(a.unref(Bm),{class:"jit-page","document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,style:a.normalizeStyle({zIndex:ie.elevated?1:void 0})},{default:a.withCtx(()=>[a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(Cl),{key:0})):a.createCommentVNode("",!0),a.createVNode(a.unref(YF),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"]),a.createVNode(a.unref(WF),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"]),a.createVNode(a.unref(cg),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,"text-style":{background:"rgba(22, 119, 255, 0.22)"}},null,8,["document-id","page-index","scale"]),a.createVNode(a.unref(wF),{"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,"highlight-color":"rgba(22, 119, 255, 0.28)","active-highlight-color":"rgba(9, 88, 217, 0.42)"},null,8,["document-id","page-index","scale"]),a.unref(r).annotation||a.unref(r).ink||a.unref(r).freeText?(a.openBlock(),a.createBlock(a.unref(qs),{key:1,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).annotation||a.unref(r).ink||a.unref(r).freeText?(a.openBlock(),a.createBlock(a.unref(uf),{key:2,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(Sl),{key:3,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,stroke:"rgba(208, 48, 80, 0.9)",fill:"rgba(208, 48, 80, 0.14)"},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(Al),{key:4,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(xl),{key:5,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value,rotation:0},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0),a.unref(r).redaction?(a.openBlock(),a.createBlock(a.unref(qf),{key:6,"document-id":n.activeDocumentId,"page-index":ie.pageIndex,scale:O.value},null,8,["document-id","page-index","scale"])):a.createCommentVNode("",!0)]),_:2},1032,["document-id","page-index","scale","style"])]),_:1},8,["document-id"])]),_:1},8,["document-id"])]),_:1},8,["document-id"])]),_:1},8,["document-id"])):(a.openBlock(),a.createElementBlock("div",_v,"准备打开文档"))]),_:1},8,["document-id"])])],2)],2)}}}),Sv=a.defineComponent({__name:"JitPdfEditor",props:{source:{},locale:{default:"zh-CN"},theme:{default:"blue-enterprise"},capabilities:{},service:{},readonly:{type:Boolean,default:!1},showToolbar:{type:Boolean,default:!0}},emits:["ready","dirty-change","save-start","save-success","save-error","load-error"],setup(n,{emit:e}){const t=n,o=e,r=bF(DF,{encoderPoolSize:2,fontFallback:EF}),i=a.computed(()=>({permissions:{enforceDocumentPermissions:!1,overrides:{modifyAnnotations:!t.readonly,modifyContents:!t.readonly,copyContents:!0,print:!0}}})),s=a.computed(()=>[{package:vf},{package:ZP},{package:uP,config:{defaultPageGap:40,defaultBufferSize:4}},{package:eP},{package:GP},{package:Tm},{package:ug},{package:Of},{package:vP,config:{showAllResults:!0}},{package:MP},{package:iF,config:{defaultZoomLevel:Ge.FitPage}},{package:hf,config:{autoCommit:!0,annotationAuthor:"Jit PDF",locked:{type:t.readonly?xt.All:xt.None},colorPresets:["#1677FF","#0958D9","#18A058","#D03050","#FAAD14"]}},{package:Qf,config:{drawBlackBoxes:!0,useAnnotationMode:!0}},{package:Af,config:{defaultFileName:t.source.name??"jit-pdf-export.pdf"}}]);return(l,c)=>(a.openBlock(),a.createBlock(a.unref(fu),{class:"jit-pdf-shell",engine:a.unref(r),config:i.value,plugins:s.value,"auto-mount-dom-elements":!0},{default:a.withCtx(({activeDocumentId:d,pluginsReady:u,isInitializing:p})=>[a.createVNode(Dv,a.mergeProps(t,{"active-document-id":d,"plugins-ready":u,"is-initializing":p,onReady:c[0]||(c[0]=g=>o("ready",g)),onDirtyChange:c[1]||(c[1]=g=>o("dirty-change",g)),onSaveStart:c[2]||(c[2]=g=>o("save-start")),onSaveSuccess:c[3]||(c[3]=g=>o("save-success",g)),onSaveError:c[4]||(c[4]=g=>o("save-error",g)),onLoadError:c[5]||(c[5]=g=>o("load-error",g))}),null,16,["active-document-id","plugins-ready","is-initializing"])]),_:1},8,["engine","config","plugins"]))}}),zc="jit-pdf-sdk",Zt="files",co="annotations";function Qa(n){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`${n}-${crypto.randomUUID()}`:`${n}-${Date.now()}-${Math.random().toString(16).slice(2)}`}function Av(n=new Date){const e=t=>t.toString().padStart(2,"0");return[n.getFullYear(),e(n.getMonth()+1),e(n.getDate())].join("")+`-${e(n.getHours())}${e(n.getMinutes())}${e(n.getSeconds())}`}function xv(n){const e=n.lastIndexOf(".");return e>=0?n.slice(0,e):n}function Cv(n){const e=n.lastIndexOf(".");return e>=0?n.slice(e):".pdf"}function Mv(n){return`${xv(n)}-副本-${Av()}${Cv(n)}`}function Ja(n){return Uc(n)}function Tv(n){return new Promise((e,t)=>{const o=indexedDB.open(n,1);o.onupgradeneeded=()=>{const r=o.result;if(!r.objectStoreNames.contains(Zt)){const i=r.createObjectStore(Zt,{keyPath:"id"});i.createIndex("updatedAt","updatedAt",{unique:!1}),i.createIndex("originId","originId",{unique:!1})}r.objectStoreNames.contains(co)||r.createObjectStore(co,{keyPath:"fileId"})},o.onsuccess=()=>e(o.result),o.onerror=()=>t(o.error??new Error("IndexedDB 打开失败"))})}function rr(n){return new Promise((e,t)=>{n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??new Error("IndexedDB 请求失败"))})}async function Qt(n,e,t,o){const r=await Tv(n);try{const i=r.transaction(e,t),s=i.objectStore(e),l=await o(s);return await new Promise((c,d)=>{i.oncomplete=()=>c(),i.onerror=()=>d(i.error??new Error("IndexedDB 事务失败")),i.onabort=()=>d(i.error??new Error("IndexedDB 事务中断"))}),l}finally{r.close()}}function kv(n){return{id:n.id,name:n.name,relativePath:n.relativePath,size:n.size,updatedAt:n.updatedAt,pageCount:null}}function Rv(n){return{id:n.id,name:n.name,relativePath:n.relativePath,size:n.size,updatedAt:n.updatedAt}}function wv(n){return{kind:"file",id:n.id,name:n.name,relativePath:n.relativePath,size:n.size,updatedAt:n.updatedAt}}function Wc(n){return{async load(e){const t=await Qt(n,co,"readonly",async o=>rr(o.get(e)));return Ja((t==null?void 0:t.annotations)??[])},async save(e,t){await Qt(n,co,"readwrite",async o=>{o.put({fileId:e,annotations:Ja(t),updatedAt:new Date().toISOString()})})}}}function Ov(n={}){const e=n.databaseName??zc,t=Wc(e),o=new Map;function r(l){const c=o.get(l.id);if(c)return c;const d=URL.createObjectURL(l.blob);return o.set(l.id,d),d}async function i(){const l=await Qt(e,Zt,"readonly",async c=>rr(c.getAll()));return l.forEach(c=>r(c)),l.sort((c,d)=>d.updatedAt.localeCompare(c.updatedAt))}async function s(l){const c=await Qt(e,Zt,"readonly",async d=>rr(d.get(l)));if(!c)throw new Error("未找到本地 PDF 文件");return r(c),c}return{async getFileList(){return{rootDir:"IndexedDB",items:(await i()).map(wv)}},async getFileMeta(l){return kv(await s(l))},async getFileHistory(l){const c=await s(l),d=c.originId||c.id;return(await i()).filter(p=>p.id!==c.id&&p.originId===d).map(Rv)},getFileStreamUrl(l){return o.get(l)??""},async uploadFile(l){const c=Qa("local"),d=new Date().toISOString(),u={id:c,name:l.name,relativePath:`indexeddb/${c}/${l.name}`,size:l.size,updatedAt:d,blob:l,originId:c};await Qt(e,Zt,"readwrite",async g=>{g.put(u)});const p=o.get(c);return p&&URL.revokeObjectURL(p),o.set(c,URL.createObjectURL(l)),{id:c,name:u.name,relativePath:u.relativePath,size:u.size,updatedAt:d}},async deleteFile(l){const c=await s(l);await Qt(e,Zt,"readwrite",async u=>{u.delete(l)});const d=o.get(l);return d&&(URL.revokeObjectURL(d),o.delete(l)),await t.save(l,[]),{fileId:l,relativePath:c.relativePath}},async saveCopy(l){const c=await s(l.fileId),d=new Blob([await l.content.arrayBuffer()],{type:"application/pdf"}),u=Qa("local-copy"),p=Mv(l.fileName||c.name),g=new Date().toISOString(),m={id:u,name:p,relativePath:`indexeddb/${u}/${p}`,size:d.size,updatedAt:g,blob:d,originId:c.originId||c.id};await Qt(e,Zt,"readwrite",async f=>{f.put(m)});const h=o.get(u);return h&&URL.revokeObjectURL(h),o.set(u,URL.createObjectURL(d)),await t.save(u,[]),{fileId:u,fileName:p,relativePath:m.relativePath,absolutePath:m.relativePath,savedAt:g,size:m.size}},async loadAnnotations(l){return t.load(l)},async saveAnnotations(l,c){await t.save(l,c)}}}function Iv(n={}){const e=n.databaseName??zc;return Wc(e)}function Gv(n){return encodeURIComponent(n)}async function cn(n){if(!n.ok){let e=null;try{e=await n.json()}catch{e=null}throw new Error((e==null?void 0:e.message)??`请求失败: ${n.status}`)}return await n.json()}function Lv(n={}){const e=n.baseUrl??"",t=Iv({databaseName:n.annotationDatabaseName});return{async getFileList(){const o=await fetch(`${e}/api/files`);return cn(o)},async getFileMeta(o){const r=await fetch(`${e}/api/files/${encodeURIComponent(o)}/meta`);return cn(r)},async getFileHistory(o){const r=await fetch(`${e}/api/files/${encodeURIComponent(o)}/history`);return cn(r)},getFileStreamUrl(o){return`${e}/api/files/${encodeURIComponent(o)}/content`},async uploadFile(o){const r=new FormData;r.append("file",o);const i=await fetch(`${e}/api/files/upload`,{method:"POST",body:r});return cn(i)},async deleteFile(o){const r=await fetch(`${e}/api/files/${encodeURIComponent(o)}`,{method:"DELETE"});return cn(r)},async saveCopy(o){const r=await o.content.arrayBuffer(),i=await fetch(`${e}/api/files/${encodeURIComponent(o.fileId)}/save-copy`,{method:"POST",headers:{"Content-Type":"application/pdf","X-File-Name":Gv(o.fileName),"X-Save-Reason":o.reason??"manual-save"},body:r});return cn(i)},async loadAnnotations(o){return t.load(o)},async saveAnnotations(o,r){await t.save(o,r)}}}exports._sfc_main=Sv;exports.createHttpPdfEditorService=Lv;exports.createIndexedDbPdfEditorService=Ov;exports.usePdfEditorSdk=jc;