extract2md
Version:
Client-side PDF to Markdown conversion with OCR and optional LLM rewrite. Core dependencies bundled for offline use.
2 lines • 5.98 MB
JavaScript
/*! For license information please see extract2md.esm.js.LICENSE.txt */
var A={28:A=>{A.exports=(A,g)=>`${A}-${g}-${Math.random().toString(16).slice(3,8)}`},39:A=>{A.exports=async(A,g)=>{A.postMessage(g)}},119:A=>{A.exports={workerBlobURL:!0,logger:()=>{}}},125:A=>{A.exports={rE:"5.1.1"}},321:(A,g,Q)=>{const B=Q(848),I=Q(456),C=Q(548),E=Q(381),D=Q(39),i=Q(996);A.exports={defaultOptions:B,spawnWorker:I,terminateWorker:C,onMessage:E,send:D,loadImage:i}},381:A=>{A.exports=(A,g)=>{A.onmessage=({data:A})=>{g(A)}}},452:A=>{var g=function(A){var g,Q=Object.prototype,B=Q.hasOwnProperty,I=Object.defineProperty||function(A,g,Q){A[g]=Q.value},C="function"==typeof Symbol?Symbol:{},E=C.iterator||"@@iterator",D=C.asyncIterator||"@@asyncIterator",i=C.toStringTag||"@@toStringTag";function w(A,g,Q){return Object.defineProperty(A,g,{value:Q,enumerable:!0,configurable:!0,writable:!0}),A[g]}try{w({},"")}catch(A){w=function(A,g,Q){return A[g]=Q}}function o(A,g,Q,B){var C=g&&g.prototype instanceof e?g:e,E=Object.create(C.prototype),D=new n(B||[]);return I(E,"_invoke",{value:r(A,Q,D)}),E}function s(A,g,Q){try{return{type:"normal",arg:A.call(g,Q)}}catch(A){return{type:"throw",arg:A}}}A.wrap=o;var G="suspendedStart",t="suspendedYield",N="executing",a="completed",h={};function e(){}function Y(){}function k(){}var c={};w(c,E,(function(){return this}));var F=Object.getPrototypeOf,M=F&&F(F(S([])));M&&M!==Q&&B.call(M,E)&&(c=M);var U=k.prototype=e.prototype=Object.create(c);function y(A){["next","throw","return"].forEach((function(g){w(A,g,(function(A){return this._invoke(g,A)}))}))}function R(A,g){function Q(I,C,E,D){var i=s(A[I],A,C);if("throw"!==i.type){var w=i.arg,o=w.value;return o&&"object"==typeof o&&B.call(o,"__await")?g.resolve(o.__await).then((function(A){Q("next",A,E,D)}),(function(A){Q("throw",A,E,D)})):g.resolve(o).then((function(A){w.value=A,E(w)}),(function(A){return Q("throw",A,E,D)}))}D(i.arg)}var C;I(this,"_invoke",{value:function(A,B){function I(){return new g((function(g,I){Q(A,B,g,I)}))}return C=C?C.then(I,I):I()}})}function r(A,g,Q){var B=G;return function(I,C){if(B===N)throw new Error("Generator is already running");if(B===a){if("throw"===I)throw C;return H()}for(Q.method=I,Q.arg=C;;){var E=Q.delegate;if(E){var D=L(E,Q);if(D){if(D===h)continue;return D}}if("next"===Q.method)Q.sent=Q._sent=Q.arg;else if("throw"===Q.method){if(B===G)throw B=a,Q.arg;Q.dispatchException(Q.arg)}else"return"===Q.method&&Q.abrupt("return",Q.arg);B=N;var i=s(A,g,Q);if("normal"===i.type){if(B=Q.done?a:t,i.arg===h)continue;return{value:i.arg,done:Q.done}}"throw"===i.type&&(B=a,Q.method="throw",Q.arg=i.arg)}}}function L(A,Q){var B=Q.method,I=A.iterator[B];if(I===g)return Q.delegate=null,"throw"===B&&A.iterator.return&&(Q.method="return",Q.arg=g,L(A,Q),"throw"===Q.method)||"return"!==B&&(Q.method="throw",Q.arg=new TypeError("The iterator does not provide a '"+B+"' method")),h;var C=s(I,A.iterator,Q.arg);if("throw"===C.type)return Q.method="throw",Q.arg=C.arg,Q.delegate=null,h;var E=C.arg;return E?E.done?(Q[A.resultName]=E.value,Q.next=A.nextLoc,"return"!==Q.method&&(Q.method="next",Q.arg=g),Q.delegate=null,h):E:(Q.method="throw",Q.arg=new TypeError("iterator result is not an object"),Q.delegate=null,h)}function K(A){var g={tryLoc:A[0]};1 in A&&(g.catchLoc=A[1]),2 in A&&(g.finallyLoc=A[2],g.afterLoc=A[3]),this.tryEntries.push(g)}function J(A){var g=A.completion||{};g.type="normal",delete g.arg,A.completion=g}function n(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(K,this),this.reset(!0)}function S(A){if(A){var Q=A[E];if(Q)return Q.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length)){var I=-1,C=function Q(){for(;++I<A.length;)if(B.call(A,I))return Q.value=A[I],Q.done=!1,Q;return Q.value=g,Q.done=!0,Q};return C.next=C}}return{next:H}}function H(){return{value:g,done:!0}}return Y.prototype=k,I(U,"constructor",{value:k,configurable:!0}),I(k,"constructor",{value:Y,configurable:!0}),Y.displayName=w(k,i,"GeneratorFunction"),A.isGeneratorFunction=function(A){var g="function"==typeof A&&A.constructor;return!!g&&(g===Y||"GeneratorFunction"===(g.displayName||g.name))},A.mark=function(A){return Object.setPrototypeOf?Object.setPrototypeOf(A,k):(A.__proto__=k,w(A,i,"GeneratorFunction")),A.prototype=Object.create(U),A},A.awrap=function(A){return{__await:A}},y(R.prototype),w(R.prototype,D,(function(){return this})),A.AsyncIterator=R,A.async=function(g,Q,B,I,C){void 0===C&&(C=Promise);var E=new R(o(g,Q,B,I),C);return A.isGeneratorFunction(Q)?E:E.next().then((function(A){return A.done?A.value:E.next()}))},y(U),w(U,i,"Generator"),w(U,E,(function(){return this})),w(U,"toString",(function(){return"[object Generator]"})),A.keys=function(A){var g=Object(A),Q=[];for(var B in g)Q.push(B);return Q.reverse(),function A(){for(;Q.length;){var B=Q.pop();if(B in g)return A.value=B,A.done=!1,A}return A.done=!0,A}},A.values=S,n.prototype={constructor:n,reset:function(A){if(this.prev=0,this.next=0,this.sent=this._sent=g,this.done=!1,this.delegate=null,this.method="next",this.arg=g,this.tryEntries.forEach(J),!A)for(var Q in this)"t"===Q.charAt(0)&&B.call(this,Q)&&!isNaN(+Q.slice(1))&&(this[Q]=g)},stop:function(){this.done=!0;var A=this.tryEntries[0].completion;if("throw"===A.type)throw A.arg;return this.rval},dispatchException:function(A){if(this.done)throw A;var Q=this;function I(B,I){return D.type="throw",D.arg=A,Q.next=B,I&&(Q.method="next",Q.arg=g),!!I}for(var C=this.tryEntries.length-1;C>=0;--C){var E=this.tryEntries[C],D=E.completion;if("root"===E.tryLoc)return I("end");if(E.tryLoc<=this.prev){var i=B.call(E,"catchLoc"),w=B.call(E,"finallyLoc");if(i&&w){if(this.prev<E.catchLoc)return I(E.catchLoc,!0);if(this.prev<E.finallyLoc)return I(E.finallyLoc)}else if(i){if(this.prev<E.catchLoc)return I(E.catchLoc,!0)}else{if(!w)throw new Error("try statement without catch or finally");if(this.prev<E.finallyLoc)return I(E.finallyLoc)}}}},abrupt:function(A,g){for(var Q=this.tryEntries.length-1;Q>=0;--Q){var I=this.tryEntries[Q];if(I.tryLoc<=this.prev&&B.call(I,"finallyLoc")&&this.prev<I.finallyLoc){var C=I;break}}C&&("break"===A||"continue"===A)&&C.tryLoc<=g&&g<=C.finallyLoc&&(C=null);var E=C?C.completion:{};return E.type=A,E.arg=g,C?(this.method="next",this.next=C.finallyLoc,h):this.complete(E)},complete:function(A,g){if("throw"===A.type)throw A.arg;return"break"===A.type||"continue"===A.type?this.next=A.arg:"return"===A.type?(this.rval=this.arg=A.arg,this.method="return",this.next="end"):"normal"===A.type&&g&&(this.next=g),h},finish:function(A){for(var g=this.tryEntries.length-1;g>=0;--g){var Q=this.tryEntries[g];if(Q.finallyLoc===A)return this.complete(Q.completion,Q.afterLoc),J(Q),h}},catch:function(A){for(var g=this.tryEntries.length-1;g>=0;--g){var Q=this.tryEntries[g];if(Q.tryLoc===A){var B=Q.completion;if("throw"===B.type){var I=B.arg;J(Q)}return I}}throw new Error("illegal catch attempt")},delegateYield:function(A,Q,B){return this.delegate={iterator:S(A),resultName:Q,nextLoc:B},"next"===this.method&&(this.arg=g),h}},A}(A.exports);try{regeneratorRuntime=g}catch(A){"object"==typeof globalThis?globalThis.regeneratorRuntime=g:Function("r","regeneratorRuntime = r")(g)}},456:A=>{A.exports=({workerPath:A,workerBlobURL:g})=>{let Q;if(Blob&&URL&&g){const g=new Blob([`importScripts("${A}");`],{type:"application/javascript"});Q=new Worker(URL.createObjectURL(g))}else Q=new Worker(A);return Q}},465:(A,g,Q)=>{const B=Q(477);A.exports={recognize:async(A,g,Q)=>{const I=await B(g,1,Q);return I.recognize(A).finally((async()=>{await I.terminate()}))},detect:async(A,g)=>{const Q=await B("osd",0,g);return Q.detect(A).finally((async()=>{await Q.terminate()}))}}},477:(A,g,Q)=>{const B=Q(981),I=Q(760),C=Q(500),{log:E}=Q(787),D=Q(28),i=Q(742),{defaultOptions:w,spawnWorker:o,terminateWorker:s,onMessage:G,loadImage:t,send:N}=Q(321);let a=0;A.exports=async(A="eng",g=i.LSTM_ONLY,Q={},h={})=>{const e=D("Worker",a),{logger:Y,errorHandler:k,...c}=B({...w,...Q}),F={},M={},U="string"==typeof A?A.split("+"):A;let y=g,R=h;const r=[i.DEFAULT,i.LSTM_ONLY].includes(g)&&!c.legacyCore;let L,K;const J=new Promise(((A,g)=>{K=A,L=g}));let n=o(c);n.onerror=A=>{L(A.message)},a+=1;const S=(A,g)=>{F[A]=g},H=(A,g)=>{M[A]=g},d=({id:A,action:g,payload:Q})=>new Promise(((B,I)=>{E(`[${e}]: Start ${A}, action=${g}`);const C=`${g}-${A}`;S(C,B),H(C,I),N(n,{workerId:e,jobId:A,action:g,payload:Q})})),l=(A,g)=>d(C({id:g,action:"loadLanguage",payload:{langs:A,options:{langPath:c.langPath,dataPath:c.dataPath,cachePath:c.cachePath,cacheMethod:c.cacheMethod,gzip:c.gzip,lstmOnly:[i.DEFAULT,i.LSTM_ONLY].includes(y)&&!c.legacyLang}}})),m=(A,g,Q,B)=>d(C({id:B,action:"initialize",payload:{langs:A,oem:g,config:Q}}));G(n,(({workerId:A,jobId:g,status:Q,action:B,data:C})=>{const D=`${B}-${g}`;if("resolve"===Q){E(`[${A}]: Complete ${g}`);let Q=C;"recognize"===B?Q=I(C):"getPDF"===B&&(Q=Array.from({...C,length:Object.keys(C).length})),F[D]({jobId:g,data:Q})}else if("reject"===Q){if(M[D](C),"load"===B&&L(C),!k)throw Error(C);k(C)}else"progress"===Q&&Y({...C,userJobId:g})}));const p={id:e,worker:n,setResolve:S,setReject:H,load:()=>console.warn("`load` is depreciated and should be removed from code (workers now come pre-loaded)"),writeText:(A,g,Q)=>d(C({id:Q,action:"FS",payload:{method:"writeFile",args:[A,g]}})),readText:(A,g)=>d(C({id:g,action:"FS",payload:{method:"readFile",args:[A,{encoding:"utf8"}]}})),removeFile:(A,g)=>d(C({id:g,action:"FS",payload:{method:"unlink",args:[A]}})),FS:(A,g,Q)=>d(C({id:Q,action:"FS",payload:{method:A,args:g}})),loadLanguage:()=>console.warn("`loadLanguage` is depreciated and should be removed from code (workers now come with language pre-loaded)"),initialize:()=>console.warn("`initialize` is depreciated and should be removed from code (workers now come pre-initialized)"),reinitialize:(A="eng",g,Q,B)=>{if(r&&[i.TESSERACT_ONLY,i.TESSERACT_LSTM_COMBINED].includes(g))throw Error("Legacy model requested but code missing.");const I=g||y;y=I;const C=Q||R;R=C;const E=("string"==typeof A?A.split("+"):A).filter((A=>!U.includes(A)));return U.push(...E),E.length>0?l(E,B).then((()=>m(A,I,C,B))):m(A,I,C,B)},setParameters:(A={},g)=>d(C({id:g,action:"setParameters",payload:{params:A}})),recognize:async(A,g={},Q={blocks:!0,text:!0,hocr:!0,tsv:!0},B)=>d(C({id:B,action:"recognize",payload:{image:await t(A),options:g,output:Q}})),getPDF:(A="Tesseract OCR Result",g=!1,Q)=>(console.log("`getPDF` function is depreciated. `recognize` option `savePDF` should be used instead."),d(C({id:Q,action:"getPDF",payload:{title:A,textonly:g}}))),detect:async(A,g)=>{if(r)throw Error("`worker.detect` requires Legacy model, which was not loaded.");return d(C({id:g,action:"detect",payload:{image:await t(A)}}))},terminate:async()=>(null!==n&&(s(n),n=null),Promise.resolve())};return d(C({id:undefined,action:"load",payload:{options:{lstmOnly:r,corePath:c.corePath,logging:c.logging}}})).then((()=>l(A))).then((()=>m(A,g,h))).then((()=>K(p))).catch((()=>{})),J}},500:(A,g,Q)=>{const B=Q(28);let I=0;A.exports=({id:A,action:g,payload:Q={}})=>{let C=A;return void 0===C&&(C=B("Job",I),I+=1),{id:C,action:g,payload:Q}}},548:A=>{A.exports=A=>{A.terminate()}},646:A=>{A.exports={AFR:"afr",AMH:"amh",ARA:"ara",ASM:"asm",AZE:"aze",AZE_CYRL:"aze_cyrl",BEL:"bel",BEN:"ben",BOD:"bod",BOS:"bos",BUL:"bul",CAT:"cat",CEB:"ceb",CES:"ces",CHI_SIM:"chi_sim",CHI_TRA:"chi_tra",CHR:"chr",CYM:"cym",DAN:"dan",DEU:"deu",DZO:"dzo",ELL:"ell",ENG:"eng",ENM:"enm",EPO:"epo",EST:"est",EUS:"eus",FAS:"fas",FIN:"fin",FRA:"fra",FRK:"frk",FRM:"frm",GLE:"gle",GLG:"glg",GRC:"grc",GUJ:"guj",HAT:"hat",HEB:"heb",HIN:"hin",HRV:"hrv",HUN:"hun",IKU:"iku",IND:"ind",ISL:"isl",ITA:"ita",ITA_OLD:"ita_old",JAV:"jav",JPN:"jpn",KAN:"kan",KAT:"kat",KAT_OLD:"kat_old",KAZ:"kaz",KHM:"khm",KIR:"kir",KOR:"kor",KUR:"kur",LAO:"lao",LAT:"lat",LAV:"lav",LIT:"lit",MAL:"mal",MAR:"mar",MKD:"mkd",MLT:"mlt",MSA:"msa",MYA:"mya",NEP:"nep",NLD:"nld",NOR:"nor",ORI:"ori",PAN:"pan",POL:"pol",POR:"por",PUS:"pus",RON:"ron",RUS:"rus",SAN:"san",SIN:"sin",SLK:"slk",SLV:"slv",SPA:"spa",SPA_OLD:"spa_old",SQI:"sqi",SRP:"srp",SRP_LATN:"srp_latn",SWA:"swa",SWE:"swe",SYR:"syr",TAM:"tam",TEL:"tel",TGK:"tgk",TGL:"tgl",THA:"tha",TIR:"tir",TUR:"tur",UIG:"uig",UKR:"ukr",URD:"urd",UZB:"uzb",UZB_CYRL:"uzb_cyrl",VIE:"vie",YID:"yid"}},742:A=>{A.exports={TESSERACT_ONLY:0,LSTM_ONLY:1,TESSERACT_LSTM_COMBINED:2,DEFAULT:3}},760:A=>{A.exports=A=>{const g=[],Q=[],B=[],I=[],C=[];return A.blocks&&A.blocks.forEach((E=>{E.paragraphs.forEach((g=>{g.lines.forEach((Q=>{Q.words.forEach((B=>{B.symbols.forEach((I=>{C.push({...I,page:A,block:E,paragraph:g,line:Q,word:B})})),I.push({...B,page:A,block:E,paragraph:g,line:Q})})),B.push({...Q,page:A,block:E,paragraph:g})})),Q.push({...g,page:A,block:E})})),g.push({...E,page:A})})),{...A,blocks:g,paragraphs:Q,lines:B,words:I,symbols:C}}},787:function(A,g){let Q=!1;g.logging=Q,g.setLogging=A=>{Q=A},g.log=(...A)=>Q?console.log.apply(this,A):null},820:(A,g,Q)=>{const B=Q(866);A.exports=A=>{const g={};return"undefined"!=typeof WorkerGlobalScope?g.type="webworker":B()?g.type="electron":"object"==typeof document?g.type="browser":"object"==typeof process&&(g.type="node"),void 0===A?g:g[A]}},848:(A,g,Q)=>{const B=Q(125).rE,I=Q(119);A.exports={...I,workerPath:`https://cdn.jsdelivr.net/npm/tesseract.js@v${B}/dist/worker.min.js`}},866:A=>{A.exports=function(){return"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0}},882:function(A,g,Q){const B=Q(500),{log:I}=Q(787),C=Q(28);let E=0;A.exports=()=>{const A=C("Scheduler",E),g={},Q={};let D=[];E+=1;const i=()=>Object.keys(g).length,w=()=>{if(0!==D.length){const A=Object.keys(g);for(let B=0;B<A.length;B+=1)if(void 0===Q[A[B]]){D[0](g[A[B]]);break}}},o=(g,C)=>new Promise(((E,i)=>{const o=B({action:g,payload:C});D.push((async A=>{D.shift(),Q[A.id]=o;try{E(await A[g].apply(this,[...C,o.id]))}catch(A){i(A)}finally{delete Q[A.id],w()}})),I(`[${A}]: Add ${o.id} to JobQueue`),I(`[${A}]: JobQueue length=${D.length}`),w()}));return{addWorker:Q=>(g[Q.id]=Q,I(`[${A}]: Add ${Q.id}`),I(`[${A}]: Number of workers=${i()}`),w(),Q.id),addJob:async(g,...Q)=>{if(0===i())throw Error(`[${A}]: You need to have at least one worker before adding jobs`);return o(g,Q)},terminate:async()=>{Object.keys(g).forEach((async A=>{await g[A].terminate()})),D=[]},getQueueLen:()=>D.length,getNumWorkers:i}}},949:A=>{A.exports={OSD_ONLY:"0",AUTO_OSD:"1",AUTO_ONLY:"2",AUTO:"3",SINGLE_COLUMN:"4",SINGLE_BLOCK_VERT_TEXT:"5",SINGLE_BLOCK:"6",SINGLE_LINE:"7",SINGLE_WORD:"8",CIRCLE_WORD:"9",SINGLE_CHAR:"10",SPARSE_TEXT:"11",SPARSE_TEXT_OSD:"12",RAW_LINE:"13"}},981:(A,g,Q)=>{const B="browser"===Q(820)("type")?A=>new URL(A,window.location.href).href:A=>A;A.exports=A=>{const g={...A};return["corePath","workerPath","langPath"].forEach((Q=>{A[Q]&&(g[Q]=B(g[Q]))})),g}},995:(A,g,Q)=>{Q(452);const B=Q(882),I=Q(477),C=Q(465),E=Q(646),D=Q(742),i=Q(949),{setLogging:w}=Q(787);A.exports={languages:E,OEM:D,PSM:i,createScheduler:B,createWorker:I,setLogging:w,...C}},996:A=>{const g=A=>new Promise(((g,Q)=>{const B=new FileReader;B.onload=()=>{g(B.result)},B.onerror=({target:{error:{code:A}}})=>{Q(Error(`File could not be read! Code=${A}`))},B.readAsArrayBuffer(A)})),Q=async A=>{let B=A;if(void 0===A)return"undefined";if("string"==typeof A)if(/data:image\/([a-zA-Z]*);base64,([^"]*)/.test(A))B=atob(A.split(",")[1]).split("").map((A=>A.charCodeAt(0)));else{const g=await fetch(A);B=await g.arrayBuffer()}else if("undefined"!=typeof HTMLElement&&A instanceof HTMLElement)"IMG"===A.tagName&&(B=await Q(A.src)),"VIDEO"===A.tagName&&(B=await Q(A.poster)),"CANVAS"===A.tagName&&await new Promise((Q=>{A.toBlob((async A=>{B=await g(A),Q()}))}));else if("undefined"!=typeof OffscreenCanvas&&A instanceof OffscreenCanvas){const Q=await A.convertToBlob();B=await g(Q)}else(A instanceof File||A instanceof Blob)&&(B=await g(A));return new Uint8Array(B)};A.exports=Q}},g={};function Q(B){var I=g[B];if(void 0!==I)return I.exports;var C=g[B]={exports:{}};return A[B].call(C.exports,C,C.exports,Q),C.exports}Q.d=(A,g)=>{for(var B in g)Q.o(g,B)&&!Q.o(A,B)&&Object.defineProperty(A,B,{enumerable:!0,get:g[B]})},Q.o=(A,g)=>Object.prototype.hasOwnProperty.call(A,g),Q.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var B={};Q.r(B),Q.d(B,{AbortException:()=>d,AnnotationEditorLayer:()=>LB,AnnotationEditorParamsType:()=>o,AnnotationEditorType:()=>w,AnnotationEditorUIManager:()=>FA,AnnotationLayer:()=>BB,AnnotationMode:()=>i,AnnotationType:()=>t,ColorPicker:()=>tB,DOMSVGFactory:()=>rQ,DrawLayer:()=>KB,FeatureTest:()=>p,GlobalWorkerOptions:()=>Jg,ImageKind:()=>G,InvalidPDFException:()=>n,MathClamp:()=>x,OPS:()=>a,OutputScale:()=>sA,PDFDataRangeTransport:()=>oQ,PDFDateString:()=>CA,PDFWorker:()=>NQ,PasswordResponses:()=>h,PermissionFlag:()=>s,PixelsPerInch:()=>T,RenderingCancelledException:()=>V,ResponseException:()=>S,SignatureExtractor:()=>MB,SupportedImageMimeTypes:()=>GA,TextLayer:()=>QQ,TouchManager:()=>UA,Util:()=>O,VerbosityLevel:()=>N,XfaLayer:()=>LQ,build:()=>FQ,createValidAbsoluteUrl:()=>y,fetchData:()=>b,getDocument:()=>CQ,getFilenameFromUrl:()=>$,getPdfFilenameFromUrl:()=>AA,getUuid:()=>f,getXfaPageViewport:()=>EA,isDataScheme:()=>X,isPdfFile:()=>_,isValidExplicitDest:()=>iQ,noContextMenu:()=>BA,normalizeUnicode:()=>v,setLayerDimensions:()=>oA,shadow:()=>r,stopEvent:()=>IA,updateUrlHash:()=>R,version:()=>cQ});var I={};Q.r(I),Q.d(I,{Chat:()=>hC,ChatCompletionRequestUnsupportedFields:()=>YC,Completions:()=>cC,CreateExtensionServiceWorkerMLCEngine:()=>bC,CreateMLCEngine:()=>lC,CreateServiceWorkerMLCEngine:()=>uC,CreateWebWorkerMLCEngine:()=>vC,Embeddings:()=>UC,ExtensionServiceWorkerMLCEngine:()=>VC,ExtensionServiceWorkerMLCEngineHandler:()=>TC,MLCEngine:()=>mC,ModelType:()=>PB,ServiceWorkerMLCEngine:()=>zC,ServiceWorkerMLCEngineHandler:()=>qC,WebWorkerMLCEngine:()=>fC,WebWorkerMLCEngineHandler:()=>jC,deleteChatConfigInCache:()=>SC,deleteModelAllInfoInCache:()=>JC,deleteModelInCache:()=>nC,deleteModelWasmInCache:()=>HC,functionCallingModelIds:()=>WI,hasModelInCache:()=>KC,modelLibURLPrefix:()=>bI,modelVersion:()=>TI,postInitAndCheckFieldsChatCompletion:()=>kC,postInitAndCheckFieldsCompletion:()=>MC,postInitAndCheckFieldsEmbedding:()=>RC,prebuiltAppConfig:()=>VI});const C=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),E=[.001,0,0,.001,0,0],D=1.35,i={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},w={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,SIGNATURE:101},o={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35,DRAW_STEP:41},s={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},G={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},t={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},N={ERRORS:0,WARNINGS:1,INFOS:5},a={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93,rawFillPath:94},h={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let e=N.WARNINGS;function Y(A){Number.isInteger(A)&&(e=A)}function k(){return e}function c(A){e>=N.INFOS&&console.log(`Info: ${A}`)}function F(A){e>=N.WARNINGS&&console.log(`Warning: ${A}`)}function M(A){throw new Error(A)}function U(A,g){A||M(g)}function y(A,g=null,Q=null){if(!A)return null;if(Q&&"string"==typeof A){if(Q.addDefaultProtocol&&A.startsWith("www.")){const g=A.match(/\./g);g?.length>=2&&(A=`http://${A}`)}if(Q.tryConvertEncoding)try{A=decodeURIComponent(escape(A))}catch{}}const B=g?URL.parse(A,g):URL.parse(A);return function(A){switch(A?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(B)?B:null}function R(A,g,Q=!1){const B=URL.parse(A);return B?(B.hash=g,B.href):Q&&y(A,"http://example.com")?A.split("#",1)[0]+""+(g?`#${g}`:""):""}function r(A,g,Q,B=!1){return Object.defineProperty(A,g,{value:Q,enumerable:!B,configurable:!0,writable:!1}),Q}const L=function(){function A(A,g){this.message=A,this.name=g}return A.prototype=new Error,A.constructor=A,A}();class K extends L{constructor(A,g){super(A,"PasswordException"),this.code=g}}class J extends L{constructor(A,g){super(A,"UnknownErrorException"),this.details=g}}class n extends L{constructor(A){super(A,"InvalidPDFException")}}class S extends L{constructor(A,g,Q){super(A,"ResponseException"),this.status=g,this.missing=Q}}class H extends L{constructor(A){super(A,"FormatError")}}class d extends L{constructor(A){super(A,"AbortException")}}function l(A){"object"==typeof A&&void 0!==A?.length||M("Invalid argument for bytesToString");const g=A.length,Q=8192;if(g<Q)return String.fromCharCode.apply(null,A);const B=[];for(let I=0;I<g;I+=Q){const C=Math.min(I+Q,g),E=A.subarray(I,C);B.push(String.fromCharCode.apply(null,E))}return B.join("")}function m(A){"string"!=typeof A&&M("Invalid argument for stringToBytes");const g=A.length,Q=new Uint8Array(g);for(let B=0;B<g;++B)Q[B]=255&A.charCodeAt(B);return Q}class p{static get isLittleEndian(){return r(this,"isLittleEndian",function(){const A=new Uint8Array(4);return A[0]=1,1===new Uint32Array(A.buffer,0,1)[0]}())}static get isEvalSupported(){return r(this,"isEvalSupported",function(){try{return new Function(""),!0}catch{return!1}}())}static get isOffscreenCanvasSupported(){return r(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get isImageDecoderSupported(){return r(this,"isImageDecoderSupported","undefined"!=typeof ImageDecoder)}static get platform(){if("undefined"!=typeof navigator&&"string"==typeof navigator?.platform&&"string"==typeof navigator?.userAgent){const{platform:A,userAgent:g}=navigator;return r(this,"platform",{isAndroid:g.includes("Android"),isLinux:A.includes("Linux"),isMac:A.includes("Mac"),isWindows:A.includes("Win"),isFirefox:g.includes("Firefox")})}return r(this,"platform",{isAndroid:!1,isLinux:!1,isMac:!1,isWindows:!1,isFirefox:!1})}static get isCSSRoundSupported(){return r(this,"isCSSRoundSupported",globalThis.CSS?.supports?.("width: round(1.5px, 1px)"))}}const P=Array.from(Array(256).keys(),(A=>A.toString(16).padStart(2,"0")));class O{static makeHexColor(A,g,Q){return`#${P[A]}${P[g]}${P[Q]}`}static scaleMinMax(A,g){let Q;A[0]?(A[0]<0&&(Q=g[0],g[0]=g[2],g[2]=Q),g[0]*=A[0],g[2]*=A[0],A[3]<0&&(Q=g[1],g[1]=g[3],g[3]=Q),g[1]*=A[3],g[3]*=A[3]):(Q=g[0],g[0]=g[1],g[1]=Q,Q=g[2],g[2]=g[3],g[3]=Q,A[1]<0&&(Q=g[1],g[1]=g[3],g[3]=Q),g[1]*=A[1],g[3]*=A[1],A[2]<0&&(Q=g[0],g[0]=g[2],g[2]=Q),g[0]*=A[2],g[2]*=A[2]),g[0]+=A[4],g[1]+=A[5],g[2]+=A[4],g[3]+=A[5]}static transform(A,g){return[A[0]*g[0]+A[2]*g[1],A[1]*g[0]+A[3]*g[1],A[0]*g[2]+A[2]*g[3],A[1]*g[2]+A[3]*g[3],A[0]*g[4]+A[2]*g[5]+A[4],A[1]*g[4]+A[3]*g[5]+A[5]]}static applyTransform(A,g,Q=0){const B=A[Q],I=A[Q+1];A[Q]=B*g[0]+I*g[2]+g[4],A[Q+1]=B*g[1]+I*g[3]+g[5]}static applyTransformToBezier(A,g,Q=0){const B=g[0],I=g[1],C=g[2],E=g[3],D=g[4],i=g[5];for(let g=0;g<6;g+=2){const w=A[Q+g],o=A[Q+g+1];A[Q+g]=w*B+o*C+D,A[Q+g+1]=w*I+o*E+i}}static applyInverseTransform(A,g){const Q=A[0],B=A[1],I=g[0]*g[3]-g[1]*g[2];A[0]=(Q*g[3]-B*g[2]+g[2]*g[5]-g[4]*g[3])/I,A[1]=(-Q*g[1]+B*g[0]+g[4]*g[1]-g[5]*g[0])/I}static axialAlignedBoundingBox(A,g,Q){const B=g[0],I=g[1],C=g[2],E=g[3],D=g[4],i=g[5],w=A[0],o=A[1],s=A[2],G=A[3];let t=B*w+D,N=t,a=B*s+D,h=a,e=E*o+i,Y=e,k=E*G+i,c=k;if(0!==I||0!==C){const A=I*w,g=I*s,Q=C*o,B=C*G;t+=Q,h+=Q,a+=B,N+=B,e+=A,c+=A,k+=g,Y+=g}Q[0]=Math.min(Q[0],t,a,N,h),Q[1]=Math.min(Q[1],e,k,Y,c),Q[2]=Math.max(Q[2],t,a,N,h),Q[3]=Math.max(Q[3],e,k,Y,c)}static inverseTransform(A){const g=A[0]*A[3]-A[1]*A[2];return[A[3]/g,-A[1]/g,-A[2]/g,A[0]/g,(A[2]*A[5]-A[4]*A[3])/g,(A[4]*A[1]-A[5]*A[0])/g]}static singularValueDecompose2dScale(A,g){const Q=A[0],B=A[1],I=A[2],C=A[3],E=Q**2+B**2,D=Q*I+B*C,i=I**2+C**2,w=(E+i)/2,o=Math.sqrt(w**2-(E*i-D**2));g[0]=Math.sqrt(w+o||1),g[1]=Math.sqrt(w-o||1)}static normalizeRect(A){const g=A.slice(0);return A[0]>A[2]&&(g[0]=A[2],g[2]=A[0]),A[1]>A[3]&&(g[1]=A[3],g[3]=A[1]),g}static intersect(A,g){const Q=Math.max(Math.min(A[0],A[2]),Math.min(g[0],g[2])),B=Math.min(Math.max(A[0],A[2]),Math.max(g[0],g[2]));if(Q>B)return null;const I=Math.max(Math.min(A[1],A[3]),Math.min(g[1],g[3])),C=Math.min(Math.max(A[1],A[3]),Math.max(g[1],g[3]));return I>C?null:[Q,I,B,C]}static pointBoundingBox(A,g,Q){Q[0]=Math.min(Q[0],A),Q[1]=Math.min(Q[1],g),Q[2]=Math.max(Q[2],A),Q[3]=Math.max(Q[3],g)}static rectBoundingBox(A,g,Q,B,I){I[0]=Math.min(I[0],A,Q),I[1]=Math.min(I[1],g,B),I[2]=Math.max(I[2],A,Q),I[3]=Math.max(I[3],g,B)}static#A(A,g,Q,B,I,C,E,D,i,w){if(i<=0||i>=1)return;const o=1-i,s=i*i,G=s*i,t=o*(o*(o*A+3*i*g)+3*s*Q)+G*B,N=o*(o*(o*I+3*i*C)+3*s*E)+G*D;w[0]=Math.min(w[0],t),w[1]=Math.min(w[1],N),w[2]=Math.max(w[2],t),w[3]=Math.max(w[3],N)}static#g(A,g,Q,B,I,C,E,D,i,w,o,s){if(Math.abs(i)<1e-12)return void(Math.abs(w)>=1e-12&&this.#A(A,g,Q,B,I,C,E,D,-o/w,s));const G=w**2-4*o*i;if(G<0)return;const t=Math.sqrt(G),N=2*i;this.#A(A,g,Q,B,I,C,E,D,(-w+t)/N,s),this.#A(A,g,Q,B,I,C,E,D,(-w-t)/N,s)}static bezierBoundingBox(A,g,Q,B,I,C,E,D,i){i[0]=Math.min(i[0],A,E),i[1]=Math.min(i[1],g,D),i[2]=Math.max(i[2],A,E),i[3]=Math.max(i[3],g,D),this.#g(A,Q,I,E,g,B,C,D,3*(3*(Q-I)-A+E),6*(A-2*Q+I),3*(Q-A),i),this.#g(A,Q,I,E,g,B,C,D,3*(3*(B-C)-g+D),6*(g-2*B+C),3*(B-g),i)}}let Z=null,j=null;function v(A){return Z||(Z=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,j=new Map([["ſt","ſt"]])),A.replaceAll(Z,((A,g,Q)=>g?g.normalize("NFKC"):j.get(Q)))}function f(){if("function"==typeof crypto.randomUUID)return crypto.randomUUID();const A=new Uint8Array(32);return crypto.getRandomValues(A),l(A)}const q="pdfjs_internal_id_";function x(A,g,Q){return Math.min(Math.max(A,g),Q)}function u(A){return Uint8Array.prototype.toBase64?A.toBase64():btoa(l(A))}"function"!=typeof Promise.try&&(Promise.try=function(A,...g){return new Promise((Q=>{Q(A(...g))}))}),"function"!=typeof Math.sumPrecise&&(Math.sumPrecise=function(A){return A.reduce(((A,g)=>A+g),0)});const z="http://www.w3.org/2000/svg";class T{static CSS=96;static PDF=72;static PDF_TO_CSS_UNITS=this.CSS/this.PDF}async function b(A,g="text"){if(QA(A,document.baseURI)){const Q=await fetch(A);if(!Q.ok)throw new Error(Q.statusText);switch(g){case"arraybuffer":return Q.arrayBuffer();case"blob":return Q.blob();case"json":return Q.json()}return Q.text()}return new Promise(((Q,B)=>{const I=new XMLHttpRequest;I.open("GET",A,!0),I.responseType=g,I.onreadystatechange=()=>{if(I.readyState===XMLHttpRequest.DONE)if(200!==I.status&&0!==I.status)B(new Error(I.statusText));else{switch(g){case"arraybuffer":case"blob":case"json":return void Q(I.response)}Q(I.responseText)}},I.send(null)}))}class W{constructor({viewBox:A,userUnit:g,scale:Q,rotation:B,offsetX:I=0,offsetY:C=0,dontFlip:E=!1}){this.viewBox=A,this.userUnit=g,this.scale=Q,this.rotation=B,this.offsetX=I,this.offsetY=C,Q*=g;const D=(A[2]+A[0])/2,i=(A[3]+A[1])/2;let w,o,s,G,t,N,a,h;switch((B%=360)<0&&(B+=360),B){case 180:w=-1,o=0,s=0,G=1;break;case 90:w=0,o=1,s=1,G=0;break;case 270:w=0,o=-1,s=-1,G=0;break;case 0:w=1,o=0,s=0,G=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}E&&(s=-s,G=-G),0===w?(t=Math.abs(i-A[1])*Q+I,N=Math.abs(D-A[0])*Q+C,a=(A[3]-A[1])*Q,h=(A[2]-A[0])*Q):(t=Math.abs(D-A[0])*Q+I,N=Math.abs(i-A[1])*Q+C,a=(A[2]-A[0])*Q,h=(A[3]-A[1])*Q),this.transform=[w*Q,o*Q,s*Q,G*Q,t-w*Q*D-s*Q*i,N-o*Q*D-G*Q*i],this.width=a,this.height=h}get rawDims(){const A=this.viewBox;return r(this,"rawDims",{pageWidth:A[2]-A[0],pageHeight:A[3]-A[1],pageX:A[0],pageY:A[1]})}clone({scale:A=this.scale,rotation:g=this.rotation,offsetX:Q=this.offsetX,offsetY:B=this.offsetY,dontFlip:I=!1}={}){return new W({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:A,rotation:g,offsetX:Q,offsetY:B,dontFlip:I})}convertToViewportPoint(A,g){const Q=[A,g];return O.applyTransform(Q,this.transform),Q}convertToViewportRectangle(A){const g=[A[0],A[1]];O.applyTransform(g,this.transform);const Q=[A[2],A[3]];return O.applyTransform(Q,this.transform),[g[0],g[1],Q[0],Q[1]]}convertToPdfPoint(A,g){const Q=[A,g];return O.applyInverseTransform(Q,this.transform),Q}}class V extends L{constructor(A,g=0){super(A,"RenderingCancelledException"),this.extraDelay=g}}function X(A){const g=A.length;let Q=0;for(;Q<g&&""===A[Q].trim();)Q++;return"data:"===A.substring(Q,Q+5).toLowerCase()}function _(A){return"string"==typeof A&&/\.pdf$/i.test(A)}function $(A){return[A]=A.split(/[#?]/,1),A.substring(A.lastIndexOf("/")+1)}function AA(A,g="document.pdf"){if("string"!=typeof A)return g;if(X(A))return F('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'),g;const Q=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i,B=/^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/.exec(A);let I=Q.exec(B[1])||Q.exec(B[2])||Q.exec(B[3]);if(I&&(I=I[0],I.includes("%")))try{I=Q.exec(decodeURIComponent(I))[0]}catch{}return I||g}class gA{started=Object.create(null);times=[];time(A){A in this.started&&F(`Timer is already running for ${A}`),this.started[A]=Date.now()}timeEnd(A){A in this.started||F(`Timer has not been started for ${A}`),this.times.push({name:A,start:this.started[A],end:Date.now()}),delete this.started[A]}toString(){const A=[];let g=0;for(const{name:A}of this.times)g=Math.max(A.length,g);for(const{name:Q,start:B,end:I}of this.times)A.push(`${Q.padEnd(g)} ${I-B}ms\n`);return A.join("")}}function QA(A,g){const Q=g?URL.parse(A,g):URL.parse(A);return"http:"===Q?.protocol||"https:"===Q?.protocol}function BA(A){A.preventDefault()}function IA(A){A.preventDefault(),A.stopPropagation()}class CA{static#Q;static toDateObject(A){if(!A||"string"!=typeof A)return null;this.#Q||=new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?");const g=this.#Q.exec(A);if(!g)return null;const Q=parseInt(g[1],10);let B=parseInt(g[2],10);B=B>=1&&B<=12?B-1:0;let I=parseInt(g[3],10);I=I>=1&&I<=31?I:1;let C=parseInt(g[4],10);C=C>=0&&C<=23?C:0;let E=parseInt(g[5],10);E=E>=0&&E<=59?E:0;let D=parseInt(g[6],10);D=D>=0&&D<=59?D:0;const i=g[7]||"Z";let w=parseInt(g[8],10);w=w>=0&&w<=23?w:0;let o=parseInt(g[9],10)||0;return o=o>=0&&o<=59?o:0,"-"===i?(C+=w,E+=o):"+"===i&&(C-=w,E-=o),new Date(Date.UTC(Q,B,I,C,E,D))}}function EA(A,{scale:g=1,rotation:Q=0}){const{width:B,height:I}=A.attributes.style,C=[0,0,parseInt(B),parseInt(I)];return new W({viewBox:C,userUnit:1,scale:g,rotation:Q})}function DA(A){if(A.startsWith("#")){const g=parseInt(A.slice(1),16);return[(16711680&g)>>16,(65280&g)>>8,255&g]}return A.startsWith("rgb(")?A.slice(4,-1).split(",").map((A=>parseInt(A))):A.startsWith("rgba(")?A.slice(5,-1).split(",").map((A=>parseInt(A))).slice(0,3):(F(`Not a valid color format: "${A}"`),[0,0,0])}function iA(A){const{a:g,b:Q,c:B,d:I,e:C,f:E}=A.getTransform();return[g,Q,B,I,C,E]}function wA(A){const{a:g,b:Q,c:B,d:I,e:C,f:E}=A.getTransform().invertSelf();return[g,Q,B,I,C,E]}function oA(A,g,Q=!1,B=!0){if(g instanceof W){const{pageWidth:B,pageHeight:I}=g.rawDims,{style:C}=A,E=p.isCSSRoundSupported,D=`var(--total-scale-factor) * ${B}px`,i=`var(--total-scale-factor) * ${I}px`,w=E?`round(down, ${D}, var(--scale-round-x))`:`calc(${D})`,o=E?`round(down, ${i}, var(--scale-round-y))`:`calc(${i})`;Q&&g.rotation%180!=0?(C.width=o,C.height=w):(C.width=w,C.height=o)}B&&A.setAttribute("data-main-rotation",g.rotation)}class sA{constructor(){const{pixelRatio:A}=sA;this.sx=A,this.sy=A}get scaled(){return 1!==this.sx||1!==this.sy}get symmetric(){return this.sx===this.sy}limitCanvas(A,g,Q,B){let I=1/0,C=1/0,E=1/0;Q>0&&(I=Math.sqrt(Q/(A*g))),-1!==B&&(C=B/A,E=B/g);const D=Math.min(I,C,E);return(this.sx>D||this.sy>D)&&(this.sx=D,this.sy=D,!0)}static get pixelRatio(){return globalThis.devicePixelRatio||1}}const GA=["image/apng","image/avif","image/bmp","image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/x-icon"];class tA{#B=null;#I=null;#C;#E=null;#D=null;#i=null;static#w=null;constructor(A){this.#C=A,tA.#w||=Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button",signature:"pdfjs-editor-remove-signature-button"})}render(){const A=this.#B=document.createElement("div");A.classList.add("editToolbar","hidden"),A.setAttribute("role","toolbar");const g=this.#C._uiManager._signal;A.addEventListener("contextmenu",BA,{signal:g}),A.addEventListener("pointerdown",tA.#o,{signal:g});const Q=this.#E=document.createElement("div");Q.className="buttons",A.append(Q);const B=this.#C.toolbarPosition;if(B){const{style:g}=A,Q="ltr"===this.#C._uiManager.direction?1-B[0]:B[0];g.insetInlineEnd=100*Q+"%",g.top=`calc(${100*B[1]}% + var(--editor-toolbar-vert-offset))`}return this.#s(),A}get div(){return this.#B}static#o(A){A.stopPropagation()}#G(A){this.#C._focusEventsAllowed=!1,IA(A)}#t(A){this.#C._focusEventsAllowed=!0,IA(A)}#N(A){const g=this.#C._uiManager._signal;A.addEventListener("focusin",this.#G.bind(this),{capture:!0,signal:g}),A.addEventListener("focusout",this.#t.bind(this),{capture:!0,signal:g}),A.addEventListener("contextmenu",BA,{signal:g})}hide(){this.#B.classList.add("hidden"),this.#I?.hideDropdown()}show(){this.#B.classList.remove("hidden"),this.#D?.shown()}#s(){const{editorType:A,_uiManager:g}=this.#C,Q=document.createElement("button");Q.className="delete",Q.tabIndex=0,Q.setAttribute("data-l10n-id",tA.#w[A]),this.#N(Q),Q.addEventListener("click",(A=>{g.delete()}),{signal:g._signal}),this.#E.append(Q)}get#a(){const A=document.createElement("div");return A.className="divider",A}async addAltText(A){const g=await A.render();this.#N(g),this.#E.prepend(g,this.#a),this.#D=A}addColorPicker(A){this.#I=A;const g=A.renderButton();this.#N(g),this.#E.prepend(g,this.#a)}async addEditSignatureButton(A){const g=this.#i=await A.renderEditButton(this.#C);this.#N(g),this.#E.prepend(g,this.#a)}updateEditSignatureButton(A){this.#i&&(this.#i.title=A)}remove(){this.#B.remove(),this.#I?.destroy(),this.#I=null}}class NA{#E=null;#B=null;#h;constructor(A){this.#h=A}#e(){const A=this.#B=document.createElement("div");A.className="editToolbar",A.setAttribute("role","toolbar"),A.addEventListener("contextmenu",BA,{signal:this.#h._signal});const g=this.#E=document.createElement("div");return g.className="buttons",A.append(g),this.#Y(),A}#k(A,g){let Q=0,B=0;for(const I of A){const A=I.y+I.height;if(A<Q)continue;const C=I.x+(g?I.width:0);A>Q?(B=C,Q=A):g?C>B&&(B=C):C<B&&(B=C)}return[g?1-B:B,Q]}show(A,g,Q){const[B,I]=this.#k(g,Q),{style:C}=this.#B||=this.#e();A.append(this.#B),C.insetInlineEnd=100*B+"%",C.top=`calc(${100*I}% + var(--editor-toolbar-vert-offset))`}hide(){this.#B.remove()}#Y(){const A=document.createElement("button");A.className="highlightButton",A.tabIndex=0,A.setAttribute("data-l10n-id","pdfjs-highlight-floating-button1");const g=document.createElement("span");A.append(g),g.className="visuallyHidden",g.setAttribute("data-l10n-id","pdfjs-highlight-floating-button-label");const Q=this.#h._signal;A.addEventListener("contextmenu",BA,{signal:Q}),A.addEventListener("click",(()=>{this.#h.highlightSelection("floating_button")}),{signal:Q}),this.#E.append(A)}}function aA(A,g,Q){for(const B of Q)g.addEventListener(B,A[B].bind(A))}class hA{#c=0;get id(){return"pdfjs_internal_editor_"+this.#c++}}class eA{#F=f();#c=0;#M=null;static get _isSVGFittingCanvas(){const A=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),g=new Image;return g.src='data:image/svg+xml;charset=UTF-8,<svg viewBox="0 0 1 1" width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="1" height="1" style="fill:red;"/></svg>',r(this,"_isSVGFittingCanvas",g.decode().then((()=>(A.drawImage(g,0,0,1,1,0,0,1,3),0===new Uint32Array(A.getImageData(0,0,1,1).data.buffer)[0]))))}async#U(A,g){this.#M||=new Map;let Q=this.#M.get(A);if(null===Q)return null;if(Q?.bitmap)return Q.refCounter+=1,Q;try{let A;if(Q||={bitmap:null,id:`image_${this.#F}_${this.#c++}`,refCounter:0,isSvg:!1},"string"==typeof g?(Q.url=g,A=await b(g,"blob")):g instanceof File?A=Q.file=g:g instanceof Blob&&(A=g),"image/svg+xml"===A.type){const g=eA._isSVGFittingCanvas,B=new FileReader,I=new Image,C=new Promise(((A,C)=>{I.onload=()=>{Q.bitmap=I,Q.isSvg=!0,A()},B.onload=async()=>{const A=Q.svgUrl=B.result;I.src=await g?`${A}#svgView(preserveAspectRatio(none))`:A},I.onerror=B.onerror=C}));B.readAsDataURL(A),await C}else Q.bitmap=await createImageBitmap(A);Q.refCounter=1}catch(A){F(A),Q=null}return this.#M.set(A,Q),Q&&this.#M.set(Q.id,Q),Q}async getFromFile(A){const{lastModified:g,name:Q,size:B,type:I}=A;return this.#U(`${g}_${Q}_${B}_${I}`,A)}async getFromUrl(A){return this.#U(A,A)}async getFromBlob(A,g){const Q=await g;return this.#U(A,Q)}async getFromId(A){this.#M||=new Map;const g=this.#M.get(A);if(!g)return null;if(g.bitmap)return g.refCounter+=1,g;if(g.file)return this.getFromFile(g.file);if(g.blobPromise){const{blobPromise:A}=g;return delete g.blobPromise,this.getFromBlob(g.id,A)}return this.getFromUrl(g.url)}getFromCanvas(A,g){this.#M||=new Map;let Q=this.#M.get(A);if(Q?.bitmap)return Q.refCounter+=1,Q;const B=new OffscreenCanvas(g.width,g.height);return B.getContext("2d").drawImage(g,0,0),Q={bitmap:B.transferToImageBitmap(),id:`image_${this.#F}_${this.#c++}`,refCounter:1,isSvg:!1},this.#M.set(A,Q),this.#M.set(Q.id,Q),Q}getSvgUrl(A){const g=this.#M.get(A);return g?.isSvg?g.svgUrl:null}deleteId(A){this.#M||=new Map;const g=this.#M.get(A);if(!g)return;if(g.refCounter-=1,0!==g.refCounter)return;const{bitmap:Q}=g;if(!g.url&&!g.file){const A=new OffscreenCanvas(Q.width,Q.height);A.getContext("bitmaprenderer").transferFromImageBitmap(Q),g.blobPromise=A.convertToBlob()}Q.close?.(),g.bitmap=null}isValidId(A){return A.startsWith(`image_${this.#F}_`)}}class YA{#y=[];#R=!1;#r;#L=-1;constructor(A=128){this.#r=A}add({cmd:A,undo:g,post:Q,mustExec:B,type:I=NaN,overwriteIfSameType:C=!1,keepUndo:E=!1}){if(B&&A(),this.#R)return;const D={cmd:A,undo:g,post:Q,type:I};if(-1===this.#L)return this.#y.length>0&&(this.#y.length=0),this.#L=0,void this.#y.push(D);if(C&&this.#y[this.#L].type===I)return E&&(D.undo=this.#y[this.#L].undo),void(this.#y[this.#L]=D);const i=this.#L+1;i===this.#r?this.#y.splice(0,1):(this.#L=i,i<this.#y.length&&this.#y.splice(i)),this.#y.push(D)}undo(){if(-1===this.#L)return;this.#R=!0;const{undo:A,post:g}=this.#y[this.#L];A(),g?.(),this.#R=!1,this.#L-=1}redo(){if(this.#L<this.#y.length-1){this.#L+=1,this.#R=!0;const{cmd:A,post:g}=this.#y[this.#L];A(),g?.(),this.#R=!1}}hasSomethingToUndo(){return-1!==this.#L}hasSomethingToRedo(){return this.#L<this.#y.length-1}cleanType(A){if(-1!==this.#L){for(let g=this.#L;g>=0;g--)if(this.#y[g].type!==A)return this.#y.splice(g+1,this.#L-g),void(this.#L=g);this.#y.length=0,this.#L=-1}}destroy(){this.#y=null}}class kA{constructor(A){this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:g}=p.platform;for(const[Q,B,I={}]of A)for(const A of Q){const Q=A.startsWith("mac+");g&&Q?(this.callbacks.set(A.slice(4),{callback:B,options:I}),this.allKeys.add(A.split("+").at(-1))):g||Q||(this.callbacks.set(A,{callback:B,options:I}),this.allKeys.add(A.split("+").at(-1)))}}#K(A){A.altKey&&this.buffer.push("alt"),A.ctrlKey&&this.buffer.push("ctrl"),A.metaKey&&this.buffer.push("meta"),A.shiftKey&&this.buffer.push("shift"),this.buffer.push(A.key);const g=this.buffer.join("+");return this.buffer.length=0,g}exec(A,g){if(!this.allKeys.has(g.key))return;const Q=this.callbacks.get(this.#K(g));if(!Q)return;const{callback:B,options:{bubbles:I=!1,args:C=[],checker:E=null}}=Q;E&&!E(A,g)||(B.bind(A,...C,g)(),I||IA(g))}}class cA{static _colorsMapping=new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]);get _colors(){const A=new Map([["CanvasText",null],["Canvas",null]]);return function(A){const g=document.createElement("span");g.style.visibility="hidden",g.style.colorScheme="only light",document.body.append(g);for(const Q of A.keys()){g.style.color=Q;const B=window.getComputedStyle(g).color;A.set(Q,DA(B))}g.remove()}(A),r(this,"_colors",A)}convert(A){const g=DA(A);if(!window.matchMedia("(forced-colors: active)").matches)return g;for(const[A,Q]of this._colors)if(Q.every(((A,Q)=>A===g[Q])))return cA._colorsMapping.get(A);return g}getHexCode(A){const g=this._colors.get(A);return g?O.makeHexColor(...g):A}}class FA{#J=new AbortController;#n=null;#S=new Map;#H=new Map;#d=null;#l=null;#m=null;#p=new YA;#P=null;#O=null;#Z=0;#j=new Set;#v=null;#f=null;#q=new Set;_editorUndoBar=null;#x=!1;#u=!1;#z=!1;#T=null;#b=null;#W=null;#V=null;#X=!1;#_=null;#$=new hA;#AA=!1;#gA=!1;#QA=null;#BA=null;#IA=null;#CA=null;#EA=null;#DA=w.NONE;#iA=new Set;#wA=null;#oA=null;#sA=null;#GA=null;#tA={isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1};#NA=[0,0];#aA=null;#hA=null;#eA=null;#YA=null;static TRANSLATE_SMALL=1;static TRANSLATE_BIG=10;static get _keyboardManager(){const A=FA.prototype,g=A=>A.#hA.contains(document.activeElement)&&"BUTTON"!==document.activeElement.tagName&&A.hasSomethingToControl(),Q=(A,{target:g})=>{if(g instanceof HTMLInputElement){const{type:A}=g;return"text"!==A&&"number"!==A}return!0},B=this.TRANSLATE_SMALL,I=this.TRANSLATE_BIG;return r(this,"_keyboardManager",new kA([[["ctrl+a","mac+meta+a"],A.selectAll,{checker:Q}],[["ctrl+z","mac+meta+z"],A.undo,{checker:Q}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],A.redo,{checker:Q}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],A.delete,{checker:Q}],[["Enter","mac+Enter"],A.addNewEditorFromKeyboard,{checker:(A,{target:g})=>!(g instanceof HTMLButtonElement)&&A.#hA.contains(g)&&!A.isEnterHandled}],[[" ","mac+ "],A.addNewEditorFromKeyboard,{checker:(A,{target:g})=>!(g instanceof HTMLButtonElement)&&A.#hA.contains(document.activeElement)}],[["Escape","mac+Escape"],A.unselectAll],[["ArrowLeft","mac+ArrowLeft"],A.translateSelectedEditors,{args:[-B,0],checker:g}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],A.translateSelectedEditors,{args:[-I,0],checker:g}],[["ArrowRight","mac+ArrowRight"],A.translateSelectedEditors,{args:[B,0],checker:g}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],A.translateSelectedEditors,{args:[I,0],checker:g}],[["ArrowUp","mac+ArrowUp"],A.translateSelectedEditors,{args:[0,-B],checker:g}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],A.translateSelectedEditors,{args:[0,-I],checker:g}],[["ArrowDown","mac+ArrowDown"],A.translateSelectedEditors,{args:[0,B],checker:g}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],A.translateSelectedEditors,{args:[0,I],checker:g}]]))}constructor(A,g,Q,B,I,C,E,D,i,w,o,s,G,t){const N=this._signal=this.#J.signal;this.#hA=A,this.#eA=g,this.#d=Q,this.#oA=B,this._eventBus=I,I._on("editingaction",this.onEditingAction.bind(this),{signal:N}),I._on("pagechanging",this.onPageChanging.bind(this),{signal:N}),I._on("scalechanging",this.onScaleChanging.bind(this),{signal:N}),I._on("rotationchanging",this.onRotationChanging.bind(this),{signal:N}),I._on("setpreference",this.onSetPreference.bind(this),{signal:N}),I._on("switchannotationeditorparams",(A=>this.updateParams(A.type,A.value)),{signal:N}),this.#kA(),this.#cA(),this.#FA(),this.#l=C.annotationStorage,this.#T=C.filterFactory,this.#sA=E,this.#V=D||null,this.#x=i,this.#u=w,this.#z=o,this.#EA=s||null,this.viewParameters={realScale:T.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=G||null,this._supportsPinchToZoom=!1!==t}destroy(){this.#YA?.resolve(),this.#YA=null,this.#J?.abort(),this.#J=null,this._signal=null;for(const A of this.#H.values())A.destroy();this.#H.clear(),this.#S.clear(),this.#q.clear(),this.#CA?.clear(),this.#n=null,this.#iA.clear(),this.#p.destroy(),this.#d?.destroy(),this.#oA?.destroy(),this.#_?.hide(),this.#_=null,this.#IA?.destroy(),this.#IA=null,this.#b&&(clearTimeout(this.#b),this.#b=null),this.#aA&&(clearTimeout(this.#aA),this.#aA=null),this._editorUndoBar?.destroy()}combinedSignal(A){return AbortSignal.any([this._signal,A.signal])}get mlManager(){return this.#EA}get useNewAltTextFlow(){return this.#u}get useNewAltTextWhenAddingImage(){return this.#z}get hcmFilter(){return r(this,"hcmFilter",this.#sA?this.#T.addHCMFilter(this.#sA.foreground,this.#sA.background):"none")}get direction(){return r(this,"direction",getComputedStyle(this.#hA).direction)}get highlightColors(){return r(this,"highlightColors",this.#V?new Map(this.#V.split(",").map((A=>A.split("=").map((A=>A.trim()))))):null)}get highlightColorNames(){return r(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,(A=>A.reverse()))):null)}setCurrentDrawingSession(A){A?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),this.#O=A}setMainHighlightColorPicker(A){this.#IA=A}editAltText(A,g=!1){this.#d?.editAltText(this,A,g)}getSignature(A){this.#oA?.getSignature({uiManager:this,editor:A})}get signatureManager(){return this.#oA}switchToMode(A,g){this._eventBus.on("annotationeditormodechanged",g,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:A})}setPreference(A,g){this._eventBus.dispatch("setpreference",{source:this,name:A,value:g})}onSetPreference({name:A,value:g}){"enableNewAltTextWhenAddingImage"===A&&(this.#z=g)}onPageChanging({pageNumber:A}){this.#Z=A-1}focusMainContainer(){this.#hA.focus()}findParent(A,g){for(const Q of this.#H.values()){const{x:B,y:I,width:C,height:E}=Q.div.getBoundingClientRect();if(A>=B&&A<=B+C&&g>=I&&g<=I+E)return Q}return null}disableUserSelect(A=!1){this.#eA.classList.toggle("noUserSelect",A)}addShouldRescale(A){this.#q.add(A)}removeShouldRescale(A){this.#q.delete(A)}onScaleChanging({scale:A}){this.commitOrRemove(),this.viewParameters.realScale=A*T.PDF_TO_CSS_UNITS;for(const A of this.#q)A.onScaleChanging();this.#O?.onScaleChanging()}onRotationChanging({pagesRotation:A}){this.commitOrRemove(),this.viewParameters.rotation=A}#MA({anchorNode:A}){return A.nodeType===Node.TEXT_NODE?A.parentElement:A}#UA(A){const{currentLayer:g}=this;if(g.hasTextLayer(A))return g;for(const g of this.#H.values())if(g.hasTextLayer(A))return g;return null}highlightSelection(A=""){const g=document.getSelection();if(!g||g.isCollapsed)return;const{anchorNode:Q,anchorOffset:B,focusNode:I,focusOffset:C}=g,E=g.toString(),D=this.#MA(g).closest(".textLayer"),i=this.getSelectionBoxes(D);if(!i)return;g.empty();const o=this.#UA(D),s=this.#DA===w.NONE,G=()=>{o?.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:A,boxes:i,anchorNode:Q,anchorOffset:B,focusNode:I,focusOffset:C,text:E}),s&&this.showAllEditors("highlight",!0,!0)};s?this.switchToMode(w.HIGHLIGHT,G):G()}#yA(){const A=document.getSelection();if(!A||A.isCollapsed)return;const g=this.#MA(A).closest(".textLayer"),Q=this.getSelectionBoxes(g);Q&&(this.#_||=new NA(this),this.#_.show(g,Q,"ltr"===this.direction))}addToAnnotationStorage(A){A.isEmpty()||!this.#l||this.#l.has(A.id)||this.#l.setValue(A.id,A)}#RA(){const A=document.getSelection();if(!A||A.isCollapsed)return void(this.#wA&&(this.#_?.hide(),this.#wA=null,this.#rA({hasSelectedText:!1})));const{anchorNode:g}=A;if(g===this.#wA)return;const Q=this.#MA(A).closest(".textLayer");if(Q){if(this.#_?.hide(),this.#wA=g,this.#rA({hasSelectedText:!0}),(this.#DA===w.HIGHLIGHT||this.#DA===w.NONE)&&(this.#DA===w.HIGHLIGHT&&this.showAllEditors("highlight",!0,!0),this.#X=this.isShiftKeyDown,!this.isShiftKeyDown)){const A=this.#DA===w.HIGHLIGHT?this.#UA(Q):null;A?.toggleDrawing();const g=new AbortController,B=this.combinedSignal(g),I=Q=>{"pointerup"===Q.type&&0!==Q.button||(g.abort(),A?.toggleDrawing(!0),"pointerup"===Q.type&&this.#LA("main_toolbar"))};wi