@arcgis/core 5.2.0-next.103 → 5.2.0-next.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/arcgisGlobal.d.ts +2 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{ec5542d6ecc0622f7705.js → 1ec01fd6330d011c76d6.js} +1 -1
- package/assets/esri/core/workers/chunks/{c91905b5808b8049f96d.js → 2168ee64fd32f160dcf1.js} +3 -3
- package/assets/esri/core/workers/chunks/{ffca0b2333e760b66d3a.js → 262052dfaec3af8a58b9.js} +1 -1
- package/assets/esri/core/workers/chunks/33e583166ab3943ecf0e.js +1 -0
- package/assets/esri/core/workers/chunks/{2350f1eb70819cc06bb6.js → 4c00a46bf0345f99a9bb.js} +1 -1
- package/assets/esri/core/workers/chunks/{240bee7d0dc5e5dab826.js → 91e545745706111f5f62.js} +1 -1
- package/assets/esri/core/workers/chunks/c7b762bae945f383c723.js +1 -0
- package/assets/esri/core/workers/chunks/d0eb609a214d85d21ed5.js +1 -0
- package/assets/esri/core/workers/chunks/{a4dc1a80ed6604d71722.js → dc1b38f490142f7273ef.js} +1 -1
- package/chunks/GlobalIllumination.glsl.js +4 -4
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/package.json +6 -6
- package/support/revision.js +1 -1
- package/symbols/TextSymbol3DLayer.js +1 -1
- package/symbols/cim/TextRasterizer.js +1 -1
- package/symbols/cim/richTextUtils.js +1 -1
- package/symbols/support/Symbol3DTextBorder.js +2 -0
- package/views/2d/engine/webgl/GlyphWorker.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
- package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
- package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
- package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +1 -1
- package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
- package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
- package/views/3d/support/QualityProfile.js +1 -1
- package/views/3d/terrain/TerrainData.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderParameters.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
- package/widgets/Editor/EditorViewModel.d.ts +3 -2
- package/widgets/Editor/types.d.ts +19 -1
- package/widgets/Editor.d.ts +3 -2
- package/widgets/support/SelectionToolbar/VisibleElements.d.ts +60 -0
- package/widgets/support/SelectionToolbar.d.ts +202 -0
- package/assets/esri/core/workers/chunks/a191ddb3b59ec1a7d818.js +0 -1
- package/assets/esri/core/workers/chunks/ad695de9f73b268af139.js +0 -1
- package/assets/esri/core/workers/chunks/b4e5027c121d848c3d5a.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6453],{26453(t,e,n){n.d(e,{nZ:()=>C.nZ,D7:()=>C.D7,zg:()=>k.ZipReader});var r=n(15333);const s=new Uint8Array(288);s.fill(8,0,144),s.fill(9,144,256),s.fill(7,256,280),s.fill(8,280,288),new Uint8Array(30).fill(5);const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var o=n(76766),i=n(61501),c=n(45110),l=n(90840),u=n(67532);const f={type:"module"},d="error";let h,w,p,m=!0;try{m=typeof structuredClone==o.On&&void 0!==structuredClone(new DOMException("","AbortError")).code}catch{}function y(t){const{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function g(t){const{worker:e}=t;if(e)try{e.terminate()}catch{}t.interface=null}function b(t,e,n,r,s=!0){const{createWorker:a}=n;let i,u,m;if(a)i=a();else if(void 0===w||h!==t){const a=typeof t==o.On;u=a?t(s):t;const c=u.startsWith("data:"),l=u.startsWith("blob:");if(c||l){void 0===r&&(r=!1),r&&(m=f);try{i=new Worker(u,m)}catch(s){if(l)try{URL.revokeObjectURL(u)}catch{}if(a&&l)return b(t,e,n,r,!1);if(r)throw s;return b(t,e,n,!0,!1)}}else{void 0===r&&(r=!0),r&&(m=f);try{u=new URL(u,e)}catch{}try{i=new Worker(u,m)}catch(a){if(r)return b(t,e,n,!1,s);throw a}}h=t,w=u,p=m}else i=new Worker(w,p);return i.addEventListener(l.AJ,t=>{n.workerAlive=!0,S(n),async function({data:t},e){const{type:n,value:r,messageId:s,result:a,error:o,errorValue:i}=t,{reader:l,writer:u,resolveResult:f,rejectResult:d,onTaskFinished:h,generation:w}=e,p=()=>e.generation!=w;try{if(o)m(function(t,e){const{message:n,stack:r,code:s,name:a,outputSize:o,cause:i,codecImportFailed:l}=t;let u;if(e?u=e.value:(u=Object.assign(new Error(n),{stack:r,code:s,name:a}),i&&(u.cause=Object.assign(new Error(i.message),{name:i.name}))),(0,c.K)(u))try{void 0!==o&&(u.outputSize=o),l&&(u.codecImportFailed=!0),e&&(u.name!==a&&(u.name=a),u.code!==s&&(u.code=s))}catch{}return u}(o,i));else{if("pull"==n){const{value:t,done:n}=await l.read();p()||v({type:"data",value:t,done:n,messageId:s},e)}if("data"==n){const t=new Uint8Array(r);await u.ready,await u.write(t),p()||v({type:"ack",messageId:s},e)}"close"==n&&function(t){p()||(f(t),y(),h())}(a)}}catch(o){p()||(g(e),m(o))}function m(t){p()||(d(t),y(),(0,c.K)(t)&&t.codecImportFailed||h())}function y(){u&&u.releaseLock()}}(t,n)}),i.addEventListener(d,t=>z(t,n)),i.addEventListener("messageerror",t=>z(t,n)),i}function S(t){const{startupTimeout:e}=t;e&&(clearTimeout(e),t.startupTimeout=null)}function z(t,e){t.preventDefault&&t.preventDefault(),S(e);const{workerAlive:n,rejectResult:r,writer:s,onTaskFinished:a}=e;g(e),n||(e.worker=null);let o=t.error||new Error(t.message||d);n||(o=Object.assign(new Error(o.message||d),{workerStartupFailed:!0}),e.startupError=o),r&&(r(o),s&&s.releaseLock(),n&&a())}function v(t,{worker:e,writer:n,transferStreams:r,workerAlive:s}){try{const{value:n,readable:a,writable:o}=t,c=[];if(n&&(t.value=(0,i.ok)(n),c.push(t.value.buffer)),r&&m&&s?(a&&c.push(a),o&&c.push(o)):t.readable=t.writable=null,c.length)try{return e.postMessage(t,c),!0}catch{m=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(t){throw n&&n.releaseLock(),t}}(0,u.pR)(function(t,e){const{baseURI:n,chunkSize:r,workerStartupTimeout:s}=e;let{wasmURI:a}=e;if(!t.interface){let i;typeof a==o.On&&(a=a());try{i=b(t.workerURI,n,t)}catch{return(0,u.BS)(t),(0,u.C9)(t,e)}Object.assign(t,{worker:i,workerAlive:!1,terminated:!1,startupError:null,interface:{run:async()=>{try{return await async function(t,e){if(!t.worker){const{startupError:e}=t;t.startupError=null;const n=e||new Error(u.hU);throw n.workerStartupFailed=!0,n}let n,r;const s=new Promise((e,s)=>{n=e,r=e=>{const{outputSize:n,workerOptions:r}=t;if(r.outputSize=n,(0,c.K)(e))try{e.outputSize=n}catch{}s(e)}});Object.assign(t,{reader:null,writer:null,outputSize:0,destinationFailed:!1,destinationError:null,resolveResult:n,rejectResult:r,result:s});const{readable:a,options:o}=t,{writable:i,closed:l,abortPipe:f}=function(t,e){const n=new AbortController;let r;const{writable:s,readable:a}=new TransformStream({transform(t,n){e.outputSize+=t.length,n.enqueue(t)}}),o=a.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:n.signal});return o.catch(t=>{r||Object.assign(e,{destinationFailed:!0,destinationError:t})}),{writable:s,closed:o,abortPipe:()=>{r=!0,n.abort()}}}(t.writable,t);let d;try{d=v({type:"start",options:o,config:e,readable:a,writable:i},t)}catch(e){f();try{await l}catch{}throw t.onTaskFinished(),e}d||Object.assign(t,{reader:a.getReader(),writer:i.getWriter()});const{workerStartupTimeout:h}=e;!t.workerAlive&&Number.isFinite(h)&&h>=0&&(t.startupTimeout=setTimeout(()=>function(t){if(t.startupTimeout=null,t.workerAlive)return;const{rejectResult:e,writer:n}=t;if(g(t),t.worker=null,e){const t=new Error(u.hU);t.workerStartupFailed=!0,e(t),n&&n.releaseLock()}}(t),h));try{const t=await s;return await w(),await l,t}catch(e){await w(),f();try{await l}catch{}const{outputSize:n,workerOptions:r,destinationFailed:s,destinationError:a}=t;r.outputSize=n;const o=(0,c.K)(e)&&(e.codecImportFailed||e.workerStartupFailed),i=s&&!o?a:e;if((0,c.K)(i))try{i.outputSize=n}catch{}throw i}async function w(){if(!d&&!i.locked)try{await i.getWriter().close()}catch{}}}(t,{chunkSize:r,wasmURI:a,baseURI:n,workerStartupTimeout:s})}catch(n){if(n&&n.workerStartupFailed)return(0,u.BS)(t),y(t),(0,u.WY)(t,e);if(n&&n.codecImportFailed){if(t.reader)return y(t),(0,u.WY)(t,e);t.onTaskFinished()}throw n}}}})}return t.interface});var k=n(51690),C=(n(69473),n(86928),n(14467));n(40522),n(83271),n(93092),n(58169),n(51177),BigInt(0),BigInt("0x7fffffffffffffff"),new Uint8Array([7,0,2,0,65,69,3,0,0]),o.kZ,n(525);try{(0,r.ap)({baseURI:"file:///data/arcgis-web-compoments/actions-runner-1/_work/webgis-sdk/webgis-sdk/node_modules/.pnpm/@zip.js+zip.js@2.13.1/node_modules/@zip.js/zip.js/lib/zip-core-base.js"})}catch{}const x=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],U=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],A=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],D=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],F=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],E=new Uint8Array(288);E.fill(8,0,144),E.fill(9,144,256),E.fill(7,256,280),E.fill(8,280,288);const M=new Uint8Array(30).fill(5);function V(t){const e=new Uint16Array(16);for(const n of t)e[n]++;e[0]=0;const n=new Uint16Array(17);for(let t=1;t<=15;t++)n[t+1]=n[t]+e[t];const r=new Uint16Array(t.length);for(let e=0;e<t.length;e++)t[e]&&(r[n[t[e]]++]=e);return{o:e,symbols:r}}const R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",W="deflate",T="deflate-raw",I="deflate64-raw",O="gzip";let q,P,B,j,K;function N(t,e,n={}){if(!q){const t=new Error("WASM module not loaded");throw t.cause=K,t}const r="number"==typeof n.level?n.level:-1,s="number"==typeof n.outBuffer?n.outBuffer:65536,a="number"==typeof n.inBufferSize?n.inBufferSize:65536;return new TransformStream({start(){try{let n;if(this.out=P(s),this.in=P(a),this.inBufferSize=a,!this.out||!this.in)throw new Error("allocation failed");if(this._scratch=new Uint8Array(s),t?(this._process=q.deflate_process,this._last_consumed=q.deflate_last_consumed,this._end=q.deflate_end,this.streamHandle=q.deflate_new(),n=e===O?q.deflate_init_gzip(this.streamHandle,r):e===T?q.deflate_init_raw(this.streamHandle,r):q.deflate_init(this.streamHandle,r)):e===I?(this._process=q.inflate9_process,this._last_consumed=q.inflate9_last_consumed,this._end=q.inflate9_end,this.streamHandle=q.inflate9_new(),n=q.inflate9_init_raw(this.streamHandle)):(this._process=q.inflate_process,this._last_consumed=q.inflate_last_consumed,this._end=q.inflate_end,this.streamHandle=q.inflate_new(),n=e===T?q.inflate_init_raw(this.streamHandle):e===O?q.inflate_init_gzip(this.streamHandle):q.inflate_init(this.streamHandle)),0!==n)throw new Error("init failed:"+n)}catch(t){throw o(this),t}},transform(t,e){try{const n=t,r=new Uint8Array(j.buffer),a=this._process,o=this._last_consumed,i=this.out,c=this._scratch;let l=0;for(;l<n.length;){const t=Math.min(n.length-l,32768);if((!this.in||this.inBufferSize<t)&&(this.in&&B&&(B(this.in),this.in=0),this.in=P(t),this.inBufferSize=t,!this.in))throw new Error("allocation failed");r.set(n.subarray(l,l+t),this.in);const u=a(this.streamHandle,this.in,t,i,s,0),f=u>>24&255,d=128&f?f-256:f;if(d<0)throw new Error("process error:"+d);const h=16777215&u;h&&(c.set(r.subarray(i,i+h),0),e.enqueue(c.slice(0,h)));const w=o(this.streamHandle);if(0===w&&0===h)break;l+=w}}catch(t){o(this),e.error(t)}},flush(t){try{const e=new Uint8Array(j.buffer),n=this._process,r=this.out,a=this._scratch;for(;;){const o=n(this.streamHandle,0,0,r,s,4),i=o>>24&255,c=128&i?i-256:i;if(c<0)throw new Error("process error:"+c);const l=16777215&o;if(l&&(a.set(e.subarray(r,r+l),0),t.enqueue(a.slice(0,l))),1===i||0===l)break}}catch(e){t.error(e)}finally{const e=o(this);0!==e&&t.error(new Error("end error:"+e))}},cancel(){o(this)}});function o(t){let e=0;return t.streamHandle&&t._end&&(e=t._end(t.streamHandle)),t.streamHandle=0,t.in&&B&&B(t.in),t.in=0,t.out&&B&&B(t.out),t.out=0,e}}class H{constructor(t=W,e){return N(!0,t,e)}}class Z{constructor(t=W,e){return N(!1,t,e)}}H.requiresModule=!0,Z.requiresModule=!0,H.supportedFormats=[W,T,O],Z.supportedFormats=[W,T,O,I];let L,Y=!1;(0,u.zx)({initModule:t=>{if(!L){let{wasmURI:e}=t;typeof e==o.On&&(e=e()),L=async function(t,{baseURI:e}){if(!Y)try{await async function(t,e){let n,r;try{try{r=new URL(t,e)}catch{}const s=await fetch(r);n=await s.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;n=function(t){const e=t.split(",")[1],n=atob(e),r=n.length,s=new Uint8Array(r);for(let t=0;t<r;++t)s[t]=n.charCodeAt(t);return s.buffer}(t)}!function(t){if(q=t,({malloc:P,free:B,memory:j}=q),"function"!=typeof P||"function"!=typeof B||!j)throw q=P=B=j=null,new Error("Invalid WASM module")}((await WebAssembly.instantiate(n)).instance.exports)}(t,e),Y=!0}catch(t){throw function(t){K=t}(t),t}}(e,t).catch(t=>{throw L=null,t})}return L}}),(0,r.ap)({CompressionStreamFallback:H,DecompressionStreamFallback:Z}),function(t){let e;t({wasmURI:()=>(e||(e="data:application/wasm;base64,"+function(t){let e="";const n=t.length;let r=0;for(;r+2<n;r+=3){const n=t[r]<<16|t[r+1]<<8|t[r+2];e+=R[n>>18&63]+R[n>>12&63]+R[n>>6&63]+R[63&n]}const s=n-r;if(1===s){const n=t[r]<<16;e+=R[n>>18&63]+R[n>>12&63]+"=="}else if(2===s){const n=t[r]<<16|t[r+1]<<8;e+=R[n>>18&63]+R[n>>12&63]+R[n>>6&63]+"="}return e}(function(t){let e=0,n=0,r=0,s=new Uint8Array(1024),a=0,o=0;for(;!o;){o=c(1);const t=c(2);if(0==t)l();else if(1==t)u(V(E),V(M));else{if(2!=t)throw new Error("invalid deflate block type");u(...f())}}return s.subarray(0,a);function i(){if(e>=t.length)throw new Error("unexpected end of deflate data");return t[e++]}function c(t){for(;r<t;)n|=i()<<r,r+=8;const e=n&(1<<t)-1;return n>>>=t,r-=t,e}function l(){n=0,r=0;const t=i()|i()<<8;e+=2,h(a+t);for(let e=0;e<t;e++)s[a++]=i()}function u(t,e){let n=d(t);for(;256!=n;){if(n<256)h(a+1),s[a++]=n;else{const t=n-257,r=x[t]+c(U[t]),o=d(e),i=A[o]+c(D[o]);h(a+r);const l=a-i;for(let t=0;t<r;t++)s[a++]=s[l+t]}n=d(t)}}function f(){const t=c(5)+257,e=c(5)+1,n=c(4)+4,r=new Uint8Array(19);for(let t=0;t<n;t++)r[F[t]]=c(3);const s=V(r),a=new Uint8Array(t+e);let o=0;for(;o<a.length;){const t=d(s);if(t<16)a[o++]=t;else if(16==t){const t=a[o-1];let e=c(2)+3;for(;e--;)a[o++]=t}else o+=17==t?c(3)+3:c(7)+11}return[V(a.subarray(0,t)),V(a.subarray(t))]}function d(t){const{o:e,symbols:n}=t;let r=0,s=0,a=0;for(let t=1;t<=15;t++){r|=c(1);const o=e[t];if(r-s<o)return n[a+(r-s)];a+=o,s=s+o<<1,r<<=1}throw new Error("invalid huffman code")}function h(t){if(s.length<t){let e=2*s.length;for(;e<t;)e*=2;const n=new Uint8Array(e);n.set(s.subarray(0,a)),s=n}}}(function(t){const e=(t=String(t).replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;r<e;r+=4){const e=R.indexOf(t[r])<<18|R.indexOf(t[r+1])<<12|(63&R.indexOf(t[r+2]))<<6|63&R.indexOf(t[r+3]);n.push(e>>16&255),"="!==t[r+2]&&n.push(e>>8&255),"="!==t[r+3]&&n.push(255&e)}return new Uint8Array(n)}("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")))),e)})}(r.ap);new Set(["throw","keep-first","keep-last"]),(t=>{t({workerURI:t=>{const e="text/javascript";let n='!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:r,Error:s,Uint8Array:o,Uint16Array:c,Uint32Array:i,Int32Array:a,Map:f,DataView:u,Promise:l,TextEncoder:w,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",k="function",z=new o,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,A,x,M,P,B,D,F]=C;class R{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let r=0;if(e>=8&&t.buffer){const s=new u(t.buffer,t.byteOffset,e),o=e-8;for(;r<=o;r+=8){const t=n^s.getInt32(r,!0),e=s.getInt32(r+4,!0);n=F[255&t]^D[t>>>8&255]^B[t>>>16&255]^P[t>>>24&255]^M[255&e]^x[e>>>8&255]^A[e>>>16&255]^I[e>>>24&255]}}for(;r<e;r++)n=n>>>8^I[255&(n^t[r])];this.o=n}get(){return~this.o}}class U extends d{constructor(){let t;const n=new R;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new o(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function V(t,n){const e=new o(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const _={concat(t,n){if(0===t.length||0===n.length)return t.concat(n);const e=t[t.length-1],r=_.l(e);return 32===r?t.concat(n):_.h(n,r,0|e,t.slice(0,t.length-1))},bitLength(t){const n=t.length;if(0===n)return 0;const e=t[n-1];return 32*(n-1)+_.l(e)},m(t,n){if(32*t.length<n)return t;const e=(t=t.slice(0,r.ceil(n/32))).length;return n&=31,e>0&&n&&(t[e-1]=_.S(n,t[e-1]&2147483648>>n-1,1)),t},S:(t,n,e)=>32===t?n:(e?0|n:n<<32-t)+1099511627776*t,l:t=>r.round(t/1099511627776)||32,h(t,n,e,r){for(void 0===r&&(r=[]);n>=32;n-=32)r.push(e),e=0;if(0===n)return r.concat(t);for(let s=0;s<t.length;s++)r.push(e|t[s]>>>n),e=t[s]<<32-n;const s=t.length?t[t.length-1]:0,o=_.l(s);return r.push(_.S(n+o&31,n+o>32?e:r.pop(),1)),r}},T={bytes:{v(t){const n=_.bitLength(t)/8,e=new o(n);let r;for(let s=0;s<n;s++)3&s||(r=t[s/4]),e[s]=r>>>24,r<<=8;return e},C(t){const n=[];let e,r=0;for(e=0;e<t.length;e++)r=r<<8|t[e],3&~e||(n.push(r),r=0);return 3&e&&n.push(_.S(8*(3&e),r)),n}}},K=class{constructor(t){const n=this;n.blockSize=512,n.I=[1732584193,4023233417,2562383102,271733878,3285377520],n.A=[1518500249,1859775393,2400959708,3395469782],t?(n.M=t.M.slice(0),n.P=t.P.slice(0),n.B=t.B):n.reset()}reset(){const t=this;return t.M=t.I.slice(0),t.P=[],t.B=0,t}update(t){const n=this;"string"==typeof t&&(t=T.D.C(t));const e=n.P=_.concat(n.P,t),r=n.B,o=n.B=r+_.bitLength(t);if(o>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const c=new i(e);let a=0;for(let t=n.blockSize+r-(n.blockSize+r&n.blockSize-1);t<=o;t+=n.blockSize)n.F(c.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),n}R(){const t=this;let n=t.P;const e=t.M;n=_.concat(n,[_.S(1,1)]);for(let t=n.length+2;15&t;t++)n.push(0);for(n.push(r.floor(t.B/4294967296)),n.push(0|t.B);n.length;)t.F(n.splice(0,16));return t.reset(),e}U(t,n,e,r){return t<=19?n&e|~n&r:t<=39?n^e^r:t<=59?n&e|n&r|e&r:t<=79?n^e^r:void 0}V(t,n){return n<<t|n>>>32-t}F(n){const e=this,s=e.M,o=t(80);for(let t=0;t<16;t++)o[t]=n[t];let c=s[0],i=s[1],a=s[2],f=s[3],u=s[4];for(let t=0;t<=79;t++){t>=16&&(o[t]=e.V(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const n=e.V(5,c)+e.U(t,i,a,f)+u+o[t]+e.A[r.floor(t/20)]|0;u=f,f=a,a=e.V(30,i),i=c,c=n}s[0]=s[0]+c|0,s[1]=s[1]+i|0,s[2]=s[2]+a|0,s[3]=s[3]+f|0,s[4]=s[4]+u|0}},j={importKey:t=>new j.W(T.bytes.C(t)),_(t,n,e,r){if(e=e||1e4,r<0||e<0)throw new s("invalid params to pbkdf2");const o=1+(r>>5)<<2;let c,i,a,f,l;const w=new ArrayBuffer(o),h=new u(w);let p=0;const d=_;for(n=T.bytes.C(n),l=1;p<(o||1);l++){for(c=i=t.encrypt(d.concat(n,[l])),a=1;a<e;a++)for(i=t.encrypt(i),f=0;f<i.length;f++)c[f]^=i[f];for(a=0;p<(o||1)&&a<c.length;a++)h.setInt32(p,c[a]),p+=4}return w.slice(0,r/8)},W:class{constructor(t){const n=this,e=n.T=K,r=[[],[]];n.K=[new e,new e];const s=n.K[0].blockSize/32;t.length>s&&(t=(new e).update(t).R());for(let n=0;n<s;n++)r[0][n]=909522486^t[n],r[1][n]=1549556828^t[n];n.K[0].update(r[0]),n.K[1].update(r[1]),n.j=new e(n.K[0])}reset(){const t=this;t.j=new t.T(t.K[0]),t.L=!1}update(t){this.L=!0,this.j.update(t)}digest(){const t=this,n=t.j.R(),e=new t.T(t.K[1]).update(n).R();return t.reset(),e}encrypt(t){if(this.L)throw new s("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},E=typeof h!=b&&typeof h.getRandomValues==k,L="Invalid password",O="zipjs-abort-check-password";function H(t){if(E)return h.getRandomValues(t);throw new s("Crypto API not supported")}const N=16,q={name:"PBKDF2"},G=n.assign({hash:{name:"HMAC"}},q),J=n.assign({iterations:1e3,hash:{name:"SHA-1"}},q),Q=["deriveBits"],X=[8,12,16],Y=[16,24,32],Z=10,$=[0,0,0,0],tt=typeof h!=b,nt=tt&&h.subtle,et=tt&&typeof nt!=b,rt=T.bytes,st=class{constructor(t){const n=this;n.O=[[[],[],[],[],[]],[[],[],[],[],[]]],n.O[0][0][0]||n.H();const e=n.O[0][4],r=n.O[1],o=t.length;let c,i,a,f=1;if(4!==o&&6!==o&&8!==o)throw new s("invalid aes key size");for(n.A=[i=t.slice(0),a=[]],c=o;c<4*o+28;c++){let t=i[c-1];(c%o===0||8===o&&c%o===4)&&(t=e[t>>>24]<<24^e[t>>16&255]<<16^e[t>>8&255]<<8^e[255&t],c%o===0&&(t=t<<8^t>>>24^f<<24,f=f<<1^283*(f>>7))),i[c]=i[c-o]^t}for(let t=0;c;t++,c--){const n=i[3&t?c:c-4];a[t]=c<=4||t<4?n:r[0][e[n>>>24]]^r[1][e[n>>16&255]]^r[2][e[n>>8&255]]^r[3][e[255&n]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}H(){const t=this.O[0],n=this.O[1],e=t[4],r=n[4],s=[],o=[];let c,i,a,f;for(let t=0;t<256;t++)o[(s[t]=t<<1^283*(t>>7))^t]=t;for(let u=c=0;!e[u];u^=i||1,c=o[c]||1){let o=c^c<<1^c<<2^c<<3^c<<4;o=o>>8^255&o^99,e[u]=o,r[o]=u,f=s[a=s[i=s[u]]];let l=16843009*f^65537*a^257*i^16843008*u,w=257*s[o]^16843008*o;for(let e=0;e<4;e++)t[e][u]=w=w<<24^w>>>8,n[e][o]=l=l<<24^l>>>8}for(let e=0;e<5;e++)t[e]=t[e].slice(0),n[e]=n[e].slice(0)}N(t,n){if(4!==t.length)throw new s("invalid aes block size");const e=this.A[n],r=e.length/4-2,o=[0,0,0,0],c=this.O[n],i=c[0],a=c[1],f=c[2],u=c[3],l=c[4];let w,h,p,d=t[0]^e[0],y=t[n?3:1]^e[1],m=t[2]^e[2],S=t[n?1:3]^e[3],g=4;for(let t=0;t<r;t++)w=i[d>>>24]^a[y>>16&255]^f[m>>8&255]^u[255&S]^e[g],h=i[y>>>24]^a[m>>16&255]^f[S>>8&255]^u[255&d]^e[g+1],p=i[m>>>24]^a[S>>16&255]^f[d>>8&255]^u[255&y]^e[g+2],S=i[S>>>24]^a[d>>16&255]^f[y>>8&255]^u[255&m]^e[g+3],g+=4,d=w,y=h,m=p;for(let t=0;t<4;t++)o[n?3&-t:t]=l[d>>>24]<<24^l[y>>16&255]<<16^l[m>>8&255]<<8^l[255&S]^e[g++],w=d,d=y,y=m,m=S,S=w;return o}},ot=class{constructor(t,n){this.G=t,this.J=n,this.X=n}reset(){this.X=this.J}update(t){return this.Y(this.G,t,this.X)}Z(t){if(255&~(t>>24))t+=1<<24;else{let n=t>>16&255,e=t>>8&255,r=255&t;255===n?(n=0,255===e?(e=0,255===r?r=0:++r):++e):++n,t=0,t+=n<<16,t+=e<<8,t+=r}return t}$(t){0===(t[0]=this.Z(t[0]))&&(t[1]=this.Z(t[1]))}Y(t,n,e){let r;if(!(r=n.length))return[];const s=_.bitLength(n);for(let s=0;s<r;s+=4){this.$(e);const r=t.encrypt(e);n[s]^=r[0],n[s+1]^=r[1],n[s+2]^=r[2],n[s+3]^=r[3]}return _.m(n,s)}},ct=j.W;let it=tt&&et&&typeof nt.importKey==k,at=tt&&et&&typeof nt.deriveBits==k;class ft extends d{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:r,checkAuthenticationCode:c=!0}){super({start(){lt(this,t,n,e)},async transform(t,n){const e=this,{password:c,strength:i,nt:a,ready:f}=e;c?(await async function(t,n,e,r){const o=await ht(t,n,e,dt(r,0,X[n])),c=dt(r,X[n]);if(o[0]!=c[0]||o[1]!=c[1])throw new s(L)}(e,i,c,dt(t,0,X[i]+2)),t=dt(t,X[i]+2),r?n.error(new s(O)):a()):await f;const u=new o(t.length-Z-(t.length-Z)%N);n.enqueue(wt(e,t,u,0,Z,!0))},async flush(t){const{et:n,st:e,ot:r,ready:o}=this;if(e&&n){await o;const i=dt(r,0,r.length-Z),a=dt(r,r.length-Z);let f=z;if(i.length){const t=mt(rt,i);e.update(t);const r=n.update(t);f=yt(rt,r)}const u=dt(yt(rt,e.digest()),0,Z);let l=r.length<Z?1:0;for(let t=0;t<Z;t++)l|=u[t]^a[t];if(l&&c)throw new s("Invalid authentication code");t.enqueue(f)}}})}}class ut extends d{constructor({password:t,rawPassword:n,encryptionStrength:e}){super({start(){lt(this,t,n,e)},async transform(t,n){const e=this,{password:r,strength:s,nt:c,ready:i}=e;let a=z;r?(a=await async function(t,n,e){const r=H(new o(X[n]));return V(r,await ht(t,n,e,r))}(e,s,r),c()):await i;const f=new o(a.length+t.length-t.length%N);f.set(a,0),n.enqueue(wt(e,t,f,a.length,0))},async flush(t){const{et:n,st:e,ot:r,ready:s}=this;if(e&&n){await s;let o=z;if(r.length){const t=n.update(mt(rt,r));e.update(t),o=yt(rt,t)}const c=yt(rt,e.digest()).slice(0,Z);t.enqueue(V(o,c))}}})}}function lt(t,e,r,s){n.assign(t,{ready:new l(n=>t.nt=n),password:pt(e,r),strength:s-1,ot:z})}function wt(t,n,e,r,s,c){const{et:i,st:a,ot:f}=t;f.length&&(n=V(f,n));const u=n.length-s;let l;for(e=function(t,n){if(n&&n>t.length){const e=t;(t=new o(n)).set(e,0)}return t}(e,r+(u-u%N)),l=0;l<=u-N;l+=N){const t=mt(rt,dt(n,l,l+N));c&&a.update(t);const s=i.update(t);c||a.update(s),e.set(yt(rt,s),l+r)}return t.ot=dt(n,l),e}async function ht(e,r,s,c){e.password=null;const i=await async function(t,n,e,r,s){if(!it)return j.importKey(n);try{return await nt.importKey("raw",n,e,!1,s)}catch{return it=!1,j.importKey(n)}}(0,s,G,0,Q),a=await async function(t,n,e){if(!at)return j._(n,t.salt,J.iterations,e);try{return await nt.deriveBits(t,n,e)}catch{return at=!1,j._(n,t.salt,J.iterations,e)}}(n.assign({salt:c},J),i,8*(2*Y[r]+2)),f=new o(a),u=mt(rt,dt(f,0,Y[r])),l=mt(rt,dt(f,Y[r],2*Y[r])),w=dt(f,2*Y[r]);return n.assign(e,{keys:{key:u,ct:l,passwordVerification:w},et:new ot(new st(u),t.from($)),st:new ct(l)}),w}function pt(t,n){return n===v?function(t){if(typeof w==b){t=unescape(encodeURIComponent(t));const n=new o(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new w).encode(t)}(t):n}function dt(t,n,e){return t.subarray(n,e)}function yt(t,n){return t.v(n)}function mt(t,n){return t.C(n)}class St extends d{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:r}){super({start(){vt(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=bt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new s(L);t=t.subarray(12)}r?n.error(new s(O)):n.enqueue(bt(e,t))}})}}class gt extends d{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){vt(this,t,n,e)},transform(t,n){const e=this;let r,s;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=H(new o(12));n[11]=e.passwordVerification,r=new o(t.length+n.length),r.set(kt(e,n),0),s=12}else r=new o(t.length),s=0;r.set(kt(e,t),s),n.enqueue(r)}})}}function vt(t,e,r,s){n.assign(t,{password:e,rawPassword:r,passwordVerification:s}),function(t,e,r){const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,it:new R(s[0]),ft:new R(s[2])}),r)for(let n=0;n<r.length;n++)zt(t,r[n]);else for(let n=0;n<e.length;n++)zt(t,e.charCodeAt(n))}(t,e,r)}function bt(t,n){const e=new o(n.length);for(let r=0;r<n.length;r++)e[r]=Ct(t)^n[r],zt(t,e[r]);return e}function kt(t,n){const e=new o(n.length);for(let r=0;r<n.length;r++)e[r]=Ct(t)^n[r],zt(t,n[r]);return e}function zt(t,n){let[,e]=t.keys;t.it.append([n]);const s=~t.it.get();e=At(r.imul(At(e+It(s)),134775813)+1),t.ft.append([e>>>24]);const o=~t.ft.get();t.keys=[s,e,o]}function Ct(t){const n=2|t.keys[2];return It(r.imul(n,1^n)>>>8)}function It(t){return 255&t}function At(t){return 4294967295&t}function xt(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){const{value:e,done:r}=await n.read();r?t.close():t.enqueue(e)},cancel:t=>n.cancel(t)})}const Mt=new f;function Pt(t){return Mt.get(t)}const Bt="Invalid uncompressed size",Dt="deflate-raw",Ft="gzip",Rt=[31,139,8];class Ut extends d{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:r}){super({});const{compressed:s,encrypted:o,useCompressionStream:c,zipCrypto:i,computeCrc32:a,level:f,deflate64:l,format:w,compressionMethod:h,inputSize:p}=t,d=this;let y,m,S,g=super.readable;const v=w&&Pt(w),b=a&&s&&!l&&!v&&(!o||i)&&Boolean(c&&r);if(o&&!i||!a||b||(y=new U,g=Et(g,y)),s)if(v)g=Lt(g,Kt(v.CompressionStream,w,{level:f,chunkSize:n,compressionMethod:h,uncompressedSize:p}));else if(b)S=new Vt,g=Lt(g,new r(Ft)),g=Et(g,S);else try{g=jt(g,c,{level:f,chunkSize:n},r,e)}catch(t){let n;try{n=new r(Ft)}catch{throw t}g=Lt(g,n),g=Et(g,new Vt)}o&&(i?g=Et(g,new gt(t)):(m=new ut(t),g=Et(g,m))),Tt(d,g,()=>{o&&!i||!a||(d.crc32=b?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Vt extends d{constructor(){let t,n=10,e=new o(0);super({transform(t,s){if(n){const e=r.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const o=e.length+t.length;if(o<=8)return void(e=V(e,t));const c=o-8,i=r.min(c,e.length);s.enqueue(V(e.subarray(0,i),t.subarray(0,c-i))),e=V(e.subarray(i),t.subarray(c-i))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Wt extends d{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:r}){super({});const{zipCrypto:c,encrypted:i,checkCrc32:a,crc32:f,compressed:w,useCompressionStream:h,deflate64:p,format:m,compressionMethod:S,rawBitFlag:g,outputSize:b}=t;let k,z,C=super.readable;if(i&&(c?C=Et(C,new St(t)):(z=new ft(t),C=Et(C,z))),w){const t=m&&Pt(m);if(t)C=Lt(C,Kt(t.DecompressionStream,m,{chunkSize:n,compressionMethod:S,rawBitFlag:g,uncompressedSize:b}));else try{C=jt(C,h,{chunkSize:n,deflate64:p},r,e)}catch(t){if(p||b===v)throw t;let n;try{n=new r(Ft)}catch{throw t}C=function(t,n,e){const r=new R;let c,i,a,f=0,u=!1;const w=new l((t,n)=>{i=t,a=n});w.catch(()=>{}),e||i();const h=new d({start(t){const n=new o(10);n.set(Rt),t.enqueue(n)},transform(t,n){n.enqueue(t)},async flush(t){u=!0,y();try{await w}finally{m()}const n=new o(8),s=W(n);s.setUint32(0,r.get(),!0),s.setUint32(4,e,!0),t.enqueue(n)},cancel(t){a(t)}}),p=new d({transform(t,n){r.append(t),f+=t.length,f>=e?i():u&&y(),n.enqueue(t)},cancel(t){a(t)}});return t=Et(t,h),Et(t=Lt(t,n),p);function y(){m(),c=setTimeout(()=>a(new s(Bt)),5e3)}function m(){clearTimeout(c)}}(C,n,b)}C=function(t){const n=t.getReader();return new y({async pull(t){let e;try{e=await n.read()}catch(t){if(t&&t.message)throw t;const n=new s("Invalid compressed data");throw n.cause=t,n}const{value:r,done:o}=e;o?t.close():t.enqueue(r)},cancel:t=>n.cancel(t)})}(C)}a&&(k=new U,C=Et(C,k)),Tt(this,C,()=>{if(a){const t=new u(k.value.buffer);if(f!=t.getUint32(0,!1))throw new s("Invalid CRC32")}})}}const _t=new f;function Tt(t,e,r){e=Et(e,new d({flush:r})),n.defineProperty(t,"readable",{get:()=>e})}function Kt(t,n,e){if(!t)throw new s("Compression method not supported");return new t(n,e)}function jt(t,n,e,r,s){const o=n&&r?r:s||r,c=e.deflate64?"deflate64-raw":Dt;let i;try{i=new o(c,e)}catch(t){if(!n||!s||o==s)throw t;i=new s(c,e)}return Lt(t,i)}function Et(t,n){return xt(t).pipeThrough(n)}function Lt(t,n){const e=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await e.ready;const t=await r.read();if(t.done){await e.close();break}await e.write(t.value)}}catch(t){await async function(t,n){try{await t.abort(n)}catch{}}(e,t),await async function(t,n){try{await t.cancel(n)}catch{}}(r,t)}}(),n.readable}const Ot="data",Ht="close",Nt="deflate";class qt extends d{constructor(t,e){super({});const r=this,{codecType:o}=t;let c;o.startsWith(Nt)?c=Ut:o.startsWith("inflate")&&(c=Wt),r.outputSize=0;let i=0;const a=new c(t,e),f=super.readable,u=new d({transform(t,n){t&&t.length&&(i+=t.length,n.enqueue(t))},flush(){n.assign(r,{inputSize:i})}}),l=new d({transform(n,e){if(n&&n.length&&(e.enqueue(n),r.outputSize+=n.length,t.outputSize!==v&&r.outputSize>t.outputSize))throw new s(Bt)},flush(){const{crc32:t}=a;n.assign(r,{crc32:t,inputSize:i})}});n.defineProperty(r,"readable",{get:()=>f.pipeThrough(u).pipeThrough(a).pipeThrough(l)})}}class Gt extends d{constructor(t){const r=[];let s=0,c=0;function i(){const n=new o(t);let e=0;for(;e<t;){const s=r[0],o=t-e;s.length<=o?(n.set(s,e),e+=s.length,r.shift()):(n.set(s.subarray(0,o),e),r[0]=s.subarray(o),e+=o)}return s-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(r.push(n),s+=n.length;s>t;)c+=t,e.enqueue(i())},flush(t){s&&(c+=s,t.enqueue(function(t,n){const e=new o(n);let r=0;for(const n of t)e.set(n,r),r+=n.length;return e}(r,s)))}}),n.defineProperty(this,"outputSize",{get:()=>c})}}let Jt=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(Jt=navigator.hardwareConcurrency)}catch{}function Qt(t){return Boolean(t)&&"object"==typeof t}const Xt=new f,Yt=new f,Zt=function(){try{return structuredClone(new s)instanceof s}catch{return!1}}();let $t,tn=0;async function nn(t){let n,o,c;try{const{options:i,config:a}=t;if(i.format)try{await async function(t,n){!Mt.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:r}=n;if(typeof e!=k&&typeof r!=k)throw new s("Invalid codec module");Mt.set(t,{CompressionStream:e,DecompressionStream:r})}(t,await(import(n)))}(i.format,i.codecURI)}catch(t){if(Qt(t))try{t.codecImportFailed=!0}catch{}throw t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,i.compressed&&!i.format)if(i.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=_t.get(t);e||(e=new f,_t.set(t,e));let r=e.get(n);if(r===v){try{new t(n),r=!0}catch{r=!1}e.set(n,r)}return r}(i.codecType.startsWith(Nt)?a.CompressionStream:a.DecompressionStream,Dt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{i.useCompressionStream=!0}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const u={highWaterMark:1},w=t.readable?xt(t.readable):new y({async pull(t){const n=new l(t=>Xt.set(tn,t));en({type:"pull",messageId:tn}),tn=(tn+1)%e.MAX_SAFE_INTEGER;const{value:r,done:s}=await n;t.enqueue(r),s&&t.close()}},u);c=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const r=new l(t=>n=t);Yt.set(tn,n),en({type:Ot,value:t,messageId:tn}),tn=(tn+1)%e.MAX_SAFE_INTEGER,await r}},u),n=new qt(i,a),o=new Gt(function(t){return s="string"==typeof(n=s=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(s)&&s>=1?r.max(s,64):65536;var n,s}(a)),$t=new AbortController;const{signal:h}=$t;await w.pipeThrough(n).pipeThrough(o).pipeTo(c,{signal:h,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{crc32:p,inputSize:d,outputSize:S}=n;en({type:Ht,result:{crc32:p,inputSize:d,outputSize:S}})}catch(t){const n=o?o.outputSize:0;if(Qt(t))try{t.outputSize=n}catch{}if(c&&!c.locked)try{await c.getWriter().close()}catch{}rn(t,n)}}function en(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new o(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function rn(t,n){const{message:e,stack:r,code:o,name:c,outputSize:i,cause:a,codecImportFailed:f}=function(t=new s("Unknown error")){return Qt(t)?t:new s(String(t))}(t),u={message:e,stack:r,code:o,name:c,outputSize:i===v?n:i};if(a&&(u.cause={name:a.name,message:a.message}),f&&(u.codecImportFailed=!0),Zt)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:r,done:s}=t;try{if("start"==n&&nn(t),n==Ot){const t=Xt.get(e);Xt.delete(e),t({value:r||new o,done:s})}if("ack"==n){const t=Yt.get(e);Yt.delete(e),t()}n==Ht&&$t.abort()}catch(t){rn(t)}}),p({type:"ready"});const sn="deflate",on="deflate-raw",cn="deflate64-raw",an="gzip";let fn,un,ln,wn,hn;function pn(t,n,e={}){if(!fn){const t=new s("WASM module not loaded");throw t.cause=hn,t}const c="number"==typeof e.level?e.level:-1,i="number"==typeof e.outBuffer?e.outBuffer:65536,a="number"==typeof e.inBufferSize?e.inBufferSize:65536;return new d({start(){try{let e;if(this.ut=un(i),this.in=un(a),this.inBufferSize=a,!this.ut||!this.in)throw new s("allocation failed");if(this.lt=new o(i),t?(this.wt=fn.deflate_process,this.ht=fn.deflate_last_consumed,this.yt=fn.deflate_end,this.St=fn.deflate_new(),e=n===an?fn.deflate_init_gzip(this.St,c):n===on?fn.deflate_init_raw(this.St,c):fn.deflate_init(this.St,c)):n===cn?(this.wt=fn.inflate9_process,this.ht=fn.inflate9_last_consumed,this.yt=fn.inflate9_end,this.St=fn.inflate9_new(),e=fn.inflate9_init_raw(this.St)):(this.wt=fn.inflate_process,this.ht=fn.inflate_last_consumed,this.yt=fn.inflate_end,this.St=fn.inflate_new(),e=n===on?fn.inflate_init_raw(this.St):n===an?fn.inflate_init_gzip(this.St):fn.inflate_init(this.St)),0!==e)throw new s("init failed:"+e)}catch(t){throw f(this),t}},transform(t,n){try{const e=t,c=new o(wn.buffer),a=this.wt,f=this.ht,u=this.ut,l=this.lt;let w=0;for(;w<e.length;){const t=r.min(e.length-w,32768);if((!this.in||this.inBufferSize<t)&&(this.in&&ln&&(ln(this.in),this.in=0),this.in=un(t),this.inBufferSize=t,!this.in))throw new s("allocation failed");c.set(e.subarray(w,w+t),this.in);const o=a(this.St,this.in,t,u,i,0),h=o>>24&255,p=128&h?h-256:h;if(p<0)throw new s("process error:"+p);const d=16777215&o;d&&(l.set(c.subarray(u,u+d),0),n.enqueue(l.slice(0,d)));const y=f(this.St);if(0===y&&0===d)break;w+=y}}catch(t){f(this),n.error(t)}},flush(t){try{const n=new o(wn.buffer),e=this.wt,r=this.ut,c=this.lt;for(;;){const o=e(this.St,0,0,r,i,4),a=o>>24&255,f=128&a?a-256:a;if(f<0)throw new s("process error:"+f);const u=16777215&o;if(u&&(c.set(n.subarray(r,r+u),0),t.enqueue(c.slice(0,u))),1===a||0===u)break}}catch(n){t.error(n)}finally{const n=f(this);0!==n&&t.error(new s("end error:"+n))}},cancel(){f(this)}});function f(t){let n=0;return t.St&&t.yt&&(n=t.yt(t.St)),t.St=0,t.in&&ln&&ln(t.in),t.in=0,t.ut&&ln&&ln(t.ut),t.ut=0,n}}class dn{constructor(t=sn,n){return pn(!0,t,n)}}class yn{constructor(t=sn,n){return pn(!1,t,n)}}dn.gt=!0,yn.gt=!0,dn.vt=[sn,on,an],yn.vt=[sn,on,an,cn];let mn=!1;!function(t={}){const{init:n}=t,e=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;self.initModule=async t=>{n&&await n(t),e&&(t.CompressionStreamFallback=e),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:dn,DecompressionStreamFallback:yn,init:t=>async function(t,{baseURI:n}){if(!mn)try{await async function(t,n){let e,r;try{try{r=new URL(t,n)}catch{}const s=await fetch(r);e=await s.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),r=e.length,s=new o(r);for(let t=0;t<r;++t)s[t]=e.charCodeAt(t);return s.buffer}(t)}!function(t){if(fn=t,({malloc:un,free:ln,memory:wn}=fn),"function"!=typeof un||"function"!=typeof ln||!wn)throw fn=un=ln=wn=null,new s("Invalid WASM module")}((await WebAssembly.instantiate(e)).instance.exports)}(t,n),mn=!0}catch(t){throw function(t){hn=t}(t),t}}(t.wasmURI,t)})});\n';if("string"==typeof n&&(n=(new TextEncoder).encode(n)),t){const t=new Blob([n],{type:e});return URL.createObjectURL(t)}return"data:"+e+";base64,"+function(t){let e="";const n=t.length;let r=0;for(;r+2<n;r+=3){const n=t[r]<<16|t[r+1]<<8|t[r+2];e+=a[n>>18&63]+a[n>>12&63]+a[n>>6&63]+a[63&n]}const s=n-r;if(1===s){const n=t[r]<<16;e+=a[n>>18&63]+a[n>>12&63]+"=="}else if(2===s){const n=t[r]<<16|t[r+1]<<8;e+=a[n>>18&63]+a[n>>12&63]+a[n>>6&63]+"="}return e}(n)}})})(r.ap)},86928(t,e,n){n.d(e,{Re:()=>r.Re,WY:()=>f,XJ:()=>r.XJ,mV:()=>r.mV,nD:()=>r.nD,wP:()=>r.wP}),n(76766);var r=n(90840),s=n(69473),a=n(67532);let o=[];const i=[];let c,l,u=0;async function f(t,e){const{options:n,config:r}=e,{transferStreams:c,useWebWorkers:f,useCompressionStream:w,compressed:p,checkCrc32:y,computeCrc32:g,encrypted:b,format:S,codecURI:z}=n,{workerURI:v,createWorker:k,maxWorkers:C}=r;S&&(z&&(n.codecURI=function(t,e){try{return new URL(t,e).toString()}catch{return t}}(z,r.baseURI)),await(0,s.wH)(S,n.codecURI)),e.transferStreams=!S&&(c||void 0===c&&r.transferStreams);const x=!(p||y||g||b),U=void 0===S||Boolean(n.codecURI);return e.useWebWorkers=!x&&U&&(f||void 0===f&&r.useWebWorkers),e.workerURI=e.useWebWorkers&&v?v:void 0,e.createWorker=e.useWebWorkers&&k?k:void 0,n.useCompressionStream=w||void 0===w&&r.useCompressionStream,(await async function(){const n=o.find(t=>!t.busy);if(n)return m(n),new a.r2(n,t,e,A);if(o.length<C){const n={indexWorker:u};return u++,o.push(n),new a.r2(n,t,e,A)}return new Promise(n=>{i.push({resolve:n,stream:t,workerOptions:e}),l=r.workerStarvationTimeout,d()})}()).run();function A(t){if(h(),i.length){const[{resolve:e,stream:n,workerOptions:r}]=i.splice(0,1);e(new a.r2(t,n,r,A)),d()}else t.worker?(m(t),function(t,e){const{config:n}=e,{terminateWorkerTimeout:r}=n;Number.isFinite(r)&&r>=0&&(t.terminated?t.terminated=!1:t.terminateTimeout=setTimeout(async()=>{o=o.filter(e=>e!=t);try{await t.terminate()}catch{}},r))}(t,e)):o=o.filter(e=>e!=t)}}function d(){!c&&i.length&&Number.isFinite(l)&&l>=0&&(c=setTimeout(w,l))}function h(){c&&(clearTimeout(c),c=null)}function w(){if(c=null,i.length){const[{resolve:t,stream:e,workerOptions:n}]=i.splice(0,1),r=Object.assign({},n,{useWebWorkers:!1,workerURI:void 0,createWorker:void 0});t(new a.r2({},e,r,p)),d()}}function p(){h(),d()}function m(t){const{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}},69473(t,e,n){n.d(e,{$_:()=>o,wH:()=>c,yE:()=>i});var r=n(76766);const s=new Map,a=new Map;function o(t){return s.get(t)}function i(t){return a.get(t)}async function c(t,e){!a.has(t)&&e&&function(t,e){const{CompressionStream:n,DecompressionStream:s}=e;if(typeof n!=r.On&&typeof s!=r.On)throw new Error("Invalid codec module");a.set(t,{CompressionStream:n,DecompressionStream:s})}(t,await(import(e)))}n.d(e,["Ns",0,"Compression method not supported"])},67532(t,e,n){n.d(e,{BS:()=>w,C9:()=>g,O_:()=>h,WY:()=>b,_v:()=>m,pR:()=>d,r2:()=>p,th:()=>y,zx:()=>f});var r=n(76766),s=n(15333),a=n(45110),o=n(90840);let i,c,l,u=()=>{};function f({initModule:t}){u=t}function d(t){l=t}async function h(t){const{CompressionStream:e,CompressionStreamFallback:n}=t;if(n&&!n.requiresModule)return!0;if((0,o.St)(e)||(0,o.Ri)(e))return!0;if(n)try{return await u(t),!0}catch{return!1}return!1}function w(t){t.createWorker?c=!0:i=!1}class p{constructor(t,{readable:e,writable:n},a,u){const{options:f,config:d,streamOptions:h,useWebWorkers:w,transferStreams:p,workerURI:y}=a;let{createWorker:b}=a;const{signal:S}=h;return c&&(b=void 0),Object.assign(t,{busy:!0,generation:(t.generation||0)+1,readable:e.pipeThrough(new o.Qo((0,s.L3)(d))).pipeThrough(new m(h),{signal:S}),writable:n,options:Object.assign({},f),workerOptions:a,workerURI:y,createWorker:b,transferStreams:p,terminate:()=>new Promise(e=>{const{worker:n,busy:r}=t;n?(r?t.resolveTerminated=e:(n.terminate(),e()),t.interface=null):e()}),onTaskFinished(){if(t.busy){const{resolveTerminated:e}=t;e&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),e()),t.busy=!1,u(t)}}}),void 0===i&&(i=typeof Worker!=r.AV),(w&&l&&(i&&y||b)?l:g)(t,d)}}class m extends TransformStream{constructor({onstart:t,onprogress:e,size:n,onend:r}){let s=0;super({async start(){t&&await y(t,n)},async transform(t,r){s+=t.length,e&&await y(e,s,n),r.enqueue(t)},async flush(){r&&await y(r,s)}})}}async function y(t,...e){try{await t(...e)}catch{}}function g(t,e){return{run:()=>b(t,e)}}async function b({options:t,readable:e,writable:n,onTaskFinished:r,workerOptions:i},c){let l,f;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(o.XJ),n=e?c.CompressionStreamFallback:c.DecompressionStreamFallback,r=e?c.CompressionStream:c.DecompressionStream;if(t.useCompressionStream){if(n&&n.requiresModule&&!(0,o.St)(r))try{await u(c)}catch{}}else try{await u(c)}catch{n&&!n.requiresModule||(t.useCompressionStream=!0)}}l=new o.z5(t,c),f=new o.Qo((0,s.L3)(c)),await e.pipeThrough(l).pipeThrough(f).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:a,outputSize:i}=l;return{crc32:r,inputSize:a,outputSize:i}}catch(t){if(l){const e=f?f.outputSize:0;if(i.outputSize=e,(0,a.K)(t))try{t.outputSize=e}catch{}}throw t}finally{r()}}n.d(e,["hU",0,"Worker startup timeout"])},15333(t,e,n){n.d(e,{D0:()=>w,I1:()=>m,L3:()=>p,ap:()=>g});var r=n(76766),s=n(51177);let a=2;try{typeof navigator!=r.AV&&navigator.hardwareConcurrency&&(a=navigator.hardwareConcurrency)}catch{}const o={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:a,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=r.AV&&CompressionStream,DecompressionStream:typeof DecompressionStream!=r.AV&&DecompressionStream},i="maxWorkers",c="baseURI",l=["wasmURI","workerURI"],u=["chunkSize",i,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],f=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],d=[c,...l,"useCompressionStream","useWebWorkers","transferStreams",...u,...f],h={...o};function w(){return h}function p(t){return m(t.chunkSize)}function m(t){return t=(0,s.Ro)(t),Number.isInteger(t)&&t>=1?Math.max(t,64):65536}function y(t,e){if(u.includes(t)){if(e=(0,s.Ro)(e),t==i&&(!Number.isInteger(e)||e<1))throw new Error("Invalid maxWorkers (must be an integer greater than 0)")}else if(f.includes(t))(0,s.oe)(e);else if(t==c){if(e&&"string"!=typeof e)throw new Error("Invalid baseURI (must be a string)")}else if(l.includes(t)&&e&&"string"!=typeof e&&typeof e!=r.On)throw new Error("Invalid URI (must be a string or a function returning a string)");return e}function g(t){const e=function(t){const e={};for(const n of d){const r=t[n];void 0!==r&&(e[n]=y(n,r))}return e}(function(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:n}=t;if(void 0===e&&void 0===n)return t;const r=Object.assign({},t);return void 0===r.CompressionStreamFallback&&(r.CompressionStreamFallback=e),void 0===r.DecompressionStreamFallback&&(r.DecompressionStreamFallback=n),r}(t));Object.assign(o,e),Object.assign(h,e)}},76766(t,e,n){const r=134695760,s=r,a=new Date(2107,11,31,23,59,58),o=new Date(1980,0,1),i=new Uint8Array,c=Symbol.asyncDispose||Symbol();n.d(e,["AN",0,o,"AV",0,"undefined","Ae",0,a,"D6",0,i,"G4",0,134630224,"GC",0,"boolean","Gi",0,s,"Gq",0,67324752,"OL",0,117853008,"On",0,"function","Tm",0,101075792,"X",0,1/0,"ZP",0,r,"ac",0,4294967295,"cC",0,33639248,"dh",0,808471376,"fB",0,101010256,"kZ",0,c,"nc",0,84233040])},14467(t,e,n){n.d(e,{$i:()=>G,D3:()=>st,D7:()=>U,M3:()=>v,TX:()=>A,Ul:()=>rt,ZD:()=>et,b9:()=>_,kh:()=>tt,mP:()=>b,nZ:()=>x,pp:()=>X,qG:()=>z,rd:()=>F,sW:()=>Y,xY:()=>D,xm:()=>$});var r=n(76766),s=n(15333),a=n(61501),o=n(93092),i=n(90458);const c="HTTP error ",l="HTTP Range not supported",u="HTTP resource changed",f="Content-Range",d="Range",h="GET",w="bytes",p=16777216,m="writable",y=Symbol();class g{constructor(){this.size=0}init(){this.initialized=!0}}class b extends g{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:n=(0,s.L3)((0,s.D0)())}={}){const r=this;let a=0;return n=(0,s.I1)(n),new ReadableStream({async pull(s){const o=void 0===e?n:Math.min(n,e-a),i=await rt(r,t+a,o);i.length&&(s.enqueue(i),a+=i.length),(void 0!==e&&a>=e||!i.length&&o)&&s.close()}})}}class S extends g{constructor(){super();const t=this,e=new WritableStream({write(e){if(!t.initialized)throw new Error("Writer not initialized");return t.writeUint8Array((0,a.ok)(e))}});Object.defineProperty(t,m,{get:()=>e})}writeUint8Array(){}}class z extends b{constructor(t){super();let e=t.length;for(;"="==t.charAt(e-1);)e--;const n=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:n,size:Math.floor(.75*(e-n))})}readUint8Array(t,e){const{dataStart:n,dataURI:r}=this,s=new Uint8Array(e),a=4*Math.floor(t/3),o=atob(r.substring(a+n,4*Math.ceil((t+e)/3)+n)),i=t-3*Math.floor(a/4);let c=0;for(let t=i;t<i+e&&t<o.length;t++)s[t-i]=o.charCodeAt(t),c++;return c<s.length?s.subarray(0,c):s}}class v extends S{constructor(t){super(),Object.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",pendingCharacters:""})}writeUint8Array(t){const e=this;let n,r=e.pendingCharacters;const s=e.pendingCharacters.length;for(e.pendingCharacters="",n=0;n<3*Math.floor((s+t.length)/3)-s;n++)r+=String.fromCharCode(t[n]);for(;n<t.length;n++)e.pendingCharacters+=String.fromCharCode(t[n]);r.length>2?e.data+=btoa(r):e.pendingCharacters=r+e.pendingCharacters}getData(){return this.data+btoa(this.pendingCharacters)}}let k,C;class x extends b{constructor(t){super(),Object.assign(this,{sourceBlob:t,size:t.size}),C||(C=(async()=>{try{const t=new Blob([new Uint8Array(3)]).slice(1,2).stream().getReader();let e=0,n=await t.read();for(;!n.done;)e+=n.value.length,n=await t.read();k=1==e}catch{k=!1}})())}createReadable(t){const{sourceBlob:e,size:n}=this,{offset:s=0,size:a=n-s}=t||{};if(typeof e.stream==r.On){if(!s&&a>=n)return(0,o.QK)(e.stream());if(k)return(0,o.QK)(e.slice(s,s+a).stream())}return super.createReadable(t)}async readUint8Array(t,e){const n=this,r=t+e,s=!t&&r>=n.size?n.sourceBlob:n.sourceBlob.slice(t,r);let a=await s.arrayBuffer();return a.byteLength>e&&(a=a.slice(t,r)),new Uint8Array(a)}}class U extends g{constructor(t){super();const e=this,n=new TransformStream;Object.defineProperty(e,m,{get:()=>n.writable}),e.contentType=t,e.blobPromise=(0,o.x1)(n.readable,t),e.blobPromise.catch(()=>{})}getData(){return this.blobPromise}}class A extends x{constructor(t){super(new Blob([t],{type:"text/plain"}))}}function D(t){let e=0;for(let n=0;n<t.length;n++){const r=t.charCodeAt(n);r<128?e+=1:r<2048?e+=2:r<55296||r>=57344?e+=3:r<56320&&56320==(64512&t.charCodeAt(n+1))?(e+=4,n++):e+=3}return e}class F extends U{constructor(t){super(),Object.assign(this,{encoding:t,utf8:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,utf8:e}=this,n=await super.getData();return n.text&&e?n.text():(0,i.h)(new Uint8Array(await n.arrayBuffer()),t)}}class E extends b{constructor(t,e){super(),V(this,t,e)}async init(){await R(this,Z,j),super.init()}createReadable(t){const e=this,{useRangeHeader:n,forceRangeRequests:r,size:s}=e;if((n||r)&&void 0!==s){const{offset:n=0,size:r=s-n}=t||{};if(r>0&&n<s)return function(t,e,n){let r,s=e,a=0,o=n;return new ReadableStream({start:()=>i(),async pull(t){r||await i();const{value:e,done:n}=await r.read();if(n)throw new Error(l);const s=e.length>a?e.subarray(0,a):e;a-=s.length,o-=s.length,s.length&&t.enqueue(s),a||(await async function(){const t=r;r=void 0,await t.cancel()}(),o||t.close())},cancel:t=>r&&r.cancel(t)});async function i(){const e=Math.min(t.maximumRangeSize,o),n=await Z(h,t,P(t,s,e));if(206!=n.status)throw new Error(l);const i=n.headers.get(f);if(i){const t=Number(i.trim().split(/[\s-]+/)[1]);if(!Number.isNaN(t)&&t!=s)throw new Error(l)}q(t,n),O(t,n),s+=e,a=e,r=n.body.getReader()}}(e,n,Math.min(r,s-n))}return super.createReadable(t)}readUint8Array(t,e){return W(this,t,e,Z,j)}}class M extends b{constructor(t,e){super(),V(this,t,e)}async init(){await R(this,L,K),super.init()}readUint8Array(t,e){return W(this,t,e,L,K)}}function V(t,e,n){const{preventHeadRequest:r,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:i=!0,maximumRangeSize:c=p,fetch:l}=n;delete(n=Object.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,Object.assign(t,{url:e,options:n,preventHeadRequest:r,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:i,maximumRangeSize:c,fetch:l})}async function R(t,e,n){const{url:a,preventHeadRequest:o,useRangeHeader:i,forceRangeRequests:c,combineSizeEocd:u}=t;if(function(t){const{baseURI:e}=(0,s.D0)(),{protocol:n}=new URL(t,e);return"http:"==n||"https:"==n}(a)&&(i||c)&&(typeof o==r.AV||o)){const r=await e(h,t,P(t,u?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(c||s&&s.toLowerCase()==w))throw new Error(l);{if(u){const e=new Uint8Array(await r.arrayBuffer());206==r.status&&22==e.length&&(t.eocdCache=e)}O(t,r);const s=T(r);void 0===s?await H(t,e,n):t.size=s}}else await H(t,e,n)}async function W(t,e,n,s,a){const{useRangeHeader:o,forceRangeRequests:i,eocdCache:c,size:u,options:d}=t;if(o||i){if(c&&e==u-22&&22==n)return c;if(e>=u||0===n)return r.D6;{e+n>u&&(n=u-e);const r=await s(h,t,P(t,e,n));if(206!=r.status)throw new Error(l);const a=r.headers.get(f);if(a){const t=Number(a.trim().split(/[\s-]+/)[1]);if(!Number.isNaN(t)&&t!=e)throw new Error(l)}q(t,r),O(t,r);const o=new Uint8Array(await r.arrayBuffer());if(o.length!=n)throw new Error(l);return o}}{const{data:r}=t;return r||await a(t,d),t.data.subarray(e,e+n)}}function T(t){const e=t.headers.get(f);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=Number(t);if(!Number.isNaN(e))return e}}}function I({headers:t}){return{etag:t.get("Etag")||void 0,lastModified:t.get("Last-Modified")||void 0}}function O(t,e){const{checkResourceChanges:n,resourceValidators:r}=t;n&&!r&&206==e.status&&(t.resourceValidators=I(e))}function q(t,e){const{checkResourceChanges:n,resourceValidators:r,size:s}=t;if(n){const t=T(e);if(void 0!==t&&void 0!==s&&t!=s)throw new Error(u);if(r){const t=I(e);if(Object.entries(r).some(([e,n])=>void 0!==n&&void 0!==t[e]&&n!=t[e]))throw new Error(u)}}}function P(t,e=0,n=1){return Object.assign({},B(t),{[d]:w+"="+(e<0?e:e+"-"+(e+n-1))})}function B({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?Object.fromEntries(e):e}async function j(t){await N(t,Z)}async function K(t){await N(t,L)}async function N(t,e){const n=await e(h,t,B(t));t.data=new Uint8Array(await n.arrayBuffer()),t.size=t.data.length}async function H(t,e,n){if(t.preventHeadRequest)await n(t,t.options);else{const r=await e("HEAD",t,B(t)),s=r.headers.get("Content-Length");s&&!r.headers.get("Content-Encoding")?t.size=Number(s):await n(t,t.options)}}async function Z(t,{fetch:e=fetch,options:n,url:r},s){const a=await e(r,Object.assign({},n,{method:t,headers:s}));if(a.status>=200&&a.status<=299)return a;throw 416==a.status?new Error(l):new Error(c+(a.statusText||a.status))}function L(t,{url:e},n){return new Promise((r,s)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(a.status>=200&&a.status<=299){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const n=e.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(n)}),r({status:a.status,arrayBuffer:()=>a.response,headers:new Map(t)})}else s(416==a.status?new Error(l):new Error(c+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>s(t.detail?t.detail.error:new Error("Network error")),!1),a.open(t,e),n)for(const t of Object.entries(n))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class Y extends b{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new M(t,e):new E(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class X extends b{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class G extends S{constructor(t){super(),this.defaultBufferSize=t||262144}init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t>0?t:this.defaultBufferSize)}),super.init()}writeUint8Array(t){const e=this,n=e.offset+t.length;if(n>e.array.length){let t=e.array.length?2*e.array.length:e.defaultBufferSize;for(;t<n;)t*=2;const r=e.array;e.array=new Uint8Array(t),e.array.set(r)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class J extends b{constructor(t){super(),this.readers=t}async init(){const t=this;t.lastDiskNumber=0;const e=t.readers=await Promise.all(t.readers.map(nt));t.diskOffsets=e.map(e=>{const n=t.size;return t.size+=e.size,n}),super.init()}getDiskOffset(t){const{diskOffsets:e,size:n}=this,r=e[t];return void 0===r?n:r}async readUint8Array(t,e){const n=this,{readers:s}=this;let o,i=0,c=t;for(;s[i]&&c>=s[i].size;)c-=s[i].size,i++;const l=s[i];if(l){const r=l.size;if(c+e<=r)o=await rt(l,c,e);else{const s=r-c,i=await rt(l,c,s),u=await n.readUint8Array(t+s,e-s);o=(0,a.xW)(i,u)}}else o=r.D6;return n.lastDiskNumber=Math.max(i,n.lastDiskNumber),o}}class Q extends g{constructor(t,e=4294967295){super();const n=this;let r,s,a;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const o=new WritableStream({async write(e){if(e===y)return void(a&&await c());const{availableSize:o}=n;if(a)e.length>=o?(await i(e.subarray(0,o)),await c(),e.length>o&&await this.write(e.subarray(o))):await i(e);else{const{value:o,done:i}=await t.next();if(i&&!o)throw new Error("Writer iterator completed too soon");r=o,r.size=0,r.maxSize&&(n.maxSize=r.maxSize),n.availableSize=n.maxSize,await et(r),s=o.writable,a=s.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await l())},async abort(t){a&&await a.abort(t)}});async function i(t){const e=t.length;e&&(await a.ready,await a.write(t),r.size+=e,n.availableSize-=e)}async function c(){await l(),n.diskOffset+=r.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function l(){await a.close()}Object.defineProperty(n,m,{get:()=>o})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(y)}finally{t.releaseLock()}}}class _{constructor(t){return Array.isArray(t)&&(t=new J(t)),(t instanceof ReadableStream||typeof t.getReader==r.On)&&(t={readable:(0,o.QK)(t)}),t}}class ${constructor(t){void 0===t.writable&&typeof t.next==r.On&&(t=new Q(t)),(t instanceof WritableStream||typeof t.getWriter==r.On)&&(t={writable:(0,o.Ox)(t)});try{t.size=void 0===t.size?0:t.size}catch{throw new Error("Invalid writer (size must be writable)")}return t}}function tt(t){return Boolean(t&&t.getData)}async function et(t,e){if(!t.init||t.initialized)return Promise.resolve();await t.init(e)}async function nt(t){return t=new _(t),await et(t),void 0!==t.size&&t.readUint8Array||(t=new x(await(0,o.x1)(t.readable)),await et(t)),t}function rt(t,e,n){return t.readUint8Array(e,n)}function st(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?b.prototype.createReadable.call(t,e):t.readable}},51177(t,e,n){n.d(e,{Ot:()=>l,Ro:()=>d,Tc:()=>c,Te:()=>i,kQ:()=>f,mR:()=>o,oe:()=>a,zQ:()=>u});var r=n(76766);const s="compressed";function a(t){if(t&&typeof t!=r.On)throw new Error("Invalid option (must be a function)");return t}function o(t){if(t&&(typeof t.addEventListener!=r.On||typeof t.aborted!=r.GC))throw new Error("Invalid signal (must be an AbortSignal instance)");return t||void 0}function i(t){if(t&&t.aborted)throw void 0===t.reason?new DOMException("The operation was aborted","AbortError"):t.reason}function c(t,e){if(t&&"string"!=typeof t||e&&!(e instanceof Uint8Array))throw new Error("Invalid password (password must be a string, rawPassword must be a Uint8Array)")}function l(t){if(void 0!==t&&typeof t!=r.GC&&t!==s)throw new Error("Invalid passThrough option (must be a boolean or 'compressed')");return t}function u(t,e,n){if(!Number.isInteger(t)||t<0||t>e)throw new Error(n)}function f(t,e,n){void 0!==t&&u(t,e,n)}function d(t){return"string"==typeof t&&t.trim()?Number(t):t}n.d(e,["A4",0,"checkSignature","BH",0,"strictness","Bt",0,"dataDescriptor","C5",0,"preventClose","D9",0,"checkAmbiguity","DC",0,"ntfsTimestamp","Fp",0,"checkCrc32","GP",0,"localExtraField","HL",0,"checkLocalFilename","IB",0,"filenameEncoding","JD",0,"rawPassword","JO",0,"extractPrependedData","LP",0,"comment","MC",0,"dataDescriptorSignature","PG",0,"extractAppendedData","Q$",0,"useUnicodeFileNames","SB",0,s,"SC",0,"transferStreams","Si",0,"checkAuthenticationCode","So",0,"balanced","VL",0,"checkOverlappingEntryOnly","VV",0,"keepOrder","Wm",0,"checkPasswordOnly","Ym",0,"signCentralDirectory","aK",0,"encryptionStrength","bn",0,"useWebWorkers","cq",0,"filenameValidation","eU",0,"normalizeFilename","hp",0,"encodeText","im",0,"supportZip64SplitFile","j$",0,"filename","jg",0,"extendedTimestamp","kF",0,"password","ki",0,"passThrough","kq",0,"useCompressionStream","ku",0,"commentEncoding","kv",0,"decryptCentralDirectory","ln",0,"decodeText","mU",0,"maxAppendedDataSize","me",0,"centralExtraField","rm",0,"checkLocalDirectory","sC",0,"unixExtraFieldType","sn",0,"checkOverlappingEntry","tg",0,"createTempStream","wM",0,"bufferedWrite","xC",0,"tolerant"])},90840(t,e,n){n.d(e,{Qo:()=>i,Ri:()=>r.Ri,St:()=>r.St,mV:()=>r.mV,nD:()=>r.nD,wP:()=>r.wP,z5:()=>o}),n(76766);var r=n(525);const s="deflate",a="inflate";class o extends TransformStream{constructor(t,e){super({});const n=this,{codecType:o}=t;let i;o.startsWith(s)?i=r.C_:o.startsWith(a)&&(i=r.Oc),n.outputSize=0;let c=0;const l=new i(t,e),u=super.readable,f=new TransformStream({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))},flush(){Object.assign(n,{inputSize:c})}}),d=new TransformStream({transform(e,s){if(e&&e.length&&(s.enqueue(e),n.outputSize+=e.length,void 0!==t.outputSize&&n.outputSize>t.outputSize))throw new Error(r.nD)},flush(){const{crc32:t}=l;Object.assign(n,{crc32:t,inputSize:c})}});Object.defineProperty(n,"readable",{get:()=>u.pipeThrough(f).pipeThrough(l).pipeThrough(d)})}}class i extends TransformStream{constructor(t){const e=[];let n=0,r=0;function s(){const r=new Uint8Array(t);let s=0;for(;s<t;){const n=e[0],a=t-s;n.length<=a?(r.set(n,s),s+=n.length,e.shift()):(r.set(n.subarray(0,a),s),e[0]=n.subarray(a),s+=a)}return n-=t,r}(!Number.isFinite(t)||t<1)&&(t=65536),super({transform(a,o){for(e.push(a),n+=a.length;n>t;)r+=t,o.enqueue(s())},flush(t){n&&(r+=n,t.enqueue(function(t,e){const n=new Uint8Array(e);let r=0;for(const e of t)n.set(e,r),r+=e.length;return n}(e,n)))}}),Object.defineProperty(this,"outputSize",{get:()=>r})}}n.d(e,["AJ",0,"message","Re",0,a,"XJ",0,s])},87934(t,e,n){n.d(e,{s:()=>d});const r=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)e=1&e?e>>>1^3988292384:e>>>1;r[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){const n=r[e-1][t];r[e][t]=n>>>8^r[0][255&n]}const[s,a,o,i,c,l,u,f]=r;class d{constructor(t){this.crc=t||-1}append(t){let e=0|this.crc;const n=0|t.length;let r=0;if(n>=8&&t.buffer){const d=new DataView(t.buffer,t.byteOffset,n),h=n-8;for(;r<=h;r+=8){const t=e^d.getInt32(r,!0),n=d.getInt32(r+4,!0);e=f[255&t]^u[t>>>8&255]^l[t>>>16&255]^c[t>>>24&255]^i[255&n]^o[n>>>8&255]^a[n>>>16&255]^s[n>>>24&255]}}for(;r<n;r++)e=e>>>8^s[255&(e^t[r])];this.crc=e}get(){return~this.crc}}},525(t,e,n){n.d(e,{C_:()=>ot,mV:()=>m,wP:()=>p,nD:()=>nt,Oc:()=>ct,St:()=>ft,Ri:()=>dt});var r=n(87934);class s extends TransformStream{constructor(){let t;const e=new r.s;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}var a=n(76766),o=n(40522),i=n(61501);const c={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=c.getPartial(n);return 32===r?t.concat(e):c._shiftRight(e,r,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+c.getPartial(n)},clamp(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,Math.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=c.partial(e,t[n-1]&2147483648>>e-1,1)),t},partial:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,getPartial:t=>Math.round(t/1099511627776)||32,_shiftRight(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let s=0;s<t.length;s++)r.push(n|t[s]>>>e),n=t[s]<<32-e;const s=t.length?t[t.length-1]:0,a=c.getPartial(s);return r.push(c.partial(e+a&31,e+a>32?n:r.pop(),1)),r}},l={bytes:{fromBits(t){const e=c.bitLength(t)/8,n=new Uint8Array(e);let r;for(let s=0;s<e;s++)3&s||(r=t[s/4]),n[s]=r>>>24,r<<=8;return n},toBits(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3&~n||(e.push(r),r=0);return 3&n&&e.push(c.partial(8*(3&n),r)),e}}},u=class{constructor(t){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],t?(e._h=t._h.slice(0),e._buffer=t._buffer.slice(0),e._length=t._length):e.reset()}reset(){const t=this;return t._h=t._init.slice(0),t._buffer=[],t._length=0,t}update(t){const e=this;"string"==typeof t&&(t=l.utf8String.toBits(t));const n=e._buffer=c.concat(e._buffer,t),r=e._length,s=e._length=r+c.bitLength(t);if(s>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const a=new Uint32Array(n);let o=0;for(let t=e.blockSize+r-(e.blockSize+r&e.blockSize-1);t<=s;t+=e.blockSize)e._block(a.subarray(16*o,16*(o+1))),o+=1;return n.splice(0,16*o),e}finalize(){const t=this;let e=t._buffer;const n=t._h;e=c.concat(e,[c.partial(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(Math.floor(t._length/4294967296)),e.push(0|t._length);e.length;)t._block(e.splice(0,16));return t.reset(),n}_f(t,e,n,r){return t<=19?e&n|~e&r:t<=39?e^n^r:t<=59?e&n|e&r|n&r:t<=79?e^n^r:void 0}_S(t,e){return e<<t|e>>>32-t}_block(t){const e=this,n=e._h,r=Array(80);for(let e=0;e<16;e++)r[e]=t[e];let s=n[0],a=n[1],o=n[2],i=n[3],c=n[4];for(let t=0;t<=79;t++){t>=16&&(r[t]=e._S(1,r[t-3]^r[t-8]^r[t-14]^r[t-16]));const n=e._S(5,s)+e._f(t,a,o,i)+c+r[t]+e._key[Math.floor(t/20)]|0;c=i,i=o,o=e._S(30,a),a=s,s=n}n[0]=n[0]+s|0,n[1]=n[1]+a|0,n[2]=n[2]+o|0,n[3]=n[3]+i|0,n[4]=n[4]+c|0}},f=class{constructor(t){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const n=e._tables[0][4],r=e._tables[1],s=t.length;let a,o,i,c=1;if(4!==s&&6!==s&&8!==s)throw new Error("invalid aes key size");for(e._key=[o=t.slice(0),i=[]],a=s;a<4*s+28;a++){let t=o[a-1];(a%s===0||8===s&&a%s===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],a%s===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),o[a]=o[a-s]^t}for(let t=0;a;t++,a--){const e=o[3&t?a:a-4];i[t]=a<=4||t<4?e:r[0][n[e>>>24]]^r[1][n[e>>16&255]]^r[2][n[e>>8&255]]^r[3][n[255&e]]}}encrypt(t){return this._crypt(t,0)}decrypt(t){return this._crypt(t,1)}_precompute(){const t=this._tables[0],e=this._tables[1],n=t[4],r=e[4],s=[],a=[];let o,i,c,l;for(let t=0;t<256;t++)a[(s[t]=t<<1^283*(t>>7))^t]=t;for(let u=o=0;!n[u];u^=i||1,o=a[o]||1){let a=o^o<<1^o<<2^o<<3^o<<4;a=a>>8^255&a^99,n[u]=a,r[a]=u,l=s[c=s[i=s[u]]];let f=16843009*l^65537*c^257*i^16843008*u,d=257*s[a]^16843008*a;for(let n=0;n<4;n++)t[n][u]=d=d<<24^d>>>8,e[n][a]=f=f<<24^f>>>8}for(let n=0;n<5;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}_crypt(t,e){if(4!==t.length)throw new Error("invalid aes block size");const n=this._key[e],r=n.length/4-2,s=[0,0,0,0],a=this._tables[e],o=a[0],i=a[1],c=a[2],l=a[3],u=a[4];let f,d,h,w=t[0]^n[0],p=t[e?3:1]^n[1],m=t[2]^n[2],y=t[e?1:3]^n[3],g=4;for(let t=0;t<r;t++)f=o[w>>>24]^i[p>>16&255]^c[m>>8&255]^l[255&y]^n[g],d=o[p>>>24]^i[m>>16&255]^c[y>>8&255]^l[255&w]^n[g+1],h=o[m>>>24]^i[y>>16&255]^c[w>>8&255]^l[255&p]^n[g+2],y=o[y>>>24]^i[w>>16&255]^c[p>>8&255]^l[255&m]^n[g+3],g+=4,w=f,p=d,m=h;for(let t=0;t<4;t++)s[e?3&-t:t]=u[w>>>24]<<24^u[p>>16&255]<<16^u[m>>8&255]<<8^u[255&y]^n[g++],f=w,w=p,p=m,m=y,y=f;return s}},d=class{constructor(t,e){this._prf=t,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(t){return this.calculate(this._prf,t,this._iv)}incWord(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}return t}incCounter(t){0===(t[0]=this.incWord(t[0]))&&(t[1]=this.incWord(t[1]))}calculate(t,e,n){let r;if(!(r=e.length))return[];const s=c.bitLength(e);for(let s=0;s<r;s+=4){this.incCounter(n);const r=t.encrypt(n);e[s]^=r[0],e[s+1]^=r[1],e[s+2]^=r[2],e[s+3]^=r[3]}return c.clamp(e,s)}},h={importKey:t=>new h.hmacSha1(l.bytes.toBits(t)),pbkdf2(t,e,n,r){if(n=n||1e4,r<0||n<0)throw new Error("invalid params to pbkdf2");const s=1+(r>>5)<<2;let a,o,i,u,f;const d=new ArrayBuffer(s),h=new DataView(d);let w=0;const p=c;for(e=l.bytes.toBits(e),f=1;w<(s||1);f++){for(a=o=t.encrypt(p.concat(e,[f])),i=1;i<n;i++)for(o=t.encrypt(o),u=0;u<o.length;u++)a[u]^=o[u];for(i=0;w<(s||1)&&i<a.length;i++)h.setInt32(w,a[i]),w+=4}return d.slice(0,r/8)},hmacSha1:class{constructor(t){const e=this,n=e._hash=u,r=[[],[]];e._baseHash=[new n,new n];const s=e._baseHash[0].blockSize/32;t.length>s&&(t=(new n).update(t).finalize());for(let e=0;e<s;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e._baseHash[0].update(r[0]),e._baseHash[1].update(r[1]),e._resultHash=new n(e._baseHash[0])}reset(){const t=this;t._resultHash=new t._hash(t._baseHash[0]),t._updated=!1}update(t){this._updated=!0,this._resultHash.update(t)}digest(){const t=this,e=t._resultHash.finalize(),n=new t._hash(t._baseHash[1]).update(e).finalize();return t.reset(),n}encrypt(t){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},w=typeof crypto!=a.AV&&typeof crypto.getRandomValues==a.On,p="Invalid password",m="zipjs-abort-check-password";function y(t){if(w)return crypto.getRandomValues(t);throw new Error("Crypto API not supported")}const g=16,b={name:"PBKDF2"},S=Object.assign({hash:{name:"HMAC"}},b),z=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},b),v=["deriveBits"],k=[8,12,16],C=[16,24,32],x=10,U=[0,0,0,0],A=typeof crypto!=a.AV,D=A&&crypto.subtle,F=A&&typeof D!=a.AV,E=l.bytes,M=f,V=d,R=h.hmacSha1;let W=A&&F&&typeof D.importKey==a.On,T=A&&F&&typeof D.deriveBits==a.On;class I extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:s=!0}){super({start(){q(this,t,e,n)},async transform(t,e){const n=this,{password:s,strength:a,resolveReady:o,ready:i}=n;s?(await async function(t,e,n,r){const s=await B(t,e,n,K(r,0,k[e])),a=K(r,k[e]);if(s[0]!=a[0]||s[1]!=a[1])throw new Error(p)}(n,a,s,K(t,0,k[a]+2)),t=K(t,k[a]+2),r?e.error(new Error(m)):o()):await i;const c=new Uint8Array(t.length-x-(t.length-x)%g);e.enqueue(P(n,t,c,0,x,!0))},async flush(t){const{ctr:e,hmac:n,pendingInput:r,ready:o}=this;if(n&&e){await o;const i=K(r,0,r.length-x),c=K(r,r.length-x);let l=a.D6;if(i.length){const t=H(E,i);n.update(t);const r=e.update(t);l=N(E,r)}const u=K(N(E,n.digest()),0,x);let f=r.length<x?1:0;for(let t=0;t<x;t++)f|=u[t]^c[t];if(f&&s)throw new Error("Invalid authentication code");t.enqueue(l)}}})}}class O extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n}){super({start(){q(this,t,e,n)},async transform(t,e){const n=this,{password:r,strength:s,resolveReady:o,ready:c}=n;let l=a.D6;r?(l=await async function(t,e,n){const r=y(new Uint8Array(k[e])),s=await B(t,e,n,r);return(0,i.xW)(r,s)}(n,s,r),o()):await c;const u=new Uint8Array(l.length+t.length-t.length%g);u.set(l,0),e.enqueue(P(n,t,u,l.length,0))},async flush(t){const{ctr:e,hmac:n,pendingInput:r,ready:s}=this;if(n&&e){await s;let o=a.D6;if(r.length){const t=e.update(H(E,r));n.update(t),o=N(E,t)}const c=N(E,n.digest()).slice(0,x);t.enqueue((0,i.xW)(o,c))}}})}}function q(t,e,n,r){Object.assign(t,{ready:new Promise(e=>t.resolveReady=e),password:j(e,n),strength:r-1,pendingInput:a.D6})}function P(t,e,n,r,s,a){const{ctr:o,hmac:c,pendingInput:l}=t;l.length&&(e=(0,i.xW)(l,e));const u=e.length-s;let f;for(n=function(t,e){if(e&&e>t.length){const n=t;(t=new Uint8Array(e)).set(n,0)}return t}(n,r+(u-u%g)),f=0;f<=u-g;f+=g){const t=H(E,K(e,f,f+g));a&&c.update(t);const s=o.update(t);a||c.update(s),n.set(N(E,s),f+r)}return t.pendingInput=K(e,f),n}async function B(t,e,n,r){t.password=null;const s=await async function(t,e,n,r,s){if(!W)return h.importKey(e);try{return await D.importKey("raw",e,n,!1,s)}catch{return W=!1,h.importKey(e)}}(0,n,S,0,v),a=await async function(t,e,n){if(!T)return h.pbkdf2(e,t.salt,z.iterations,n);try{return await D.deriveBits(t,e,n)}catch{return T=!1,h.pbkdf2(e,t.salt,z.iterations,n)}}(Object.assign({salt:r},z),s,8*(2*C[e]+2)),o=new Uint8Array(a),i=H(E,K(o,0,C[e])),c=H(E,K(o,C[e],2*C[e])),l=K(o,2*C[e]);return Object.assign(t,{keys:{key:i,authentication:c,passwordVerification:l},ctr:new V(new M(i),Array.from(U)),hmac:new R(c)}),l}function j(t,e){return void 0===e?(0,o.w)(t):e}function K(t,e,n){return t.subarray(e,n)}function N(t,e){return t.fromBits(e)}function H(t,e){return t.toBits(e)}class Z extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){Y(this,t,e,n)},transform(t,e){const n=this;if(n.password||n.rawPassword){const e=X(n,t.subarray(0,12));if(n.password=n.rawPassword=null,0!=(e[11]^n.passwordVerification))throw new Error(p);t=t.subarray(12)}r?e.error(new Error(m)):e.enqueue(X(n,t))}})}}class L extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:n}){super({start(){Y(this,t,e,n)},transform(t,e){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const e=y(new Uint8Array(12));e[11]=n.passwordVerification,r=new Uint8Array(t.length+e.length),r.set(G(n,e),0),s=12}else r=new Uint8Array(t.length),s=0;r.set(G(n,t),s),e.enqueue(r)}})}}function Y(t,e,n,s){Object.assign(t,{password:e,rawPassword:n,passwordVerification:s}),function(t,e,n){const s=[305419896,591751049,878082192];if(Object.assign(t,{keys:s,crcKey0:new r.s(s[0]),crcKey2:new r.s(s[2])}),n)for(let e=0;e<n.length;e++)J(t,n[e]);else for(let n=0;n<e.length;n++)J(t,e.charCodeAt(n))}(t,e,n)}function X(t,e){const n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=Q(t)^e[r],J(t,n[r]);return n}function G(t,e){const n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=Q(t)^e[r],J(t,e[r]);return n}function J(t,e){let[,n]=t.keys;t.crcKey0.append([e]);const r=~t.crcKey0.get();n=$(Math.imul($(n+_(r)),134775813)+1),t.crcKey2.append([n>>>24]);const s=~t.crcKey2.get();t.keys=[r,n,s]}function Q(t){const e=2|t.keys[2];return _(Math.imul(e,1^e)>>>8)}function _(t){return 255&t}function $(t){return 4294967295&t}var tt=n(93092),et=n(69473);const nt="Invalid uncompressed size",rt="deflate-raw",st="gzip",at=[31,139,8];class ot extends TransformStream{constructor(t,{chunkSize:e,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:a,encrypted:o,useCompressionStream:i,zipCrypto:c,computeCrc32:l,level:u,deflate64:f,format:d,compressionMethod:h,inputSize:w}=t,p=this;let m,y,g,b=super.readable;const S=d&&(0,et.yE)(d),z=l&&a&&!f&&!S&&(!o||c)&&Boolean(i&&r);if(o&&!c||!l||z||(m=new s,b=mt(b,m)),a)if(S)b=yt(b,wt(S.CompressionStream,d,{level:u,chunkSize:e,compressionMethod:h,uncompressedSize:w}));else if(z)g=new it,b=yt(b,new r(st)),b=mt(b,g);else try{b=pt(b,i,{level:u,chunkSize:e},r,n)}catch(t){let e;try{e=new r(st)}catch{throw t}b=yt(b,e),b=mt(b,new it)}o&&(c?b=mt(b,new L(t)):(y=new O(t),b=mt(b,y))),ht(p,b,()=>{o&&!c||!l||(p.crc32=z?g.crc32:new DataView(m.value.buffer).getUint32(0))})}}class it extends TransformStream{constructor(){let t,e=10,n=new Uint8Array(0);super({transform(t,r){if(e){const n=Math.min(e,t.length);if(e-=n,!(t=t.subarray(n)).length)return}const s=n.length+t.length;if(s<=8)return void(n=(0,i.xW)(n,t));const a=s-8,o=Math.min(a,n.length);r.enqueue((0,i.xW)(n.subarray(0,o),t.subarray(0,a-o))),n=(0,i.xW)(n.subarray(o),t.subarray(a-o))},flush(){const e=(0,i.MS)(n);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class ct extends TransformStream{constructor(t,{chunkSize:e,DecompressionStreamFallback:n,DecompressionStream:a}){super({});const{zipCrypto:o,encrypted:c,checkCrc32:l,crc32:u,compressed:f,useCompressionStream:d,deflate64:h,format:w,compressionMethod:p,rawBitFlag:m,outputSize:y}=t;let g,b,S=super.readable;if(c&&(o?S=mt(S,new Z(t)):(b=new I(t),S=mt(S,b))),f){const t=w&&(0,et.yE)(w);if(t)S=yt(S,wt(t.DecompressionStream,w,{chunkSize:e,compressionMethod:p,rawBitFlag:m,uncompressedSize:y}));else try{S=pt(S,d,{chunkSize:e,deflate64:h},a,n)}catch(t){if(h||void 0===y)throw t;let e;try{e=new a(st)}catch{throw t}S=function(t,e,n){const s=new r.s;let a,o,c,l=0,u=!1;const f=new Promise((t,e)=>{o=t,c=e});f.catch(()=>{}),n||o();const d=new TransformStream({start(t){const e=new Uint8Array(10);e.set(at),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){u=!0,w();try{await f}finally{p()}const e=new Uint8Array(8),r=(0,i.MS)(e);r.setUint32(0,s.get(),!0),r.setUint32(4,n,!0),t.enqueue(e)},cancel(t){c(t)}}),h=new TransformStream({transform(t,e){s.append(t),l+=t.length,l>=n?o():u&&w(),e.enqueue(t)},cancel(t){c(t)}});return t=mt(t,d),mt(t=yt(t,e),h);function w(){p(),a=setTimeout(()=>c(new Error(nt)),5e3)}function p(){clearTimeout(a)}}(S,e,y)}S=function(t){const e=t.getReader();return new ReadableStream({async pull(t){let n;try{n=await e.read()}catch(t){if(t&&t.message)throw t;const e=new Error("Invalid compressed data");throw e.cause=t,e}const{value:r,done:s}=n;s?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})}(S)}l&&(g=new s,S=mt(S,g)),ht(this,S,()=>{if(l){const t=new DataView(g.value.buffer);if(u!=t.getUint32(0,!1))throw new Error("Invalid CRC32")}})}}const lt=new Map;function ut(t,e){if(!t)return!1;let n=lt.get(t);n||(n=new Map,lt.set(t,n));let r=n.get(e);if(void 0===r){try{new t(e),r=!0}catch{r=!1}n.set(e,r)}return r}function ft(t){return ut(t,rt)}function dt(t){return ut(t,st)}function ht(t,e,n){e=mt(e,new TransformStream({flush:n})),Object.defineProperty(t,"readable",{get:()=>e})}function wt(t,e,n){if(!t)throw new Error(et.Ns);return new t(e,n)}function pt(t,e,n,r,s){const a=e&&r?r:s||r,o=n.deflate64?"deflate64-raw":rt;let i;try{i=new a(o,n)}catch(t){if(!e||!s||a==s)throw t;i=new s(o,n)}return yt(t,i)}function mt(t,e){return(0,tt.QK)(t).pipeThrough(e)}function yt(t,e){const n=e.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await n.ready;const t=await r.read();if(t.done){await n.close();break}await n.write(t.value)}}catch(t){await async function(t,e){try{await t.abort(e)}catch{}}(n,t),await async function(t,e){try{await t.cancel(e)}catch{}}(r,t)}}(),e.readable}},61501(t,e,n){function r(t,e){const n=new Uint8Array(t.length+e.length);return n.set(t),n.set(e,t.length),n}function s(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new Uint8Array(t):t}function a(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}n.d(e,{MS:()=>a,ok:()=>s,xW:()=>r})},93092(t,e,n){n.d(e,{Ox:()=>o,QK:()=>s,x1:()=>a});var r=n(76766);function s(t){if(t instanceof ReadableStream)return t;const e=t.getReader();return new ReadableStream({async pull(t){const{value:n,done:r}=await e.read();r?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}function a(t,e){t=s(t);const n=e?{type:e}:{};if(typeof Blob.prototype.stream!=r.On||new Blob([]).stream()instanceof ReadableStream)return new Response(t).blob().then(t=>e?new Blob([t],n):t);const a=[];return t.pipeTo(new WritableStream({write(t){a.push(t)}})).then(()=>new Blob(a,n))}function o(t){if(t instanceof WritableStream)return t;const e=t.getWriter();return new WritableStream({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}},90458(t,e,n){n.d(e,{g:()=>s,h:()=>a});const r="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function s(t,e){return o(t,e,!0)}function a(t,e){return o(t,e,!1)}function o(t,e,n){return e&&"cp437"==e.trim().toLowerCase()?function(t){let e="";for(let n=0;n<t.length;n++)e+=r[t[n]];return e}(t):new TextDecoder(e,{ignoreBOM:n}).decode(t)}},40522(t,e,n){n.d(e,{w:()=>s});var r=n(76766);function s(t){if(typeof TextEncoder==r.AV){t=unescape(encodeURIComponent(t));const e=new Uint8Array(t.length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new TextEncoder).encode(t)}},45110(t,e,n){function r(t){return Boolean(t)&&"object"==typeof t}n.d(e,{K:()=>r})},83271(t,e,n){function r(t,e,n){if(!t.some(t=>t.reason==e)){const r={reason:e};void 0!==n&&(r.filename=n),t.push(r)}}n.d(e,{A:()=>r}),n(76766)},58169(t,e,n){n.d(e,{C7:()=>T,HK:()=>V,Oh:()=>W}),n(76766);const r="filename",s="rawFilename",a="comment",o="rawComment",i="uncompressedSize",c="compressedSize",l="diskNumberStart",u="lastModDate",f="rawLastModDate",d="lastAccessDate",h="rawLastAccessDate",w="creationDate",p="rawCreationDate",m="internalFileAttributes",y="externalFileAttributes",g="msdosAttributesRaw",b="msdosAttributes",S="msDosCompatible",z="encrypted",v="version",k="versionMadeBy",C="zipCrypto",x="directory",U="executable",A="compressionMethod",D="signature",F="extraField",E="unixMode",M=[r,s,i,c,u,f,a,o,d,h,w,p,"offset",l,m,y,g,b,S,"zip64",z,v,k,C,x,U,"symlink",A,D,"crc32",F,"extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid",E,"unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class V{constructor(t){M.forEach(e=>this[e]=t[e])}}const R=new Set([1,39169,10,21589,28789,25461,6534,30837,30805,22613,13]);function W(t){if(t){const e=new Map;if(t.forEach((t,n)=>{R.has(n)||e.set(n,t.data)}),e.size)return e}}function T(t,e,n){return t?e?12:16+4*n:0}n.d(e,["$T",0,S,"ET",0,g,"FJ",0,U,"Hq",0,w,"JJ",0,C,"Kq",0,a,"Nr",0,D,"Nz",0,d,"Pt",0,l,"Ri",0,o,"VF",0,i,"YQ",0,p,"ZQ",0,y,"Zs",0,A,"_x",0,x,"f9",0,b,"gk",0,r,"jF",0,k,"l0",0,z,"nX",0,s,"nd",0,E,"pf",0,m,"q_",0,h,"r9",0,v,"sw",0,c,"uD",0,f,"xI",0,u,"yg",0,F])},51690(t,e,n){n.d(e,{ZipReader:()=>E,wP:()=>o.wP});var r=n(76766),s=n(15333),a=n(69473),o=n(86928),i=n(14467),c=n(90458),l=n(61501),u=n(83271),f=n(93092),d=n(45110),h=n(87934),w=n(58169),p=n(51177);const m="File format is not recognized",y="Encryption method not supported",g="Split zip file",b="malformed extra field",S="wrapped entries count",z="appended data",v="prepended data",k="mismatched zip64 end of central directory record",C=/^[a-zA-Z]:/,x="utf-8",U="cp437",A=[[w.VF,r.ac],[w.sw,r.ac],["offset",r.ac],[w.Pt,65535]],D={65535:{getValue:ot,bytes:4},[r.ac]:{getValue:it,bytes:8}},F=BigInt(Number.MAX_SAFE_INTEGER);class E{constructor(t,e={}){Object.assign(this,{reader:new i.b9(t),options:e,readRanges:new Map})}async*getEntriesGenerator(t={}){const e=this;let{reader:n}=e;if(await(0,i.ZD)(n),void 0!==n.size&&n.readUint8Array||(n=new i.nZ(await(0,f.x1)(n.readable)),await(0,i.ZD)(n)),n.size<22)throw new Error(m);const s=e.warnings=[],a=Z(t,e.options),o="strict"==a,d=a!=p.xC,h=function(t,e){if(void 0!==t){const e=(0,p.Ro)(t);if("number"!=typeof e||Number.isNaN(e)||e<0)throw new Error("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return e}return"strict"==e?0:e==p.xC?1/0:65535}(tt(e,t,p.mU),a),y=function(t,e){if(void 0===t)return e;if(!H(t))throw new Error("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return t}(tt(e,t,p.cq),a),C=tt(e,t,p.eU),{endOfDirectoryInfo:A,endOfDirectoryReachingEndCount:D}=await async function(t,e,n){const{size:r}=t,s=Math.min(r,65557),a={count:64};let o,i,c=0;for await(const[n,l,u,f,d]of X(t,s))if(d+22+at(n,f+20)==r){const s=await J(t,n,l,f,d,r,a);if(2==s){if(o||(o=G(u,f,d)),c++,!e||c>1)break}else 1!=s||i||(i=G(u,f,d))}return o||(o=i),o||(o=await async function(t,e,n){const{size:r}=t,s=Math.min(r,e==1/0?r:65557+e);let a,o;for await(const[e,i,c,l,u]of X(t,s)){const s=G(c,l,u);a||(a=s);const f=await J(t,e,i,l,u,r,n);if(2==f)return s;1!=f||o||(o=s)}return o||a}(t,n,a)),{endOfDirectoryInfo:o,endOfDirectoryReachingEndCount:c}}(n,d,h);if(!A)throw await async function(t){return await N(t)==r.ZP}(n)?new Error(g):new Error("End of central directory not found");d&&D>1&&$("multiple end of central directory records");const F=(0,l.MS)(A);let E=ot(F,12),O=ot(F,16);const q=A.offset,P=at(F,20),B=q+22+P,j=n.size-B;j>h&&$(z),j>0&&(0,u.A)(s,z);let L=at(F,4);const Q=n.lastDiskNumber||0;let nt,rt,st,ct,lt,ut=at(F,6),ft=at(F,10),dt=0,ht=56;const wt=O==r.ac||E==r.ac||65535==ft||65535==ut;if(O!=r.ac&&65535!=ut&&(O+=K(n,ut)),wt){const t=A.offset>=20?await(0,i.Ul)(n,A.offset-20,20):r.D6,e=(0,l.MS)(t);if(20==t.length&&ot(e,0)==r.OL){O=K(n,ot(e,4))+it(e,8);let t=await(0,i.Ul)(n,O,56),a=(0,l.MS)(t);const c=A.offset-20-56;if((t.length<56||ot(a,0)!=r.Tm)&&O!=c&&c>=0){const e=O;O=c,O>e&&(dt=O-e),t=await(0,i.Ul)(n,O,56),a=(0,l.MS)(t)}if(t.length<56||ot(a,0)!=r.Tm)throw new Error("End of Zip64 central directory locator not found");if(st=!0,ct=it(a,4)>44,ct){const t=Math.min(it(a,4)-44,n.size-O-56);t>0&&(ht+=t,lt=function(t){const e={rawExtensibleData:t};if(t.length>=28){const n=(0,l.MS)(t),r=at(n,26);Object.assign(e,{compressionMethod:at(n,0),compressedSize:it(n,2),uncompressedSize:it(n,10),encryptionAlgorithm:at(n,18),bitLength:at(n,20),flags:at(n,22),hashAlgorithm:at(n,24),hashData:t.subarray(28,28+r)})}return e}(await(0,i.Ul)(n,O+56,t)))}65535==L?L=ot(a,16):L!=ot(a,16)&&_(o,s,k),65535==ut?ut=ot(a,20):ut!=ot(a,20)&&_(o,s,k),65535==ft?ft=it(a,32):ft!=it(a,32)&&_(o,s,k),E==r.ac?E=it(a,40):E!=it(a,40)&&_(o,s,k),O=K(n,ut)+it(a,48)+dt}}let pt=E;const mt=A.offset-(st?ht+20:0);if(O>=n.size&&(dt=n.size-O-E-22,O=n.size-E-22),Q!=L)throw new Error(g);if(O<0)throw new Error(m);let yt=0,gt=await(0,i.Ul)(n,O,E),bt=(0,l.MS)(gt);if(E){if(gt.length<4)throw new Error(m);const t=mt-E;if(O!=t&&ut==L){const e=ot(bt,yt)==r.cC||Boolean(lt&<.compressedSize)||V(bt);let s=!e;if(!s&&t>=0&&t+4<=n.size){const e=await(0,i.Ul)(n,t,4);s=ot((0,l.MS)(e),0)==r.cC}if(s){const r=O;O=t,O>r&&(dt+=O-r,nt=e),gt=await(0,i.Ul)(n,O,E),bt=(0,l.MS)(gt)}}}const St=mt-O;if(E!=St&&St>=0&&ut==L&&(E=St,gt=await(0,i.Ul)(n,O,E),bt=(0,l.MS)(gt)),O<0||O>=n.size)throw new Error(m);e.directoryOffset=O,e.directoryLength=pt;const zt=et(e,t,p.kv);let vt,kt;if(zt&&ft&>.length>=4&&ot(bt,0)!=r.cC&&(ct||V(bt))){const t=function(t,e,n){const r=t&&t.compressedSize?t.compressedSize:e;return r>0&&r<=n?r:n}(lt,pt,gt.length);kt=gt.subarray(t),gt=await zt(gt.subarray(0,t),lt),bt=(0,l.MS)(gt),pt=gt.length,vt=!0}lt&&!vt&&(gt.length<4||ot(bt,0)==r.cC)&&(0,u.A)(s,"unknown zip64 extensible data"),rt=O;const Ct=tt(e,t,p.IB),xt=tt(e,t,p.ku),Ut=new Set;let At,Dt=-1;const Ft=!o&&!st;!ft&&Ft&&(ft=R(bt,gt,yt),ft&&(0,u.A)(s,S));for(let a=0;a<ft;a++){const o=new M(n,e.options);if(yt+46>gt.length||ot(bt,yt)!=r.cC){if(0==a&&!vt&&(ct||V(bt)))throw new Error("Encrypted central directory is not supported");throw new Error("Central directory header not found")}T(o,bt,yt+6);const i=Boolean(o.bitFlag.languageEncodingFlag),l=yt+46,d=l+o.filenameLength,h=d+o.extraFieldLength,m=at(bt,yt+4),g=!(m>>8),z=m>>8==3,v=gt.subarray(l,d),k=at(bt,yt+32),A=h+k,D=gt.subarray(h,A),F=i,E=i,W=ot(bt,yt+38),O=255&W,q={readOnly:Boolean(1&O),hidden:Boolean(2&O),system:Boolean(4&O),directory:Boolean(16&O),archive:Boolean(32&O)},P=ot(bt,yt+42),B=et(e,t,p.ln)||c.g,j=F?x:Ct||U,N=E?x:xt||U;let H=B(v,j,p.j$);if(void 0===H&&(H=(0,c.g)(v,j)),C){const t=C(H);void 0!==t&&(H=t)}if(Y(H,y)){const t=new Error("Unsafe filename");throw t.filename=H,t}let Z=B(D,N,p.LP);void 0===Z&&(Z=(0,c.g)(D,N)),Object.assign(o,{index:a,decryptedDirectory:vt,versionMadeBy:m,msDosCompatible:g,zip64:!1,compressedSize:0,uncompressedSize:0,commentLength:k,offset:P,diskNumberStart:at(bt,yt+34),internalFileAttributes:at(bt,yt+36),externalFileAttributes:W,msdosAttributesRaw:O,msdosAttributes:q,rawFilename:v,filenameUTF8:F,commentUTF8:E,rawExtraField:gt.subarray(d,h),rawComment:D,filename:H,comment:Z}),I(o,o,bt,yt+6)&&(0,u.A)(s,b,H),o.offset+=dt;const L=K(n,o.diskNumberStart)+o.offset;rt=Math.min(L,rt),L<Dt&&(0,u.A)(s,"unsorted central directory",H),Dt=L,(255&o.version)>63&&(0,u.A)(s,"unknown version needed to extract",H),32&~o.rawBitFlag||(0,u.A)(s,"compressed patched data",H),Ut.has(o.filename)&&(At=!0),Ut.add(o.filename);const X=o.externalFileAttributes>>16&65535;void 0===o.unixMode&&16877&X&&(o.unixMode=X);const G=Boolean(2048&o.unixMode),J=Boolean(1024&o.unixMode),Q=Boolean(512&o.unixMode),_=40960==(61440&(void 0===o.unixMode?X:o.unixMode)),$=!_&&(void 0!==o.unixMode?!!(73&o.unixMode):z&&!!(73&X)),tt=void 0!==o.unixMode&&16384==(61440&o.unixMode),nt=16384==(61440&X);Object.assign(o,{setuid:G,setgid:J,sticky:Q,symlink:_,unixExternalUpper:X,executable:$,directory:tt||nt||g&&q.directory||o.filename.endsWith("/"),zipCrypto:o.encrypted&&!o.extraFieldAES});const st=new w.HK(o);if(st.getData=(t,n)=>o.getData(t,st,e.readRanges,n),st.arrayBuffer=async t=>{const n=new TransformStream,r=(0,f.x1)(n.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await o.getData(n,st,e.readRanges,Object.assign({},t,{preventClose:!1})),r},yt=A,a==ft-1&&Ft){const t=R(bt,gt,yt);t&&(ft+=t,(0,u.A)(s,S))}const{onprogress:it}=t;if(it)try{await it(a+1,ft,new w.HK(o))}catch{}yield st}let Et=yt,Mt=W(gt.subarray(yt))||(vt?W(kt):void 0);if(!Mt&&!vt){const t=O+yt,e=Math.min(mt-t,65541);e>=6&&(Mt=W(await(0,i.Ul)(n,t,e)))}Mt&&(e.digitalSignature=Mt,Et=yt+6+Mt.length),(yt!=pt&&Et!=pt||!vt&&yt!=E&&Et!=E)&&_(o,s,"trailing central directory data"),At&&_(o,s,"duplicate filename");const Vt=tt(e,t,p.JO),Rt=tt(e,t,p.PG),Wt=(o||Vt)&&ft&&4==rt&&await async function(t){const e=await N(t);return e==r.ZP||e==r.dh}(n)?4:0;return o&&(dt||ft&&rt>Wt)&&$(v),(dt||ft&&rt>4)&&(0,u.A)(s,v),nt&&(0,u.A)(s,"prepended central directory"),Vt&&(e.prependedData=rt>Wt?await(0,i.Ul)(n,Wt,rt-Wt):r.D6),e.comment=P?await(0,i.Ul)(n,q+22,P):r.D6,Rt&&(e.appendedData=B<n.size?await(0,i.Ul)(n,B,n.size-B):r.D6),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}[r.kZ](){return this.close()}}class M{constructor(t,e){Object.assign(this,{reader:t,options:e})}async getData(t,e,n,c={}){const h=this,m=(0,s.D0)(),{reader:g,index:S,offset:z,diskNumberStart:v,extraFieldAES:k,extraFieldZip64:C,compressionMethod:x,bitFlag:U,rawBitFlag:A,crc32:D,rawLastModDate:F,uncompressedSize:E,compressedSize:M}=h,{dataDescriptor:V}=U,R=e.localDirectory={},W=e.warnings=[],O=K(g,v)+z,q=await(0,i.Ul)(g,O,30),P=(0,l.MS)(q);let B=tt(h,c,p.kF),N=tt(h,c,p.JD);const H=(0,p.Ot)(tt(h,c,p.ki)),L=Boolean(H),Y=!0===H;if((0,p.Tc)(B,N),B=B&&B.length&&B,N=N&&N.length&&N,k&&99!=k.originalCompressionMethod)throw new Error(a.Ns);if(q.length<30||ot(P,0)!=r.Gq)throw new Error("Local file header not found");T(R,P,4);const{extraFieldLength:X,filenameLength:G}=R,J=R.dataOffset=O+30+G+X,Q=tt(h,c,p.rm),$=Z(c,h.options),et=function(t,e){return void 0===t?e!=p.xC:Boolean(t)}(Q,$),nt=tt(h,c,p.HL),rt=function(t,e){return void 0===t?"strict"==e:Boolean(t)}(void 0===nt?Q:nt,$);let st=r.D6;if(rt&&(G||X)){const t=await(0,i.Ul)(g,O+30,G+X);st=t.subarray(0,G),R.rawExtraField=t.subarray(G)}else R.rawExtraField=X?await(0,i.Ul)(g,O+30+G,X):r.D6;rt&&(R.rawFilename=st),I(h,R,P,4,!0)&&(0,u.A)(W,b),function(t,e,n,r,s){const{rawFilename:a}=t,o=!s,i=t.decryptedDirectory&&!(8192&~e.rawBitFlag);!r||i||n.length==a.length&&!n.some((t,e)=>t!=a[e])||_(o,s,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&_(o,s,"mismatched local file header (general purpose bit flag)"),e.compressionMethod!=t.compressionMethod&&_(o,s,"mismatched local file header (compression method)"),e.bitFlag.dataDescriptor||i||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||_(o,s,"mismatched local file header (crc32 or sizes)")}(h,R,st,rt,et?void 0:W);const{lastAccessDate:at,creationDate:it,uid:ct,gid:lt}=R;at&&(e.lastAccessDate=at),it&&(e.creationDate=it),void 0!==ct&&void 0===e.uid&&(e.uid=ct),void 0!==lt&&void 0===e.gid&&(e.gid=lt);const ut=tt(h,c,p.Wm),ft=h.encrypted&&R.encrypted&&(!Y||ut),dt=ft&&!k;if(Y||(e.zipCrypto=dt),ft&&!(64&~R.rawBitFlag))throw new Error(y);const ht=L?void 0:(0,a.$_)(x);if(0!=x&&8!=x&&9!=x&&!ht&&!L)throw new Error(a.Ns);if(ft){if(!dt&&(k.strength<1||k.strength>3))throw new Error(y);if(!B&&!N)throw new Error("File contains encrypted entry")}if(J+M>g.size)throw new Error("Entry data out of bounds");const wt=M,pt=(0,f.QK)(g.createReadable({offset:J,size:wt})),mt=(0,p.mR)(tt(h,c,"signal"));(0,p.Te)(mt);let yt=tt(h,c,p.sn);const gt=tt(h,c,p.VL);gt&&(yt=!0);const{onstart:bt,onprogress:St,onend:zt}=c,vt=0!=x&&!L,kt=L?M-(0,w.C7)(ft,dt,k&&k.strength):E,Ct=9==x;let xt=tt(h,c,p.kq);Ct&&(xt=!1);const Ut=tt(h,c,p.Fp),At=(void 0===Ut?tt(h,c,p.A4):Ut)&&!L&&(!ft||dt||k&&1==k.vendorVersion),Dt={options:{codecType:o.Re,password:B,rawPassword:N,zipCrypto:dt,encryptionStrength:k&&k.strength,checkCrc32:At,checkAuthenticationCode:tt(h,c,p.Si),passwordVerification:dt&&(V?F>>>8&255:D>>>24&255),outputSize:kt,crc32:D,compressed:vt,encrypted:ft,useWebWorkers:tt(h,c,p.bn),useCompressionStream:xt,transferStreams:tt(h,c,p.SC),deflate64:Ct,format:ht?ht.format:void 0,codecURI:ht?ht.codecURI:void 0,compressionMethod:x,rawBitFlag:A,checkPasswordOnly:ut},config:m,streamOptions:{signal:mt,size:wt,onstart:bt,onprogress:St,onend:zt}};let Ft,Et,Mt;yt&&await async function({reader:t,fileEntry:e,index:n,offset:s,crc32:a,compressedSize:o,uncompressedSize:c,dataOffset:u,dataDescriptor:f,extraFieldZip64:d,readRanges:h}){let w=0;if(f&&(w=d?20:12),w){const n=await(0,i.Ul)(t,u+o,w+4),s=(0,l.MS)(n);let f=n.length==w+4&&ot(s,0)==r.Gi;if(f){const t=j(s,4,d);(e.encrypted&&!e.zipCrypto||t.crc32==a)&&t.compressedSize==o&&t.uncompressedSize==c?w+=4:f=!1}if(n.length>=w){const t=j(s,f?4:0,d);t.signature=f,e.localDirectory.dataDescriptor=t}}const p={start:s,end:u+o+w,fileEntry:e};for(const[t,e]of h)if(t!=n&&p.start<e.end&&e.start<p.end){const t=new Error("Overlapping entry found");throw t.overlappingEntry=e.fileEntry,t}h.set(n,p)}({reader:g,fileEntry:e,index:S,offset:O,crc32:D,compressedSize:M,uncompressedSize:E,dataOffset:J,dataDescriptor:V||R.bitFlag.dataDescriptor,extraFieldZip64:C||R.extraFieldZip64,readRanges:n});try{if(!gt){ut&&(t=new WritableStream),t=new i.xm(t),await(0,i.ZD)(t,function(t,e,n){return Math.min(t,n?1032*e:e)}(kt,M,vt)),({writable:Ft}=t);const{outputSize:e}=await(0,o.WY)({readable:pt,writable:Ft},Dt);if(e!=kt)throw Object.assign(new Error(o.nD),{outputSize:e});t.size+=e}}catch(e){const{outputSize:n}=Dt;if(void 0!==n?t.size+=n:(0,d.K)(e)&&void 0!==e.outputSize&&(t.size+=e.outputSize),!ut||!(0,d.K)(e)||e.message!=o.mV)throw Et=e,Mt=!0,e}finally{if(((0,i.kh)(t)||!tt(h,c,p.C5))&&Ft&&!Ft.locked){const t=Ft.getWriter();if(Mt)try{await t.abort(Et)}catch{}else await t.close()}}return ut||gt?void 0:t.getData?t.getData():Ft}}function V(t){const e=Math.min(t.byteLength,1024)-3;for(let n=0;n<e;n++)if(ot(t,n)==r.G4)return!0;return!1}function R(t,e,n){let s=0;for(;n+46<=e.length&&ot(t,n)==r.cC;)n+=46+at(t,n+28)+at(t,n+30)+at(t,n+32),s++;return s%65536?0:s}function W(t){if(t.length>=6){const e=(0,l.MS)(t);if(ot(e,0)==r.nc){const n=at(e,4);if(6+n<=t.length)return t.subarray(6,6+n)}}}function T(t,e,n){const r=t.rawBitFlag=at(e,n+2),s=!(1&~r),a=ot(e,n+6);Object.assign(t,{encrypted:s,version:at(e,n),bitFlag:{level:(6&r)>>1,dataDescriptor:!(8&~r),languageEncodingFlag:!(2048&~r)},rawLastModDate:a,lastModDate:nt(a),filenameLength:at(e,n+22),extraFieldLength:at(e,n+24)})}function I(t,e,n,r,s){const{rawExtraField:a}=e,o=e.extraField=new Map,i=(0,l.MS)(a);let c=0,u=!1;try{for(;c<a.length;){const t=at(i,c),e=at(i,c+2);o.set(t,{type:t,data:a.slice(c+4,c+4+e)}),c+=4+e}}catch{u=!0}c>a.length&&(u=!0);const f=at(n,r+4);Object.assign(e,{signature:ot(n,r+10),crc32:ot(n,r+10),compressedSize:ot(n,r+14),uncompressedSize:ot(n,r+18)});const d=o.get(1);d&&(function(t,e){e.zip64=!0;const n=(0,l.MS)(t.data),r=A.filter(([t,n])=>e[t]==n),s=r.reduce((t,[,e])=>t+D[e].bytes,0);if(t.data.length<s)throw new Error("Zip64 extra field not found");for(let s=0,a=0;s<r.length;s++){const[o,i]=r[s],c=D[i];e[o]=t[o]=c.getValue(n,a),a+=c.bytes}}(d,e),e.extraFieldZip64=d);const h=o.get(28789);h&&(O(h,w.gk,w.nX,e,t),e.extraFieldUnicodePath=h);const p=o.get(25461);p&&(O(p,w.Kq,w.Ri,e,t),e.extraFieldUnicodeComment=p);const m=o.get(39169);m&&m.data.length>=7?(function(t,e,n){const r=(0,l.MS)(t.data),s=st(r,4);Object.assign(t,{vendorVersion:st(r,0),vendorId:st(r,2),strength:s,originalCompressionMethod:n,compressionMethod:at(r,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=void 0)}(m,e,f),e.extraFieldAES=m):e.compressionMethod=f;const y=o.get(13);y&&(q(y,e),e.extraFieldPkwareUnix=y);const g=o.get(22613);g&&(q(g,e),e.extraFieldUnixType1=g);const b=o.get(10);b&&(function(t,e){const n=(0,l.MS)(t.data);let r,s=4;try{for(;s<t.data.length&&!r;){const e=at(n,s),a=at(n,s+2);1==e&&(r=t.data.slice(s+4,s+4+a)),s+=4+a}}catch{}if(r&&24==r.length){const n=(0,l.MS)(r),s=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:o});const i={lastModDate:rt(s),lastAccessDate:rt(a),creationDate:rt(o)};Object.assign(t,i),Object.assign(e,i,{rawLastAccessDate:a,rawCreationDate:o})}}(b,e),e.extraFieldNTFS=b);const S=o.get(30805);let z;if(S&&(z=P(S,e,!1),e.extraFieldUnix=S),!z){const t=o.get(30837);t&&(P(t,e,!0),e.extraFieldInfoZip=t)}const v=o.get(21589);v&&(function(t,e,n){if(!t.data.length)return;const r=(0,l.MS)(t.data),s=st(r,0),a=[],o=[];n?(1&~s||(a.push(w.xI),o.push(w.uD)),2&~s||(a.push(w.Nz),o.push(w.q_)),4&~s||(a.push(w.Hq),o.push(w.YQ))):t.data.length>=5&&(a.push(w.xI),o.push(w.uD));let i=1;a.forEach((n,s)=>{if(t.data.length>=i+4){const a=ot(r,i);e[n]=t[n]=new Date(1e3*(0|a));const c=o[s];t[c]=a}i+=4})}(v,e,s),e.extraFieldExtendedTimestamp=v);const k=o.get(6534);return k&&(e.extraFieldUSDZ=k),u}function O(t,e,n,r,s){if(t.data.length<5)return void(t.valid=!1);const a=(0,l.MS)(t.data),o=new h.s;o.append(s[n]);const i=(0,l.MS)(new Uint8Array(4));i.setUint32(0,o.get(),!0);const u=ot(a,1),f=st(a,0);Object.assign(t,{version:f,[e]:(0,c.g)(t.data.subarray(5)),valid:1==f&&!s.bitFlag.languageEncodingFlag&&u==ot(i,0)}),t.valid&&(r[e]=t[e],r[e+"UTF8"]=!0)}function q(t,e){if(t.data.length<8)return;const n=(0,l.MS)(t.data),r={lastAccessDate:new Date(1e3*(0|ot(n,0))),lastModDate:new Date(1e3*(0|ot(n,4)))};t.data.length>=12&&(r.uid=at(n,8),r.gid=at(n,10)),Object.assign(t,r),Object.assign(e,r)}function P(t,e,n){try{const r=(0,l.MS)(t.data);let s,a;if(n){let e=0;const n=st(r,e++),o=st(r,e++);s=B(t.data.subarray(e,e+o)),e+=o;const i=st(r,e++);a=B(t.data.subarray(e,e+i)),Object.assign(t,{version:n,uid:s,gid:a})}else t.data.length>=4&&(s=at(r,0),a=at(r,2),Object.assign(t,{uid:s,gid:a}));return void 0!==s&&(e.uid=s),void 0!==a&&(e.gid=a),void 0!==s||void 0!==a}catch{}}function B(t){const e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function j(t,e,n){const r=ot(t,e);let s,a;return n?(s=it(t,e+4),a=it(t,e+12)):(s=ot(t,e+4),a=ot(t,e+8)),{crc32:r,compressedSize:s,uncompressedSize:a}}function K(t,e){return t.getDiskOffset?t.getDiskOffset(e):0}async function N(t){const e=await(0,i.Ul)(t,0,4);return ot((0,l.MS)(e))}function H(t){return"strict"===t||t===p.So||t===p.xC}function Z(t,e){return L(t,L(e,p.So))}function L(t,e){const n=t[p.BH];if(void 0!==n){if(!H(n))throw new Error("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=t[p.D9];return void 0===r?e:r?"strict":e==p.xC?p.xC:p.So}function Y(t,e){if(e==p.xC)return!1;const n=t.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(n.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||C.test(t))||"strict"==e&&(n.includes(".")||n.includes(""))}async function*X(t,e){const n=t.size-e,s=await(0,i.Ul)(t,n,e),a=(0,l.MS)(s);for(let t=s.length-22;t>=0;t--)ot(a,t)==r.fB&&(yield[a,n,s,t,n+t])}function G(t,e,n){return{offset:n,buffer:t.slice(e,e+22).buffer}}async function J(t,e,n,s,a,o,i){const c=at(e,s+10),l=ot(e,s+12),u=ot(e,s+16);if(65535==c||l==r.ac||u==r.ac)return await Q(t,e,n,a-20,o,i)==r.OL?2:0;if(!c&&!l)return 1;const f=at(e,s+6);for(const s of[a-l,K(t,f)+u])if(await Q(t,e,n,s,o,i)==r.cC)return 2;return 0}async function Q(t,e,n,r,s,a){if(!(r<0||r+4>s)){if(r>=n)return ot(e,r-n);if(a.count>0){a.count--;const e=await(0,i.Ul)(t,r,4);return ot((0,l.MS)(e),0)}}}function _(t,e,n){t?$(n):(0,u.A)(e,n)}function $(t){const e=new Error("Ambiguous archive");throw e.reason=t,e}function tt(t,e,n){return void 0===e[n]?t.options[n]:e[n]}function et(t,e,n){return(0,p.oe)(tt(t,e,n))}function nt(t){const e=(4294901760&t)>>16,n=65535&t,s=new Date(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return s<r.AN?r.AN:s}function rt(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function st(t,e){return t.getUint8(e)}function at(t,e){return t.getUint16(e,!0)}function ot(t,e){return t.getUint32(e,!0)}function it(t,e){const n=t.getBigUint64(e,!0);if(n>F)throw new Error("64-bit value exceeds Number.MAX_SAFE_INTEGER");return Number(n)}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[9588],{9588(e,t,l){l.d(t,{BlobReader:()=>r.nZ,BlobWriter:()=>r.D7,ZipReader:()=>r.zg});var r=l(
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[9588],{9588(e,t,l){l.d(t,{BlobReader:()=>r.nZ,BlobWriter:()=>r.D7,ZipReader:()=>r.zg});var r=l(26453)}}]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatBindUniform as r}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as c,If as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as u}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{floatBlendReductionFactor as p}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ColorAttachment1 as g,SizedPixelFormat as f}from"../views/webgl/enums.js";import{NoParameters as y}from"../views/webgl/NoParameters.js";import{ShaderBuilder as x}from"../views/webgl/ShaderBuilder.js";const v=.01,M=.008,b=5e-4,w=.5,S=.02,B=.1,W=.008,F=.3,I=.008,D=150,C=.095,j=.008,R=60,O=2,z=.0039,G=.25,P=.012,T=6,E=.15,Q=25,L=.15,H=.5,V=1,k=1,U=16;class N extends y{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=L,this.rayMarchMaxReach=H,this.rayMarchWorldReach=Q,this.rayMarchMinReachEmissionWeight=V,this.rayMarchMaxReachEmissionWeight=k,this.rayMarchMaxSteps=U,this.colorBleedWeight=E,this.highQualityIdleColorBlendStart=F}}function _(y){const F=new x,E=F.fragment;F.include(e),F.include(o),i(E),E.include(a),E.include(t),E.include(u),F.include(l,y),E.uniforms.add(new m("normalMap",e=>e.normalTexture),new m("depthMap",e=>e.depthTexture),new d("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new d("lastFrameDepthTexture",e=>e.reprojection.lastFrameDepth?.attachment),new d("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new d("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(g)),new h("reprojectionProjectionMatrix",e=>e.reprojection.lastFrameCamera.projectionMatrix),new h("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new h("view",e=>e.camera.viewMatrix),new n("accumulatedFrames",e=>e.accumulatedFrames),new n("temporalSampleFrame",e=>e.temporalSampleFrame),new n("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),E.uniforms.add(new n("rayMarchMinReach",e=>e.rayMarchMinReach),new n("rayMarchMaxReach",e=>e.rayMarchMaxReach),new n("rayMarchWorldReach",e=>e.rayMarchWorldReach),new n("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new n("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new n("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new n("colorBleedWeight",e=>e.colorBleedWeight),new n("highQualityIdleColorBlendStart",e=>e.highQualityIdleColorBlendStart));const{hasEmission:Q,hasColor:L}=y;return Q&&E.uniforms.add(new r("inputScale",e=>e.reprojection.lastFrameEmission?.attachment.descriptor.internalFormat===f.RGBA8?p:1),new d("lastFrameEmissionTexture",e=>e.reprojection.lastFrameEmission?.attachment)),E.constants.add("highQualityIdleColorBlendEnd","float",I),E.constants.add("highQualityIdleColorBlendFrames","float",D),E.constants.add("highQualityIdleOcclusionBlendEnd","float",j),E.constants.add("highQualityIdleOcclusionBlendExponent","float",O),E.constants.add("highQualityIdleOcclusionBlendFrames","float",R),E.constants.add("highQualityIdleOcclusionBlendStart","float",C),E.constants.add("fullColorBleedBlendWeight","float",P),E.constants.add("accumulationDitherScale","float",z),E.constants.add("lowQualityColorBlendWeight","float",b),E.constants.add("lowQualityColorDitherScale","float",G),E.constants.add("lowQualityOcclusionBlendWeight","float",M),E.constants.add("reprojectionMismatchThreshold","float",v),E.constants.add("stableHistoryColorBlendWeight","float",W),E.constants.add("strongHistoryOcclusionThreshold","float",S),E.constants.add("weakHistoryOcclusionBlendWeight","float",B),E.constants.add("weakHistoryOcclusionThreshold","float",w),E.constants.add("storedColorBlendWeightScale","float",T),E.code.add(c`float computeIdleColorBlendWeight(float accumulatedFrames) {
|
|
3
3
|
float idleColorBlendProgress = clamp(accumulatedFrames / highQualityIdleColorBlendFrames, 0.0, 1.0);
|
|
4
4
|
return mix(highQualityIdleColorBlendStart, highQualityIdleColorBlendEnd, pow(idleColorBlendProgress, 1./5.)
|
|
5
5
|
);
|
|
@@ -49,7 +49,7 @@ blueNoiseDitherValue(pixel, frame, vec2(0.25881904, 0.9659258), 0.37),
|
|
|
49
49
|
blueNoiseDitherValue(pixel, frame, vec2(1.0, 0.0), 0.61)
|
|
50
50
|
);
|
|
51
51
|
return value * 2.0 - 1.0;
|
|
52
|
-
}`),
|
|
52
|
+
}`),F.outputs.add("fragGlobalIllumination","vec4",0),F.outputs.add("fragWeight","vec2",1),E.main.add(c`
|
|
53
53
|
float depth = depthFromTexture(depthMap, uv);
|
|
54
54
|
|
|
55
55
|
// Early out if depth is out of range, such as in the sky
|
|
@@ -81,7 +81,7 @@ return value * 2.0 - 1.0;
|
|
|
81
81
|
|
|
82
82
|
// Reproject current view position to last frame
|
|
83
83
|
vec4 reprojectedViewPos = reprojectionViewMatrix * viewPos;
|
|
84
|
-
vec4 reprojectedCoordinate = applyProjectionMat(
|
|
84
|
+
vec4 reprojectedCoordinate = applyProjectionMat(reprojectionProjectionMatrix, reprojectedViewPos.xyz);
|
|
85
85
|
|
|
86
86
|
// Read last frame reprojected depth and GI history
|
|
87
87
|
float lastFrameDepthViewPos = -linearDepthFromTextureLastFrame(lastFrameDepthTexture, reprojectedCoordinate.xy);
|
|
@@ -213,4 +213,4 @@ return value * 2.0 - 1.0;
|
|
|
213
213
|
fragGlobalIllumination.a = mix(lastFrameGlobalIllumination.a + accumulationDither, fragGlobalIllumination.a, occlusionBlendWeight);
|
|
214
214
|
|
|
215
215
|
fragWeight = vec2(occlusionBlendWeight, colorBlendWeight * storedColorBlendWeightScale);
|
|
216
|
-
`),
|
|
216
|
+
`),F}const q=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationPassParameters:N,build:_,defaultColorBleedWeight:E,defaultRayMarchMaxReach:H,defaultRayMarchMaxReachEmissionWeight:k,defaultRayMarchMaxSteps:U,defaultRayMarchMinReach:L,defaultRayMarchMinReachEmissionWeight:V,defaultRayMarchWorldReach:Q},Symbol.toStringTag,{value:"Module"}));export{N as G,q as a,U as b,_ as c,H as d,E as e,k as f,L as g,V as h,Q as i};
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.105";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let r,s=e;function i(o){r=o}function t(e){const s=r?.findCredential(e);return s?.token?o(e,"token",s.token):e}s="5.2.0-next.
|
|
2
|
+
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let r,s=e;function i(o){r=o}function t(e){const s=r?.findCredential(e);return s?.token?o(e,"token",s.token):e}s="5.2.0-next.105",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,s as fullVersion,r as id,i as setId,e as version};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "5.2.0-next.
|
|
3
|
+
"version": "5.2.0-next.105",
|
|
4
4
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ArcGIS",
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
"type": "module",
|
|
20
20
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@amcharts/amcharts5": "~5.20.
|
|
23
|
-
"@arcgis/toolkit": "5.2.0-next.
|
|
22
|
+
"@amcharts/amcharts5": "~5.20.5",
|
|
23
|
+
"@arcgis/toolkit": "5.2.0-next.105",
|
|
24
24
|
"@esri/arcgis-html-sanitizer": "~4.1.0",
|
|
25
25
|
"@esri/calcite-components": "^5.2.0-next.65",
|
|
26
|
-
"@vaadin/grid": "~25.2.
|
|
27
|
-
"@zip.js/zip.js": "~2.
|
|
26
|
+
"@vaadin/grid": "~25.2.10",
|
|
27
|
+
"@zip.js/zip.js": "~2.13.1",
|
|
28
28
|
"luxon": "~3.7.2",
|
|
29
|
-
"marked": "~18.0.
|
|
29
|
+
"marked": "~18.0.12",
|
|
30
30
|
"tslib": "^2.8.1"
|
|
31
31
|
}
|
|
32
32
|
}
|
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const b="20260909",c="0fe0b74c17c742b0272bb436b40c06ac30e4bce9";export{b as buildDate,c as revision};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import{clone as
|
|
2
|
+
import{__decorate as t}from"tslib";import{clone as o}from"../core/lang.js";import{property as e,subclass as i}from"../core/accessorSupport/decorators.js";import r from"./Font.js";import l from"./Symbol3DLayer.js";import{screenSizeProperty as n}from"./support/materialUtils.js";import s from"./support/OccludedVisibility.js";import{occludedVisibilityProperty as u}from"./support/occludedVisibilityUtils.js";import p from"./support/Symbol3DHalo.js";import a from"./support/Symbol3DMaterial.js";import c from"./support/Symbol3DTextBackground.js";import m from"./support/Symbol3DTextBorder.js";import{horizontalAlignmentProperty as h,lineHeightProperty as d,verticalAlignmentProperty as y}from"./support/textUtils.js";import{writer as f}from"../core/accessorSupport/decorators/writer.js";import{enumeration as b}from"../core/accessorSupport/decorators/enumeration.js";var g;let z=class extends l{static{g=this}constructor(t){super(t),this._userSize=void 0,this.halo=null,this.horizontalAlignment="center",this.lineHeight=1,this.material=null,this.background=null,this.border=null,this.text=null,this.type="text",this.verticalAlignment="baseline",this.occludedVisibility=new s({mode:"adaptive"})}get font(){return this._get("font")||null}set font(t){null!=t&&null!=this._userSize&&(t.size=this._userSize),this._set("font",t)}writeFont(t,o,e,i){const r={...i,textSymbol3D:!0};o.font=t.write({},r),delete o.font.size}get size(){return null!=this._userSize?this._userSize:null!=this.font?.size?this.font.size:9}set size(t){this._userSize=Number(t),null!=this.font&&(this.font.size=this._userSize),this.notifyChange("size")}clone(){const t=new g({enabled:this.enabled,font:o(this.font),halo:o(this.halo),horizontalAlignment:this.horizontalAlignment,lineHeight:this.lineHeight,material:null!=this.material?this.material.clone():null,text:this.text,verticalAlignment:this.verticalAlignment,background:o(this.background),border:o(this.border),occludedVisibility:o(this.occludedVisibility)});return t._userSize=this._userSize,t}static fromTextSymbol(t){return new g({font:null!=t.font?t.font.clone():new r,halo:j(t.haloColor,t.haloSize),horizontalAlignment:t.horizontalAlignment,lineHeight:t.lineHeight,material:t.color?new a({color:t.color.clone()}):null,text:t.text,verticalAlignment:t.verticalAlignment,background:t.backgroundColor?new c({color:t.backgroundColor.clone()}):null,border:S(t.borderLineColor,t.borderLineSize),occludedVisibility:null})}};function j(t,e){return t&&null!=e&&e>0?new p({color:o(t),size:e}):null}function S(t,e){return null!=t&&null!=e&&e>0?new m({color:o(t),size:e}):null}t([e({type:r,json:{write:!0}})],z.prototype,"font",null),t([f("font")],z.prototype,"writeFont",null),t([e({type:p,json:{write:!0}})],z.prototype,"halo",void 0),t([e({...h,json:{default:"center",write:!0}})],z.prototype,"horizontalAlignment",void 0),t([e({...d,json:{default:1,write:!0}})],z.prototype,"lineHeight",void 0),t([e({type:a,json:{write:!0}})],z.prototype,"material",void 0),t([e({type:c,json:{write:!0}})],z.prototype,"background",void 0),t([e({type:m,json:{read:!1,write:!1}})],z.prototype,"border",void 0),t([e(n)],z.prototype,"size",null),t([e({type:String,json:{write:!0}})],z.prototype,"text",void 0),t([b({Text:"text"},{readOnly:!0})],z.prototype,"type",void 0),t([e({...y,json:{default:"baseline",write:!0}})],z.prototype,"verticalAlignment",void 0),t([e(u)],z.prototype,"occludedVisibility",void 0),z=g=t([i("esri.symbols.TextSymbol3DLayer")],z);export{z as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{pt2px as e}from"../../core/screenUtils.js";import{backgroundPadding as t}from"../support/textUtils.js";function i(e){return`rgb(${e.slice(0,3).toString()})`}function n(e){return`rgba(${e.slice(0,3).toString()},${e[3]})`}class r{constructor(e){e&&(this._textRasterizationCanvas=e)}rasterizeRichText(e,r){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const h=this._textRasterizationCanvas,o=h.getContext("2d",{willReadFrequently:!0}),l=this._layoutRichTextRuns(o,e,r);this._parameters=r,this._lineHeight=Math.max(...l.map(e=>e.height),this._measureLineHeight(r));const{decoration:d,weight:c}=r.font;this._lineThroughWidthOffset=d&&"line-through"===d?.1*this._lineHeight:0;const _=null!=r.backgroundColor||null!=r.borderLine,g=_?t:0,u=Math.max(...l.map(e=>e.width),0)+2*g,f=l.reduce((e,t)=>e+t.height,0)+2*g;if(h.width=u+2*this._lineThroughWidthOffset,h.height=f,0===h.width||0===h.height)return h.width=h.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:h};this._renderedWidth=u,this._renderedHeight=f,this._renderedOutlineSize=(r.outline.size||0)*r.pixelRatio,this._renderedHaloSize=(r.halo.size||0)*r.pixelRatio,this._lineThroughWidthOffset*=r.pixelRatio;const m=(r.outline&&r.outline.color)??[0,0,0,0],p=r.color??[0,0,0,0],x=r.halo&&r.halo.color?r.halo.color:[0,0,0,0];this._fillStyle=n(p),this._outlineStyle=n(m),this._haloStyle=i(x);const z=this._renderedOutlineSize,S=this._renderedHaloSize;o.save(),o.clearRect(0,0,h.width,h.height);const R=g*r.pixelRatio,w=a("left",this._renderedWidth-2*R,S+z)+R,y=S+z+R;let b=this._lineThroughWidthOffset,v=0;if(_){o.save();const e=r.backgroundColor??[0,0,0,0],t=r.borderLine?.color??[0,0,0,0],i=2*(r.borderLine?.size??0);o.fillStyle=n(e),o.strokeStyle=n(t),o.lineWidth=i,o.fillRect(0,0,h.width,h.height),o.strokeRect(0,0,h.width,h.height),o.restore()}v+=y,b+=w,S>0&&this._renderRichTextOutline(o,l,b,v,r,this._renderedHaloSize+this._renderedOutlineSize),z>0&&this._renderRichTextOutline(o,l,b,v,r,this._renderedOutlineSize);for(const t of l){let e=b;"center"===r.horizontalAlignment?e+=(this._renderedWidth-2*R-t.width)/2:"right"===r.horizontalAlignment&&(e+=this._renderedWidth-2*R-t.width-S-z);let i=e;for(const r of t.segments)s(o,r.parameters,"left",r.characterSpacing),S>0&&(o.globalCompositeOperation="destination-out",o.fillStyle="rgb(0, 0, 0)",this._renderRichTextSegment(o,r,i,v,"fill"),o.globalCompositeOperation="source-over"),o.fillStyle=n(r.parameters.color??p),this._renderRichTextSegment(o,r,i,v,"fill"),i+=r.width;if(d&&"none"!==d){const i=this._renderedWidth;this._renderedWidth=t.width,o.textAlign="left",this._renderDecoration(o,e,v,d,c),this._renderedWidth=i}v+=t.height}o.restore();const W=this._renderedWidth+2*this._lineThroughWidthOffset,C=this._renderedHeight,T=o.getImageData(0,0,W,C),H=new Uint8Array(T.data);if(r.premultiplyColors){let e;for(let t=0;t<H.length;t+=4)e=H[t+3]/255,H[t]=H[t]*e,H[t+1]=H[t+1]*e,H[t+2]=H[t+2]*e}let O,k;switch(r.horizontalAlignment){case"left":O=-.5;break;case"right":O=.5;break;default:O=0}switch(r.verticalAlignment){case"bottom":k=-.5;break;case"top":k=.5;break;case"baseline":k=-1/6;break;default:k=0}return{size:[W,C],image:new Uint32Array(H.buffer),sdf:!1,simplePattern:!1,anchorX:O,anchorY:k,canvas:h}}rasterizeText(e,r){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const h=this._textRasterizationCanvas,o=h.getContext("2d",{willReadFrequently:!0});s(o,r),this._parameters=r,this._textLines=e.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const{decoration:l,weight:d}=r.font;this._lineThroughWidthOffset=l&&"line-through"===l?.1*this._lineHeight:0;const c=null!=r.backgroundColor||null!=r.borderLine,_=c?t:0,g=this._computeTextWidth(o,r)+2*_,u=this._lineHeight*this._textLines.length+2*_;if(h.width=g+2*this._lineThroughWidthOffset,h.height=u,0===h.width||0===h.height)return h.width=h.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:h};this._renderedLineHeight=Math.round(this._lineHeight),this._renderedOutlineSize=(r.outline.size||0)*r.pixelRatio,this._renderedHaloSize=(r.halo.size||0)*r.pixelRatio,this._renderedWidth=g,this._renderedHeight=u,this._lineThroughWidthOffset*=r.pixelRatio;const f=(r.outline&&r.outline.color)??[0,0,0,0],m=r.color??[0,0,0,0],p=r.halo&&r.halo.color?r.halo.color:[0,0,0,0];this._fillStyle=n(m),this._outlineStyle=n(f),this._haloStyle=i(p);const x=this._renderedLineHeight,z=this._renderedOutlineSize,S=this._renderedHaloSize;o.save(),o.clearRect(0,0,h.width,h.height),s(o,r);const R=_*r.pixelRatio,w=a(o.textAlign,this._renderedWidth-2*R,this._renderedHaloSize+this._renderedOutlineSize)+R,y=S+z+R,b=S>0;let v=this._lineThroughWidthOffset,W=0;if(c){o.save();const e=r.backgroundColor??[0,0,0,0],t=r.borderLine?.color??[0,0,0,0],i=2*(r.borderLine?.size??0);o.fillStyle=n(e),o.strokeStyle=n(t),o.lineWidth=i,o.fillRect(0,0,h.width,h.height),o.strokeRect(0,0,h.width,h.height),o.restore()}b&&this._renderHalo(o,w,y,v,W,r),z>0&&this._renderOutline(o,w,y,v,W,r),W+=y,v+=w;for(const t of this._textLines)b?(o.globalCompositeOperation="destination-out",o.fillStyle="rgb(0, 0, 0)",o.fillText(t,v,W),o.globalCompositeOperation="source-over",o.fillStyle=this._fillStyle,o.fillText(t,v,W)):(o.fillStyle=this._fillStyle,o.fillText(t,v,W)),l&&"none"!==l&&this._renderDecoration(o,v,W,l,d),W+=x;o.restore();const C=this._renderedWidth+2*this._lineThroughWidthOffset,T=this._renderedHeight,H=o.getImageData(0,0,C,T),O=new Uint8Array(H.data);if(r.premultiplyColors){let e;for(let t=0;t<O.length;t+=4)e=O[t+3]/255,O[t]=O[t]*e,O[t+1]=O[t+1]*e,O[t+2]=O[t+2]*e}let k,L;switch(r.horizontalAlignment){case"left":k=-.5;break;case"right":k=.5;break;default:k=0}switch(r.verticalAlignment){case"bottom":L=-.5;break;case"top":L=.5;break;case"baseline":L=-1/6;break;default:L=0}return{size:[C,T],image:new Uint32Array(O.buffer),sdf:!1,simplePattern:!1,anchorX:k,anchorY:L,canvas:h}}_renderHalo(e,t,i,n,r,h){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,d=l.getContext("2d");d.clearRect(0,0,o,a),s(d,h);const{decoration:c,weight:_}=h.font;d.fillStyle=this._haloStyle,d.strokeStyle=this._haloStyle,d.lineJoin="round",this._renderOutlineNative(d,t,i,c,_,this._renderedHaloSize+this._renderedOutlineSize),e.globalAlpha=this._parameters.halo.color[3],e.drawImage(l,0,0,o,a,n,r,o,a),e.globalAlpha=1}_renderOutline(e,t,i,n,r,h){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,d=l.getContext("2d");d.clearRect(0,0,o,a),s(d,h);const{decoration:c,weight:_}=h.font;d.fillStyle=this._outlineStyle,d.strokeStyle=this._outlineStyle,d.lineJoin="round",this._renderOutlineNative(d,t,i,c,_,this._renderedOutlineSize),e.globalAlpha=this._parameters.outline.color[3],e.drawImage(l,0,0,o,a,n,r,o,a),e.globalAlpha=1}_renderOutlineNative(e,t,i,n,r,s){const h=this._renderedLineHeight;for(const o of this._textLines){const a=2*s,l=5,d=.1;for(let s=0;s<l;s++){const h=(1-(l-1)*d+s*d)*a;e.lineWidth=h,e.strokeText(o,t,i),n&&"none"!==n&&this._renderDecoration(e,t,i,n,r,h)}i+=h}}computeTextSize(e,t){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas,n=i.getContext("2d");s(n,t),this._parameters=t,this._textLines=e.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const r=this._computeTextWidth(n,t),h=this._lineHeight*this._textLines.length;return i.width=r,i.height=h,[r*t.pixelRatio,h*t.pixelRatio]}computeRichTextSize(e,t){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas.getContext("2d"),n=this._layoutRichTextRuns(i,e,t),r=Math.max(...n.map(e=>e.width),0),s=n.reduce((e,t)=>e+t.height,0);return[r*t.pixelRatio,s*t.pixelRatio]}_renderRichTextOutline(e,t,i,n,r,h){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,d=l.getContext("2d");d.clearRect(0,0,o,a),d.fillStyle=h===this._renderedOutlineSize?this._outlineStyle:this._haloStyle,d.strokeStyle=d.fillStyle,d.lineJoin="round";let c=n;for(const _ of t){let e=i;"center"===r.horizontalAlignment?e+=(this._renderedWidth-_.width)/2:"right"===r.horizontalAlignment&&(e+=this._renderedWidth-_.width-this._renderedHaloSize-this._renderedOutlineSize);let t=e;for(const i of _.segments){s(d,i.parameters,"left",i.characterSpacing);const e=2*h,n=5,r=.1;for(let s=0;s<n;s++){const h=1-(n-1)*r+s*r;d.lineWidth=h*e,this._renderRichTextSegment(d,i,t,c,"stroke")}t+=i.width}if(r.font.decoration&&"none"!==r.font.decoration){const t=this._renderedWidth;this._renderedWidth=_.width,d.textAlign="left",this._renderDecoration(d,e,c,r.font.decoration,r.font.weight,2*h),this._renderedWidth=t}c+=_.height}h===this._renderedOutlineSize?e.globalAlpha=this._parameters.outline.color[3]:e.globalAlpha=this._parameters.halo.color[3],e.drawImage(l,0,0,o,a,this._lineThroughWidthOffset,0,o,a),e.globalAlpha=1}_layoutRichTextRuns(e,t,i){const n=[{segments:[],width:0,height:this._measureLineHeight(i)}];for(const r of t){const t=r.text.split(/\r?\n/),s=o(i,r);for(let h=0;h<t.length;h++){const o=t[h],a=n[n.length-1];if(o.length>0){const t=this._measureRichTextSegmentWidth(e,o,s,r.characterSpacing);a.segments.push({text:o,width:t,parameters:s,characterSpacing:r.characterSpacing}),a.width+=t,a.height=Math.max(a.height,this._measureLineHeight(s))}h<t.length-1&&n.push({segments:[],width:0,height:this._measureLineHeight(i)})}}return n}_measureTextWidthWithSpacing(e,t,i,n){const r=this._parameters,h=this._textLines;this._parameters=i,this._textLines=[t],s(e,i,"left",n);const o=this._computeTextWidth(e,i);return this._parameters=r,this._textLines=h,o}_measureRichTextSegmentWidth(e,t,i,n){return this._measureTextWidthWithSpacing(e,t,i,n)}_renderRichTextSegment(e,t,i,n,r){"fill"===r?e.fillText(t.text,i,n):e.strokeText(t.text,i,n)}_measureLineHeight(e){const t=this._parameters;this._parameters=e;const i=this._computeLineHeight();return this._parameters=t,i}_computeTextWidth(t,i){let n=0;for(const e of this._textLines)n=Math.max(n,t.measureText(e).width);const r=i.font;return("italic"===r.style||"oblique"===r.style||"string"==typeof r.weight&&("bold"===r.weight||"bolder"===r.weight)||"number"==typeof r.weight&&r.weight>600)&&(n+=.3*t.measureText("w").width),n+=2*e(this._parameters.halo.size),Math.round(n)}_computeLineHeightBase(){return 1.275*this._parameters.size}_computeLineHeight(){let t=this._computeLineHeightBase();const i=this._parameters.font.decoration;return i&&"underline"===i&&(t*=1.3),Math.round(t+2*e(this._parameters.halo.size))}_renderDecoration(e,t,i,n,r,s){let h=.9*this._lineHeight;const o="bold"===r?.06:"bolder"===r?.09:.04;switch(e.textAlign){case"center":t-=this._renderedWidth/2;break;case"right":t-=this._renderedWidth}const a=e.textBaseline;if("underline"===n)switch(h=.9*this._computeLineHeightBase(),a){case"top":i+=h;break;case"middle":i+=h/2}else if("line-through"===n)switch(a){case"top":i+=h/1.5;break;case"middle":i+=h/3}const l=s?1.5*s:Math.ceil(h*o);e.save(),e.beginPath(),e.strokeStyle=e.fillStyle,e.lineWidth=l,e.moveTo(t-this._lineThroughWidthOffset,i),e.lineTo(t+this._renderedWidth+2*this._lineThroughWidthOffset,i),e.stroke(),e.restore()}}function s(t,i,n,r=0){const s=Math.max(i.size,.5),o=i.font,a=`${o.style} ${o.weight} ${e(s).toFixed(1)}px ${o.family}, sans-serif`;t.font=a,t.textBaseline="top",h(t,r);let l=n??"left";if(!n)switch(i.horizontalAlignment){case"left":default:l="left";break;case"right":l="right";break;case"center":l="center"}t.textAlign=l}function h(e,t){e.letterSpacing=t>0?`${t}em`:"0px"}function o(e,t){return{...e,color:t.color??e.color,font:{...e.font,family:t.font.family??e.font.family,style:t.font.style??e.font.style,weight:t.font.weight??e.font.weight},size:t.fontSize}}function a(e,t,i){return"center"===e?.5*t:"right"===e?t-i:i}export{r as default};
|
|
2
|
+
import{pt2px as e}from"../../core/screenUtils.js";import{backgroundPadding as t}from"../support/textUtils.js";function i(e){return`rgb(${e.slice(0,3).toString()})`}function n(e){return`rgba(${e.slice(0,3).toString()},${e[3]})`}const r=2;function s(t){return"underline"===t?e(r):0}class h{constructor(e){e&&(this._textRasterizationCanvas=e)}rasterizeRichText(e,r){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const s=this._textRasterizationCanvas,h=s.getContext("2d",{willReadFrequently:!0}),a=this._layoutRichTextRuns(h,e,r);this._parameters=r;const{decoration:l,weight:_}=r.font,g="underline"===l?"none":l,u=g===l?r:d(r,g);this._lineHeight=Math.max(...a.map(e=>e.height),this._measureLineHeight(u)),this._lineThroughWidthOffset="line-through"===g?.1*this._lineHeight:0;const f=null!=r.backgroundColor||null!=r.borderLine,m=f?t:0,p=Math.max(...a.map(e=>e.width),0)+2*m,x=a.reduce((e,t)=>e+t.height,0)+2*m;if(s.width=p+2*this._lineThroughWidthOffset,s.height=x,0===s.width||0===s.height)return s.width=s.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:s};this._renderedWidth=p,this._renderedHeight=x,this._renderedOutlineSize=(r.outline.size||0)*r.pixelRatio,this._renderedHaloSize=(r.halo.size||0)*r.pixelRatio,this._lineThroughWidthOffset*=r.pixelRatio;const z=(r.outline&&r.outline.color)??[0,0,0,0],w=r.color??[0,0,0,0],S=r.halo&&r.halo.color?r.halo.color:[0,0,0,0];this._fillStyle=n(w),this._outlineStyle=n(z),this._haloStyle=i(S);const R=this._renderedOutlineSize,y=this._renderedHaloSize;h.save(),h.clearRect(0,0,s.width,s.height);const W=m*r.pixelRatio,b=c("left",this._renderedWidth-2*W,y+R)+W,v=y+R+W;let C=this._lineThroughWidthOffset,T=0;if(f){h.save();const e=r.backgroundColor??[0,0,0,0],t=r.borderLine?.color??[0,0,0,0],i=2*(r.borderLine?.size??0);h.fillStyle=n(e),h.strokeStyle=n(t),h.lineWidth=i,h.fillRect(0,0,s.width,s.height),h.strokeRect(0,0,s.width,s.height),h.restore()}T+=v,C+=b,y>0&&this._renderRichTextOutline(h,a,C,T,r,this._renderedHaloSize+this._renderedOutlineSize),R>0&&this._renderRichTextOutline(h,a,C,T,r,this._renderedOutlineSize);for(const t of a){let e=C;"center"===r.horizontalAlignment?e+=(this._renderedWidth-2*W-t.width)/2:"right"===r.horizontalAlignment&&(e+=this._renderedWidth-2*W-t.width-y-R);let i=e;for(const r of t.segments)o(h,r.parameters,"left",r.characterSpacing),y>0&&(h.globalCompositeOperation="destination-out",h.fillStyle="rgb(0, 0, 0)",this._renderRichTextSegment(h,r,i,T,"fill"),h.globalCompositeOperation="source-over"),h.fillStyle=n(r.parameters.color??w),this._renderRichTextSegment(h,r,i,T,"fill"),i+=r.width;for(const n of t.segments){if("underline"!==n.decoration)continue;const t=this._renderedWidth;this._renderedWidth=n.width,h.textAlign="left",this._renderDecoration(h,e+n.x,T,n.decoration,n.parameters.font.weight,void 0,n.parameters),this._renderedWidth=t}if(g&&"none"!==g){const i=this._renderedWidth;this._renderedWidth=t.width,h.textAlign="left",this._renderDecoration(h,e,T,g,_),this._renderedWidth=i}T+=t.height}h.restore();const H=this._renderedWidth+2*this._lineThroughWidthOffset,O=this._renderedHeight,k=h.getImageData(0,0,H,O),L=new Uint8Array(k.data);if(r.premultiplyColors){let e;for(let t=0;t<L.length;t+=4)e=L[t+3]/255,L[t]=L[t]*e,L[t+1]=L[t+1]*e,L[t+2]=L[t+2]*e}let A,M;switch(r.horizontalAlignment){case"left":A=-.5;break;case"right":A=.5;break;default:A=0}switch(r.verticalAlignment){case"bottom":M=-.5;break;case"top":M=.5;break;case"baseline":M=-1/6;break;default:M=0}return{size:[H,O],image:new Uint32Array(L.buffer),sdf:!1,simplePattern:!1,anchorX:A,anchorY:M,canvas:s}}rasterizeText(e,r){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const s=this._textRasterizationCanvas,h=s.getContext("2d",{willReadFrequently:!0});o(h,r),this._parameters=r,this._textLines=e.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const{decoration:a,weight:l}=r.font;this._lineThroughWidthOffset=a&&"line-through"===a?.1*this._lineHeight:0;const d=null!=r.backgroundColor||null!=r.borderLine,_=d?t:0,g=this._computeTextWidth(h,r)+2*_,u=this._lineHeight*this._textLines.length+2*_;if(s.width=g+2*this._lineThroughWidthOffset,s.height=u,0===s.width||0===s.height)return s.width=s.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:s};this._renderedLineHeight=Math.round(this._lineHeight),this._renderedOutlineSize=(r.outline.size||0)*r.pixelRatio,this._renderedHaloSize=(r.halo.size||0)*r.pixelRatio,this._renderedWidth=g,this._renderedHeight=u,this._lineThroughWidthOffset*=r.pixelRatio;const f=(r.outline&&r.outline.color)??[0,0,0,0],m=r.color??[0,0,0,0],p=r.halo&&r.halo.color?r.halo.color:[0,0,0,0];this._fillStyle=n(m),this._outlineStyle=n(f),this._haloStyle=i(p);const x=this._renderedLineHeight,z=this._renderedOutlineSize,w=this._renderedHaloSize;h.save(),h.clearRect(0,0,s.width,s.height),o(h,r);const S=_*r.pixelRatio,R=c(h.textAlign,this._renderedWidth-2*S,this._renderedHaloSize+this._renderedOutlineSize)+S,y=w+z+S,W=w>0;let b=this._lineThroughWidthOffset,v=0;if(d){h.save();const e=r.backgroundColor??[0,0,0,0],t=r.borderLine?.color??[0,0,0,0],i=2*(r.borderLine?.size??0);h.fillStyle=n(e),h.strokeStyle=n(t),h.lineWidth=i,h.fillRect(0,0,s.width,s.height),h.strokeRect(0,0,s.width,s.height),h.restore()}W&&this._renderHalo(h,R,y,b,v,r),z>0&&this._renderOutline(h,R,y,b,v,r),v+=y,b+=R;for(const t of this._textLines)W?(h.globalCompositeOperation="destination-out",h.fillStyle="rgb(0, 0, 0)",h.fillText(t,b,v),h.globalCompositeOperation="source-over",h.fillStyle=this._fillStyle,h.fillText(t,b,v)):(h.fillStyle=this._fillStyle,h.fillText(t,b,v)),a&&"none"!==a&&this._renderDecoration(h,b,v,a,l),v+=x;h.restore();const C=this._renderedWidth+2*this._lineThroughWidthOffset,T=this._renderedHeight,H=h.getImageData(0,0,C,T),O=new Uint8Array(H.data);if(r.premultiplyColors){let e;for(let t=0;t<O.length;t+=4)e=O[t+3]/255,O[t]=O[t]*e,O[t+1]=O[t+1]*e,O[t+2]=O[t+2]*e}let k,L;switch(r.horizontalAlignment){case"left":k=-.5;break;case"right":k=.5;break;default:k=0}switch(r.verticalAlignment){case"bottom":L=-.5;break;case"top":L=.5;break;case"baseline":L=-1/6;break;default:L=0}return{size:[C,T],image:new Uint32Array(O.buffer),sdf:!1,simplePattern:!1,anchorX:k,anchorY:L,canvas:s}}_renderHalo(e,t,i,n,r,s){const h=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=h,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,d=l.getContext("2d");d.clearRect(0,0,h,a),o(d,s);const{decoration:c,weight:_}=s.font;d.fillStyle=this._haloStyle,d.strokeStyle=this._haloStyle,d.lineJoin="round",this._renderOutlineNative(d,t,i,c,_,this._renderedHaloSize+this._renderedOutlineSize),e.globalAlpha=this._parameters.halo.color[3],e.drawImage(l,0,0,h,a,n,r,h,a),e.globalAlpha=1}_renderOutline(e,t,i,n,r,s){const h=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=h,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,d=l.getContext("2d");d.clearRect(0,0,h,a),o(d,s);const{decoration:c,weight:_}=s.font;d.fillStyle=this._outlineStyle,d.strokeStyle=this._outlineStyle,d.lineJoin="round",this._renderOutlineNative(d,t,i,c,_,this._renderedOutlineSize),e.globalAlpha=this._parameters.outline.color[3],e.drawImage(l,0,0,h,a,n,r,h,a),e.globalAlpha=1}_renderOutlineNative(e,t,i,n,r,s){const h=this._renderedLineHeight;for(const o of this._textLines){const a=2*s,l=5,d=.1;for(let s=0;s<l;s++){const h=(1-(l-1)*d+s*d)*a;e.lineWidth=h,e.strokeText(o,t,i),n&&"none"!==n&&this._renderDecoration(e,t,i,n,r,h)}i+=h}}computeTextSize(e,t){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas,n=i.getContext("2d");o(n,t),this._parameters=t,this._textLines=e.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const r=this._computeTextWidth(n,t),s=this._lineHeight*this._textLines.length;return i.width=r,i.height=s,[r*t.pixelRatio,s*t.pixelRatio]}computeRichTextSize(e,t){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas.getContext("2d"),n=this._layoutRichTextRuns(i,e,t),r=Math.max(...n.map(e=>e.width),0),s=n.reduce((e,t)=>e+t.height,0);return[r*t.pixelRatio,s*t.pixelRatio]}_renderRichTextOutline(e,t,i,n,r,s){const h=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=h,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,d=l.getContext("2d");d.clearRect(0,0,h,a),d.fillStyle=s===this._renderedOutlineSize?this._outlineStyle:this._haloStyle,d.strokeStyle=d.fillStyle,d.lineJoin="round";let c=n;for(const _ of t){let e=i;"center"===r.horizontalAlignment?e+=(this._renderedWidth-_.width)/2:"right"===r.horizontalAlignment&&(e+=this._renderedWidth-_.width-this._renderedHaloSize-this._renderedOutlineSize);let t=e;for(const i of _.segments){o(d,i.parameters,"left",i.characterSpacing);const e=2*s,n=5,r=.1;for(let s=0;s<n;s++){const h=1-(n-1)*r+s*r;d.lineWidth=h*e,this._renderRichTextSegment(d,i,t,c,"stroke")}t+=i.width}for(const i of _.segments){if("underline"!==i.decoration)continue;const t=this._renderedWidth;this._renderedWidth=i.width,d.textAlign="left",this._renderDecoration(d,e+i.x,c,i.decoration,i.parameters.font.weight,2*s,i.parameters),this._renderedWidth=t}const n="underline"===r.font.decoration?"none":r.font.decoration;if(n&&"none"!==n){const t=this._renderedWidth;this._renderedWidth=_.width,d.textAlign="left",this._renderDecoration(d,e,c,n,r.font.weight,2*s),this._renderedWidth=t}c+=_.height}s===this._renderedOutlineSize?e.globalAlpha=this._parameters.outline.color[3]:e.globalAlpha=this._parameters.halo.color[3],e.drawImage(l,0,0,h,a,this._lineThroughWidthOffset,0,h,a),e.globalAlpha=1}_layoutRichTextRuns(e,t,i){const n="underline"===i.font.decoration?d(i,"none"):i,r=[{segments:[],width:0,height:this._measureLineHeight(n)}];for(const s of t){const t=s.text.split(/\r?\n/),h=l(i,s);for(let i=0;i<t.length;i++){const o=t[i],a=r[r.length-1];if(o.length>0){const t=this._measureRichTextSegmentWidth(e,o,h,s.characterSpacing);a.segments.push({text:o,width:t,x:a.width,parameters:h,characterSpacing:s.characterSpacing,decoration:h.font.decoration}),a.width+=t,a.height=Math.max(a.height,this._measureLineHeight(h))}i<t.length-1&&r.push({segments:[],width:0,height:this._measureLineHeight(n)})}}return r}_measureTextWidthWithSpacing(e,t,i,n){const r=this._parameters,s=this._textLines;this._parameters=i,this._textLines=[t],o(e,i,"left",n);const h=this._computeTextWidth(e,i);return this._parameters=r,this._textLines=s,h}_measureRichTextSegmentWidth(e,t,i,n){return this._measureTextWidthWithSpacing(e,t,i,n)}_renderRichTextSegment(e,t,i,n,r){"fill"===r?e.fillText(t.text,i,n):e.strokeText(t.text,i,n)}_measureLineHeight(e){const t=this._parameters;this._parameters=e;const i=this._computeLineHeight();return this._parameters=t,i}_computeTextWidth(t,i){let n=0;for(const e of this._textLines)n=Math.max(n,t.measureText(e).width);const r=i.font;return("italic"===r.style||"oblique"===r.style||"string"==typeof r.weight&&("bold"===r.weight||"bolder"===r.weight)||"number"==typeof r.weight&&r.weight>600)&&(n+=.3*t.measureText("w").width),n+=2*e(this._parameters.halo.size),Math.round(n)}_computeLineHeightBase(e=this._parameters){return 1.275*e.size}_computeLineHeight(){let t=this._computeLineHeightBase();const i=this._parameters.font.decoration;return i&&"underline"===i&&(t*=1.3),Math.round(t+2*e(this._parameters.halo.size))}_renderDecoration(e,t,i,n,r,h,o=this._parameters){let a=.9*this._lineHeight;const l="bold"===r?.06:"bolder"===r?.09:.04;switch(e.textAlign){case"center":t-=this._renderedWidth/2;break;case"right":t-=this._renderedWidth}const d=e.textBaseline,c=s(n);if("underline"===n)switch(a=.9*this._computeLineHeightBase(o),d){case"top":i+=a+c;break;case"middle":i+=a/2+c}else if("line-through"===n)switch(d){case"top":i+=a/1.5;break;case"middle":i+=a/3}const _=h?1.5*h:Math.ceil(a*l);e.save(),e.beginPath(),e.strokeStyle=e.fillStyle,e.lineWidth=_,e.moveTo(t-this._lineThroughWidthOffset,i),e.lineTo(t+this._renderedWidth+2*this._lineThroughWidthOffset,i),e.stroke(),e.restore()}}function o(t,i,n,r=0){const s=Math.max(i.size,.5),h=i.font,o=`${h.style} ${h.weight} ${e(s).toFixed(1)}px ${h.family}, sans-serif`;t.font=o,t.textBaseline="top",a(t,r);let l=n??"left";if(!n)switch(i.horizontalAlignment){case"left":default:l="left";break;case"right":l="right";break;case"center":l="center"}t.textAlign=l}function a(e,t){e.letterSpacing=t>0?`${t}em`:"0px"}function l(e,t){return{...e,color:t.color??e.color,font:{...e.font,family:t.font.family??e.font.family,style:t.font.style??e.font.style,weight:t.font.weight??e.font.weight,decoration:t.font.decoration??e.font.decoration},size:t.fontSize}}function d(e,t){return{...e,font:{...e.font,decoration:t}}}function c(e,t,i){return"center"===e?.5*t:"right"===e?t-i:i}export{h as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import t from"../../Color.js";import{fromCIMFontStyle as n}from"./utils.js";const e=/([A-Za-z_][\w-]*)\s*=\s*(['"])(.*?)\2/g,r=/&(amp|lt|gt|quot|apos);/g,o=/<\s*\/?\s*(?:CLR|BOL|_BOL|ITA|_ITA|FNT|CHR)\b/i;function i(t){return o.test(t)}function a(t){if(!t.supportsRichText||!t.textString.includes("<"))return null;const n=c(t),e=[],r=[];let o=s(n),i="",a=!1;const
|
|
2
|
+
import t from"../../Color.js";import{fromCIMFontStyle as n}from"./utils.js";const e=/([A-Za-z_][\w-]*)\s*=\s*(['"])(.*?)\2/g,r=/&(amp|lt|gt|quot|apos);/g,o=/<\s*\/?\s*(?:CLR|BOL|_BOL|ITA|_ITA|UND|_UND|FNT|CHR)\b/i;function i(t){return o.test(t)}function a(t){if(!t.supportsRichText||!t.textString.includes("<"))return null;const n=c(t),e=[],r=[];let o=s(n),i="",a=!1;const f=t.textString,g=()=>{if(!i)return;const t=l(i);if(!t)return void(i="");const n=r[r.length-1];n&&u(n,o)?n.text+=t:r.push({text:t,font:{...o.font},fontSize:o.fontSize,characterSpacing:o.characterSpacing,color:o.color}),i=""};let p=0;for(;p<f.length;){const t=f[p];if("<"!==t){i+=t,p++;continue}const n=f.indexOf(">",p+1);if(-1===n)return null;const r=h(f.slice(p+1,n));if(!r)return null;if(a=!0,g(),r.isEnd){const t=e.pop();if(!t||t.name!==r.name)return null;o=t.previous}else{const t=s(o);o=m(o,r),e.push({name:r.name,previous:t})}p=n+1}return e.length?null:(g(),a?r.filter(t=>t.text.length>0):null)}function c(t){return{font:{...t.font},fontSize:t.symbol?.height&&!isNaN(t.symbol.height)?t.symbol.height:10,characterSpacing:0}}function s(t){return{font:{...t.font},fontSize:t.fontSize,characterSpacing:t.characterSpacing,color:t.color}}function u(t,n){return t.fontSize===n.fontSize&&t.characterSpacing===n.characterSpacing&&t.font.family===n.font.family&&t.font.style===n.font.style&&t.font.weight===n.font.weight&&t.font.decoration===n.font.decoration&&f(t.color,n.color)}function f(t,n){return t===n||!!t&&!!n&&t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]}function l(t){return t.replaceAll(r,(t,n)=>{switch(n){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';case"apos":return"'";default:return t}})}function h(t){const n=t.trim();if(!n)return null;const r=n.startsWith("/"),o=r?n.slice(1).trim():n,i=/^([A-Za-z_][\w-]*)/.exec(o);if(!i)return null;const a=i[1],c=o.slice(a.length),s={};let u;for(e.lastIndex=0;u=e.exec(c);)s[u[1]]=u[3];return{isEnd:r,name:a,attributes:s}}function m(t,n){const e=s(t);switch(n.name.toUpperCase()){case"BOL":e.font.weight="bold";break;case"_BOL":e.font.weight="normal";break;case"ITA":e.font.style="italic";break;case"_ITA":e.font.style="normal";break;case"UND":e.font.decoration="underline";break;case"_UND":e.font.decoration="none";break;case"FNT":p(e,n.attributes);break;case"CLR":e.color=b(n.attributes);break;case"CHR":g(e,n.attributes)}return e}function g(t,n){const e=Number(n.spacing);!isNaN(e)&&e>=0&&(t.characterSpacing=e/100)}function p(t,e){const{name:r,style:o,size:i,scale:a,wght:c,ital:s}=e;if(r&&(t.font.family=r),o){const e=n(o);t.font.style=e.style,t.font.weight=e.weight}if(c){const n=Number(c);t.font.weight=n>=600?"bold":"normal"}if(s){const n=Number(s);isNaN(n)||(t.font.style=0!==n?"italic":"normal")}if(i){const n=Number(i);!isNaN(n)&&n>0&&(t.fontSize=n)}if(a){const n=Number(a);!isNaN(n)&&n>0&&(t.fontSize*=n/100)}}function b(n){if(n.hex){const e=t.fromHex(n.hex)?.toArray();if(e){const t="alpha"in n?S(n.alpha):e[3];return[e[0],e[1],e[2],t]}}if("red"in n||"green"in n||"blue"in n)return[N(n.red),N(n.green),N(n.blue),S(n.alpha)];const e=d(n.cyan),r=d(n.magenta),o=d(n.yellow),i=d(n.black),a=S(n.alpha),c=d(n.tint,100)/100,s=1-i;return[Math.round(255*(1-e)*s*c),Math.round(255*(1-r)*s*c),Math.round(255*(1-o)*s*c),a]}function N(t){const n=Number(t);return y(isNaN(n)?0:n)}function d(t,n=0){const e=Number(t);return x((isNaN(e)?n:e)/100)}function S(t){return Math.round(255*d(t,100))}function y(t){return Math.max(0,Math.min(255,Math.round(t)))}function x(t){return Math.max(0,Math.min(1,t))}export{i as hasRichTextFormattingTags,a as parseRichTextRuns};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{__decorate as o}from"tslib";import r from"../../Color.js";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as s}from"../../core/JSONSupport.js";import{px2pt as t}from"../../core/screenUtils.js";import{property as i,subclass as p}from"../../core/accessorSupport/decorators.js";import{colorAndTransparencyProperty as l,screenSizeProperty as m}from"./materialUtils.js";let c=class extends(e(s)){constructor(o){super(o),this.color=new r([0,0,0,1])}get size(){return this._get("size")??t(1)}set size(o){this._set("size",o)}};o([i({...l({colorRequiredOnWrite:!0}),json:void 0})],c.prototype,"color",void 0),o([i({...m,json:void 0})],c.prototype,"size",null),c=o([p("esri.symbols.support.Symbol3DTextBorder")],c);export{c as default};
|