vendor: 1,378 bytes, line 1
1import{d as tn,y as an,ar as nn,D as R,c as w,C as E,K as ve,A as rn,L as on,o as A,g as D,h as L,f as l,aN as xe,F as ln,r as sn,n as me,t as Z,k as Fe,M as Me,bo as qt,aq as un,as as cn,cc as dn,bL as fn,bK as hn}from"#entry";import{a as vn}from"./CrbaH3J_.js";const mn=["onClick"],gn=["src","alt"],pn={key:1,class:"interactive-catalog-thumb-placeholder"},wn={class:"interactive-catalog-thumb-label"},yn={class:"interactive-catalog-main"},bn={key:0,class:"interactive-catalog-toolbar"},xn=["disabled"],Mn={class:"interactive-catalog-page-indicator"},Pn=["disabled"],kn=["disabled"],Sn=["disabled"],Rn={key:2,class:"interactive-catalog-overlay"},Cn={key:3,class:"interactive-catalog-overlay interactive-catalog-overlay--error"},In={key:1,class:"interactive-catalog-help"},Xt="lns-pdfjs-script",pt="2.10.377",Bn="/LnwXDockLite.pdf",Vt="lns-pageflip-script",Wn="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/page-flip.browser.min.js",Fn=1.01,_n=320,En=160,Yt=2,Tn=14,Ln=2.6,wt=.08,Hn=48,Gt=160,zn=tn({__name:"InteractiveCatalog",props:{sourceType:{default:"pdf"},src:{},images:{},ratio:{default:"16 / 9"},minHeight:{default:"360px"},height:{},initialPage:{default:1},viewMode:{default:"auto"},mode:{default:"standard"},size:{},autoSize:{type:Boolean},usePortrait:{type:Boolean},bookRenderMode:{default:"html"},width:{},minWidth:{},maxWidth:{},maxHeight:{},zoom:{default:1}
1,minZoom:{default:1},maxZoom:{default:3},zoomStep:{default:.25},useProxy:{type:Boolean,default:!0},proxyEndpoint:{default:"/api/pdf-proxy"},showControls:{type:Boolean,default:!0},showThumbnails:{type:Boolean,default:!0},thumbnailWidth:{default:90},disableWorker:{type:Boolean,default:!0},showCover:{type:Boolean,default:!1},bookFlipDuration:{default:280},bookCornerWidth:{default:110},effects:{}},setup(Pe){const Kt=`https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pt}/pdf.min.js`,yt=`https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${pt}/pdf.worker.min.js`,Zt=`${Kt}?v=${pt}`,i=Pe,{t:z}=an(),qe=nn(),F=Me(null),Xe=Me(null),Ve=Me(null),Ye=Me(null),ie=R(!1),V=R(""),s=R(0),m=R(Math.max(1,i.initialPage)),S=R(i.zoom),ke=R(!1),ee=R(0),te=R(0),ae=R(0),Ge=R(0),Ke=R(0),H=qt({width:0,height:0}),U=R({}),ge=R(""),bt=Me([]),Ze=new Map,C=Me(null),q=R(!1),Se=R(null),_e=new Set,I=R({}),N=R(!1),$=R(i.disableWorker),f=qt({active:!1,pointerId:-1,mode:"swipe",startX:0,startY:0,deltaX:0,deltaY:0,startTranslateX:0,startTranslateY:0});let Ee=0,ne=0,Y=0,B=0,Te=null,le=null,se=null,G=null,ue=null,Je=!1,Qe=!1,et=!1,tt=!1,at=!1,d=null,pe=null,ce=!1,Le="";const we=new Set;let Re=0;const ye=new Map,nt=(e,t)=>{let a=e.trim();if(!a)return"";if(a.startsWith("//")&&(a=`https:${a}`),/^https?:\/\//i.test(a)||t?.allowDataUrl&&/^(data|blob):/i.test(a))return a;try{return new URL(a,window.location.origin).toString()}catch{return""}},Jt=()=>{const e=qe.breakpoint.value;return hn.includes(e)?e:"md"},He=e=>un(e)?cn(e,Jt()):e,xt=e=>{if(dn(e)){const t=fn(e);return typeof t=="string"&&t.trim().length>0?t.trim():typeof t=="number"&&Number.isFinite(t)?`${t}px`:void 0}if(typeof e=="number")return`${e}px`;if(typeof e=="string"&&e.trim().length>0)return e.trim()},Qt=w(()=>{const e=He(i.ratio),t=typeof e=="string"?e.trim():typeof e=="number"?String(e):"";if(!t)return"16 / 9";if(t.includes(":")){const[a,n]=t.split(":").map(r=>r.trim());if(a&&n)return`${a} / ${n}`}return t}),ea=w(()=>{const e=typeof i.src=="string"?i.src:"";return e.trim().length?nt(e):nt(Bn)}),de=w(()=>Array.isArray(i.images)?i.images.reduce((e,t)=>{const a=typeof t?.src=="string"?nt(t.src,{allowDataUrl:!0}):"";return a&&e.push(a),e},[]):[]),rt=w(()=>i.sourceType==="images"?"images":"pdf"),x=w(()=>rt.value==="images"),Mt=w(()=>{const e=ea.value;if(!e)return e;let t;try{t=new URL(e,window.location.origin)}catch{return""}const a=t.origin!==window.location.origin;if(!(a||i.useProxy)||!a)return t.toString();const r=new URL(i.proxyEndpoint,window.location.origin);return r.searchParams.set("url",t.toString()),r.toString()}),ta=w(()=>qe.isGreaterOrEquals("lg")),c=w(()=>i.mode==="book"),W=w(()=>c.value||i.viewMode==="single"?!1:i.viewMode==="spread"?!0:ta.value),ot=w(()=>!c.value&&S.value>Fn),Pt=w(()=>W.value?2:1),T=w(()=>{if(s.value<=0)return 1;const e=Math.min(Math.max(m.value,1),s.value);return W.value&&e%2===0?e-1:e}),J=w(()=>{if(!W.value)return null;const e=T.value+1;return e<=s.value?e:null}),aa=w(()=>s.value?c.value?`${Math.min(Math.max(m.value,1),s.value)} / ${s.value}`:W.value&&J.value?`${T.value}-${J.value} / ${s.value}`:`${T.value} / ${s.value}`:"- / -"),it=w(()=>c.value?m.value>1:T.value>1),lt=w(()=>s.value?c.value?m.value<s.value:W.value&&J.value?J.value<s.value:T.value<s.value:!1),na=w(()=>{const e={},t=xt(He(i.height)),a=xt(He(i.minHeight));return t?e.height=t:(e.aspectRatio=Qt.value,e.minHeight=a||"360px"),e}),kt=w(()=>c.value?{transform:`scale(${S.value})`,transition:"transform 180ms ease"}:{transform:`translate3d(${Math.round(ee.value+ae.value)}px, ${Math.round(te.value)}px, 0)`,transition:f.active?"none":"transform 180ms ease"}),ra=w(()=>c.value?z("à¹à¸«à¸¡à¸à¸«à¸à¸±à¸à¸ªà¸·à¸: ลาà¸à¸à¸à¸à¸«à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸¥à¸´à¸, à¸à¸¥à¸´à¸ thumbnail à¹à¸à¸·à¹à¸à¸à¸£à¸°à¹à¸à¸à¸«à¸à¹à¸², à¹à¸à¹à¸à¸¸à¹à¸¡ +/- หรืภCtrl/Cmd + ลà¹à¸à¹à¸¡à¸²à¸ªà¹à¹à¸à¸·à¹à¸à¸à¸¹à¸¡"):z("ลาà¸à¸à¹à¸²à¸¢/à¸à¸§à¸²à¹à¸à¸·à¹à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¸«à¸à¹à¸², à¹à¸à¹à¸à¸¸à¹à¸¡ +/- à¹à¸à¸·à¹à¸à¸à¸¹à¸¡, à¸à¸ Ctrl/Cmd + ลà¹à¸à¹à¸¡à¸²à¸ªà¹à¹à¸à¸·à¹à¸à¸à¸¹à¸¡")),oa=w(()=>`${Math.round(S.value*100)}%`),ia=w(()=>Array.from({length:s.value},(e,t)=>t+1)),Q=w(()=>ze(i.showThumbnails,!0)),st=w(()=>{const e=ut(i.thumbnailWidth);return e==null?90:Math.max(Math.round(e),48)}),la=w(()=>{const e=st.value,t=Math.max(e+18,96);return{"--interactive-catalog-thumb-width":`${e}px`,"--interactive-catalog-sidebar-width":`${t}px`}}),St=w(()=>(i.size??"stretch")==="fixed"?"fixed":"stretch"),Ae=w(()=>St.value==="stretch"),sa=w(()=>Ae.value?ze(i.autoSize,!0):!1),ua=w(()=>ze(i.usePortrait,!1)),De=w(()=>ze(i.showCover,!1)),ca=w(()=>i.bookRenderMode==="html"?"html":"canvas"),k=w(()=>ca.value==="html"),M=(e,t,a)=>Math.min(a,Math.max(t,e)),ut=e=>{if(typeof e=="number"&&Number.isFinite(e)&&e>0)return e;if(typeof e=="string"&&e.trim().length>0){const t=e.trim().match(/^(\d+(?:\.\d+)?)/),a=t?Number(t[1]):Number.NaN;if(Number.isFinite(a)&&a>0)return a}},X=(...e)=>{for(const t of e){const a=ut(t);if(a!=null)return a}},Rt=e=>{if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number(e.trim());if(Number.isFinite(t))return t}},ct=w(()=>ut(He(i.minHeight))),ze=(e,t)=>
1{if(typeof e=="boolean")return e;if(typeof e=="number")return e!==0;if(typeof e=="string"){const a=e.trim().toLowerCase();if(a==="true")return!0;if(a==="false")return!1;if(a==="1")return!0;if(a==="0")return!1;if(a==="yes"||a==="on")return!0;if(a==="no"||a==="off")return!1}return t},dt=async e=>{const t=ye.get(e);if(t)return t;const a=new Promise((n,r)=>{const o=new Image;o.decoding="async",o.onload=()=>{n({element:o,width:Math.max(o.naturalWidth||o.width||1,1),height:Math.max(o.naturalHeight||o.height||1,1)})},o.onerror=()=>{ye.delete(e),r(new Error(`Cannot load image: ${e}`))},o.src=e});return ye.set(e,a),a},Ct=e=>{const t=new Set(e);Array.from(ye.keys()).forEach(a=>{t.has(a)||ye.delete(a)})},ft=()=>M(Math.max(S.value,1),1,Ln),da=()=>Math.max(8,Math.min(s.value,Tn)),It=e=>{const t=new Set;for(let a=-Yt;a<=Yt;a+=1){const n=e+a;n>=1&&n<=s.value&&t.add(n)}return Array.from(t.values()).sort((a,n)=>a-n)},Ce=e=>{if(!e)return;const t=e.getContext("2d");t&&(t.clearRect(0,0,e.width,e.height),e.width=0,e.height=0,e.style.width="0px",e.style.height="0px")},Bt=()=>{_e.forEach(e=>clearTimeout(e)),_e.clear()},Wt=(e,t)=>{const a=setTimeout(()=>{_e.delete(a),e()},t);_e.add(a)},Ft=()=>{const e=F.value;if(!e)return;const t=e.getBoundingClientRect(),a=Math.max((Ge.value-t.width)/2,0),n=Math.max((Ke.value-t.height)/2,0);ee.value=M(ee.value,-a,a),te.value=M(te.value,-n,n)},fa=async(e,t)=>{if(!e||!t||!F.value)return Ce(t),{width:0,height:0};const a=de.value[e-1]||"";if(!a)return Ce(t),{width:0,height:0};const n=await dt(a),r=F.value.getBoundingClientRect(),o=W.value?16:0,u=W.value?Math.max((r.width-o)/2,120):Math.max(r.width,120),g=Math.max(r.height,120),y=u/n.width,b=g/n.height,_=Math.min(y,b),P=Math.max(n.width*_*S.value,1),h=Math.max(n.height*_*S.value,1),p=window.devicePixelRatio||1;t.width=Math.max(Math.floor(P*p),1),t.height=Math.max(Math.floor(h*p),1),t.style.width=`${P}px`,t.style.height=`${h}px`;const v=t.getContext("2d");return v?(v.setTransform(p,0,0,p,0,0),v.clearRect(0,0,P,h),v.fillStyle="#ffffff",v.fillRect(0,0,P,h),v.drawImage(n.element,0,0,P,h),{width:P,height:h}):{width:P,height:h}},_t=async(e,t)=>{if(x.value)return await fa(e,t);if(!e||!t||!C.value||!F.value)return Ce(t),{width:0,height:0};const a=await C.value.getPage(e),n=a.getViewport({scale:1}),r=F.value.getBoundingClientRect(),o=W.value?16:0,u=W.value?Math.max((r.width-o)/2,120):Math.max(r.width,120),g=Math.max(r.height,120),y=u/n.width,b=g/n.height,_=Math.min(y,b),P=Math.max(_*S.value,.1),h=a.getViewport({scale:P}),p=window.devicePixelRatio||1;t.width=Math.floor(h.width*p),t.height=Math.floor(h.height*p),t.style.width=`${h.width}px`,t.style.height=`${h.height}px`;const v=t.getContext("2d");return v?(v.setTransform(p,0,0,p,0,0),v.clearRect(0,0,h.width,h.height),await a.render({canvasContext:v,viewport:h}).promise,{width:h.width,height:h.height}):{width:h.width,height:h.height}},ha=async()=>{const e=++Ee;if(F.value&&!(!x.value&&!C.value))try{const t=await _t(T.value,Xe.value);if(e!==Ee)return;const a=await _t(J.value,Ve.value);if(e!==Ee)return;Ge.value=t.width+a.width+(a.width>0?16:0),Ke.value=Math.max(t.height,a.height),ot.value||(ee.value=0,te.value=0),Ft()}catch(t){if(e!==Ee)return;if(Ie(t)&&!$.value){$.value=!0,await We();return}V.value=t instanceof Error?t.message:String(t)}},va=async()=>{if(Je){Qe=!0;return}Je=!0;try{do Qe=!1,await ha();while(Qe)}finally{Je=!1}},K=()=>{le!=null&&cancelAnimationFrame(le),le=requestAnimationFrame(()=>{le=null,va()})},ma=async()=>{const e=window;if(e.pdfjsLib)return e.pdfjsLib.GlobalWorkerOptions.workerSrc=yt,e.pdfjsLib;const t=document.getElementById(Xt);t?await new Promise((n,r)=>{if(e.pdfjsLib){n();return}t.addEventListener("load",()=>n(),{once:!0}),t.addEventListener("error",()=>r(new Error("Cannot load PDF.js")),{once:!0})}):await new Promise((n,r)=>{const o=document.createElement("script");o.id=Xt,o.src=Zt,o.async=!0,o.crossOrigin="anonymous",o.onload=()=>n(),o.onerror=()=>r(new Error("Cannot load PDF.js")),document.head.appendChild(o)});const a=e.pdfjsLib;if(a)return a.GlobalWorkerOptions.workerSrc=yt,a;throw new Error("PDF.js library is not available")},ga=async()=>
1{if(window.St?.PageFlip)return window.St;const e=document.getElementById(Vt);if(e?await new Promise((t,a)=>{if(window.St?.PageFlip){t();return}e.addEventListener("load",()=>t(),{once:!0}),e.addEventListener("error",()=>a(new Error("Cannot load st-pageflip")),{once:!0})}):await new Promise((t,a)=>{const n=document.createElement("script");n.id=Vt,n.src=Wn,n.async=!0,n.crossOrigin="anonymous",n.onload=()=>t(),n.onerror=()=>a(new Error("Cannot load st-pageflip")),document.head.appendChild(n)}),!window.St?.PageFlip)throw new Error("st-pageflip library is not available");return window.St},Ie=e=>{const t=(e instanceof Error?e.message:String(e)).toLowerCase();return t.includes("private member #")||t.includes("worker")||t.includes("message channel")},Ue=()=>{if(ue!=null&&(cancelAnimationFrame(ue),ue=null),ce=!1,Le="",Ne(),d){try{d.destroy()}catch{}d=null}pe&&(pe.remove(),pe=null)},pa=()=>{const e=Ye.value;if(!e)return null;pe?.parentElement===e&&pe.remove();const t=document.createElement("div");return t.className="interactive-catalog-book-flip-mount",e.appendChild(t),pe=t,t},Et=()=>{const e=Ye.value,t=F.value;if(!e||!t)return!1;const a=t.getBoundingClientRect();return a.width>1&&a.height>1},wa=()=>{if(!(!c.value||!d)){if(!ce){be();return}typeof d.update=="function"&&d.update(),!x.value&&!k.value?(fe(m.value),he()):be()}},re=()=>{c.value&&(se!=null&&cancelAnimationFrame(se),se=requestAnimationFrame(()=>{se=null,ya()}))},ya=async()=>{if(et){tt=!0;return}et=!0;try{do tt=!1,await vt();while(tt)}finally{et=!1}},ba=e=>{const t=F.value?.getBoundingClientRect(),a=Math.max(t?.width||920,360),n=Math.max(t?.height||640,420),r=a>=860?(a-52)/2:a-24,o=(n-24)*e,u=X(i.width),g=X(i.minWidth),y=X(i.maxWidth),b=ct.value,_=X(i.maxHeight),P=y?Math.max(y,g||0):M(Math.max(r,o),220,2400),h=g?Math.min(g,P):Math.max(Math.floor(P*.3),160);let p=u??Math.min(r,o);p=M(p,h,P);let v=p/e;return b&&v<b&&(v=b,p=v*e),_&&v>_&&(v=_,p=v*e),p=M(p,120,2400),v=M(v,180,2400),{pageWidth:p,pageHeight:v}},xa=(e,t)=>{const a=X(i.width),n=X(i.minWidth),r=X(i.maxWidth),o=ct.value,u=X(i.maxHeight),g=n??120,y=r??2400,b=Math.min(g,y),_=Math.max(g,y),P=Math.max(t||320,120);let h=M(a??P,b,_),p=h/e;return o&&p<o&&(p=o,h=p*e),u&&p>u&&(p=u,h=p*e),h=M(h,b,_),h=M(h,120,2400),p=M(p,180,2400),{pageWidth:h,pageHeight:p}},Tt=(e,t)=>{const a=Math.max(e,.01);if(Ae.value)return ba(a);const n=Math.max(t?.intrinsicWidth||320,120);return xa(a,n)},Ma=async e=>{const a=(await e.getPage(1)).getViewport({scale:1}),n=a.width/Math.max(a.height,1);return Tt(n,{intrinsicWidth:a.width})},Pa=async()=>{const e=de.value[0];if(!e)throw new Error("à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸à¸£à¸¹à¸à¸ าà¸à¸à¸¢à¹à¸²à¸à¸à¹à¸à¸¢ 1 รูà¸");const t=await dt(e),a=t.width/Math.max(t.height,1);return Tt(a,{intrinsicWidth:t.width})},ka=()=>{we.clear(),G!=null&&(cancelAnimationFrame(G),G=null)},Ne=()=>{bt.value=[],Ze.clear()},Lt=e=>{const t=U.value[e];t&&(t.url.startsWith("blob:")&&URL.revokeObjectURL(t.url),delete U.value[e])},$e=()=>{Object.keys(U.value).forEach(e=>{Lt(Number(e))}),ka(),Ne()},Sa=async e=>{if(typeof e.toBlob!="function")return e.toDataURL("image/jpeg",.9);const t=await new Promise(a=>{e.toBlob(n=>a(n),"image/jpeg",.9)});return t?URL.createObjectURL(t):e.toDataURL("image/jpeg",.9)},Ra=()=>{const e=Math.max(Math.round(H.width||320),1),t=Math.max(Math.round(H.height||460),1),a=document.createElement("canvas");a.width=e,a.height=t;const n=a.getContext("2d");if(!n){ge.value="";return}n.fillStyle="#ffffff",n.fillRect(0,0,e,t),ge.value=a.toDataURL("image/jpeg",.82)},ht=e=>{if(x.value)return de.value[e-1]||"";const t=ge.value||"";return U.value[e]?.url||t},Ht=()=>Array.from({length:s.value},(e,t)=>ht(t+1)),Ca=()=>{if(!s.value)return Ne(),[];Ne();const e=[],t=z("หà¸à¹à¸²");for(let a=1;a<=s.value;a+=1){const n=document.createElement("div");n.className="interactive-catalog-book-html-page",n.dataset.pageNumber=String(a),De.value&&a===1&&n.classList.add("interactive-catalog-book-html-page-cover","interactive-catalog-book-html-page-cover-top"),De.value&&a===s.value&&n.classList.add("interactive-catalog-book-html-page-cover","interactive-catalog-book-html-page-cover-bottom");const r=document.createElement("img");r.className="interactive-catalog-book-html-image",r.alt=`${t} ${a}`;const o=ht(a);o&&(r.src=o,r.dataset.source=o),n.appendChild(r),e.push(n),Ze.set(a,r)}return bt.value=e,e},Ia=()=>
1{if(k.value)for(let e=1;e<=s.value;e+=1){const t=Ze.get(e);if(!t)continue;const a=ht(e),n=t.dataset.source||"";!a||n===a||(t.src=a,t.dataset.source=a)}},At=()=>{if(!d||!c.value||!ce)return;const e=M(m.value-1,0,Math.max(s.value-1,0));if(k.value){Ia(),d.getCurrentPageIndex()!==e&&d.turnToPage(e);return}const t=Ht(),a=`${t.length}|${t.join("|")}`,n=a!==Le;let r=!1;if(n){if(typeof d.updateFromImages=="function")d.updateFromImages(t);else if(typeof d.loadFromImages=="function")d.loadFromImages(t);else return;Le=a,r=!0}(r||d.getCurrentPageIndex()!==e)&&d.turnToPage(e),r&&typeof d.update=="function"&&d.update()},be=()=>{!c.value||!d||ce&&(ue!=null&&cancelAnimationFrame(ue),ue=requestAnimationFrame(()=>{ue=null,At()}))},Dt=e=>{if(k.value)return;const t=Object.entries(U.value).map(([r,o])=>({page:Number(r),entry:o})),a=t.length-da();if(a<=0)return;const n=t.filter(({page:r})=>!e.has(r)).sort((r,o)=>r.entry.updatedAt-o.entry.updatedAt);for(let r=0;r<a&&r<n.length;r+=1)Lt(n[r].page)},zt=async(e,t,a)=>{const n=Math.max(H.width||320,1),r=Math.max(H.height||460,1),o=await e.getPage(t),u=o.getViewport({scale:1}),g=Math.min(window.devicePixelRatio||1,1.8);let y=Math.max(Math.floor(n*g*a),1),b=Math.max(Math.floor(r*g*a),1);const P=Math.min(1,2600/Math.max(y,b));y=Math.max(Math.floor(y*P),1),b=Math.max(Math.floor(b*P),1);const h=y/Math.max(u.width,1),p=b/Math.max(u.height,1),v=Math.max(Math.min(h,p),.1),O=o.getViewport({scale:v}),j=document.createElement("canvas");j.width=y,j.height=b;const oe=j.getContext("2d");if(!oe)return{url:"",renderScale:a,updatedAt:++Re};const Qa=(y-O.width)/2,en=(b-O.height)/2;return oe.clearRect(0,0,y,b),oe.fillStyle="#ffffff",oe.fillRect(0,0,y,b),oe.save(),oe.translate(Qa,en),await o.render({canvasContext:oe,viewport:O}).promise,oe.restore(),{url:await Sa(j),renderScale:a,updatedAt:++Re}},Ba=async(e,t)=>{if(!k.value)return;const a=ft();for(let n=1;n<=s.value;n+=1){if(t!==B||!c.value||!k.value)return;const r=U.value[n];if(r?.url&&r.renderScale+wt>=a){r.updatedAt=++Re;continue}const o=await zt(e,n,a);if(t!==B||!c.value||!k.value){o.url.startsWith("blob:")&&URL.revokeObjectURL(o.url);return}const u=U.value[n];u?.url&&u.url!==o.url&&u.url.startsWith("blob:")&&URL.revokeObjectURL(u.url),o.url&&(U.value[n]=o),await new Promise(g=>setTimeout(g,0))}},Wa=(e,t=!1)=>{if(x.value||k.value||e<1||e>s.value)return;const a=U.value[e],n=ft();if(!t&&a?.url&&a.renderScale+wt>=n){a.updatedAt=++Re;return}we.add(e)},fe=(e,t=!1)=>{if(k.value)return;const a=new Set(It(e));a.forEach(n=>Wa(n,t)),Dt(a)},he=()=>{c.value&&(G!=null&&cancelAnimationFrame(G),G=requestAnimationFrame(()=>{G=null,Ut()}))},Ut=async()=>{if(x.value||k.value||at)return;const e=C.value;if(!e||!c.value||!s.value||!H.width||!H.height)return;at=!0;const t=B;try{for(;we.size>0;){if(t!==B||!c.value)return;const n=Array.from(we).sort((u,g)=>Math.abs(u-m.value)-Math.abs(g-m.value))[0];if(n==null)return;we.delete(n);const r=ft(),o=U.value[n];if(o?.url&&o.renderScale+wt>=r){o.updatedAt=++Re;continue}try{const u=await zt(e,n,r);if(t!==B){u.url.startsWith("blob:")&&URL.revokeObjectURL(u.url);return}const g=U.value[n];g?.url&&g.url!==u.url&&g.url.startsWith("blob:")&&URL.revokeObjectURL(g.url),u.url&&(U.value[n]=u);const y=new Set(It(m.value));y.add(n),Dt(y),be()}catch(u){if(Ie(u)&&!$.value){$.value=!0,await We();return}V.value=u instanceof Error?u.message:String(u)}await new Promise(u=>setTimeout(u,0))}}finally{at=!1,we.size>0&&t===B&&c.value&&he()}},Nt=()=>{if(!d||!De.value||s.value<=0||typeof d.getPage!="function")return;[0,s.value-1].filter((t,a,n)=>t>=0&&t<s.value&&n.indexOf(t)===a).forEach(t=>{d?.getPage?.(t)?.setDensity?.("soft")})},Fa=async()=>{if(!c.value)return;const e=pa();if(!e)throw new Error("Book host is not ready");const t=await ga(),a=H.width||320,n=H.height||480,r=X(i.minWidth),o=X(i.maxWidth),u=ct.value,g=X(i.maxHeight),y=r??Math.max(Math.floor(a*.62),180),b=o??Math.max(a,1400),_=u??Math.max(Math.floor(n*.65),240),P=g??Math.max(n,2e3),h=Math.max(Math.round(Rt(i.bookFlipDuration)??280),140),p=Math.max(Math.round(Rt(i.bookCornerWidth)??110),32),v={width:a,height:n,size:St.value,drawShadow:!0,maxShadowOpacity:.55,flippingTime:h,startPage:M(m.value-1,0,Math.max(s.value-1,0)),showCover:De.value,autoSize:sa.value,usePortrait:ua.value,mobileScrollSupport:!1,swipeDistance:Math.max(Math.round(p*.55),30),useMouseEvents:!0};if(Ae.value)v.minWidth=Math.min(y,b),v.maxWidth=Math.max(y,b),v.minHeight=Math.min(_,P),v.maxHeight=Math.max(_,P);else{if(r!=null||o!=null){const O=r??o,j=o??r;v.minWidth=Math.min(O,j),v.maxWidth=Math.max(O,j)}if(u!=null||g!=null){const O=u??g,j=g??u;v.minHeight=Math.min(O,j),v.maxHeight=Math.max(O,j)}}if(ce=!1,Le="",d=new t.PageFlip(e,v),d.on("flip",O=>{const j=typeof O?.data=="number"?O.data:d?.getCurrentPageIndex?.()??0;m.value=M(j+1,1,Math.max(s.value,1)),!x.value&&!k.value&&(fe(m.value),he()
1)}),d.on("init",()=>{ce=!0,At(),be(),!x.value&&!k.value&&(fe(m.value,!0),he())}),k.value){if(typeof d.loadFromHTML!="function")throw new Error("st-pageflip loadFromHTML is not available");d.loadFromHTML(Ca()),Nt();return}if(typeof d.loadFromImages!="function")throw new Error("st-pageflip loadFromImages is not available");d.loadFromImages(Ht()),Nt()},vt=async()=>{if(!c.value||(Et()||await ve(),!Et()))return;const e=x.value,t=C.value;if(!s.value||!e&&!t)return;B+=1;const a=B;ke.value=!0;try{const n=e?await Pa():await Ma(t);if(a!==B||(H.width=n.pageWidth,H.height=n.pageHeight,Ue(),$e(),e?ge.value="":Ra(),e&&k.value&&(await Promise.all(de.value.map(r=>dt(r))),a!==B))||!e&&k.value&&(await Ba(t,a),a!==B)||(await ve(),a!==B))return;await Fa(),be(),!e&&!k.value&&(fe(m.value,!0),await Ut()),be()}catch(n){if(a!==B)return;if(Ie(n)&&!$.value){$.value=!0,await We();return}V.value=n instanceof Error?n.message:String(n)}finally{a===B&&(ke.value=!1)}},_a=async(e,t)=>{if($.value)return await e.getDocument({url:t,disableWorker:!0}).promise;try{return await e.getDocument({url:t}).promise}catch(a){if(!Ie(a))throw a;return $.value=!0,await e.getDocument({url:t,disableWorker:!0}).promise}},$t=async()=>{const e=C.value;if(C.value=null,!!e?.destroy)try{await e.destroy()}catch{}},Ea=async(e,t)=>{const a=await e.getPage(t),n=a.getViewport({scale:1}),r=st.value/Math.max(n.width,1),o=a.getViewport({scale:r}),u=document.createElement("canvas");u.width=Math.max(Math.floor(o.width),1),u.height=Math.max(Math.floor(o.height),1);const g=u.getContext("2d");return g?(g.clearRect(0,0,o.width,o.height),await a.render({canvasContext:g,viewport:o}).promise,u.toDataURL("image/jpeg",.86)):""},Be=()=>{if(!Q.value||!x.value){I.value={},N.value=!1;return}const e={};de.value.forEach((t,a)=>{e[a+1]=t}),I.value=e,N.value=!1},Ta=()=>{const e=s.value,t=[],a=new Set,n=T.value;for(let r=0;r<=e;r+=1){const o=n-r,u=n+r;o>=1&&!a.has(o)&&(a.add(o),t.push(o)),u<=e&&!a.has(u)&&(a.add(u),t.push(u))}return t},Ot=()=>{const e=Ta(),t=Math.min(e.length,Hn);return e.slice(0,t)},La=e=>{const t=Object.keys(I.value).map(r=>Number(r));if(t.length<=Gt)return;const a=t.map(r=>({page:r,distance:Math.abs(r-e)})).sort((r,o)=>o.distance-r.distance).slice(0,t.length-Gt);if(!a.length)return;const n={...I.value};a.forEach(({page:r})=>{delete n[r]}),I.value=n},Oe=async()=>{if(x.value){Be();return}const e=C.value;if(!e||s.value<=0||!Q.value){I.value={},N.value=!1;return}Y+=1;const t=Y,n=Ot().filter(r=>!I.value[r]);if(!n.length){N.value=!1;return}N.value=!0;try{for(const r of n){if(t!==Y)return;try{const o=await Ea(e,r);if(t!==Y)return;o&&(I.value={...I.value,[r]:o},La(T.value))}catch(o){if(Ie(o)&&!$.value){$.value=!0,await We();return}}await new Promise(o=>setTimeout(o,0))}}finally{t===Y&&(N.value=!1)}},We=async()=>{const e=rt.value,t=Mt.value,a=de.value;ne+=1;const n=ne;if(ie.value=!0,V.value="",s.value=0,Ge.value=0,Ke.value=0,Ce(Xe.value),Ce(Ve.value),I.value={},N.value=!1,Y+=1,B+=1,ke.value=!1,Ue(),$e(),ge.value="",Bt(),q.value=!1,Se.value=null,await $t(),e==="images"){try{if(!a.length){V.value=z("à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸à¸£à¸¹à¸à¸ าà¸à¸à¸¢à¹à¸²à¸à¸à¹à¸à¸¢ 1 รูà¸");return}Ct(a),s.value=a.length,m.value=M(m.value,1,Math.max(s.value,1)),!c.value&&W.value&&m.value%2===0&&(m.value-=1),c.value?await vt():K(),Q.value&&Be()}catch(r){if(n!==ne)return;V.value=r instanceof Error?r.message:String(r)}finally{n===ne&&(ie.value=!1)}return}if(Ct([]),!t){ie.value=!1,V.value=z("à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸¥à¸´à¸à¸à¹à¹à¸à¸¥à¹ PDF");return}try{i.disableWorker&&($.value=!0);const r=await ma();if(n!==ne)return;const o=await _a(r,t);if(n!==ne){await o.destroy?.();return}C.value=o,s.value=o.numPages,m.value=M(m.value,1,Math.max(o.numPages,1)),!c.value&&W.value&&m.value%2===0&&(m.value-=1),c.value?await vt():K(),Q.value&&Oe()}catch(r){if(n!==ne)return;V.value=r instanceof Error?r.message:String(r)}finally{n===ne&&(ie.value=!1)}},Ha=()=>{m.value=Math.max(1,i.initialPage),S.value=i.zoom,ee.value=0,te.value=0,ae.value=0},jt=()=>{Ha(),We()},mt=e=>{if(!s.value)return;const t=M(e,1,s.value);m.value=!c.value&&W.value&&t%2===0?t-1:t},Aa=e=>e==="next"?T.value+Pt.value:T.value-Pt.value,gt=e=>{if(q.value)return;if(c.value){if(!d){const a=e==="next"?m.value+1:m.value-1;mt(a);return}e==="next"&<.value&&d.flipNext(),e==="prev"&&it.value&&d.flipPrev();return}const t=Aa(e);t<1||t>s.value||(q.value=!0,Se.value=e,ae.value=0,Wt(()=>{mt(t)},En),Wt(()=>{q.value=!1,Se.value=null},_n))},Da=()=>{it.value&>("prev")},za=()=>{lt.value&>("next")},Ua=e=>{if(!q.value){if(c.value&&d){const t=M(e,1,s.value)-1;d.getCurrentPageIndex()!==t&&d.turnToPage(t),m.value=t+1;return}mt(e)}},Na=e=>W.value?T.value===e||J.value===e:T.value===e,je=e=>{S.value=M(e,i.minZoom,i.maxZoom)},$a=()=>{je(S.value+i.zoomStep)},Oa=()=>{je(S.value-i.zoomStep)},ja=()=>{S.value=1,ee.value=0,te.value=0,c.value||K()},qa=e=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();const t=e.deltaY<0?i.zoomStep:-i.zoomStep;je(S.value+t)},Xa=e=>{c.value||q.value||e.button!==0||!F.value||(f.active=!0,f.pointerId=e.pointerId,f.mode=ot.value?"pan":"swipe",f.startX=e.clientX,f.startY=e.clientY,f.deltaX=0,f.deltaY=0,f.startTranslateX=ee.value,f.startTranslateY=te.value,ae.value=0,F.value.setPointerCapture?.(e.pointerId))},Va=e=>{if(!c.value&&!(!f.active||e.pointerId!==f.pointerId)){if(f.deltaX=e.clientX-f.startX,f.deltaY=e.clientY-f.startY,f.mode==="pan"){ee.value=f.startTranslateX+f.deltaX,te.value=f.startTranslateY+f.deltaY,Ft();return}ae.value=f.deltaX}},Ya=e=>{if(!c.value&&!(!f.active||e.pointerId!==f.pointerId)){if(F.value?.releasePointerCapture?.(e.pointerId),f.mode==="swipe"){const t=F.value?.clientWidth||320,a=Math.max(Math.min(t*.16,120),48);Math.abs(f.deltaX)>Math.abs(f.deltaY)&&Math.abs(f.deltaX)>=a&>(f.deltaX<0?"next":"prev"),ae.value=0}f.active=!1,f.pointerId=-1}},Ga=e=>{c.value||!f.active||e.pointerId!==f.pointerId||(ae.value=0,f.active=!1,f.pointerId=-1)};E(()=>i.zoom,e=>{je(e)},{immediate:!0}),E(()=>i.initialPage,e=>{m.value=Math.max(1,e)}),E(()=>i.disableWorker,e=>{e&&($.value=!0)}),E(()=>i.mode,()=>{ae.value=0,f.active=!1,f.pointerId=-1,Ue(),$e(),c.value?re():K()}),E(Q,e=>{if(c.value?ve(()=>{re()}):K(),!e){Y+=1,I.value={},N.value=!1;return}if(x.value){Be();return}!C.value||s.value<=0||(Y+=1,I.value={},N.value=!1,Oe())}),E(st,(e,t)=>{if(e!==t&&Q.value){if(c.value?ve(()=>{re()}):K(),x.value){Be();return}!C.value||s.value<=0||(Y+=1,I.value={},N.value=!1,Oe())}}),E(m,e=>{if(!c.value||!d)return;if(!ce){!x.value&&!k.value&&(fe(e),he());return}const t=M(e,1,Math.max(s.value,1))-1;d.getCurrentPageIndex()!==t&&d.turnToPage(t),!x.value&&!k.value&&(fe(e),he())}),E([c,s,()=>!!C.value,x],([e,t,a,n])=>{!e||t<=0||!n&&!a||d||ke.value||re()}),E(()=>[i.size,i.autoSize,i.usePortrait,i.bookRenderMode,i.width,i.minWidth,i.maxWidth,i.maxHeight,i.minHeight,i.bookFlipDuration,i.bookCornerWidth,i.showCover],()=>{!c.value||s.value<=0||!x.value&&!C.value||re()}),E(()=>[rt.value,Mt.value,JSON.stringify(de.value)],()=>{jt()}),E([T,J,S],()=>
1{if(c.value){!x.value&&!k.value&&(fe(m.value),he());return}K()}),E(W,e=>{!c.value&&e&&m.value%2===0&&(m.value-=1),c.value||K()}),E(()=>qe.breakpoint.value,()=>{if(s.value){if(c.value){if(!x.value&&!C.value)return;ve(()=>{re()});return}ve(()=>{K()})}}),E(()=>[i.minZoom,i.maxZoom],([e,t])=>{S.value=M(S.value,e,t)}),E([T,J],()=>{if(Q.value){if(x.value){Be();return}N.value||!C.value||Ot().some(e=>!I.value[e])&&Oe()}}),rn(async()=>{await ve(),jt(),F.value&&(Te=new ResizeObserver(()=>{c.value?d?wa():re():K()}),Te.observe(F.value)),c.value&&s.value>0&&(C.value||x.value)&&re()}),on(async()=>{Bt(),B+=1,le!=null&&(cancelAnimationFrame(le),le=null),se!=null&&(cancelAnimationFrame(se),se=null),G!=null&&(cancelAnimationFrame(G),G=null),Te?.disconnect(),Te=null,Y+=1,Ue(),$e(),ge.value="",ye.clear(),await $t()});const{elementRef:Ka,effectClassName:Za,effectInlineStyle:Ja}=vn(()=>i);return(e,t)=>(A(),D("div",{class:me(["widget-interactive-catalog",l(Za)]),ref_key:"elementRef",ref:Ka,style:xe(l(Ja))},[L("div",{class:me(["interactive-catalog-layout",{"with-thumbnails":l(Q)&&l(s)>0,"is-book-mode":l(c)}])},[l(Q)&&l(s)>0?(A(),D("aside",{key:0,class:"interactive-catalog-sidebar",style:xe(l(la))},[(A(!0),D(ln,null,sn(l(ia),a=>(A(),D("button",{key:`thumb-${a}`,type:"button",class:me(["interactive-catalog-thumb",{"is-active":Na(a)}]),onClick:n=>Ua(a)},[l(I)[a]?(A(),D("img",{key:0,src:l(I)[a],alt:`${l(z)("หà¸à¹à¸²")} ${a}`,class:"interactive-catalog-thumb-image"},null,8,gn)):(A(),D("div",pn,Z(l(N)?l(z)("à¹à¸«à¸¥à¸..."):a),1)),L("span",wn,Z(l(z)("หà¸à¹à¸²"))+" "+Z(a),1)],10,mn))),128))],4)):Fe("",!0),L("div",yn,[Pe.showControls?(A(),D("div",bn,[L("button",{type:"button",class:"interactive-catalog-btn",disabled:!l(it)||l(q),onClick:Da},Z(l(z)("à¸à¹à¸à¸à¸«à¸à¹à¸²")),9,xn),L("span",Mn,Z(l(aa)),1),L("button",{type:"button",class:"interactive-catalog-btn",disabled:!l(lt)||l(q),onClick:za},Z(l(z)("à¸à¸±à¸à¹à¸")),9,Pn),t[0]||(t[0]=L("span",{class:"interactive-catalog-toolbar-spacer"},null,-1)),L("button",{type:"button",class:"interactive-catalog-btn",disabled:l(S)<=Pe.minZoom,onClick:Oa}," - ",8,kn),L("button",{type:"button",class:"interactive-catalog-btn",disabled:l(S)>=Pe.maxZoom,onClick:$a}," + ",8,Sn),L("button",{type:"button",class:"interactive-catalog-btn interactive-catalog-btn--zoom",onClick:ja},Z(l(oa)),1)])):Fe("",!0),L("div",{ref_key:"stageRef",ref:F,class:me(["interactive-catalog-stage",{"is-pan-mode":l(ot),"is-dragging":l(f).active,"is-loading":l(ie),"is-turning":l(q),"is-book-mode":l(c)}]),style:xe(l(na)),onWheel:qa,onPointerdown:Xa,onPointermove:Va,onPointerup:Ya,onPointercancel:Ga},[l(c)?(A(),D("div",{key:0,class:"interactive-catalog-book-flip-wrap",style:xe(l(kt))},[L("div",{ref_key:"bookFlipHostRef",ref:Ye,class:me(["interactive-catalog-book-flip",{"is-stretch-size":l(Ae)}]),style:xe({"--interactive-catalog-book-page-width":`${l(H).width||320}px`,"--interactive-catalog-book-page-height":`${l(H).height||460}px`,"--interactive-catalog-book-spread-width":`${(l(H).width||320)*2+16}px`})},null,6)],4)):(A(),D("div",{key:1,class:"interactive-catalog-book-wrap",style:xe(l(kt))},[L("div",{class:me(["interactive-catalog-book",{"is-spread":l(W),"is-turning-next":l(q)&&l(Se)==="next","is-turning-prev":l(q)&&l(Se)==="prev"}])},[L("canvas",{ref_key:"leftPageRef",ref:Xe,class:"interactive-catalog-page"},null,512),l(W)?(A(),D("canvas",{key:0,ref_key:"rightPageRef",ref:Ve,class:me(["interactive-catalog-page",{"is-empty":!l(J)}])},null,2)):Fe("",!0)],2)],4)),l(ie)||l(ke)?(A(),D("div",Rn,Z(l(ie)?l(z)("à¸à¸³à¸¥à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸à¸ªà¸²à¸£..."):l(z)("à¸à¸³à¸¥à¸±à¸à¹à¸à¸£à¸µà¸¢à¸¡à¹à¸«à¸¡à¸à¸«à¸à¸±à¸à¸ªà¸·à¸...")),1)):l(V)?(A(),D("div",Cn,Z(l(V)),1)):Fe("",!0)],38),Pe.showControls?(A(),D("div",In,Z(l(ra)),1)):Fe("",!0)])],2)],6))}});export{zn as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.