@file-viewer/vue3 2.2.6 → 2.2.7

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.
@@ -1 +1,213 @@
1
- (function(p,q){const aq=f,v=p();while(!![]){try{const w=-parseInt(aq(0x1b5))/0x1+-parseInt(aq(0x1bb))/0x2*(parseInt(aq(0x1a0))/0x3)+-parseInt(aq(0x1d3))/0x4*(-parseInt(aq(0x1cd))/0x5)+parseInt(aq(0x1b3))/0x6+-parseInt(aq(0x1cf))/0x7*(parseInt(aq(0x1b8))/0x8)+-parseInt(aq(0x1a4))/0x9*(-parseInt(aq(0x1ac))/0xa)+-parseInt(aq(0x199))/0xb;if(w===q)break;else v['push'](v['shift']());}catch(x){v['push'](v['shift']());}}}(b,0x7de24));function f(a,c){a=a-0x190;const d=b();let e=d[a];return e;}import{a as g,i as h,t as j}from'./messages.js';function b(){const aQ=['3863092FOFDiR','map','FileReader','style','max','is-active','fv-print-mask-designer-style','bottom','filter','button','750607SBvmpS','result','head','relative','releasePointerCapture','querySelector','textContent','748785XpAKFd','addEventListener','clientY','fv-print-mask-block-remove','4455NPAOIq','some','element','aria-label','pageIndex','closest','toolbar.printMaskConfirm','ownerDocument','17570JucsyS','width','img','previousPosition','pointerId','left','opacity','443112cIKbmi','right','638053kqLsud','rotate','stopPropagation','206040qkhVzT','min','canvas','2MjioNT','type','position','pointerup','data-viewer-print-stamp-input','remove','getComputedStyle','length','start','height','click','forEach','transform','toolbar.printMaskHint','toolbar.printMaskClear','from','setAttribute','mode','5ZuHgpe','className','119KfYRQF','getBoundingClientRect','call','abs'];b=function(){return aQ;};return b();}import{a as k,o as m}from'./printMask.js';var a='\x0a.fv-print-mask-layer{position:absolute;inset:0;z-index:2147483000;pointer-events:none;}\x0a.fv-print-mask-canvas{position:absolute;inset:0;z-index:2147483000;pointer-events:none;cursor:default;}\x0a.fv-print-mask-canvas.is-armed{pointer-events:auto;cursor:crosshair;touch-action:none;}\x0a.fv-print-mask-block{position:absolute;background:#000;box-sizing:border-box;pointer-events:auto;}\x0a.fv-print-mask-block-remove{position:absolute;right:-8px;top:-8px;width:18px;height:18px;border:0;border-radius:999px;background:#111;color:#fff;font:700\x2012px/18px\x20system-ui,sans-serif;cursor:pointer;padding:0;}\x0a.fv-print-stamp{position:absolute;box-sizing:border-box;border:1px\x20dashed\x20rgba(22,119,76,.7);border-radius:4px;pointer-events:auto;touch-action:none;cursor:move;transform-origin:center\x20center;}\x0a.fv-print-stamp\x20img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;}\x0a.fv-print-stamp-resize{position:absolute;right:-7px;bottom:-7px;width:15px;height:15px;border:2px\x20solid\x20#fff;border-radius:4px;background:#16774c;box-shadow:0\x201px\x205px\x20rgba(15,23,42,.22);cursor:nwse-resize;touch-action:none;}\x0a.fv-print-stamp-input{display:none!important;}\x0a.fv-print-mask-toolbar{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:2147483001;display:inline-flex;align-items:center;gap:6px;padding:6px\x208px;border:1px\x20solid\x20rgba(20,35,53,.12);border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0\x2012px\x2028px\x20rgba(15,23,42,.16);pointer-events:auto;max-width:calc(100%\x20-\x2024px);flex-wrap:wrap;justify-content:center;}\x0a.fv-print-mask-toolbar\x20span{font:600\x2012px/1.2\x20system-ui,sans-serif;color:#40546a;white-space:nowrap;}\x0a.fv-print-mask-toolbar\x20button{min-width:42px;height:30px;padding:0\x2010px;border:0;border-radius:999px;background:transparent;color:#40546a;font:800\x2012px/1\x20system-ui,sans-serif;cursor:pointer;}\x0a.fv-print-mask-toolbar\x20button:hover,.fv-print-mask-toolbar\x20button.is-active{background:rgba(33,163,102,.1);color:#16774c;}\x0a.fv-print-mask-toolbar\x20button.primary{background:#16774c;color:#fff;}\x0a.fv-print-mask-toolbar\x20button.primary:hover{background:#0f5f3c;}\x0a',o=p=>{const ar=f;let q=p[ar(0x1ab)],v=p['getRootNode'](),w=v===q?q[ar(0x19b)]:v;if(w[ar(0x19e)]('#fv-print-mask-designer-style'))return;let x=q['createElement']('style');x['id']=ar(0x195),x['textContent']=a,w['appendChild'](x);},s=(p,q,v,w)=>{if(!v['width']||!v['height'])return null;let x=Math['min'](p['x'],q['x']),y=Math['min'](p['y'],q['y']),z=Math['abs'](q['x']-p['x']),A=Math['abs'](q['y']-p['y']);return z<0x8||A<0x8?null:k({'left':x/v['width']*0x64,'top':y/v['height']*0x64,'width':z/v['width']*0x64,'height':A/v['height']*0x64,'pageIndex':w});},c=(p,q)=>{const as=f;let v=p['getBoundingClientRect']();return Math[as(0x193)](0x0,Math[as(0x1b9)](v[as(0x1b4)],q['right'])-Math['max'](v[as(0x1b1)],q['left']))*Math['max'](0x0,Math['min'](v['bottom'],q[as(0x196)])-Math['max'](v['top'],q['top']));},l=0xa*0x400*0x400,u=(p,q)=>new Promise((v,w)=>{const at=f;if(!/^image\/(?:png|jpe?g|webp|gif|svg\+xml)$/i['test'](p['type'])||p['size']>l){w(Error('Unsupported\x20print\x20stamp\x20image'));return;}let x=new((q==null?void 0x0:q[(at(0x191))])||globalThis['FileReader'])();x[at(0x1a1)]('load',()=>{const au=at;if(typeof x[au(0x19a)]=='string'&&x['result']['startsWith']('data:image/')){v(x[au(0x19a)]);return;}w(Error('Invalid\x20print\x20stamp\x20image'));}),x['addEventListener']('error',()=>w(x['error']||Error('Failed\x20to\x20read\x20print\x20stamp\x20image'))),x['readAsDataURL'](p);}),d=q=>{const av=f;let w=q['root'],x=w['ownerDocument'],z=j(q['i18n']),A=q['color']||'#000000',B=[...q['initialRegions']||[]]['map'](I=>k(I))[av(0x197)](I=>!!I),C=[...q['initialStamps']||[]]['map'](I=>m(I))['filter'](I=>!!I),D=Array[av(0x1ca)](new Set(q['pages']||[]))[av(0x197)](I=>I===w||w['contains'](I)),E=D['length']>0x0,F=E?D:[w];o(w);let G=I=>{const aw=av;var J,K,L;let M=I[aw(0x192)]['position'];return(((L=(K=(J=x['defaultView'])==null?void 0x0:J[aw(0x1c1)])==null?void 0x0:K['call'](J,I))==null?void 0x0:L['position'])||M||'static')==='static'&&(I['style']['position']=aw(0x19c)),M;},H=G(w);return new Promise(J=>{const ax=av;let K=!0x1,Q=null,R=x['createElement']('div');R['className']='fv-print-mask-layer',R['setAttribute']('data-viewer-print-mask-designer','true');let U=(ac,ad)=>{let ae=G(ac),af=x['createElement']('div');return af['className']='fv-print-mask-canvas',ac['appendChild'](af),{'element':ac,'pageIndex':ad,'canvas':af,'previousPosition':ae};},V=F[ax(0x190)]((ac,ad)=>U(ac,E?ad:void 0x0)),W=E&&!V['some'](ac=>ac[ax(0x1a6)]===w)&&(B[ax(0x1a5)](ac=>ac['pageIndex']===void 0x0)||C['some'](ac=>ac['pageIndex']===void 0x0))?U(w):null,X=W?[...V,W]:V,Y=x['createElement']('div');Y['className']='fv-print-mask-toolbar',Y['setAttribute']('role','toolbar'),Y['setAttribute'](ax(0x1a7),z('toolbar.printMaskTitle'));let Z=x['createElement']('span');Z['textContent']=z(ax(0x1c8));let a0=x['createElement']('button');a0['type']=ax(0x198),a0['textContent']=z('toolbar.printMaskAdd');let a1=x['createElement']('input');a1['type']='file',a1['accept']='image/png,image/jpeg,image/webp,image/gif,image/svg+xml',a1['className']='fv-print-stamp-input',a1['setAttribute'](ax(0x1bf),'true');let a2=x['createElement']('button');a2['type']=ax(0x198),a2[ax(0x19f)]=z('toolbar.printStampUpload');let a3=x['createElement'](ax(0x198));a3['type']=ax(0x198),a3['textContent']=z('toolbar.printMaskClear');let a4=x['createElement']('button');a4['type']='button',a4['textContent']=z('toolbar.printMaskCancel');let a5=x['createElement']('button');a5[ax(0x1bc)]='button',a5['className']='primary',a5[ax(0x19f)]=z(ax(0x1aa)),Y['append'](Z,a0,a2,a3,a4,a5),R['append'](a1,Y),w['appendChild'](R);let a6=()=>{const ay=ax;V[ay(0x1c6)](ac=>ac['canvas']['classList']['remove']('is-armed')),a0['classList']['remove'](ay(0x194));},a7=ac=>{const aA=ax;K||(K=!0x0,R['remove'](),X['forEach'](ad=>{const az=f;ad[az(0x1ba)][az(0x1c0)](),ad['previousPosition']?ad['element']['style']['position']=ad[az(0x1af)]:ad['element']['style']['removeProperty'](az(0x1bd));}),H?w['style']['position']=H:w['style']['removeProperty'](aA(0x1bd)),J(ac));},a8=ac=>ac['pageIndex']===void 0x0?W||V[0x0]:V['find'](ad=>ad[ax(0x1a8)]===ac['pageIndex'])||null,a9=()=>{const aB=ax;X[aB(0x1c6)](ac=>ac['canvas']['replaceChildren']()),B[aB(0x1c6)]((ac,ad)=>{const aC=aB;let ae=a8(ac);if(!ae)return;let af=x['createElement']('div');af['className']='fv-print-mask-block',af['style']['left']=ac['left']+'%',af['style']['top']=ac['top']+'%',af[aC(0x192)]['width']=ac['width']+'%',af['style']['height']=ac['height']+'%',af['style']['background']=A;let ag=x['createElement']('button');ag['type']='button',ag['className']=aC(0x1a3),ag['title']=z(aC(0x1c9)),ag['setAttribute'](aC(0x1a7),z(aC(0x1c9))),ag[aC(0x19f)]='−',ag['addEventListener']('click',ah=>{ah['preventDefault'](),ah['stopPropagation'](),B['splice'](ad,0x1),a9();}),af['appendChild'](ag),ae['canvas']['appendChild'](af);}),C['forEach']((ac,ad)=>{const aE=aB;let ae=a8(ac);if(!ae)return;let af=x['createElement']('div');af['className']='fv-print-stamp',af['setAttribute']('data-viewer-print-stamp',String(ad));let ag=()=>{const aD=f;var am,an;af['style'][aD(0x1b1)]=ac[aD(0x1b1)]+'%',af[aD(0x192)]['top']=ac['top']+'%',af['style']['width']=ac[aD(0x1ad)]+'%',af[aD(0x192)][aD(0x1c4)]=ac['height']+'%',af['style']['opacity']=String((am=ac[aD(0x1b2)])==null?0x1:am),af['style'][aD(0x1c7)]='rotate('+((an=ac[aD(0x1b6)])==null?0x0:an)+'deg)';};ag();let ah=x['createElement'](aE(0x1ae));ah['src']=ac['src'],ah['alt']=ac['alt']||'',ah['draggable']=!0x1;let ai=x['createElement']('button');ai['type']=aE(0x198),ai['className']=aE(0x1a3),ai['title']=z('toolbar.printStampRemove'),ai['setAttribute']('aria-label',z('toolbar.printStampRemove')),ai['textContent']='−',ai['addEventListener']('pointerdown',am=>am[aE(0x1b7)]()),ai['addEventListener']('click',am=>{am['preventDefault'](),am['stopPropagation'](),C['splice'](ad,0x1),a9();});let aj=x['createElement']('span');aj['className']='fv-print-stamp-resize',aj['setAttribute']('role','button'),aj[aE(0x1cb)]('aria-label',z('toolbar.printStampResize')),aj['title']=z('toolbar.printStampResize');let ak=null;af['addEventListener']('pointerdown',am=>{const aF=aE;var an;am['button']!==0x0||am['target'][aF(0x1a9)](aF(0x198))||(am['preventDefault'](),am['stopPropagation'](),ak={'pointerId':am['pointerId'],'mode':am['target']===aj?'resize':'move','startX':am['clientX'],'startY':am[aF(0x1a2)],'left':ac['left'],'top':ac['top'],'width':ac['width'],'height':ac['height']},(an=af['setPointerCapture'])==null||an[aF(0x1d1)](af,am['pointerId']));}),af['addEventListener']('pointermove',am=>{const aG=aE;if(!ak||ak[aG(0x1b0)]!==am['pointerId'])return;am['preventDefault']();let an=ae['canvas'][aG(0x1d0)]();if(!an['width']||!an['height'])return;let ao=(am['clientX']-ak['startX'])/an['width']*0x64,ap=(am['clientY']-ak['startY'])/an['height']*0x64;ak[aG(0x1cc)]==='move'?(ac[aG(0x1b1)]=Math['max'](0x0,Math[aG(0x1b9)](0x64-ac['width'],ak[aG(0x1b1)]+ao)),ac['top']=Math[aG(0x193)](0x0,Math['min'](0x64-ac['height'],ak['top']+ap))):(ac['width']=Math['max'](0x4,Math['min'](0x64-ac['left'],ak[aG(0x1ad)]+ao)),ac['height']=Math['max'](0x4,Math['min'](0x64-ac['top'],ak['height']+ap))),ag();});let al=am=>{const aH=aE;var an;if(!(!ak||ak[aH(0x1b0)]!==am['pointerId'])){try{(an=af[aH(0x19d)])==null||an[aH(0x1d1)](af,ak['pointerId']);}catch(ao){}ak=null;}};af[aE(0x1a1)](aE(0x1be),al),af['addEventListener']('pointercancel',al),af['append'](ah,ai,aj),ae['canvas']['appendChild'](af);});},aa=(ac,ad)=>{const aI=ax;let ae=ad[aI(0x1d0)]();return{'x':Math[aI(0x193)](0x0,Math['min'](ae['width'],ac['clientX']-ae['left'])),'y':Math[aI(0x193)](0x0,Math['min'](ae['height'],ac[aI(0x1a2)]-ae['top']))};};V['forEach'](ac=>{const aJ=ax;ac[aJ(0x1ba)]['addEventListener']('pointerdown',ad=>{const aK=aJ;if(ad['button']!==0x0||!ac['canvas']['classList']['contains']('is-armed'))return;ad['preventDefault']();let ae=aa(ad,ac['canvas']),af=x['createElement']('div');af[aK(0x1ce)]='fv-print-mask-block',af['style']['background']=A,af['style']['opacity']='0.72',ac['canvas']['appendChild'](af),Q={'surface':ac,'start':ae,'preview':af,'pointerId':ad['pointerId']},ac[aK(0x1ba)]['setPointerCapture'](ad[aK(0x1b0)]);}),ac['canvas'][aJ(0x1a1)]('pointermove',ad=>{const aL=aJ;if(!Q||Q['surface']!==ac)return;let ae=aa(ad,ac['canvas']),af=Math['min'](Q['start']['x'],ae['x']),ag=Math['min'](Q['start']['y'],ae['y']);Q['preview']['style']['left']=af+'px',Q['preview']['style']['top']=ag+'px',Q['preview']['style'][aL(0x1ad)]=Math['abs'](ae['x']-Q['start']['x'])+'px',Q['preview']['style'][aL(0x1c4)]=Math[aL(0x1d2)](ae['y']-Q['start']['y'])+'px';}),ac['canvas']['addEventListener']('pointerup',ad=>{const aM=aJ;if(!Q||Q['surface']!==ac)return;let ae=aa(ad,ac['canvas']),af=s(Q[aM(0x1c3)],ae,ac['canvas']['getBoundingClientRect'](),ac['pageIndex']);Q['preview']['remove']();try{ac['canvas']['releasePointerCapture'](Q[aM(0x1b0)]);}catch(ag){}Q=null,a6(),af&&B['push'](af),a9();}),ac[aJ(0x1ba)]['addEventListener']('pointercancel',()=>{!Q||Q['surface']!==ac||(Q['preview']['remove'](),Q=null,a6(),a9());});});let ab=()=>{var ac;let ad=w['getBoundingClientRect']();return((ac=V['map'](ae=>({'surface':ae,'area':c(ae['element'],ad)}))['sort']((ae,af)=>af['area']-ae['area'])[0x0])==null?void 0x0:ac['surface'])||V[0x0];};a0['addEventListener']('click',()=>{const aN=ax;a6();let ac=ab();ac==null||ac[aN(0x1ba)]['classList']['add']('is-armed'),a0['classList']['toggle']('is-active',!!ac);}),a2[ax(0x1a1)]('click',()=>{a6(),a1['click']();}),a1['addEventListener']('change',h(function*(){const aO=ax;var ac;let ad=(ac=a1['files'])==null?void 0x0:ac[0x0];if(a1['value']='',ad)try{let ae=yield u(ad,x['defaultView']),af=ab();if(!af)return;let ag=m({'src':ae,'alt':ad['name'],'left':0x26,'top':0x26,'width':0x18,'height':0x12,'pageIndex':af[aO(0x1a8)]});ag&&(C['push'](ag),a9());}catch(ah){}})),a3['addEventListener']('click',()=>{B['splice'](0x0,B['length']),C['splice'](0x0,C['length']),a6(),a9();}),a4['addEventListener']('click',()=>a7(null)),a5['addEventListener'](ax(0x1c5),()=>{const aP=ax;if(!B['length']&&!C[aP(0x1c2)]){a7(null);return;}a7({'mask':g(g(g({},B['length']?{'regions':B['map'](ac=>g({},ac))}:{}),C[aP(0x1c2)]?{'stamps':C['map'](ac=>g({},ac))}:{}),{},{'color':A})});}),a9();});};export{d as openFileViewerPrintMaskDesigner};
1
+ import { a as e, i as t, t as n } from "./messages.js";
2
+ import { a as r, o as i } from "./printMask.js";
3
+ //#region ../../core/dist/features/printMaskDesigner.js
4
+ var a = "\n.fv-print-mask-layer{position:absolute;inset:0;z-index:2147483000;pointer-events:none;}\n.fv-print-mask-canvas{position:absolute;inset:0;z-index:2147483000;pointer-events:none;cursor:default;}\n.fv-print-mask-canvas.is-armed{pointer-events:auto;cursor:crosshair;touch-action:none;}\n.fv-print-mask-block{position:absolute;background:#000;box-sizing:border-box;pointer-events:auto;}\n.fv-print-mask-block-remove{position:absolute;right:-8px;top:-8px;width:18px;height:18px;border:0;border-radius:999px;background:#111;color:#fff;font:700 12px/18px system-ui,sans-serif;cursor:pointer;padding:0;}\n.fv-print-stamp{position:absolute;box-sizing:border-box;border:1px dashed rgba(22,119,76,.7);border-radius:4px;pointer-events:auto;touch-action:none;cursor:move;transform-origin:center center;}\n.fv-print-stamp img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;}\n.fv-print-stamp-resize{position:absolute;right:-7px;bottom:-7px;width:15px;height:15px;border:2px solid #fff;border-radius:4px;background:#16774c;box-shadow:0 1px 5px rgba(15,23,42,.22);cursor:nwse-resize;touch-action:none;}\n.fv-print-stamp-input{display:none!important;}\n.fv-print-mask-toolbar{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:2147483001;display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid rgba(20,35,53,.12);border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 12px 28px rgba(15,23,42,.16);pointer-events:auto;max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:center;}\n.fv-print-mask-toolbar span{font:600 12px/1.2 system-ui,sans-serif;color:#40546a;white-space:nowrap;}\n.fv-print-mask-toolbar button{min-width:42px;height:30px;padding:0 10px;border:0;border-radius:999px;background:transparent;color:#40546a;font:800 12px/1 system-ui,sans-serif;cursor:pointer;}\n.fv-print-mask-toolbar button:hover,.fv-print-mask-toolbar button.is-active{background:rgba(33,163,102,.1);color:#16774c;}\n.fv-print-mask-toolbar button.primary{background:#16774c;color:#fff;}\n.fv-print-mask-toolbar button.primary:hover{background:#0f5f3c;}\n", o = (e) => {
5
+ let t = e.ownerDocument, n = e.getRootNode(), r = n === t ? t.head : n;
6
+ if (r.querySelector("#fv-print-mask-designer-style")) return;
7
+ let i = t.createElement("style");
8
+ i.id = "fv-print-mask-designer-style", i.textContent = a, r.appendChild(i);
9
+ }, s = (e, t, n, i) => {
10
+ if (!n.width || !n.height) return null;
11
+ let a = Math.min(e.x, t.x), o = Math.min(e.y, t.y), s = Math.abs(t.x - e.x), c = Math.abs(t.y - e.y);
12
+ return s < 8 || c < 8 ? null : r({
13
+ left: a / n.width * 100,
14
+ top: o / n.height * 100,
15
+ width: s / n.width * 100,
16
+ height: c / n.height * 100,
17
+ pageIndex: i
18
+ });
19
+ }, c = (e, t) => {
20
+ let n = e.getBoundingClientRect();
21
+ return Math.max(0, Math.min(n.right, t.right) - Math.max(n.left, t.left)) * Math.max(0, Math.min(n.bottom, t.bottom) - Math.max(n.top, t.top));
22
+ }, l = 10 * 1024 * 1024, u = (e, t) => new Promise((n, r) => {
23
+ if (!/^image\/(?:png|jpe?g|webp|gif|svg\+xml)$/i.test(e.type) || e.size > l) {
24
+ r(/* @__PURE__ */ Error("Unsupported print stamp image"));
25
+ return;
26
+ }
27
+ let i = new ((t == null ? void 0 : t.FileReader) || globalThis.FileReader)();
28
+ i.addEventListener("load", () => {
29
+ if (typeof i.result == "string" && i.result.startsWith("data:image/")) {
30
+ n(i.result);
31
+ return;
32
+ }
33
+ r(/* @__PURE__ */ Error("Invalid print stamp image"));
34
+ }), i.addEventListener("error", () => r(i.error || /* @__PURE__ */ Error("Failed to read print stamp image"))), i.readAsDataURL(e);
35
+ }), d = (a) => {
36
+ let l = a.root, d = l.ownerDocument, f = n(a.i18n), p = a.color || "#000000", m = [...a.initialRegions || []].map((e) => r(e)).filter((e) => !!e), h = [...a.initialStamps || []].map((e) => i(e)).filter((e) => !!e), g = Array.from(new Set(a.pages || [])).filter((e) => e === l || l.contains(e)), _ = g.length > 0, v = _ ? g : [l];
37
+ o(l);
38
+ let y = (e) => {
39
+ var t, n, r;
40
+ let i = e.style.position;
41
+ return (((r = (n = (t = d.defaultView) == null ? void 0 : t.getComputedStyle) == null ? void 0 : n.call(t, e)) == null ? void 0 : r.position) || i || "static") === "static" && (e.style.position = "relative"), i;
42
+ }, b = y(l);
43
+ return new Promise((n) => {
44
+ let r = !1, a = null, o = d.createElement("div");
45
+ o.className = "fv-print-mask-layer", o.setAttribute("data-viewer-print-mask-designer", "true");
46
+ let g = (e, t) => {
47
+ let n = y(e), r = d.createElement("div");
48
+ return r.className = "fv-print-mask-canvas", e.appendChild(r), {
49
+ element: e,
50
+ pageIndex: t,
51
+ canvas: r,
52
+ previousPosition: n
53
+ };
54
+ }, x = v.map((e, t) => g(e, _ ? t : void 0)), S = _ && !x.some((e) => e.element === l) && (m.some((e) => e.pageIndex === void 0) || h.some((e) => e.pageIndex === void 0)) ? g(l) : null, C = S ? [...x, S] : x, w = d.createElement("div");
55
+ w.className = "fv-print-mask-toolbar", w.setAttribute("role", "toolbar"), w.setAttribute("aria-label", f("toolbar.printMaskTitle"));
56
+ let T = d.createElement("span");
57
+ T.textContent = f("toolbar.printMaskHint");
58
+ let E = d.createElement("button");
59
+ E.type = "button", E.textContent = f("toolbar.printMaskAdd");
60
+ let D = d.createElement("input");
61
+ D.type = "file", D.accept = "image/png,image/jpeg,image/webp,image/gif,image/svg+xml", D.className = "fv-print-stamp-input", D.setAttribute("data-viewer-print-stamp-input", "true");
62
+ let O = d.createElement("button");
63
+ O.type = "button", O.textContent = f("toolbar.printStampUpload");
64
+ let k = d.createElement("button");
65
+ k.type = "button", k.textContent = f("toolbar.printMaskClear");
66
+ let A = d.createElement("button");
67
+ A.type = "button", A.textContent = f("toolbar.printMaskCancel");
68
+ let j = d.createElement("button");
69
+ j.type = "button", j.className = "primary", j.textContent = f("toolbar.printMaskConfirm"), w.append(T, E, O, k, A, j), o.append(D, w), l.appendChild(o);
70
+ let M = () => {
71
+ x.forEach((e) => e.canvas.classList.remove("is-armed")), E.classList.remove("is-active");
72
+ }, N = (e) => {
73
+ r || (r = !0, o.remove(), C.forEach((e) => {
74
+ e.canvas.remove(), e.previousPosition ? e.element.style.position = e.previousPosition : e.element.style.removeProperty("position");
75
+ }), b ? l.style.position = b : l.style.removeProperty("position"), n(e));
76
+ }, P = (e) => e.pageIndex === void 0 ? S || x[0] : x.find((t) => t.pageIndex === e.pageIndex) || null, F = () => {
77
+ C.forEach((e) => e.canvas.replaceChildren()), m.forEach((e, t) => {
78
+ let n = P(e);
79
+ if (!n) return;
80
+ let r = d.createElement("div");
81
+ r.className = "fv-print-mask-block", r.style.left = `${e.left}%`, r.style.top = `${e.top}%`, r.style.width = `${e.width}%`, r.style.height = `${e.height}%`, r.style.background = p;
82
+ let i = d.createElement("button");
83
+ i.type = "button", i.className = "fv-print-mask-block-remove", i.title = f("toolbar.printMaskClear"), i.setAttribute("aria-label", f("toolbar.printMaskClear")), i.textContent = "−", i.addEventListener("click", (e) => {
84
+ e.preventDefault(), e.stopPropagation(), m.splice(t, 1), F();
85
+ }), r.appendChild(i), n.canvas.appendChild(r);
86
+ }), h.forEach((e, t) => {
87
+ let n = P(e);
88
+ if (!n) return;
89
+ let r = d.createElement("div");
90
+ r.className = "fv-print-stamp", r.setAttribute("data-viewer-print-stamp", String(t));
91
+ let i = () => {
92
+ var t, n;
93
+ r.style.left = `${e.left}%`, r.style.top = `${e.top}%`, r.style.width = `${e.width}%`, r.style.height = `${e.height}%`, r.style.opacity = String((t = e.opacity) == null ? 1 : t), r.style.transform = `rotate(${(n = e.rotate) == null ? 0 : n}deg)`;
94
+ };
95
+ i();
96
+ let a = d.createElement("img");
97
+ a.src = e.src, a.alt = e.alt || "", a.draggable = !1;
98
+ let o = d.createElement("button");
99
+ o.type = "button", o.className = "fv-print-mask-block-remove", o.title = f("toolbar.printStampRemove"), o.setAttribute("aria-label", f("toolbar.printStampRemove")), o.textContent = "−", o.addEventListener("pointerdown", (e) => e.stopPropagation()), o.addEventListener("click", (e) => {
100
+ e.preventDefault(), e.stopPropagation(), h.splice(t, 1), F();
101
+ });
102
+ let s = d.createElement("span");
103
+ s.className = "fv-print-stamp-resize", s.setAttribute("role", "button"), s.setAttribute("aria-label", f("toolbar.printStampResize")), s.title = f("toolbar.printStampResize");
104
+ let c = null;
105
+ r.addEventListener("pointerdown", (t) => {
106
+ var n;
107
+ t.button !== 0 || t.target.closest("button") || (t.preventDefault(), t.stopPropagation(), c = {
108
+ pointerId: t.pointerId,
109
+ mode: t.target === s ? "resize" : "move",
110
+ startX: t.clientX,
111
+ startY: t.clientY,
112
+ left: e.left,
113
+ top: e.top,
114
+ width: e.width,
115
+ height: e.height
116
+ }, (n = r.setPointerCapture) == null || n.call(r, t.pointerId));
117
+ }), r.addEventListener("pointermove", (t) => {
118
+ if (!c || c.pointerId !== t.pointerId) return;
119
+ t.preventDefault();
120
+ let r = n.canvas.getBoundingClientRect();
121
+ if (!r.width || !r.height) return;
122
+ let a = (t.clientX - c.startX) / r.width * 100, o = (t.clientY - c.startY) / r.height * 100;
123
+ c.mode === "move" ? (e.left = Math.max(0, Math.min(100 - e.width, c.left + a)), e.top = Math.max(0, Math.min(100 - e.height, c.top + o))) : (e.width = Math.max(4, Math.min(100 - e.left, c.width + a)), e.height = Math.max(4, Math.min(100 - e.top, c.height + o))), i();
124
+ });
125
+ let l = (e) => {
126
+ var t;
127
+ if (!(!c || c.pointerId !== e.pointerId)) {
128
+ try {
129
+ (t = r.releasePointerCapture) == null || t.call(r, c.pointerId);
130
+ } catch (e) {}
131
+ c = null;
132
+ }
133
+ };
134
+ r.addEventListener("pointerup", l), r.addEventListener("pointercancel", l), r.append(a, o, s), n.canvas.appendChild(r);
135
+ });
136
+ }, I = (e, t) => {
137
+ let n = t.getBoundingClientRect();
138
+ return {
139
+ x: Math.max(0, Math.min(n.width, e.clientX - n.left)),
140
+ y: Math.max(0, Math.min(n.height, e.clientY - n.top))
141
+ };
142
+ };
143
+ x.forEach((e) => {
144
+ e.canvas.addEventListener("pointerdown", (t) => {
145
+ if (t.button !== 0 || !e.canvas.classList.contains("is-armed")) return;
146
+ t.preventDefault();
147
+ let n = I(t, e.canvas), r = d.createElement("div");
148
+ r.className = "fv-print-mask-block", r.style.background = p, r.style.opacity = "0.72", e.canvas.appendChild(r), a = {
149
+ surface: e,
150
+ start: n,
151
+ preview: r,
152
+ pointerId: t.pointerId
153
+ }, e.canvas.setPointerCapture(t.pointerId);
154
+ }), e.canvas.addEventListener("pointermove", (t) => {
155
+ if (!a || a.surface !== e) return;
156
+ let n = I(t, e.canvas), r = Math.min(a.start.x, n.x), i = Math.min(a.start.y, n.y);
157
+ a.preview.style.left = `${r}px`, a.preview.style.top = `${i}px`, a.preview.style.width = `${Math.abs(n.x - a.start.x)}px`, a.preview.style.height = `${Math.abs(n.y - a.start.y)}px`;
158
+ }), e.canvas.addEventListener("pointerup", (t) => {
159
+ if (!a || a.surface !== e) return;
160
+ let n = I(t, e.canvas), r = s(a.start, n, e.canvas.getBoundingClientRect(), e.pageIndex);
161
+ a.preview.remove();
162
+ try {
163
+ e.canvas.releasePointerCapture(a.pointerId);
164
+ } catch (e) {}
165
+ a = null, M(), r && m.push(r), F();
166
+ }), e.canvas.addEventListener("pointercancel", () => {
167
+ !a || a.surface !== e || (a.preview.remove(), a = null, M(), F());
168
+ });
169
+ });
170
+ let L = () => {
171
+ var e;
172
+ let t = l.getBoundingClientRect();
173
+ return ((e = x.map((e) => ({
174
+ surface: e,
175
+ area: c(e.element, t)
176
+ })).sort((e, t) => t.area - e.area)[0]) == null ? void 0 : e.surface) || x[0];
177
+ };
178
+ E.addEventListener("click", () => {
179
+ M();
180
+ let e = L();
181
+ e == null || e.canvas.classList.add("is-armed"), E.classList.toggle("is-active", !!e);
182
+ }), O.addEventListener("click", () => {
183
+ M(), D.click();
184
+ }), D.addEventListener("change", t(function* () {
185
+ var e;
186
+ let t = (e = D.files) == null ? void 0 : e[0];
187
+ if (D.value = "", t) try {
188
+ let e = yield u(t, d.defaultView), n = L();
189
+ if (!n) return;
190
+ let r = i({
191
+ src: e,
192
+ alt: t.name,
193
+ left: 38,
194
+ top: 38,
195
+ width: 24,
196
+ height: 18,
197
+ pageIndex: n.pageIndex
198
+ });
199
+ r && (h.push(r), F());
200
+ } catch (e) {}
201
+ })), k.addEventListener("click", () => {
202
+ m.splice(0, m.length), h.splice(0, h.length), M(), F();
203
+ }), A.addEventListener("click", () => N(null)), j.addEventListener("click", () => {
204
+ if (!m.length && !h.length) {
205
+ N(null);
206
+ return;
207
+ }
208
+ N({ mask: e(e(e({}, m.length ? { regions: m.map((t) => e({}, t)) } : {}), h.length ? { stamps: h.map((t) => e({}, t)) } : {}), {}, { color: p }) });
209
+ }), F();
210
+ });
211
+ };
212
+ //#endregion
213
+ export { d as openFileViewerPrintMaskDesigner };
@@ -1 +1,66 @@
1
- function f(a,c){a=a-0xf3;const d=b();let e=d[a];return e;}const D=f;(function(h,j){const C=f,k=h();while(!![]){try{const m=-parseInt(C(0x108))/0x1+parseInt(C(0xf5))/0x2*(parseInt(C(0x100))/0x3)+-parseInt(C(0x10b))/0x4+-parseInt(C(0xfd))/0x5*(parseInt(C(0x104))/0x6)+-parseInt(C(0xf3))/0x7*(parseInt(C(0xfb))/0x8)+parseInt(C(0xf4))/0x9+parseInt(C(0x109))/0xa;if(m===j)break;else k['push'](k['shift']());}catch(p){k['push'](k['shift']());}}}(b,0x41747));import{a as g}from'./messages.js';var t=h=>Math[D(0xf7)](0x0,Math['min'](0x64,h)),n=h=>{const E=D;if(!h)return null;let j=h['pageIndex'];if(j!==void 0x0&&(!Number['isInteger'](j)||j<0x0))return null;let k=t(Number(h[E(0x10c)])||0x0),m=t(Number(h['top'])||0x0),p=t(Number(h[E(0xfc)])||0x0),q=t(Number(h['height'])||0x0);return p<=0x0||q<=0x0?null:g({'left':k,'top':m,'width':Math[E(0x10a)](p,0x64-k),'height':Math['min'](q,0x64-m)},j===void 0x0?{}:{'pageIndex':j});},r=h=>{const F=D;if(typeof h!='string')return'';let j=h['trim']();return/^data:image\/(?:png|jpe?g|webp|gif|svg\+xml);/i[F(0xfe)](j)||/^(?:blob:|https?:\/\/|\/|\.\.?\/)/i['test'](j)?j:'';},i=h=>{const G=D;let j=Number(h);return Number[G(0xf8)](j)?Math['max'](0x0,Math['min'](0x1,j)):0x1;},a=h=>{let j=Number(h);return Number['isFinite'](j)?(j%0x168+0x168)%0x168:0x0;},o=h=>{const H=D;let j=n(h),k=r(h==null?void 0x0:h[H(0x101)]);return!j||!k?null:g(g({},j),{},{'src':k,'opacity':i(h==null?void 0x0:h['opacity']),'rotate':a(h==null?void 0x0:h[H(0xf9)])},typeof(h==null?void 0x0:h['alt'])=='string'&&h['alt']['trim']()?{'alt':h['alt']['trim']()}:{});},s=h=>{const I=D;if(!h)return null;let j=(h['regions']||[])['map'](m=>n(m))['filter'](m=>!!m),k=(h['stamps']||[])['map'](m=>o(m))['filter'](m=>!!m);return!j['length']&&!k['length']?null:g(g(g({},j['length']?{'regions':j}:{}),k[I(0x105)]?{'stamps':k}:{}),{},{'color':h['color']||'#000000'});},c=h=>h['replace'](/&/g,'&amp;')['replace'](/"/g,D(0x106))[D(0x107)](/</g,'&lt;')['replace'](/>/g,'&gt;'),l=(h,j=!0x1)=>{const J=D;let k=s(h);if(!k)return'';let m=k['color']||'#000000',p=(k['regions']||[])['map'](v=>'<div\x20class=\x22viewer-export-print-mask-block\x22\x20style=\x22left:'+v['left']+'%;top:'+v['top']+'%;width:'+v['width']+'%;height:'+v['height']+'%;background:'+m+';\x22></div>')[J(0x103)](''),q=(k['stamps']||[])['map'](v=>{const K=J;var w,x;return'<img\x20class=\x22viewer-export-print-stamp\x22\x20src=\x22'+c(v['src'])+'\x22\x20alt=\x22'+c(v['alt']||'')+'\x22\x20draggable=\x22false\x22\x20style=\x22left:'+v['left']+'%;top:'+v['top']+'%;width:'+v[K(0xfc)]+'%;height:'+v['height']+'%;opacity:'+((w=v[K(0xff)])==null?0x1:w)+';transform:rotate('+((x=v[K(0xf9)])==null?0x0:x)+'deg);\x22\x20/>';})['join']('');return J(0x102)+(j?'viewer-export-print-mask\x20viewer-export-print-mask--page':'viewer-export-print-mask')+'\x22\x20aria-hidden=\x22true\x22>'+p+q+'</div>';},u='\x0a\x20\x20.viewer-export-print-mask{position:absolute;inset:0;z-index:15;pointer-events:none;print-color-adjust:exact;-webkit-print-color-adjust:exact;}\x0a\x20\x20.viewer-export-print-mask--page{z-index:2147483647;}\x0a\x20\x20.viewer-export-print-mask-block{position:absolute;box-sizing:border-box;print-color-adjust:exact;-webkit-print-color-adjust:exact;}\x0a\x20\x20.viewer-export-print-stamp{position:absolute;display:block;object-fit:contain;transform-origin:center\x20center;print-color-adjust:exact;-webkit-print-color-adjust:exact;}\x0a\x20\x20[data-viewer-print-page-index]{position:relative!important;isolation:isolate;}\x0a',d=(h,j)=>{const L=D;var k,m;let p=s(j);if(!p)return h;let q=new Map(),v=new Map();return(k=p['regions'])==null||k['forEach'](w=>{if(w['pageIndex']===void 0x0)return;let x=q['get'](w['pageIndex'])||[];x['push'](w),q['set'](w['pageIndex'],x);}),(m=p['stamps'])==null||m['forEach'](w=>{if(w['pageIndex']===void 0x0)return;let x=v['get'](w['pageIndex'])||[];x['push'](w),v['set'](w['pageIndex'],x);}),!q[L(0xfa)]&&!v['size']?h:h[L(0x107)](/(<[A-Za-z][^>]*\sdata-viewer-print-page-index=(['"])(\d+)\2[^>]*>)/g,(w,x,y,z)=>{const M=L;let A=q['get'](Number(z)),B=v[M(0xf6)](Number(z));return!(A!=null&&A['length'])&&!(B!=null&&B[M(0x105)])?w:''+x+l({'regions':A||[],'stamps':B||[],'color':p['color']},!0x0);});};function b(){const N=['size','64392CDGXEW','width','5EkDxOY','test','opacity','3891yHDTEd','src','<div\x20class=\x22','join','2174334UPeHJl','length','&quot;','replace','241043ccKydq','9431630wFZynU','min','1830100CLiyjF','left','7zodhez','1946313HMLOBr','274dsYEsB','get','max','isFinite','rotate'];b=function(){return N;};return b();}export{n as a,s as i,d as n,o,l as r,u as t};
1
+ import { a as e } from "./messages.js";
2
+ //#region ../../core/dist/features/printMask.js
3
+ var t = (e) => Math.max(0, Math.min(100, e)), n = (n) => {
4
+ if (!n) return null;
5
+ let r = n.pageIndex;
6
+ if (r !== void 0 && (!Number.isInteger(r) || r < 0)) return null;
7
+ let i = t(Number(n.left) || 0), a = t(Number(n.top) || 0), o = t(Number(n.width) || 0), s = t(Number(n.height) || 0);
8
+ return o <= 0 || s <= 0 ? null : e({
9
+ left: i,
10
+ top: a,
11
+ width: Math.min(o, 100 - i),
12
+ height: Math.min(s, 100 - a)
13
+ }, r === void 0 ? {} : { pageIndex: r });
14
+ }, r = (e) => {
15
+ if (typeof e != "string") return "";
16
+ let t = e.trim();
17
+ return /^data:image\/(?:png|jpe?g|webp|gif|svg\+xml);/i.test(t) || /^(?:blob:|https?:\/\/|\/|\.\.?\/)/i.test(t) ? t : "";
18
+ }, i = (e) => {
19
+ let t = Number(e);
20
+ return Number.isFinite(t) ? Math.max(0, Math.min(1, t)) : 1;
21
+ }, a = (e) => {
22
+ let t = Number(e);
23
+ return Number.isFinite(t) ? (t % 360 + 360) % 360 : 0;
24
+ }, o = (t) => {
25
+ let o = n(t), s = r(t == null ? void 0 : t.src);
26
+ return !o || !s ? null : e(e({}, o), {}, {
27
+ src: s,
28
+ opacity: i(t == null ? void 0 : t.opacity),
29
+ rotate: a(t == null ? void 0 : t.rotate)
30
+ }, typeof (t == null ? void 0 : t.alt) == "string" && t.alt.trim() ? { alt: t.alt.trim() } : {});
31
+ }, s = (t) => {
32
+ if (!t) return null;
33
+ let r = (t.regions || []).map((e) => n(e)).filter((e) => !!e), i = (t.stamps || []).map((e) => o(e)).filter((e) => !!e);
34
+ return !r.length && !i.length ? null : e(e(e({}, r.length ? { regions: r } : {}), i.length ? { stamps: i } : {}), {}, { color: t.color || "#000000" });
35
+ }, c = (e) => e.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;"), l = (e, t = !1) => {
36
+ let n = s(e);
37
+ if (!n) return "";
38
+ let r = n.color || "#000000", i = (n.regions || []).map((e) => `<div class="viewer-export-print-mask-block" style="left:${e.left}%;top:${e.top}%;width:${e.width}%;height:${e.height}%;background:${r};"></div>`).join(""), a = (n.stamps || []).map((e) => {
39
+ var t, n;
40
+ return `<img class="viewer-export-print-stamp" src="${c(e.src)}" alt="${c(e.alt || "")}" draggable="false" style="left:${e.left}%;top:${e.top}%;width:${e.width}%;height:${e.height}%;opacity:${(t = e.opacity) == null ? 1 : t};transform:rotate(${(n = e.rotate) == null ? 0 : n}deg);" />`;
41
+ }).join("");
42
+ return `<div class="${t ? "viewer-export-print-mask viewer-export-print-mask--page" : "viewer-export-print-mask"}" aria-hidden="true">${i}${a}</div>`;
43
+ }, u = "\n .viewer-export-print-mask{position:absolute;inset:0;z-index:15;pointer-events:none;print-color-adjust:exact;-webkit-print-color-adjust:exact;}\n .viewer-export-print-mask--page{z-index:2147483647;}\n .viewer-export-print-mask-block{position:absolute;box-sizing:border-box;print-color-adjust:exact;-webkit-print-color-adjust:exact;}\n .viewer-export-print-stamp{position:absolute;display:block;object-fit:contain;transform-origin:center center;print-color-adjust:exact;-webkit-print-color-adjust:exact;}\n [data-viewer-print-page-index]{position:relative!important;isolation:isolate;}\n", d = (e, t) => {
44
+ var n, r;
45
+ let i = s(t);
46
+ if (!i) return e;
47
+ let a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
48
+ return (n = i.regions) == null || n.forEach((e) => {
49
+ if (e.pageIndex === void 0) return;
50
+ let t = a.get(e.pageIndex) || [];
51
+ t.push(e), a.set(e.pageIndex, t);
52
+ }), (r = i.stamps) == null || r.forEach((e) => {
53
+ if (e.pageIndex === void 0) return;
54
+ let t = o.get(e.pageIndex) || [];
55
+ t.push(e), o.set(e.pageIndex, t);
56
+ }), !a.size && !o.size ? e : e.replace(/(<[A-Za-z][^>]*\sdata-viewer-print-page-index=(['"])(\d+)\2[^>]*>)/g, (e, t, n, r) => {
57
+ let s = a.get(Number(r)), c = o.get(Number(r));
58
+ return !(s != null && s.length) && !(c != null && c.length) ? e : `${t}${l({
59
+ regions: s || [],
60
+ stamps: c || [],
61
+ color: i.color
62
+ }, !0)}`;
63
+ });
64
+ };
65
+ //#endregion
66
+ export { n as a, s as i, d as n, o, l as r, u as t };