@mlightcad/cad-simple-viewer-cli 1.7.8-preview.6 → 1.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{D as Xr,E as Gt,F as Yr,V as Gr,G as $e,H as Wr,I as He,J as Kr,K as Zr,L as Jr,N as ut,g as qr,O as Qr,P as Pa,Q as tn,R as en,S as an,U as za,W as rn,Y as nn,Z as on,_ as je,a0 as sn,a1 as ln,a2 as cn,a3 as dn,a4 as un,a5 as mn,a6 as ue,a7 as pn,a8 as hn,a9 as fn,aa as gn,ab as bn,ac as wn,ad as xn,ae as yn,af as vn,ag as kn,ah as An,ai as Mn,aj as En,ak as Bn,al as Cn,am as In,an as Fn,ao as Sn,ap as Ln,aq as Pn,ar as V,as as zn,at as lt,au as Ua,av as Un,aw as me,o as Dn,ax as Nn,ay as Tn,az as _n,aA as Rn,q as On,$ as $n,aB as pt,h as x,v as J,aC as B,aD as Hn,aE as jn,a as j,aF as Vn,e as Ve,aG as Xn}from"./index-BCz7pt73.js";import{aH as Sl,aI as Ll}from"./index-BCz7pt73.js";var z=Uint8Array,N=Uint16Array,pe=Int32Array,he=new z([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,0,0,0]),fe=new z([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,0,0]),Xe=new z([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Da=function(t,e){for(var a=new N(31),r=0;r<31;++r)a[r]=e+=1<<t[r-1];for(var n=new pe(a[30]),r=1;r<30;++r)for(var i=a[r];i<a[r+1];++i)n[i]=i-a[r]<<5|r;return{b:a,r:n}},Na=Da(he,2),Yn=Na.b,qt=Na.r;Yn[28]=258,qt[258]=28;var Gn=Da(fe,0),Ye=Gn.r,Qt=new N(32768);for(var M=0;M<32768;++M){var K=(M&43690)>>1|(M&21845)<<1;K=(K&52428)>>2|(K&13107)<<2,K=(K&61680)>>4|(K&3855)<<4,Qt[M]=((K&65280)>>8|(K&255)<<8)>>1}var wt=(function(t,e,a){for(var r=t.length,n=0,i=new N(e);n<r;++n)t[n]&&++i[t[n]-1];var o=new N(e);for(n=1;n<e;++n)o[n]=o[n-1]+i[n-1]<<1;var s;if(a){s=new N(1<<e);var l=15-e;for(n=0;n<r;++n)if(t[n])for(var c=n<<4|t[n],d=e-t[n],u=o[t[n]-1]++<<d,p=u|(1<<d)-1;u<=p;++u)s[Qt[u]>>l]=c}else for(s=new N(r),n=0;n<r;++n)t[n]&&(s[n]=Qt[o[t[n]-1]++]>>15-t[n]);return s}),tt=new z(288);for(var M=0;M<144;++M)tt[M]=8;for(var M=144;M<256;++M)tt[M]=9;for(var M=256;M<280;++M)tt[M]=7;for(var M=280;M<288;++M)tt[M]=8;var It=new z(32);for(var M=0;M<32;++M)It[M]=5;var Wn=wt(tt,9,0),Kn=wt(It,5,0),Ta=function(t){return(t+7)/8|0},_a=function(t,e,a){return(a==null||a>t.length)&&(a=t.length),new z(t.subarray(e,a))},Zn=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Tt=function(t,e,a){var r=new Error(e||Zn[t]);if(r.code=t,Error.captureStackTrace&&Error.captureStackTrace(r,Tt),!a)throw r;return r},Y=function(t,e,a){a<<=e&7;var r=e/8|0;t[r]|=a,t[r+1]|=a>>8},ht=function(t,e,a){a<<=e&7;var r=e/8|0;t[r]|=a,t[r+1]|=a>>8,t[r+2]|=a>>16},Wt=function(t,e){for(var a=[],r=0;r<t.length;++r)t[r]&&a.push({s:r,f:t[r]});var n=a.length,i=a.slice();if(!n)return{t:Oa,l:0};if(n==1){var o=new z(a[0].s+1);return o[a[0].s]=1,{t:o,l:1}}a.sort(function(I,C){return I.f-C.f}),a.push({s:-1,f:25001});var s=a[0],l=a[1],c=0,d=1,u=2;for(a[0]={s:-1,f:s.f+l.f,l:s,r:l};d!=n-1;)s=a[a[c].f<a[u].f?c++:u++],l=a[c!=d&&a[c].f<a[u].f?c++:u++],a[d++]={s:-1,f:s.f+l.f,l:s,r:l};for(var p=i[0].s,r=1;r<n;++r)i[r].s>p&&(p=i[r].s);var m=new N(p+1),h=te(a[d-1],m,0);if(h>e){var r=0,f=0,g=h-e,w=1<<g;for(i.sort(function(C,E){return m[E.s]-m[C.s]||C.f-E.f});r<n;++r){var b=i[r].s;if(m[b]>e)f+=w-(1<<h-m[b]),m[b]=e;else break}for(f>>=g;f>0;){var A=i[r].s;m[A]<e?f-=1<<e-m[A]++-1:++r}for(;r>=0&&f;--r){var y=i[r].s;m[y]==e&&(--m[y],++f)}h=e}return{t:new z(m),l:h}},te=function(t,e,a){return t.s==-1?Math.max(te(t.l,e,a+1),te(t.r,e,a+1)):e[t.s]=a},Ge=function(t){for(var e=t.length;e&&!t[--e];);for(var a=new N(++e),r=0,n=t[0],i=1,o=function(l){a[r++]=l},s=1;s<=e;++s)if(t[s]==n&&s!=e)++i;else{if(!n&&i>2){for(;i>138;i-=138)o(32754);i>2&&(o(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(o(n),--i;i>6;i-=6)o(8304);i>2&&(o(i-3<<5|8208),i=0)}for(;i--;)o(n);i=1,n=t[s]}return{c:a.subarray(0,r),n:e}},ft=function(t,e){for(var a=0,r=0;r<e.length;++r)a+=t[r]*e[r];return a},Ra=function(t,e,a){var r=a.length,n=Ta(e+2);t[n]=r&255,t[n+1]=r>>8,t[n+2]=t[n]^255,t[n+3]=t[n+1]^255;for(var i=0;i<r;++i)t[n+i+4]=a[i];return(n+4+r)*8},We=function(t,e,a,r,n,i,o,s,l,c,d){Y(e,d++,a),++n[256];for(var u=Wt(n,15),p=u.t,m=u.l,h=Wt(i,15),f=h.t,g=h.l,w=Ge(p),b=w.c,A=w.n,y=Ge(f),I=y.c,C=y.n,E=new N(19),v=0;v<b.length;++v)++E[b[v]&31];for(var v=0;v<I.length;++v)++E[I[v]&31];for(var k=Wt(E,7),U=k.t,rt=k.l,D=19;D>4&&!U[Xe[D-1]];--D);var nt=c+5<<3,T=ft(n,tt)+ft(i,It)+o,_=ft(n,p)+ft(i,f)+o+14+3*D+ft(E,U)+2*E[16]+3*E[17]+7*E[18];if(l>=0&&nt<=T&&nt<=_)return Ra(e,d,t.subarray(l,l+c));var O,L,R,W;if(Y(e,d,1+(_<T)),d+=2,_<T){O=wt(p,m,0),L=p,R=wt(f,g,0),W=f;var jt=wt(U,rt,0);Y(e,d,A-257),Y(e,d+5,C-1),Y(e,d+10,D-4),d+=14;for(var v=0;v<D;++v)Y(e,d+3*v,U[Xe[v]]);d+=3*D;for(var $=[b,I],mt=0;mt<2;++mt)for(var it=$[mt],v=0;v<it.length;++v){var H=it[v]&31;Y(e,d,jt[H]),d+=U[H],H>15&&(Y(e,d,it[v]>>5&127),d+=it[v]>>12)}}else O=Wn,L=tt,R=Kn,W=It;for(var v=0;v<s;++v){var P=r[v];if(P>255){var H=P>>18&31;ht(e,d,O[H+257]),d+=L[H+257],H>7&&(Y(e,d,P>>23&31),d+=he[H]);var ot=P&31;ht(e,d,R[ot]),d+=W[ot],ot>3&&(ht(e,d,P>>5&8191),d+=fe[ot])}else ht(e,d,O[P]),d+=L[P]}return ht(e,d,O[256]),d+L[256]},Jn=new pe([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Oa=new z(0),qn=function(t,e,a,r,n,i){var o=i.z||t.length,s=new z(r+o+5*(1+Math.ceil(o/7e3))+n),l=s.subarray(r,s.length-n),c=i.l,d=(i.r||0)&7;if(e){d&&(l[0]=i.r>>3);for(var u=Jn[e-1],p=u>>13,m=u&8191,h=(1<<a)-1,f=i.p||new N(32768),g=i.h||new N(h+1),w=Math.ceil(a/3),b=2*w,A=function(Yt){return(t[Yt]^t[Yt+1]<<w^t[Yt+2]<<b)&h},y=new pe(25e3),I=new N(288),C=new N(32),E=0,v=0,k=i.i||0,U=0,rt=i.w||0,D=0;k+2<o;++k){var nt=A(k),T=k&32767,_=g[nt];if(f[T]=_,g[nt]=T,rt<=k){var O=o-k;if((E>7e3||U>24576)&&(O>423||!c)){d=We(t,l,0,y,I,C,v,U,D,k-D,d),U=E=v=0,D=k;for(var L=0;L<286;++L)I[L]=0;for(var L=0;L<30;++L)C[L]=0}var R=2,W=0,jt=m,$=T-_&32767;if(O>2&&nt==A(k-$))for(var mt=Math.min(p,O)-1,it=Math.min(32767,k),H=Math.min(258,O);$<=it&&--jt&&T!=_;){if(t[k+R]==t[k+R-$]){for(var P=0;P<H&&t[k+P]==t[k+P-$];++P);if(P>R){if(R=P,W=$,P>mt)break;for(var ot=Math.min($,P-2),Te=0,L=0;L<ot;++L){var Vt=k-$+L&32767,Vr=f[Vt],_e=Vt-Vr&32767;_e>Te&&(Te=_e,_=Vt)}}}T=_,_=f[T],$+=T-_&32767}if(W){y[U++]=268435456|qt[R]<<18|Ye[W];var Re=qt[R]&31,Oe=Ye[W]&31;v+=he[Re]+fe[Oe],++I[257+Re],++C[Oe],rt=k+R,++E}else y[U++]=t[k],++I[t[k]]}}for(k=Math.max(k,rt);k<o;++k)y[U++]=t[k],++I[t[k]];d=We(t,l,c,y,I,C,v,U,D,k-D,d),c||(i.r=d&7|l[d/8|0]<<3,d-=7,i.h=g,i.p=f,i.i=k,i.w=rt)}else{for(var k=i.w||0;k<o+c;k+=65535){var Xt=k+65535;Xt>=o&&(l[d/8|0]=c,Xt=o),d=Ra(l,d+1,t.subarray(k,Xt))}i.i=o}return _a(s,0,r+Ta(d)+n)},Qn=(function(){for(var t=new Int32Array(256),e=0;e<256;++e){for(var a=e,r=9;--r;)a=(a&1&&-306674912)^a>>>1;t[e]=a}return t})(),$a=function(){var t=-1;return{p:function(e){for(var a=t,r=0;r<e.length;++r)a=Qn[a&255^e[r]]^a>>>8;t=a},d:function(){return~t}}},Ha=function(t,e,a,r,n){if(!n&&(n={l:1},e.dictionary)){var i=e.dictionary.subarray(-32768),o=new z(i.length+t.length);o.set(i),o.set(t,i.length),t=o,n.w=i.length}return qn(t,e.level==null?6:e.level,e.mem==null?n.l?Math.ceil(Math.max(8,Math.min(13,Math.log(t.length)))*1.5):20:12+e.mem,a,r,n)},ja=function(t,e){var a={};for(var r in t)a[r]=t[r];for(var r in e)a[r]=e[r];return a},F=function(t,e,a){for(;a;++e)t[e]=a,a>>>=8},ti=function(t,e){var a=e.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=e.level<2?4:e.level==9?2:0,t[9]=3,e.mtime!=0&&F(t,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),a){t[3]=8;for(var r=0;r<=a.length;++r)t[r+10]=a.charCodeAt(r)}},ei=function(t){return 10+(t.filename?t.filename.length+1:0)};function ai(t,e){return Ha(t,e||{},0,0)}function ri(t,e){e||(e={});var a=$a(),r=t.length;a.p(t);var n=Ha(t,e,ei(e),8),i=n.length;return ti(n,e),F(n,i-8,a.d()),F(n,i-4,r),n}var Va=function(t,e,a,r){for(var n in t){var i=t[n],o=e+n,s=r;Array.isArray(i)&&(s=ja(r,i[1]),i=i[0]),i instanceof z?a[o]=[i,s]:(a[o+="/"]=[new z(0),s],Va(i,o,a,r))}},Ke=typeof TextEncoder<"u"&&new TextEncoder,ni=typeof TextDecoder<"u"&&new TextDecoder,ii=0;try{ni.decode(Oa,{stream:!0}),ii=1}catch{}function vt(t,e){var a;if(Ke)return Ke.encode(t);for(var r=t.length,n=new z(t.length+(t.length>>1)),i=0,o=function(d){n[i++]=d},a=0;a<r;++a){if(i+5>n.length){var s=new z(i+8+(r-a<<1));s.set(n),n=s}var l=t.charCodeAt(a);l<128||e?o(l):l<2048?(o(192|l>>6),o(128|l&63)):l>55295&&l<57344?(l=65536+(l&1047552)|t.charCodeAt(++a)&1023,o(240|l>>18),o(128|l>>12&63),o(128|l>>6&63),o(128|l&63)):(o(224|l>>12),o(128|l>>6&63),o(128|l&63))}return _a(n,0,i)}var ee=function(t){var e=0;if(t)for(var a in t){var r=t[a].length;r>65535&&Tt(9),e+=r+4}return e},Ze=function(t,e,a,r,n,i,o,s){var l=r.length,c=a.extra,d=s&&s.length,u=ee(c);F(t,e,o!=null?33639248:67324752),e+=4,o!=null&&(t[e++]=20,t[e++]=a.os),t[e]=20,e+=2,t[e++]=a.flag<<1|(i<0&&8),t[e++]=n&&8,t[e++]=a.compression&255,t[e++]=a.compression>>8;var p=new Date(a.mtime==null?Date.now():a.mtime),m=p.getFullYear()-1980;if((m<0||m>119)&&Tt(10),F(t,e,m<<25|p.getMonth()+1<<21|p.getDate()<<16|p.getHours()<<11|p.getMinutes()<<5|p.getSeconds()>>1),e+=4,i!=-1&&(F(t,e,a.crc),F(t,e+4,i<0?-i-2:i),F(t,e+8,a.size)),F(t,e+12,l),F(t,e+14,u),e+=16,o!=null&&(F(t,e,d),F(t,e+6,a.attrs),F(t,e+10,o),e+=14),t.set(r,e),e+=l,u)for(var h in c){var f=c[h],g=f.length;F(t,e,+h),F(t,e+2,g),t.set(f,e+4),e+=4+g}return d&&(t.set(s,e),e+=d),e},oi=function(t,e,a,r,n){F(t,e,101010256),F(t,e+8,a),F(t,e+10,a),F(t,e+12,r),F(t,e+16,n)};function si(t,e){e||(e={});var a={},r=[];Va(t,"",a,e);var n=0,i=0;for(var o in a){var s=a[o],l=s[0],c=s[1],d=c.level==0?0:8,u=vt(o),p=u.length,m=c.comment,h=m&&vt(m),f=h&&h.length,g=ee(c.extra);p>65535&&Tt(11);var w=d?ai(l,c):l,b=w.length,A=$a();A.p(l),r.push(ja(c,{size:l.length,crc:A.d(),c:w,f:u,m:h,u:p!=o.length||h&&m.length!=f,o:n,compression:d})),n+=30+p+g+b,i+=76+2*(p+g)+(f||0)+b}for(var y=new z(i+22),I=n,C=i-n,E=0;E<r.length;++E){var u=r[E];Ze(y,u.o,u,u.f,u.u,u.c.length);var v=30+u.f.length+ee(u.extra);y.set(u.c,u.o+v),Ze(y,n,u,u.f,u.u,u.c.length,u.o,u.m),n+=16+v+(u.m?u.m.length:0)}return oi(y,n,r.length,C,I),y}class ge{constructor(){this.chunks=[],this.length=0}writeU8(e){const a=new Uint8Array(1);a[0]=e&255,this.chunks.push(a),this.length+=1}writeU32(e){const a=new Uint8Array(4);new DataView(a.buffer).setUint32(0,e>>>0,!0),this.chunks.push(a),this.length+=4}writeI32(e){const a=new Uint8Array(4);new DataView(a.buffer).setInt32(0,e|0,!0),this.chunks.push(a),this.length+=4}writeF32(e){const a=new Uint8Array(4);new DataView(a.buffer).setFloat32(0,e,!0),this.chunks.push(a),this.length+=4}writeF64(e){const a=new Uint8Array(8);new DataView(a.buffer).setFloat64(0,e,!0),this.chunks.push(a),this.length+=8}writeBytes(e){this.chunks.push(e),this.length+=e.length}writeString(e){const a=vt(e);this.writeU32(a.length),this.writeBytes(a)}writeJson(e){this.writeString(JSON.stringify(e))}writeFloat32Array(e){this.alignTo(4);const a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);this.writeU32(a.length),this.writeBytes(a)}writeUint32Array(e){this.alignTo(4);const a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);this.writeU32(a.length),this.writeBytes(a)}alignTo(e){const a=this.length%e;if(a===0)return;const r=e-a;for(let n=0;n<r;n++)this.writeU8(0)}toUint8Array(){const e=new Uint8Array(this.length);let a=0;for(const r of this.chunks)e.set(r,a),a+=r.length;return e}}const X=4,Xa="gzip";function ae(t){return{bytes:ri(t),compression:Xa}}async function Ya(t){if(typeof CompressionStream>"u")return ae(t);try{const e=new Uint8Array(t.byteLength);e.set(t);const a=new Blob([e]).stream().pipeThrough(new CompressionStream("gzip"));return{bytes:new Uint8Array(await new Response(a).arrayBuffer()),compression:Xa}}catch{return ae(t)}}const Ft="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%()*+,-.;=?@[]^_{|}~",re=new Int16Array(128).fill(-1);for(let t=0;t<Ft.length;t++)re[Ft.charCodeAt(t)]=t;function _t(t,e){return e==="base85"?ci(t):mi(t)}function li(t,e){const a=t.length>0&&(t.charCodeAt(0)<=32||t.charCodeAt(t.length-1)<=32)?t.trim():t;return e==="base85"?di(a):pi(a)}function ci(t){const e=t.length;if(e===0)return"";const a=(4-e%4)%4,r=e+a,n=[];for(let o=0;o<r;o+=4){const s=t[o]??0,l=o+1<e?t[o+1]:0,c=o+2<e?t[o+2]:0,d=o+3<e?t[o+3]:0;let u=(s<<24>>>0)+(l<<16)+(c<<8)+d;const p=new Array(5);for(let m=4;m>=0;m--)p[m]=u%85,u=u/85|0;for(let m=0;m<5;m++)n.push(Ft[p[m]])}const i=Math.ceil(e*5/4);return n.slice(0,i).join("")}function di(t){const e=t.replace(/\s+/g,""),a=e.length;if(a===0)return new Uint8Array(0);const r=Math.floor(a*4/5),n=(5-a%5)%5,i=a+n,o=new Uint8Array(i/5*4),s=Ft.length-1;let l=0;for(let c=0;c<i;c+=5){let d=0;for(let u=0;u<5;u++){const p=c+u<a?ui(e.charCodeAt(c+u)):s;d=d*85+p}o[l++]=d>>>24&255,o[l++]=d>>>16&255,o[l++]=d>>>8&255,o[l++]=d&255}return o.subarray(0,r)}function ui(t){if(t<0||t>=re.length)throw new Error("Invalid base85 character");const e=re[t];if(e<0)throw new Error("Invalid base85 character");return e}function mi(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}function pi(t){const e=atob(t),a=new Uint8Array(e.length);for(let r=0;r<e.length;r++)a[r]=e.charCodeAt(r);return a}const Je=1,qe=2,Qe=4,ta=8,ea=16,hi=32,aa=1,ra=2,na=4,ia=8,oa=16,fi=32,sa=64,la=128;function be(t){let e=256+t.positions.byteLength;return t.indices&&(e+=t.indices.byteLength),t.lineDistances&&(e+=t.lineDistances.byteLength),t.linePattern&&(e+=64+t.linePattern.pattern.length*8),e}function we(t){let e=256+t.positions.byteLength;return t.indices&&(e+=t.indices.byteLength),t.gradientPositions&&(e+=t.gradientPositions.byteLength),t.uvs&&(e+=t.uvs.byteLength),t.texture&&(e+=t.texture.bytes.byteLength+64),t.hatchPattern&&(e+=128),t.gradientFill&&(e+=64),e}function Ga(t,e){t.writeString(e.layer),t.writeU32(e.color>>>0),t.writeF64(e.offset[0]),t.writeF64(e.offset[1]),t.writeF64(e.offset[2]),t.writeFloat32Array(e.positions);let a=0;e.indices&&e.indices.length>0&&(a|=Je),e.linePattern&&(a|=qe),e.lineDistances&&e.lineDistances.length>0&&(a|=Qe),e.lineWidth!=null&&e.lineWidth>0&&(a|=ta),e.renderOrder!=null&&e.renderOrder!==0&&(a|=ea),e.excludeFromOsnap&&(a|=hi),t.writeU8(a),a&Je&&t.writeUint32Array(e.indices),a&qe&&t.writeJson(e.linePattern),a&Qe&&t.writeFloat32Array(e.lineDistances),a&ta&&t.writeF32(e.lineWidth),a&ea&&t.writeI32(e.renderOrder)}function Wa(t,e){t.writeString(e.layer),t.writeU32(e.color>>>0),t.writeF64(e.offset[0]),t.writeF64(e.offset[1]),t.writeF64(e.offset[2]),t.writeFloat32Array(e.positions);let a=0;e.indices&&e.indices.length>0&&(a|=aa),e.hatchPattern&&(a|=ra),e.gradientFill&&(a|=na),e.gradientPositions&&e.gradientPositions.length>0&&(a|=ia),e.side!=null&&(a|=oa),e.points&&(a|=fi),e.renderOrder!=null&&e.renderOrder!==0&&(a|=sa),e.texture&&e.texture.bytes.length>0&&e.uvs&&e.uvs.length>=2&&(a|=la),t.writeU8(a),a&aa&&t.writeUint32Array(e.indices),a&ra&&t.writeJson(e.hatchPattern),a&na&&t.writeJson(e.gradientFill),a&ia&&t.writeFloat32Array(e.gradientPositions),a&oa&&t.writeU8(e.side),a&sa&&t.writeI32(e.renderOrder),a&la&&(t.writeFloat32Array(e.uvs),t.writeString(e.texture.mimeType||"image/png"),t.writeU32(e.texture.bytes.byteLength),t.writeBytes(e.texture.bytes))}const gi=1329939265,bi=1,wi=1,xi=2,yi=3,vi=4,ki=5,Ai=6,Mi=7;function Ka(t){var e;switch(t.kind){case"line":return 37;case"circle":return 30;case"arc":return 46;case"ellipse":return 71;case"point":return 21;case"path":return 10+t.vertices.length*8;case"spline":return 10+(t.controlPoints.length+t.knots.length+t.weights.length+(((e=t.fitPoints)==null?void 0:e.length)??0))*8+16;default:return t}}function Ei(t,e){if(t.length===0)return[];const a=[];let r=[],n=64;const i=()=>{r.length!==0&&(a.push(r),r=[],n=64)};for(const o of t){const s=Ka(o);r.length>0&&n+s>e&&i(),r.push(o),n+=s}return i(),a}function xe(t){const e=new ge;e.writeU32(gi),e.writeU8(bi),e.writeU8(0),e.writeU8(0),e.writeU8(0);const a=[],r=new Map,n=i=>{const o=r.get(i);if(o!=null)return o;const s=a.length;return a.push(i),r.set(i,s),s};for(const i of t.primitives)n(i.layer);e.writeU32(a.length);for(const i of a)e.writeString(i);e.writeU32(t.primitives.length);for(const i of t.primitives)Ci(e,i,n(i.layer));return e.toUint8Array()}async function Bi(t){const e=xe(t),a=(await Ya(e)).bytes;return{uncompressed:e,compressed:a}}function Kt(t,e){t.writeU8(e<0?0:1)}function gt(t,e){t.writeU32(e.length);for(const a of e)t.writeF64(a)}function Ci(t,e,a){switch(e.kind){case"line":t.writeU8(wi),t.writeU32(a),t.writeF64(e.x0),t.writeF64(e.y0),t.writeF64(e.x1),t.writeF64(e.y1);return;case"circle":t.writeU8(xi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),Kt(t,e.normalSign);return;case"arc":t.writeU8(yi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),t.writeF64(e.startAngle),t.writeF64(e.endAngle),Kt(t,e.normalSign);return;case"ellipse":t.writeU8(vi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.majorX),t.writeF64(e.majorY),t.writeF64(e.majorR),t.writeF64(e.minorR),t.writeF64(e.startAngle),t.writeF64(e.endAngle),t.writeU8(e.closed?1:0),Kt(t,e.normalSign??1);return;case"spline":t.writeU8(ki),t.writeU32(a),gt(t,e.controlPoints),t.writeU32(e.degree),gt(t,e.knots),gt(t,e.weights),t.writeU8(e.closed?1:0),gt(t,e.fitPoints??[]);return;case"point":t.writeU8(Ai),t.writeU32(a),t.writeF64(e.x),t.writeF64(e.y);return;case"path":t.writeU8(Mi),t.writeU32(a),t.writeU8(e.closed?1:0),gt(t,e.vertices);return;default:{const r=e;throw new Error(`Unsupported osnap primitive: ${String(r)}`)}}}const Ii=1480934209;function Fi(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=new ge;e.writeU32(Ii),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeJson(Si(t)),e.writeJson(t.layers),e.writeString(t.activeLayoutBtrId),e.writeU32(t.layouts.length);for(const a of t.layouts)Li(e,a);return e.toUint8Array()}function Si(t){const e={...t.meta.savedViews??{}},a={...t.meta.fitExtents??{}};for(const l of t.layouts)l.savedView&&(e[l.btrId]=l.savedView),l.fitExtents&&(a[l.btrId]=l.fitExtents);const r=Object.keys(e).length>0,n=Object.keys(a).length>0;if(!r&&!n){if(t.meta.savedViews==null&&t.meta.fitExtents==null)return t.meta;const{savedViews:l,fitExtents:c,...d}=t.meta;return d}const{savedViews:i,fitExtents:o,...s}=t.meta;return{...s,...r?{savedViews:e}:{},...n?{fitExtents:a}:{}}}function Li(t,e){t.writeString(e.btrId),t.writeString(e.name),t.writeU8(e.isModelSpace?1:0),Pi(t,e.osnap),t.writeJson(e.viewports??null),t.writeU32(e.lineBatches.length);for(const a of e.lineBatches)Ga(t,a);t.writeU32(e.meshBatches.length);for(const a of e.meshBatches)Wa(t,a)}function Pi(t,e){if(!e||e.primitives.length===0){t.writeU32(0);return}const a=xe(e);t.writeU32(a.length),t.writeBytes(a)}const zi="application/vnd.mlightcad.acex-snapshot+binary";function Za(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=Fi(t),a=ae(e);return{payload:_t(a.bytes,"base85"),compression:a.compression}}function Ui(){return zi}function et(t,e,a){if(a<=0)return new Float32Array(0);if(t instanceof Float32Array)return t.subarray(e,e+a).slice();const r=new Float32Array(a);for(let n=0;n<a;n++)r[n]=t[e+n];return r}function Di(t,e,a){if(a<=0)return new Uint32Array(0);const r=new Uint32Array(a);for(let n=0;n<a;n++)r[n]=t[e+n];return r}function Ja(t,e){if(e.length===0)return{positions:t,indices:e};let a=0;for(let n=0;n<e.length;n++){const i=e[n];i>a&&(a=i)}const r=(a+1)*3;return r>=t.length?{positions:t,indices:e}:{positions:et(t,0,r),indices:e}}function ca(t,e){return t+e}const st={x:0,y:0,z:0};function Ni(t){t.updateMatrixWorld(!0);const e=t.matrixWorld.elements;return st.x=e[12],st.y=e[13],st.z=e[14],[st.x,st.y,st.z]}function ye(t,e){const a=e.elements,r=t.positions;if(r.length===0)return{positions:new Float32Array(0),indices:t.indices};const n=new Float32Array(r.length);for(let i=0;i<r.length;i+=3){const o=r[i],s=r[i+1],l=r[i+2];n[i]=a[0]*o+a[4]*s+a[8]*l+a[12],n[i+1]=a[1]*o+a[5]*s+a[9]*l+a[13],n[i+2]=a[2]*o+a[6]*s+a[10]*l+a[14]}return{positions:n,indices:t.indices?new Uint32Array(t.indices):void 0}}function da(t,e){const a=e*3;return Number.isFinite(t[a])&&Number.isFinite(t[a+1])&&Number.isFinite(t[a+2])}function ct(t,e){const a=t.positions,r=a.length/3|0;if(r===0||e<=0)return t;let n=!1;for(let s=0;s<a.length;s++)if(!Number.isFinite(a[s])){n=!0;break}if(!n)return t;const i=t.indices;if(i&&i.length>0){const s=[];for(let u=0;u+e<=i.length;u+=e){let p=!0;for(let m=0;m<e;m++){const h=i[u+m];if(h<0||h>=r||!da(a,h)){p=!1;break}}if(p)for(let m=0;m<e;m++)s.push(i[u+m])}if(s.length===0)return{positions:new Float32Array(0)};const l=new Int32Array(r);l.fill(-1);const c=[],d=new Uint32Array(s.length);for(let u=0;u<s.length;u++){const p=s[u];let m=l[p];if(m<0){m=c.length/3,l[p]=m;const h=p*3;c.push(a[h],a[h+1],a[h+2])}d[u]=m}return{positions:Float32Array.from(c),indices:d}}const o=[];for(let s=0;s+e<=r;s+=e){let l=!0;for(let c=0;c<e;c++)if(!da(a,s+c)){l=!1;break}if(l)for(let c=0;c<e;c++){const d=(s+c)*3;o.push(a[d],a[d+1],a[d+2])}}return o.length===0?{positions:new Float32Array(0)}:{positions:Float32Array.from(o)}}function ve(t){const e=t.positions;if(e.length<3)return{slice:t,offset:[0,0,0]};let a=1/0,r=1/0,n=1/0,i=-1/0,o=-1/0,s=-1/0,l=0;for(let u=0;u<e.length;u+=3){const p=e[u],m=e[u+1],h=e[u+2];!Number.isFinite(p)||!Number.isFinite(m)||!Number.isFinite(h)||(l++,a=Math.min(a,p),r=Math.min(r,m),n=Math.min(n,h),i=Math.max(i,p),o=Math.max(o,m),s=Math.max(s,h))}if(l===0)return{slice:{positions:new Float32Array(0)},offset:[0,0,0]};const c=[(a+i)/2,(r+o)/2,(n+s)/2],d=new Float32Array(e.length);for(let u=0;u<e.length;u+=3){const p=e[u],m=e[u+1],h=e[u+2];if(!Number.isFinite(p)||!Number.isFinite(m)||!Number.isFinite(h)){d[u]=0,d[u+1]=0,d[u+2]=0;continue}d[u]=p-c[0],d[u+1]=m-c[1],d[u+2]=h-c[2]}return{slice:{positions:d,indices:t.indices?new Uint32Array(t.indices):void 0},offset:c}}function Ti(t,e,a={}){t.updateMatrixWorld(!0);const r=ye(e,t.matrixWorld);return ve(r)}function _i(t){const e=t.image;if(!e)return;if(typeof document>"u")return void 0;const a=document.createElement("canvas"),r=a.getContext("2d");if(!r)return;try{if(e instanceof ImageData)a.width=e.width,a.height=e.height,r.putImageData(e,0,0);else if(Oi(e)){a.width=e.width,a.height=e.height;const l=Hi(e.data,e.width*e.height),c=new ImageData(new Uint8ClampedArray(l),e.width,e.height);r.putImageData(c,0,0)}else if(Ri(e)){const l=$i(e);if(!l)return;a.width=l.width,a.height=l.height,r.drawImage(e,0,0)}else return}catch{return}const n=a.toDataURL("image/png"),i=n.indexOf(",");if(i<0)return;const o=atob(n.slice(i+1)),s=new Uint8Array(o.length);for(let l=0;l<o.length;l++)s[l]=o.charCodeAt(l);return{mimeType:"image/png",bytes:s}}function Ri(t){return t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement}function Oi(t){if(!t||typeof t!="object")return!1;const e=t;return e.data!=null&&typeof e.width=="number"&&typeof e.height=="number"&&e.width>=1&&e.height>=1}function $i(t){let e=Number(t.width),a=Number(t.height);if(t instanceof HTMLImageElement?(e=t.naturalWidth||t.width,a=t.naturalHeight||t.height):typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement&&(e=t.videoWidth||t.width,a=t.videoHeight||t.height),!(!Number.isFinite(e)||!Number.isFinite(a)||e<1||a<1))return{width:e,height:a}}function Hi(t,e){const a=e*4;if(t instanceof Uint8ClampedArray&&t.length>=a)return t.length===a?t:t.subarray(0,a);const r=new Uint8ClampedArray(a),n=Math.min(a,t.length);for(let i=0;i<n;i++)r[i]=t[i];if(t.length>=e*3&&t.length<a)for(let i=e-1;i>=0;i--){const o=i*3,s=i*4;r[s]=t[o],r[s+1]=t[o+1],r[s+2]=t[o+2],r[s+3]=255}return r}function ji(t,e){const a=t.getAttribute("uv");if(!a||a.count===0||a.itemSize<2)return;const r=Math.floor(e.length/3)*2;if(r<=0)return;const n=a.array;if(!(a.count*a.itemSize<r))return et(n,0,r)}function qa(t){const e=t;return e.map?!1:e.transparent===!0&&typeof e.opacity=="number"&&e.opacity<.01}function ke(t){const e=t;if(e.isShaderMaterial===!0||t.type==="ShaderMaterial")return e}function Vi(t){var e;const a=ke(t);if(!a)return;const r=a.uniforms.pattern,n=a.uniforms.patternLength;if(!r||!n)return;const i=r.value;if(!(!Array.isArray(i)||i.length===0))return{pattern:[...i],patternLength:Number(n.value),viewportScale:Number(((e=a.uniforms.u_viewportScale)==null?void 0:e.value)??1)}}function Xi(t){var e;const a=ke(t);if(!a)return;const r=a.uniforms.u_patternLines;if(!r)return;const n=r.value;if(!(!Array.isArray(n)||n.length===0))return{patternAngle:Number(((e=a.uniforms.u_patternAngle)==null?void 0:e.value)??0),patternLines:n.map(Gi)}}function Yi(t){var e,a,r,n,i;const o=ke(t);if(!o||o.uniforms.u_patternLines)return;const s=(e=o.uniforms.u_startColor)==null?void 0:e.value,l=(a=o.uniforms.u_endColor)==null?void 0:a.value,c=o.uniforms.u_gradientType;if(!(!(s!=null&&s.getHex)||c==null))return{startColor:s.getHex(),endColor:((r=l==null?void 0:l.getHex)==null?void 0:r.call(l))??s.getHex(),angle:Number(((n=o.uniforms.u_angle)==null?void 0:n.value)??0),shift:Number(((i=o.uniforms.u_shift)==null?void 0:i.value)??0),gradientType:Number(c.value)}}function Gi(t){return{angle:t.angle,base:[t.base.x,t.base.y],offset:[t.offset.x,t.offset.y],dashLengths:[...t.dashLengths],patternLength:t.patternLength}}function Ae(t){const e=t.length/3;if(e<2)return new Float32Array(0);const a=new Float32Array(e);for(let r=0;r<e;r+=2){r===0?a[r]=0:a[r]=a[r-1];const n=t[r*3],i=t[r*3+1],o=t[r*3+2]??0,s=t[(r+1)*3],l=t[(r+1)*3+1],c=t[(r+1)*3+2]??0,d=s-n,u=l-i,p=c-o;a[r+1]=a[r]+Math.sqrt(d*d+u*u+p*p)}return a}function Wi(t,e){const a=t.getAttribute(e);if(!a||a.count===0)return;const r=a.itemSize;if(t.getIndex()){const d=a.array;return et(d,0,a.count*r)}const n=t.drawRange,i=a.count,o=Math.max(0,Math.min(Math.floor(n.start),i)),s=Math.max(0,i-o),l=!Number.isFinite(n.count)||n.count<=0?s:Math.min(Math.floor(n.count),s);if(l<=0)return;const c=a.array;return et(c,o*r,l*r)}function ua(t,e){const a=e[0],r=e[1],n=e[4],i=e[5],o=e[12],s=e[13],l=Math.atan2(r,a),c=(p,m)=>[a*p+n*m+o,r*p+i*m+s],d=(p,m)=>[a*p+n*m,r*p+i*m],u=(p,m,h)=>{const f=Math.cos(h),g=Math.sin(h);return[f*p-g*m,g*p+f*m]};return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(p=>{const m=p.angle+t.patternAngle,h=p.angle+l,f=h+t.patternAngle,[g,w]=d(Math.cos(m),Math.sin(m)),b=Math.hypot(g,w),[A,y]=u(p.offset[0],p.offset[1],m),[I,C]=d(A,y),E=u(I,C,-f);return{angle:h,base:c(p.base[0],p.base[1]),offset:E,dashLengths:p.dashLengths.map(v=>v*b),patternLength:p.patternLength*b}})}}function Ki(t,e){return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(a=>{const r=new je(a.base[0]-e[0],a.base[1]-e[1]),n=new je(a.offset[0],a.offset[1]);return sn(r,n,a.angle,t.patternAngle,a.patternLength),{angle:a.angle,base:[r.x,r.y],offset:[a.offset[0],a.offset[1]],dashLengths:[...a.dashLengths],patternLength:a.patternLength}})}}function ne(t,e){return!Number.isFinite(t)||t<0?0:Math.min(Math.floor(t),e)}function ie(t,e,a){const r=Math.max(0,e-a);return!Number.isFinite(t)||t<=0?r:Math.min(Math.floor(t),r)}function St(t){const e=t.getAttribute("position");if(!e)return{positions:new Float32Array(0)};const a=t.drawRange,r=e.array,n=e.itemSize,i=t.getIndex();if(i){const l=et(r,0,e.count*n),c=i.array,d=ne(a.start,i.count),u=ie(a.count,i.count,d),p=Di(c,d,u);return Ja(l,p)}const o=ne(a.start,e.count),s=ie(a.count,e.count,o);return{positions:et(r,o*n,s*n)}}function Lt(t){return Ln(t.flags)&&Pn(t.flags)}function Qa(t){const{count:e}=t.mappingStats;for(let a=0;a<e;a++){let r;try{r=t.getGeometryRangeAt(a)}catch{continue}if(Lt(r)&&r.bboxIntersectionCheck)return!0}return!1}function oe(t){return Pa(t).bboxIntersectionCheck===!0}function Me(t,e){const a=e.getAttribute("position");if(!a)return{positions:new Float32Array(0)};const r=a.itemSize,n=a.array,i=e.getIndex(),{count:o}=t.mappingStats;if(i){const u=et(n,0,a.count*r),p=i.array;let m=0;const h=[];for(let w=0;w<o;w++){let b;try{b=t.getGeometryRangeAt(w)}catch{continue}const A=b.indexStart??0,y=b.indexCount??0;!Lt(b)||y<=0||(h.push({start:A,count:y}),m+=y)}if(m===0)return{positions:new Float32Array(0)};const f=new Uint32Array(m);let g=0;for(const w of h)for(let b=0;b<w.count;b++)f[g++]=p[w.start+b];return Ja(u,f)}let s=0;const l=[];for(let u=0;u<o;u++){let p;try{p=t.getGeometryRangeAt(u)}catch{continue}if(!Lt(p)||p.vertexCount<=0)continue;const m=p.vertexCount*r;l.push({start:p.vertexStart*r,floatCount:m}),s+=m}if(s===0)return{positions:new Float32Array(0)};const c=new Float32Array(s);let d=0;if(n instanceof Float32Array)for(const u of l)c.set(n.subarray(u.start,u.start+u.floatCount),d),d+=u.floatCount;else for(const u of l)for(let p=0;p<u.floatCount;p++)c[d++]=n[u.start+p];return{positions:c}}function ma(t,e,a){t.push(e.getX(a),e.getY(a),e.getZ(a))}function Zi(t,e){const a=e.getAttribute("instanceStart"),r=e.getAttribute("instanceEnd");if(!a||!r)return{positions:new Float32Array(0)};const{count:n}=t.mappingStats,i=[];for(let o=0;o<n;o++){let s;try{s=t.getGeometryRangeAt(o)}catch{continue}if(!Lt(s)||s.vertexCount<=0)continue;const l=s.vertexStart,c=l+s.vertexCount;for(let d=l;d<c;d++)ma(i,a,d),ma(i,r,d)}return{positions:new Float32Array(i)}}function Ji(t,e){const a=t.instanceCount;if(Number.isFinite(a)&&a>=0)return Math.min(Math.floor(a),e);const r=t.drawRange,n=ne(r.start,e);return ie(r.count,e,n)}function qi(t){const e=t.getAttribute("instanceStart"),a=t.getAttribute("instanceEnd");if(!e||!a||e.count===0)return{positions:new Float32Array(0)};const r=Ji(t,e.count);if(r<=0)return{positions:new Float32Array(0)};const n=[];for(let i=0;i<r;i++){const o=[e.getX(i),e.getY(i),e.getZ(i)],s=[a.getX(i),a.getY(i),a.getZ(i)];!o.every(Number.isFinite)||!s.every(Number.isFinite)||n.push(o[0],o[1],o[2],s[0],s[1],s[2])}return{positions:new Float32Array(n)}}function Et(t,e){let a=t;for(;a&&a!==e;){if(a.visible===!1)return!1;a=a.parent}return!0}function tr(t){if(t instanceof nn)return t.linewidth}function xt(t){if("material"in t){const e=t.userData.originalMaterial??t.material;return Array.isArray(e)?e[0]:e}return t.material}function at(t){var e;const a=za(t),r=a.layer??"0",n=t;let i=n.color!=null?n.color.getHex():a.color??16777215;const o=Vi(t),s=Xi(t),l=Yi(t);if(t instanceof rn||t.type==="ShaderMaterial"){const c=(e=t.uniforms.u_color)==null?void 0:e.value;c!=null&&c.getHex?i=c.getHex():l&&(i=l.startColor)}return{color:i,layer:r,linePattern:o,hatchPattern:s,gradientFill:l,side:s||l?t.side:void 0}}function Qi(t,e){const a=za(e).drawOrder??t.renderOrder;return a===0?void 0:a}function dt(t,e,a){const r=Qi(e,a);r!=null&&(t.renderOrder=r)}function to(t,e){if(!e)return;const a=t.userData.bakedWorldMatrix;return a&&a.length>=16?ua(e,a):(t.updateMatrixWorld(!0),ua(e,Array.from(t.matrixWorld.elements)))}function Rt(t){return Ni(t)}function Zt(t,e,a={}){const r=Ti(t,e,a);return{...r.slice,offset:r.offset}}function eo(t){if(t.indices&&t.indices.length>=3)return t;const e=t.positions.length/3|0;if(e<3||e%3!==0)return t;const a=new Uint32Array(e);for(let r=0;r<e;r++)a[r]=r;return{...t,indices:a}}function kt(t,e,a,r,n,i=!1){i&&(r=eo(r));const o=at(e),s=to(a,o.hatchPattern),l=s?Ki(s,n):void 0,c=o.gradientFill?Wi(t,"gradientPosition"):void 0,d={layer:o.layer,color:o.color,offset:n,hatchPattern:l,gradientFill:o.gradientFill,gradientPositions:c,side:o.side,...r},u=e;if(u.map){const p=_i(u.map),m=ji(t,r.positions);if(!p||!m)return;d.texture=p,d.uvs=m,d.color=16777215,d.side=on}return dt(d,a,e),d}function ao(t){const e=Zi(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r}=at(t.material),n=tr(t.material),i={layer:r,color:a,offset:Rt(t),lineWidth:n,...e};return Qa(t)&&(i.excludeFromOsnap=!0),dt(i,t,t.material),i}function ro(t){const e=Me(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r,linePattern:n}=at(t.material),i=n?Ae(e.positions):void 0,o={layer:r,color:a,offset:Rt(t),linePattern:n,lineDistances:i,...e};return Qa(t)&&(o.excludeFromOsnap=!0),dt(o,t,t.material),o}function no(t){const e=Me(t,t.geometry);if(e.positions.length!==0)return kt(t.geometry,t.material,t,e,Rt(t),!0)}function io(t){const e=Me(t,t.geometry);if(e.positions.length===0)return;const a=kt(t.geometry,t.material,t,e,Rt(t));if(a)return{points:!0,...a}}const q=new ut,Pt=new ut,bt=new Rn;bt.matrixAutoUpdate=!1;function oo(t){const e=t;return e.isInstancedMesh===!0&&e.instanceMatrix!=null&&typeof e.count=="number"&&e.geometry!=null}function so(t){return t.renderOrder<1e4||t.isInstancedMesh===!0?!1:Pa(t).sharesTemplateGeometry===!0}function se(t){const e=t.elements;for(let i=0;i<16;i++)if(!Number.isFinite(e[i]))return!1;const a=Math.hypot(e[0],e[1],e[2]),r=Math.hypot(e[4],e[5],e[6]),n=Math.hypot(e[8],e[9],e[10]);return a+r+n>=1e-8}function er(t,e){var a;const r=ct(St(t.geometry),e),n=r.positions.length;if(n===0)return;t.updateMatrixWorld(!0);const i=t.instanceMatrix.array,o=((a=r.indices)==null?void 0:a.length)??0;let s=0;for(let m=0;m<t.count;m++)q.fromArray(i,m*16),se(q)&&s++;if(s===0)return;const l=new Float32Array(s*n),c=r.indices!=null?new Uint32Array(s*o):void 0,d=n/3;let u=0;for(let m=0;m<t.count;m++){if(q.fromArray(i,m*16),!se(q))continue;Pt.multiplyMatrices(t.matrixWorld,q);const h=ye(r,Pt);if(l.set(h.positions,u*n),c&&h.indices){const f=u*d;for(let g=0;g<h.indices.length;g++)c[u*o+g]=h.indices[g]+f}u++}const p=ve(ct({positions:l,indices:c},e));if(p.slice.positions.length!==0)return{slice:p.slice,offset:p.offset}}function lo(t){const e=at(t),a=t;return!!(e.hatchPattern||e.gradientFill||a.map)}function co(t,e){t.updateMatrixWorld(!0);const a=t.instanceMatrix.array;for(let r=0;r<t.count;r++)q.fromArray(a,r*16),se(q)&&(Pt.multiplyMatrices(t.matrixWorld,q),e(Pt))}function uo(t,e){const a=er(t,2);if(!a)return;const r=xt(t),{color:n,layer:i,linePattern:o}=at(r),s=o?Ae(a.slice.positions):void 0,l={layer:i,color:n,offset:a.offset,linePattern:o,lineDistances:s,...a.slice};oe(t)&&(l.excludeFromOsnap=!0),dt(l,t,r),e.push(l)}function pa(t,e,a){const r=xt(t);if(!a&&qa(r))return;if(!a&&lo(r)){const o=ct(St(t.geometry),3);if(o.positions.length===0)return;co(t,s=>{const l=ct(ye(o,s),3);if(l.positions.length===0)return;const c=ve(l);bt.matrix.copy(s),bt.matrixWorld.copy(s),bt.matrixWorldNeedsUpdate=!1;const d=kt(t.geometry,r,bt,c.slice,c.offset,!0);d&&e.push(d)});return}const n=er(t,a?1:3);if(!n)return;const i=kt(t.geometry,r,t,n.slice,n.offset,!a);i&&e.push(a?{...i,points:!0}:i)}function Bt(t){const e=t;return t instanceof en||e.isLineSegments2===!0||t.type==="LineSegments2"}function ha(t){const e=t;return t instanceof tn||e.isLineSegments===!0||t.type==="LineSegments"}function fa(t){const e=t;return t instanceof an||e.isMesh===!0||e.isInstancedMesh===!0||t.type==="Mesh"}function mo(t){const e=[],a=[];return t.traverse(r=>{if(!(Yr(r)||Gr(r)||so(r))){if(oo(r)){if(!Et(r,t))return;r.isPoints===!0?pa(r,a,!0):ha(r)&&!Bt(r)?uo(r,e):fa(r)&&!Bt(r)&&pa(r,a,!1);return}if(r instanceof $e){const n=ro(r);n&&e.push(n);return}if(r instanceof Wr){const n=ao(r);n&&e.push(n);return}if(r instanceof He){const n=no(r);n&&a.push(n);return}if(r instanceof Kr){const n=io(r);n&&a.push(n);return}if(Bt(r)){if(!Et(r,t))return;const n=qi(r.geometry);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s}=at(i),{offset:l,...c}=Zt(r,n),d={layer:s,color:o,offset:l,lineWidth:tr(i),...c};oe(r)&&(d.excludeFromOsnap=!0),dt(d,r,i),e.push(d)}else if(ha(r)&&!(r instanceof $e)){if(!Et(r,t))return;const n=ct(St(r.geometry),2);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s,linePattern:l}=at(i),{offset:c,...d}=Zt(r,n),u=l?Ae(d.positions):void 0,p={layer:s,color:o,offset:c,linePattern:l,lineDistances:u,...d};oe(r)&&(p.excludeFromOsnap=!0),dt(p,r,i),e.push(p)}else if(fa(r)&&!Bt(r)&&!(r instanceof He)){if(!Et(r,t))return;const n=xt(r);if(qa(n))return;const i=ct(St(r.geometry),3);if(i.positions.length===0)return;const{offset:o,...s}=Zt(r,i),l=kt(r.geometry,n,r,s,o,!0);l&&a.push(l)}}}),{lineBatches:e,meshBatches:a}}const ga={size:8,colorCss:"#0080ff",hotColorCss:"#ff0000"};function ba(t){const e=new qr(Qr.ByACI,t);return e.cssColor??`rgb(${e.red}, ${e.green}, ${e.blue})`}function po(t){try{const e=Xr.instance(),a=e.getVar(Gt.GRIPSIZE,t),r=e.getVar(Gt.GRIPCOLOR,t),n=e.getVar(Gt.GRIPHOT,t);return!(a>0)||!Number.isFinite(a)?ga:{size:a,colorCss:ba(r),hotColorCss:ba(n)}}catch{return ga}}function ar(t,e){const a=t.extmin,r=t.extmax,n=po(t);return{title:e==null?void 0:e.title,extents:{minX:a.x,minY:a.y,maxX:r.x,maxY:r.y},units:{insunits:t.insunits,lunits:t.lunits,luprec:t.luprec,aunits:t.aunits,auprec:t.auprec,measurement:t.measurement,ltscale:t.ltscale,angbase:t.angbase,angdir:t.angdir},grip:n,background:(e==null?void 0:e.background)??0}}function wa(t,e,a,r,n){return Math.atan2(r-e,n*(a-t))}function Ee(t){return t.z>=0?1:-1}function rr(t,e,a){if(!(a.radius>0)||!Number.isFinite(a.radius))return;const r=a.clockwise?-1:1,n=a.center.x,i=a.center.y;t.push({kind:"arc",layer:e,cx:n,cy:i,r:a.radius,startAngle:wa(n,i,a.startPoint.x,a.startPoint.y,r),endAngle:wa(n,i,a.endPoint.x,a.endPoint.y,r),normalSign:r})}function S(t,e){const a=new V(e.x,e.y,e.z??0).applyMatrix4(t);return{x:a.x,y:a.y}}function ho(t){const e=t.elements;return new ut(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])}function zt(t,e){return new ut().multiplyMatrices(t,ho(e))}function nr(t,e){const a=new V(e.x,e.y,e.z??0).transformDirection(t).normalize();return{x:a.x,y:a.y}}function le(t){const e=new V(t.elements[0],t.elements[1],t.elements[2]).length(),a=new V(t.elements[4],t.elements[5],t.elements[6]).length();return lt.equal(e,a,Ua*Math.max(e,a,1))}function fo(t,e){const a=t.tables.blockTable.getIdAt(e);if(a)return a;for(const n of t.tables.blockTable.newIterator())if(n.objectId===e)return n;const r=t.tables.blockTable.modelSpace;if(r.objectId===e)return r}function go(t){if(t instanceof zn)return!0;const e=t;return(e.type==="LINE"||e.type==="Line")&&e.startPoint!=null&&e.endPoint!=null}function bo(t,e,a,r){r.startPoint,r.endPoint}function ir(t,e){return t.blockTableRecord??(t.blockName?e.tables.blockTable.getAt(t.blockName):void 0)}function wo(t,e){const a=t.dimBlockId;return a?e.tables.blockTable.getAt(a):void 0}function xo(t,e){const a=ir(t,e);if(a)return a;const r=t.owningBlockRecordId;return r?e.tables.blockTable.getAt(r):void 0}function or(t){return t.getFullInsertionTransform()}function yo(t){for(const e of t.newIterator())return!0;return!1}function vo(t){return typeof t.getFullInsertionTransform=="function"&&"blockTableRecord"in t}function Q(t,e,a,r,n){if(r.length<2)return;const i=le(a),o=a.elements[0]*a.elements[5]-a.elements[4]*a.elements[1]<0?-1:1,s=[];for(const l of r){const c=S(a,l);let d=l.bulge??0;lt.isPositive(Math.abs(d))&&(d=i?d*o:0),s.push(c.x,c.y,d)}t.push({kind:"path",layer:e,closed:n,vertices:s})}function sr(t,e){return lt.equal(t.x,e.x)&&lt.equal(t.y,e.y)}function ko(t){return(t.clockwise?-1:1)*Math.tan(t.deltaAngle/4)}function xa(t,e,a,r){if(t.length===0){t.push({x:e.x,y:e.y,z:e.z??0,bulge:r}),t.push({x:a.x,y:a.y,z:a.z??0,bulge:0});return}const n=t[t.length-1];sr(n,e)?n.bulge=r:(n.bulge=0,t.push({x:e.x,y:e.y,z:e.z??0,bulge:r})),t.push({x:a.x,y:a.y,z:a.z??0,bulge:0})}function ya(t){return t.length>=2&&sr(t[0],t[t.length-1])&&t.pop(),t}function yt(t,e,a,r,n){if(r.length<2)return;const i=n?r.length:r.length-1;for(let o=0;o<i;o++)r[o],r[(o+1)%r.length]}function Ao(t,e,a,r){const n=[r.startPosition];for(const i of r.segments)n.push(i.position);yt(t,e,a,n,r.closed)}function Mo(t,e,a){if(a.vertices.length>=2)return a.vertices;if(a.vertices.length===0)return[];const r=a.vertices[0],n=e.lastLeaderLinePoint??e.landingPoint??t.landingPoint??t.contentBasePosition;if(!n)return a.vertices;const i=r.x-n.x,o=r.y-n.y,s=(r.z??0)-(n.z??0);return Math.hypot(i,o,s)<=Ua?a.vertices:[r,n]}function Eo(t,e,a,r){var n,i;for(const s of r.leaders)for(const l of s.leaderLines){const c=Mo(r,s,l);yt(t,e,a,c,!1)}const o=s=>{if(!s)return;const l=S(a,s);t.push({kind:"point",layer:e,x:l.x,y:l.y})};o(r.contentBasePosition),o((n=r.mtextContent)==null?void 0:n.anchorPoint),o((i=r.blockContent)==null?void 0:i.position)}function Bo(t,e,a,r){const n=r.numberOfVertices;if(n<2)return;const i=r.elevation,o=r.closed?n:n-1;for(let s=0;s<o;s++){const l=r.getPointAt(s),c=r.getPointAt((s+1)%n),d=r.getBulgeAt(s),u={x:l.x,y:l.y,z:i},p={x:c.x,y:c.y,z:i};if(lt.isPositive(Math.abs(d))){const m=S(a,u),h=S(a,p);rr(t,e,new me(m,h,d))}}}function Co(t,e,a,r,n,i){const o=S(a,r),s=new V(a.elements[0],a.elements[1],a.elements[2]).length(),l={kind:"circle",layer:e,cx:o.x,cy:o.y,r:n*s,normalSign:Ee(i)};t.push(l)}function Io(t,e,a,r){const n=S(a,r.center),i=new V(a.elements[0],a.elements[1],a.elements[2]).length(),o={kind:"arc",layer:e,cx:n.x,cy:n.y,r:r.radius*i,startAngle:r.startAngle,endAngle:r.endAngle,normalSign:Ee(r.normal)};t.push(o)}function Jt(t,e,a,r){const n=S(a,r.center),i=r._geo,o=(i==null?void 0:i.majorAxis)??{x:1,y:0,z:0},s=nr(a,o),l=Math.hypot(s.x,s.y)||1,c=new V(a.elements[0],a.elements[1],a.elements[2]).length(),d=new V(a.elements[4],a.elements[5],a.elements[6]).length(),u={kind:"ellipse",layer:e,cx:n.x,cy:n.y,majorX:s.x/l,majorY:s.y/l,majorR:r.majorAxisRadius*c,minorR:r.minorAxisRadius*d,startAngle:r.startAngle,endAngle:r.endAngle,closed:r.closed,normalSign:Ee(r.normal)};t.push(u)}function Fo(t,e,a,r){var n,i;const o=r._geo;if(!((n=o==null?void 0:o.controlPoints)!=null&&n.length))return;const s=[];for(const c of o.controlPoints){const d=S(a,c);s.push(d.x,d.y)}const l={kind:"spline",layer:e,controlPoints:s,degree:o.degree??3,knots:[...o.knots??[]],weights:[...o.weights??[]],closed:o.closed??!1};if((i=o.fitPoints)!=null&&i.length){l.fitPoints=[];for(const c of o.fitPoints){const d=S(a,c);l.fitPoints.push(d.x,d.y)}}t.push(l)}const va=1e-6;function So(t){var e;const a=t.elevation,r=(e=t._geo)==null?void 0:e.vertices;return r&&r.length>1?r.map(n=>({x:n.x,y:n.y,z:a,bulge:n.bulge,startWidth:n.startWidth,endWidth:n.endWidth})):Array.from({length:t.numberOfVertices},(n,i)=>{const o=t.getPoint2dAt(i);return{x:o.x,y:o.y,z:a,bulge:0}})}function Lo(t){return t.some(e=>{const a=Math.max(0,e.startWidth??0),r=Math.max(0,e.endWidth??0);return a>va||r>va})}function Po(t,e,a,r){const n=So(r),i=n.length;if(i<2)return;if(Lo(n)){Q(t,e,a,n,r.closed);return}const o=r.closed?i:i-1;for(let s=0;s<o;s++){const l=n[s],c=n[(s+1)%i],d=l.bulge??0;if(lt.isPositive(Math.abs(d))){const u=S(a,l),p=S(a,c);rr(t,e,new me(u,p,d))}}}function zo(t,e,a,r,n){const i=S(a,{x:r.center.x,y:r.center.y,z:n}),o=nr(a,{x:Math.cos(r.rotation),y:Math.sin(r.rotation),z:0}),s=Math.hypot(o.x,o.y)||1,l=new V(a.elements[0],a.elements[1],a.elements[2]).length(),c=new V(a.elements[4],a.elements[5],a.elements[6]).length();t.push({kind:"ellipse",layer:e,cx:i.x,cy:i.y,majorX:o.x/s,majorY:o.y/s,majorR:r.majorAxisRadius*l,minorR:r.minorAxisRadius*c,startAngle:r.startAngle,endAngle:r.endAngle,closed:!1,normalSign:r.clockwise?-1:1})}function Uo(t,e,a,r,n){var i;const o=r.numberOfVertices;if(o<2)return;const s=[];for(let l=0;l<o;l++){const c=r.getPointAt(l);s.push({x:c.x,y:c.y,z:n,bulge:((i=r.vertices[l])==null?void 0:i.bulge)??0})}Q(t,e,a,s,r.closed)}function Do(t,e,a,r,n){if(r instanceof Dn){Uo(t,e,a,r,n);return}if(!(r instanceof Nn))return;const i=[];let o=!1;const s=()=>{const c=ya(i);c.length>=2&&Q(t,e,a,c,!1),i.length=0};for(const c of r.curves)c instanceof Tn?xa(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},0):c instanceof me?xa(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},ko(c)):c instanceof _n&&(o=!0,s(),zo(t,e,a,c,n));const l=ya(i);l.length>=2&&Q(t,e,a,l,!o)}function No(t,e,a,r){var n;const i=(n=r._geo)==null?void 0:n.loops;if(!(i!=null&&i.length))return;const o=r.elevation;for(const s of i)Do(t,e,a,s,o)}function To(t,e,a,r){zt(a,or(r));const n=[0];for(let o=0;o<r.numColumns;o++)n.push(n[o]+r.columnWidth(o));const i=[0];for(let o=0;o<r.numRows;o++)i.push(i[o]-r.rowHeight(o));n[n.length-1],i[i.length-1];for(const o of i);for(const o of n);}function _o(t,e,a,r,n,i,o,s=!0){const l=ce(t.layer,a);if(o&&!o(l))return;const c=xo(t,i);if(c&&!n.has(c.objectId)&&yo(c)){n.add(c.objectId);const u=zt(e,or(t));Ut(c,u,l,r,n,i,o,s),n.delete(c.objectId);return}To(r,l,e,t);const d=S(e,t.position);r.push({kind:"point",layer:l,x:d.x,y:d.y})}function Ro(t,e,a,r){let n=r.boundaryPath();if(n.length>1){const o=n[0],s=n[n.length-1];o.x===s.x&&o.y===s.y&&(o.z??0)===(s.z??0)&&(n=n.slice(0,-1))}n.length>=2&&Q(t,e,a,n,!0);const i=S(a,r.position);t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Oo(t,e,a,r){const n=r.position();Q(t,e,a,[n.upperLeft,n.upperRight,n.lowerRight,n.lowerLeft],!0);const i=S(a,r.getLocation());t.push({kind:"point",layer:e,x:i.x,y:i.y})}function $o(t){var e;const a=(e=t.attributeIterator)==null?void 0:e.call(t);return a?typeof a.toArray=="function"?a.toArray():[...a]:[]}function ce(t,e){return t==="0"?e:t}function lr(t,e,a,r,n,i,o,s=!0){if(!t.visibility)return;const l=ce(t.layer,a);if(!(o&&!o(l))){if(t instanceof ln){_o(t,e,a,r,n,i,o,s);return}if(vo(t)){const c=ir(t,i);if(!c||n.has(c.objectId))return;n.add(c.objectId);const d=t.getFullInsertionTransform(),u=Math.max(1,t.columnCount??1),p=Math.max(1,t.rowCount??1),m=t.columnSpacing??0,h=t.rowSpacing??0,f=ce(t.layer,a);for(let g=0;g<p;g++)for(let w=0;w<u;w++){const b=zt(e,d);(w!==0||g!==0)&&b.multiply(new ut().makeTranslation(w*m,g*h,0));const A=S(b,{x:0,y:0,z:0});r.push({kind:"point",layer:f,x:A.x,y:A.y}),Ut(c,b,f,r,n,i,o,s)}for(const g of $o(t))g instanceof cn,g.isInvisible||lr(g,e,f,r,n,i,o,s);n.delete(c.objectId);return}if(t instanceof dn){const c=t,d=wo(c,i);if(!d||n.has(d.objectId))return;n.add(d.objectId);const u=zt(e,c.getFullDimBlockTransform());Ut(d,u,l,r,n,i,o,!0),n.delete(d.objectId);return}if(go(t)){bo(r,l,e,t);return}if(t instanceof un){le(e)?Co(r,l,e,t.center,t.radius,t.normal):Jt(r,l,e,Ho(t));return}if(t instanceof mn){le(e)?Io(r,l,e,t):Jt(r,l,e,jo(t));return}if(t instanceof ue){Jt(r,l,e,t);return}if(t instanceof pn){Fo(r,l,e,t);return}if(t instanceof hn){Po(r,l,e,t);return}if(t instanceof fn){Bo(r,l,e,t);return}if(t instanceof gn){const c=[];for(let d=0;d<t.numberOfVertices;d++)c.push(t.getPointAt(d));yt(r,l,e,c,t.closed);return}if(t instanceof bn){s&&No(r,l,e,t);return}if(t instanceof wn){t.basePoint,t.unitDir;return}if(t instanceof xn){t.basePoint,t.unitDir;return}if(t instanceof yn){Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof vn){s&&Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof kn){const c=t.subGetGripPoints();c.length>=2&&yt(r,l,e,c,c.length>=3);return}if(t instanceof An){const c=t.vertices;c.length>=2&&yt(r,l,e,c,!1);return}if(t instanceof Mn){Ao(r,l,e,t);return}if(t instanceof En){Eo(r,l,e,t);return}if(t instanceof Bn){const c=S(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof Cn){const c=S(e,t.location);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof In){s&&Oo(r,l,e,t);return}if(t instanceof Fn){s&&Ro(r,l,e,t);return}if(t instanceof Sn){const c=S(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y})}}}function Ut(t,e,a,r,n,i,o,s=!0){for(const l of t.newIterator())lr(l,e,a,r,n,i,o,s)}function Ho(t){return new ue(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,0,Un)}function jo(t){return new ue(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,t.startAngle,t.endAngle)}function Vo(t,e,a={}){const r=fo(t,e);if(!r)return{primitives:[]};const n=[],i=new ut;return Ut(r,i,"0",n,new Set,t,a.includeLayer),{primitives:n.filter(o=>o.kind!=="line"&&Xo(o))}}function Xo(t){switch(t.kind){case"line":return Number.isFinite(t.x0)&&Number.isFinite(t.y0)&&Number.isFinite(t.x1)&&Number.isFinite(t.y1);case"circle":return Number.isFinite(t.cx)&&Number.isFinite(t.cy)&&Number.isFinite(t.r);case"arc":return Number.isFinite(t.cx)&&Number.isFinite(t.cy)&&Number.isFinite(t.r)&&Number.isFinite(t.startAngle)&&Number.isFinite(t.endAngle);case"ellipse":return Number.isFinite(t.cx)&&Number.isFinite(t.cy)&&Number.isFinite(t.majorX)&&Number.isFinite(t.majorY)&&Number.isFinite(t.majorR)&&Number.isFinite(t.minorR)&&Number.isFinite(t.startAngle)&&Number.isFinite(t.endAngle);case"spline":return t.controlPoints.every(e=>Number.isFinite(e))&&t.knots.every(e=>Number.isFinite(e))&&t.weights.every(e=>Number.isFinite(e));case"point":return Number.isFinite(t.x)&&Number.isFinite(t.y);case"path":return t.vertices.length>=6&&t.vertices.length%3===0&&t.vertices.every(e=>Number.isFinite(e));default:return t}}const Yo=["en","zh","cs","tr","ar"];function Be(t){if(t==null||t==="")return null;const e=t.toLowerCase().replace("_","-");for(const a of Yo)if(e===a||e.startsWith(`${a}-`))return a;return null}const Go=1128612673;function cr(t){if(t.version!==X)throw new Error(`Unsupported chunk version: ${t.version}`);const e=new ge;e.writeU32(Go),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeString(t.layoutBtrId),e.writeU32(t.lineBatches.length);for(const a of t.lineBatches)Ga(e,a);e.writeU32(t.meshBatches.length);for(const a of t.meshBatches)Wa(e,a);return e.toUint8Array()}async function Wo(t){const e=cr(t),a=(await Ya(e)).bytes;return{uncompressed:e,compressed:a}}const Ko=1,dr=2*1024*1024,Ot=2*1024*1024,Zo=8*1024*1024,ka=12*1024*1024,Jo=2*1024*1024,$t="drawing.acex.json",qo=`./${$t}`;function Ce(...t){return`<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 1024 1024">${t.map(e=>`<path fill="currentColor" d="${e}"/>`).join("")}</svg>`}Ce("M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0M128 896v-64h768v64z");Ce("M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160");Ce("M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176","M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48");const Qo='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" aria-hidden="true"><path fill="currentColor" d="M10 13.5 14.5 9h-9L10 13.5Z"/></svg>',ts='<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 20 20"><path fill="currentColor" d="M10.09 3.53 16.09 6.97 10.09 10.29 4.18 7 10.09 3.56M10.09 2.4 2.17 7 3.31 7.65 10.09 11.45 17 7.62 18.17 7 10.08 2.37 10.09 2.4Z"/><path fill="currentColor" d="M10.25 14.83 18.17 10.22 17 9.57 10.22 13.57 3.32 9.59 2.17 10.22 10.25 14.83Z"/><path fill="currentColor" d="M10.25 17.63 18.17 13 17 12.37 10.22 16.37 3.32 12.38 2.17 13 10.25 17.63Z"/></svg>',es='<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 20 20"><path fill="currentColor" d="M10.09 5.15 16.09 8.59 10.09 11.91 4.18 8.59 10.09 5.15ZM10.09 4 2.17 8.61 3.31 9.25 10.09 13.06 17 9.24 18.16 8.61 10.08 4 10.09 4Z"/><path fill="currentColor" d="M10.25 16.46 18.17 11.85 17 11.2 10.22 15.2 3.32 11.21 2.17 11.85 10.25 16.46Z"/><path fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" d="M3.5 3.5 16.5 16.5"/></svg>',de={layerOn:ts,layerOff:es,chevronDown:Qo},as=[90,45,30,23,18,10,5];function rs(){return`<div id="mlcad-polar-angles" role="group" data-i18n-attr="aria-label" data-i18n-key="settings.polarAngles" aria-label="Polar tracking angles" hidden>
1
+ import{D as Xr,E as Gt,V as Yr,N as Gr,F as $e,G as Wr,H as He,S as Kr,I as Zr,J as Jr,K as ut,g as qr,L as Qr,O as Pa,P as tn,Q as en,R as an,U as za,W as rn,Y as nn,Z as on,_ as je,a0 as sn,a1 as ln,a2 as cn,a3 as dn,a4 as un,a5 as mn,a6 as ue,a7 as pn,a8 as hn,a9 as fn,aa as gn,ab as bn,ac as wn,ad as xn,ae as yn,af as vn,ag as kn,ah as An,ai as Mn,aj as Bn,ak as En,al as Cn,am as In,an as Sn,ao as Fn,ap as Ln,aq as Pn,ar as V,as as zn,at as lt,au as Ua,av as Un,aw as me,o as Dn,ax as Nn,ay as Tn,az as _n,aA as Rn,q as On,$ as $n,aB as pt,h as x,v as J,aC as E,aD as Hn,aE as jn,a as j,aF as Vn,e as Ve,aG as Xn}from"./index-BXbm-bLy.js";import{aH as Fl,aI as Ll}from"./index-BXbm-bLy.js";var z=Uint8Array,N=Uint16Array,pe=Int32Array,he=new z([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,0,0,0]),fe=new z([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,0,0]),Xe=new z([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Da=function(t,e){for(var a=new N(31),r=0;r<31;++r)a[r]=e+=1<<t[r-1];for(var n=new pe(a[30]),r=1;r<30;++r)for(var i=a[r];i<a[r+1];++i)n[i]=i-a[r]<<5|r;return{b:a,r:n}},Na=Da(he,2),Yn=Na.b,qt=Na.r;Yn[28]=258,qt[258]=28;var Gn=Da(fe,0),Ye=Gn.r,Qt=new N(32768);for(var M=0;M<32768;++M){var K=(M&43690)>>1|(M&21845)<<1;K=(K&52428)>>2|(K&13107)<<2,K=(K&61680)>>4|(K&3855)<<4,Qt[M]=((K&65280)>>8|(K&255)<<8)>>1}var wt=(function(t,e,a){for(var r=t.length,n=0,i=new N(e);n<r;++n)t[n]&&++i[t[n]-1];var o=new N(e);for(n=1;n<e;++n)o[n]=o[n-1]+i[n-1]<<1;var s;if(a){s=new N(1<<e);var l=15-e;for(n=0;n<r;++n)if(t[n])for(var c=n<<4|t[n],d=e-t[n],u=o[t[n]-1]++<<d,p=u|(1<<d)-1;u<=p;++u)s[Qt[u]>>l]=c}else for(s=new N(r),n=0;n<r;++n)t[n]&&(s[n]=Qt[o[t[n]-1]++]>>15-t[n]);return s}),tt=new z(288);for(var M=0;M<144;++M)tt[M]=8;for(var M=144;M<256;++M)tt[M]=9;for(var M=256;M<280;++M)tt[M]=7;for(var M=280;M<288;++M)tt[M]=8;var It=new z(32);for(var M=0;M<32;++M)It[M]=5;var Wn=wt(tt,9,0),Kn=wt(It,5,0),Ta=function(t){return(t+7)/8|0},_a=function(t,e,a){return(a==null||a>t.length)&&(a=t.length),new z(t.subarray(e,a))},Zn=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Tt=function(t,e,a){var r=new Error(e||Zn[t]);if(r.code=t,Error.captureStackTrace&&Error.captureStackTrace(r,Tt),!a)throw r;return r},Y=function(t,e,a){a<<=e&7;var r=e/8|0;t[r]|=a,t[r+1]|=a>>8},ht=function(t,e,a){a<<=e&7;var r=e/8|0;t[r]|=a,t[r+1]|=a>>8,t[r+2]|=a>>16},Wt=function(t,e){for(var a=[],r=0;r<t.length;++r)t[r]&&a.push({s:r,f:t[r]});var n=a.length,i=a.slice();if(!n)return{t:Oa,l:0};if(n==1){var o=new z(a[0].s+1);return o[a[0].s]=1,{t:o,l:1}}a.sort(function(I,C){return I.f-C.f}),a.push({s:-1,f:25001});var s=a[0],l=a[1],c=0,d=1,u=2;for(a[0]={s:-1,f:s.f+l.f,l:s,r:l};d!=n-1;)s=a[a[c].f<a[u].f?c++:u++],l=a[c!=d&&a[c].f<a[u].f?c++:u++],a[d++]={s:-1,f:s.f+l.f,l:s,r:l};for(var p=i[0].s,r=1;r<n;++r)i[r].s>p&&(p=i[r].s);var m=new N(p+1),h=te(a[d-1],m,0);if(h>e){var r=0,f=0,g=h-e,w=1<<g;for(i.sort(function(C,B){return m[B.s]-m[C.s]||C.f-B.f});r<n;++r){var b=i[r].s;if(m[b]>e)f+=w-(1<<h-m[b]),m[b]=e;else break}for(f>>=g;f>0;){var A=i[r].s;m[A]<e?f-=1<<e-m[A]++-1:++r}for(;r>=0&&f;--r){var y=i[r].s;m[y]==e&&(--m[y],++f)}h=e}return{t:new z(m),l:h}},te=function(t,e,a){return t.s==-1?Math.max(te(t.l,e,a+1),te(t.r,e,a+1)):e[t.s]=a},Ge=function(t){for(var e=t.length;e&&!t[--e];);for(var a=new N(++e),r=0,n=t[0],i=1,o=function(l){a[r++]=l},s=1;s<=e;++s)if(t[s]==n&&s!=e)++i;else{if(!n&&i>2){for(;i>138;i-=138)o(32754);i>2&&(o(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(o(n),--i;i>6;i-=6)o(8304);i>2&&(o(i-3<<5|8208),i=0)}for(;i--;)o(n);i=1,n=t[s]}return{c:a.subarray(0,r),n:e}},ft=function(t,e){for(var a=0,r=0;r<e.length;++r)a+=t[r]*e[r];return a},Ra=function(t,e,a){var r=a.length,n=Ta(e+2);t[n]=r&255,t[n+1]=r>>8,t[n+2]=t[n]^255,t[n+3]=t[n+1]^255;for(var i=0;i<r;++i)t[n+i+4]=a[i];return(n+4+r)*8},We=function(t,e,a,r,n,i,o,s,l,c,d){Y(e,d++,a),++n[256];for(var u=Wt(n,15),p=u.t,m=u.l,h=Wt(i,15),f=h.t,g=h.l,w=Ge(p),b=w.c,A=w.n,y=Ge(f),I=y.c,C=y.n,B=new N(19),v=0;v<b.length;++v)++B[b[v]&31];for(var v=0;v<I.length;++v)++B[I[v]&31];for(var k=Wt(B,7),U=k.t,rt=k.l,D=19;D>4&&!U[Xe[D-1]];--D);var nt=c+5<<3,T=ft(n,tt)+ft(i,It)+o,_=ft(n,p)+ft(i,f)+o+14+3*D+ft(B,U)+2*B[16]+3*B[17]+7*B[18];if(l>=0&&nt<=T&&nt<=_)return Ra(e,d,t.subarray(l,l+c));var O,L,R,W;if(Y(e,d,1+(_<T)),d+=2,_<T){O=wt(p,m,0),L=p,R=wt(f,g,0),W=f;var jt=wt(U,rt,0);Y(e,d,A-257),Y(e,d+5,C-1),Y(e,d+10,D-4),d+=14;for(var v=0;v<D;++v)Y(e,d+3*v,U[Xe[v]]);d+=3*D;for(var $=[b,I],mt=0;mt<2;++mt)for(var it=$[mt],v=0;v<it.length;++v){var H=it[v]&31;Y(e,d,jt[H]),d+=U[H],H>15&&(Y(e,d,it[v]>>5&127),d+=it[v]>>12)}}else O=Wn,L=tt,R=Kn,W=It;for(var v=0;v<s;++v){var P=r[v];if(P>255){var H=P>>18&31;ht(e,d,O[H+257]),d+=L[H+257],H>7&&(Y(e,d,P>>23&31),d+=he[H]);var ot=P&31;ht(e,d,R[ot]),d+=W[ot],ot>3&&(ht(e,d,P>>5&8191),d+=fe[ot])}else ht(e,d,O[P]),d+=L[P]}return ht(e,d,O[256]),d+L[256]},Jn=new pe([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Oa=new z(0),qn=function(t,e,a,r,n,i){var o=i.z||t.length,s=new z(r+o+5*(1+Math.ceil(o/7e3))+n),l=s.subarray(r,s.length-n),c=i.l,d=(i.r||0)&7;if(e){d&&(l[0]=i.r>>3);for(var u=Jn[e-1],p=u>>13,m=u&8191,h=(1<<a)-1,f=i.p||new N(32768),g=i.h||new N(h+1),w=Math.ceil(a/3),b=2*w,A=function(Yt){return(t[Yt]^t[Yt+1]<<w^t[Yt+2]<<b)&h},y=new pe(25e3),I=new N(288),C=new N(32),B=0,v=0,k=i.i||0,U=0,rt=i.w||0,D=0;k+2<o;++k){var nt=A(k),T=k&32767,_=g[nt];if(f[T]=_,g[nt]=T,rt<=k){var O=o-k;if((B>7e3||U>24576)&&(O>423||!c)){d=We(t,l,0,y,I,C,v,U,D,k-D,d),U=B=v=0,D=k;for(var L=0;L<286;++L)I[L]=0;for(var L=0;L<30;++L)C[L]=0}var R=2,W=0,jt=m,$=T-_&32767;if(O>2&&nt==A(k-$))for(var mt=Math.min(p,O)-1,it=Math.min(32767,k),H=Math.min(258,O);$<=it&&--jt&&T!=_;){if(t[k+R]==t[k+R-$]){for(var P=0;P<H&&t[k+P]==t[k+P-$];++P);if(P>R){if(R=P,W=$,P>mt)break;for(var ot=Math.min($,P-2),Te=0,L=0;L<ot;++L){var Vt=k-$+L&32767,Vr=f[Vt],_e=Vt-Vr&32767;_e>Te&&(Te=_e,_=Vt)}}}T=_,_=f[T],$+=T-_&32767}if(W){y[U++]=268435456|qt[R]<<18|Ye[W];var Re=qt[R]&31,Oe=Ye[W]&31;v+=he[Re]+fe[Oe],++I[257+Re],++C[Oe],rt=k+R,++B}else y[U++]=t[k],++I[t[k]]}}for(k=Math.max(k,rt);k<o;++k)y[U++]=t[k],++I[t[k]];d=We(t,l,c,y,I,C,v,U,D,k-D,d),c||(i.r=d&7|l[d/8|0]<<3,d-=7,i.h=g,i.p=f,i.i=k,i.w=rt)}else{for(var k=i.w||0;k<o+c;k+=65535){var Xt=k+65535;Xt>=o&&(l[d/8|0]=c,Xt=o),d=Ra(l,d+1,t.subarray(k,Xt))}i.i=o}return _a(s,0,r+Ta(d)+n)},Qn=(function(){for(var t=new Int32Array(256),e=0;e<256;++e){for(var a=e,r=9;--r;)a=(a&1&&-306674912)^a>>>1;t[e]=a}return t})(),$a=function(){var t=-1;return{p:function(e){for(var a=t,r=0;r<e.length;++r)a=Qn[a&255^e[r]]^a>>>8;t=a},d:function(){return~t}}},Ha=function(t,e,a,r,n){if(!n&&(n={l:1},e.dictionary)){var i=e.dictionary.subarray(-32768),o=new z(i.length+t.length);o.set(i),o.set(t,i.length),t=o,n.w=i.length}return qn(t,e.level==null?6:e.level,e.mem==null?n.l?Math.ceil(Math.max(8,Math.min(13,Math.log(t.length)))*1.5):20:12+e.mem,a,r,n)},ja=function(t,e){var a={};for(var r in t)a[r]=t[r];for(var r in e)a[r]=e[r];return a},S=function(t,e,a){for(;a;++e)t[e]=a,a>>>=8},ti=function(t,e){var a=e.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=e.level<2?4:e.level==9?2:0,t[9]=3,e.mtime!=0&&S(t,4,Math.floor(new Date(e.mtime||Date.now())/1e3)),a){t[3]=8;for(var r=0;r<=a.length;++r)t[r+10]=a.charCodeAt(r)}},ei=function(t){return 10+(t.filename?t.filename.length+1:0)};function ai(t,e){return Ha(t,e||{},0,0)}function ri(t,e){e||(e={});var a=$a(),r=t.length;a.p(t);var n=Ha(t,e,ei(e),8),i=n.length;return ti(n,e),S(n,i-8,a.d()),S(n,i-4,r),n}var Va=function(t,e,a,r){for(var n in t){var i=t[n],o=e+n,s=r;Array.isArray(i)&&(s=ja(r,i[1]),i=i[0]),i instanceof z?a[o]=[i,s]:(a[o+="/"]=[new z(0),s],Va(i,o,a,r))}},Ke=typeof TextEncoder<"u"&&new TextEncoder,ni=typeof TextDecoder<"u"&&new TextDecoder,ii=0;try{ni.decode(Oa,{stream:!0}),ii=1}catch{}function vt(t,e){var a;if(Ke)return Ke.encode(t);for(var r=t.length,n=new z(t.length+(t.length>>1)),i=0,o=function(d){n[i++]=d},a=0;a<r;++a){if(i+5>n.length){var s=new z(i+8+(r-a<<1));s.set(n),n=s}var l=t.charCodeAt(a);l<128||e?o(l):l<2048?(o(192|l>>6),o(128|l&63)):l>55295&&l<57344?(l=65536+(l&1047552)|t.charCodeAt(++a)&1023,o(240|l>>18),o(128|l>>12&63),o(128|l>>6&63),o(128|l&63)):(o(224|l>>12),o(128|l>>6&63),o(128|l&63))}return _a(n,0,i)}var ee=function(t){var e=0;if(t)for(var a in t){var r=t[a].length;r>65535&&Tt(9),e+=r+4}return e},Ze=function(t,e,a,r,n,i,o,s){var l=r.length,c=a.extra,d=s&&s.length,u=ee(c);S(t,e,o!=null?33639248:67324752),e+=4,o!=null&&(t[e++]=20,t[e++]=a.os),t[e]=20,e+=2,t[e++]=a.flag<<1|(i<0&&8),t[e++]=n&&8,t[e++]=a.compression&255,t[e++]=a.compression>>8;var p=new Date(a.mtime==null?Date.now():a.mtime),m=p.getFullYear()-1980;if((m<0||m>119)&&Tt(10),S(t,e,m<<25|p.getMonth()+1<<21|p.getDate()<<16|p.getHours()<<11|p.getMinutes()<<5|p.getSeconds()>>1),e+=4,i!=-1&&(S(t,e,a.crc),S(t,e+4,i<0?-i-2:i),S(t,e+8,a.size)),S(t,e+12,l),S(t,e+14,u),e+=16,o!=null&&(S(t,e,d),S(t,e+6,a.attrs),S(t,e+10,o),e+=14),t.set(r,e),e+=l,u)for(var h in c){var f=c[h],g=f.length;S(t,e,+h),S(t,e+2,g),t.set(f,e+4),e+=4+g}return d&&(t.set(s,e),e+=d),e},oi=function(t,e,a,r,n){S(t,e,101010256),S(t,e+8,a),S(t,e+10,a),S(t,e+12,r),S(t,e+16,n)};function si(t,e){e||(e={});var a={},r=[];Va(t,"",a,e);var n=0,i=0;for(var o in a){var s=a[o],l=s[0],c=s[1],d=c.level==0?0:8,u=vt(o),p=u.length,m=c.comment,h=m&&vt(m),f=h&&h.length,g=ee(c.extra);p>65535&&Tt(11);var w=d?ai(l,c):l,b=w.length,A=$a();A.p(l),r.push(ja(c,{size:l.length,crc:A.d(),c:w,f:u,m:h,u:p!=o.length||h&&m.length!=f,o:n,compression:d})),n+=30+p+g+b,i+=76+2*(p+g)+(f||0)+b}for(var y=new z(i+22),I=n,C=i-n,B=0;B<r.length;++B){var u=r[B];Ze(y,u.o,u,u.f,u.u,u.c.length);var v=30+u.f.length+ee(u.extra);y.set(u.c,u.o+v),Ze(y,n,u,u.f,u.u,u.c.length,u.o,u.m),n+=16+v+(u.m?u.m.length:0)}return oi(y,n,r.length,C,I),y}class ge{constructor(){this.chunks=[],this.length=0}writeU8(e){const a=new Uint8Array(1);a[0]=e&255,this.chunks.push(a),this.length+=1}writeU32(e){const a=new Uint8Array(4);new DataView(a.buffer).setUint32(0,e>>>0,!0),this.chunks.push(a),this.length+=4}writeI32(e){const a=new Uint8Array(4);new DataView(a.buffer).setInt32(0,e|0,!0),this.chunks.push(a),this.length+=4}writeF32(e){const a=new Uint8Array(4);new DataView(a.buffer).setFloat32(0,e,!0),this.chunks.push(a),this.length+=4}writeF64(e){const a=new Uint8Array(8);new DataView(a.buffer).setFloat64(0,e,!0),this.chunks.push(a),this.length+=8}writeBytes(e){this.chunks.push(e),this.length+=e.length}writeString(e){const a=vt(e);this.writeU32(a.length),this.writeBytes(a)}writeJson(e){this.writeString(JSON.stringify(e))}writeFloat32Array(e){this.alignTo(4);const a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);this.writeU32(a.length),this.writeBytes(a)}writeUint32Array(e){this.alignTo(4);const a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);this.writeU32(a.length),this.writeBytes(a)}alignTo(e){const a=this.length%e;if(a===0)return;const r=e-a;for(let n=0;n<r;n++)this.writeU8(0)}toUint8Array(){const e=new Uint8Array(this.length);let a=0;for(const r of this.chunks)e.set(r,a),a+=r.length;return e}}const X=4,Xa="gzip";function ae(t){return{bytes:ri(t),compression:Xa}}async function Ya(t){if(typeof CompressionStream>"u")return ae(t);try{const e=new Uint8Array(t.byteLength);e.set(t);const a=new Blob([e]).stream().pipeThrough(new CompressionStream("gzip"));return{bytes:new Uint8Array(await new Response(a).arrayBuffer()),compression:Xa}}catch{return ae(t)}}const St="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%()*+,-.;=?@[]^_{|}~",re=new Int16Array(128).fill(-1);for(let t=0;t<St.length;t++)re[St.charCodeAt(t)]=t;function _t(t,e){return e==="base85"?ci(t):mi(t)}function li(t,e){const a=t.length>0&&(t.charCodeAt(0)<=32||t.charCodeAt(t.length-1)<=32)?t.trim():t;return e==="base85"?di(a):pi(a)}function ci(t){const e=t.length;if(e===0)return"";const a=(4-e%4)%4,r=e+a,n=[];for(let o=0;o<r;o+=4){const s=t[o]??0,l=o+1<e?t[o+1]:0,c=o+2<e?t[o+2]:0,d=o+3<e?t[o+3]:0;let u=(s<<24>>>0)+(l<<16)+(c<<8)+d;const p=new Array(5);for(let m=4;m>=0;m--)p[m]=u%85,u=u/85|0;for(let m=0;m<5;m++)n.push(St[p[m]])}const i=Math.ceil(e*5/4);return n.slice(0,i).join("")}function di(t){const e=t.replace(/\s+/g,""),a=e.length;if(a===0)return new Uint8Array(0);const r=Math.floor(a*4/5),n=(5-a%5)%5,i=a+n,o=new Uint8Array(i/5*4),s=St.length-1;let l=0;for(let c=0;c<i;c+=5){let d=0;for(let u=0;u<5;u++){const p=c+u<a?ui(e.charCodeAt(c+u)):s;d=d*85+p}o[l++]=d>>>24&255,o[l++]=d>>>16&255,o[l++]=d>>>8&255,o[l++]=d&255}return o.subarray(0,r)}function ui(t){if(t<0||t>=re.length)throw new Error("Invalid base85 character");const e=re[t];if(e<0)throw new Error("Invalid base85 character");return e}function mi(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}function pi(t){const e=atob(t),a=new Uint8Array(e.length);for(let r=0;r<e.length;r++)a[r]=e.charCodeAt(r);return a}const Je=1,qe=2,Qe=4,ta=8,ea=16,hi=32,aa=1,ra=2,na=4,ia=8,oa=16,fi=32,sa=64,la=128;function be(t){let e=256+t.positions.byteLength;return t.indices&&(e+=t.indices.byteLength),t.lineDistances&&(e+=t.lineDistances.byteLength),t.linePattern&&(e+=64+t.linePattern.pattern.length*8),e}function we(t){let e=256+t.positions.byteLength;return t.indices&&(e+=t.indices.byteLength),t.gradientPositions&&(e+=t.gradientPositions.byteLength),t.uvs&&(e+=t.uvs.byteLength),t.texture&&(e+=t.texture.bytes.byteLength+64),t.hatchPattern&&(e+=128),t.gradientFill&&(e+=64),e}function Ga(t,e){t.writeString(e.layer),t.writeU32(e.color>>>0),t.writeF64(e.offset[0]),t.writeF64(e.offset[1]),t.writeF64(e.offset[2]),t.writeFloat32Array(e.positions);let a=0;e.indices&&e.indices.length>0&&(a|=Je),e.linePattern&&(a|=qe),e.lineDistances&&e.lineDistances.length>0&&(a|=Qe),e.lineWidth!=null&&e.lineWidth>0&&(a|=ta),e.renderOrder!=null&&e.renderOrder!==0&&(a|=ea),e.excludeFromOsnap&&(a|=hi),t.writeU8(a),a&Je&&t.writeUint32Array(e.indices),a&qe&&t.writeJson(e.linePattern),a&Qe&&t.writeFloat32Array(e.lineDistances),a&ta&&t.writeF32(e.lineWidth),a&ea&&t.writeI32(e.renderOrder)}function Wa(t,e){t.writeString(e.layer),t.writeU32(e.color>>>0),t.writeF64(e.offset[0]),t.writeF64(e.offset[1]),t.writeF64(e.offset[2]),t.writeFloat32Array(e.positions);let a=0;e.indices&&e.indices.length>0&&(a|=aa),e.hatchPattern&&(a|=ra),e.gradientFill&&(a|=na),e.gradientPositions&&e.gradientPositions.length>0&&(a|=ia),e.side!=null&&(a|=oa),e.points&&(a|=fi),e.renderOrder!=null&&e.renderOrder!==0&&(a|=sa),e.texture&&e.texture.bytes.length>0&&e.uvs&&e.uvs.length>=2&&(a|=la),t.writeU8(a),a&aa&&t.writeUint32Array(e.indices),a&ra&&t.writeJson(e.hatchPattern),a&na&&t.writeJson(e.gradientFill),a&ia&&t.writeFloat32Array(e.gradientPositions),a&oa&&t.writeU8(e.side),a&sa&&t.writeI32(e.renderOrder),a&la&&(t.writeFloat32Array(e.uvs),t.writeString(e.texture.mimeType||"image/png"),t.writeU32(e.texture.bytes.byteLength),t.writeBytes(e.texture.bytes))}const gi=1329939265,bi=1,wi=1,xi=2,yi=3,vi=4,ki=5,Ai=6,Mi=7;function Ka(t){var e;switch(t.kind){case"line":return 37;case"circle":return 30;case"arc":return 46;case"ellipse":return 71;case"point":return 21;case"path":return 10+t.vertices.length*8;case"spline":return 10+(t.controlPoints.length+t.knots.length+t.weights.length+(((e=t.fitPoints)==null?void 0:e.length)??0))*8+16;default:return t}}function Bi(t,e){if(t.length===0)return[];const a=[];let r=[],n=64;const i=()=>{r.length!==0&&(a.push(r),r=[],n=64)};for(const o of t){const s=Ka(o);r.length>0&&n+s>e&&i(),r.push(o),n+=s}return i(),a}function xe(t){const e=new ge;e.writeU32(gi),e.writeU8(bi),e.writeU8(0),e.writeU8(0),e.writeU8(0);const a=[],r=new Map,n=i=>{const o=r.get(i);if(o!=null)return o;const s=a.length;return a.push(i),r.set(i,s),s};for(const i of t.primitives)n(i.layer);e.writeU32(a.length);for(const i of a)e.writeString(i);e.writeU32(t.primitives.length);for(const i of t.primitives)Ci(e,i,n(i.layer));return e.toUint8Array()}async function Ei(t){const e=xe(t),a=(await Ya(e)).bytes;return{uncompressed:e,compressed:a}}function Kt(t,e){t.writeU8(e<0?0:1)}function gt(t,e){t.writeU32(e.length);for(const a of e)t.writeF64(a)}function Ci(t,e,a){switch(e.kind){case"line":t.writeU8(wi),t.writeU32(a),t.writeF64(e.x0),t.writeF64(e.y0),t.writeF64(e.x1),t.writeF64(e.y1);return;case"circle":t.writeU8(xi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),Kt(t,e.normalSign);return;case"arc":t.writeU8(yi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),t.writeF64(e.startAngle),t.writeF64(e.endAngle),Kt(t,e.normalSign);return;case"ellipse":t.writeU8(vi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.majorX),t.writeF64(e.majorY),t.writeF64(e.majorR),t.writeF64(e.minorR),t.writeF64(e.startAngle),t.writeF64(e.endAngle),t.writeU8(e.closed?1:0),Kt(t,e.normalSign??1);return;case"spline":t.writeU8(ki),t.writeU32(a),gt(t,e.controlPoints),t.writeU32(e.degree),gt(t,e.knots),gt(t,e.weights),t.writeU8(e.closed?1:0),gt(t,e.fitPoints??[]);return;case"point":t.writeU8(Ai),t.writeU32(a),t.writeF64(e.x),t.writeF64(e.y);return;case"path":t.writeU8(Mi),t.writeU32(a),t.writeU8(e.closed?1:0),gt(t,e.vertices);return;default:{const r=e;throw new Error(`Unsupported osnap primitive: ${String(r)}`)}}}const Ii=1480934209;function Si(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=new ge;e.writeU32(Ii),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeJson(Fi(t)),e.writeJson(t.layers),e.writeString(t.activeLayoutBtrId),e.writeU32(t.layouts.length);for(const a of t.layouts)Li(e,a);return e.toUint8Array()}function Fi(t){const e={...t.meta.savedViews??{}},a={...t.meta.fitExtents??{}};for(const l of t.layouts)l.savedView&&(e[l.btrId]=l.savedView),l.fitExtents&&(a[l.btrId]=l.fitExtents);const r=Object.keys(e).length>0,n=Object.keys(a).length>0;if(!r&&!n){if(t.meta.savedViews==null&&t.meta.fitExtents==null)return t.meta;const{savedViews:l,fitExtents:c,...d}=t.meta;return d}const{savedViews:i,fitExtents:o,...s}=t.meta;return{...s,...r?{savedViews:e}:{},...n?{fitExtents:a}:{}}}function Li(t,e){t.writeString(e.btrId),t.writeString(e.name),t.writeU8(e.isModelSpace?1:0),Pi(t,e.osnap),t.writeJson(e.viewports??null),t.writeU32(e.lineBatches.length);for(const a of e.lineBatches)Ga(t,a);t.writeU32(e.meshBatches.length);for(const a of e.meshBatches)Wa(t,a)}function Pi(t,e){if(!e||e.primitives.length===0){t.writeU32(0);return}const a=xe(e);t.writeU32(a.length),t.writeBytes(a)}const zi="application/vnd.mlightcad.acex-snapshot+binary";function Za(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=Si(t),a=ae(e);return{payload:_t(a.bytes,"base85"),compression:a.compression}}function Ui(){return zi}function et(t,e,a){if(a<=0)return new Float32Array(0);if(t instanceof Float32Array)return t.subarray(e,e+a).slice();const r=new Float32Array(a);for(let n=0;n<a;n++)r[n]=t[e+n];return r}function Di(t,e,a){if(a<=0)return new Uint32Array(0);const r=new Uint32Array(a);for(let n=0;n<a;n++)r[n]=t[e+n];return r}function Ja(t,e){if(e.length===0)return{positions:t,indices:e};let a=0;for(let n=0;n<e.length;n++){const i=e[n];i>a&&(a=i)}const r=(a+1)*3;return r>=t.length?{positions:t,indices:e}:{positions:et(t,0,r),indices:e}}function ca(t,e){return t+e}const st={x:0,y:0,z:0};function Ni(t){t.updateMatrixWorld(!0);const e=t.matrixWorld.elements;return st.x=e[12],st.y=e[13],st.z=e[14],[st.x,st.y,st.z]}function ye(t,e){const a=e.elements,r=t.positions;if(r.length===0)return{positions:new Float32Array(0),indices:t.indices};const n=new Float32Array(r.length);for(let i=0;i<r.length;i+=3){const o=r[i],s=r[i+1],l=r[i+2];n[i]=a[0]*o+a[4]*s+a[8]*l+a[12],n[i+1]=a[1]*o+a[5]*s+a[9]*l+a[13],n[i+2]=a[2]*o+a[6]*s+a[10]*l+a[14]}return{positions:n,indices:t.indices?new Uint32Array(t.indices):void 0}}function da(t,e){const a=e*3;return Number.isFinite(t[a])&&Number.isFinite(t[a+1])&&Number.isFinite(t[a+2])}function ct(t,e){const a=t.positions,r=a.length/3|0;if(r===0||e<=0)return t;let n=!1;for(let s=0;s<a.length;s++)if(!Number.isFinite(a[s])){n=!0;break}if(!n)return t;const i=t.indices;if(i&&i.length>0){const s=[];for(let u=0;u+e<=i.length;u+=e){let p=!0;for(let m=0;m<e;m++){const h=i[u+m];if(h<0||h>=r||!da(a,h)){p=!1;break}}if(p)for(let m=0;m<e;m++)s.push(i[u+m])}if(s.length===0)return{positions:new Float32Array(0)};const l=new Int32Array(r);l.fill(-1);const c=[],d=new Uint32Array(s.length);for(let u=0;u<s.length;u++){const p=s[u];let m=l[p];if(m<0){m=c.length/3,l[p]=m;const h=p*3;c.push(a[h],a[h+1],a[h+2])}d[u]=m}return{positions:Float32Array.from(c),indices:d}}const o=[];for(let s=0;s+e<=r;s+=e){let l=!0;for(let c=0;c<e;c++)if(!da(a,s+c)){l=!1;break}if(l)for(let c=0;c<e;c++){const d=(s+c)*3;o.push(a[d],a[d+1],a[d+2])}}return o.length===0?{positions:new Float32Array(0)}:{positions:Float32Array.from(o)}}function ve(t){const e=t.positions;if(e.length<3)return{slice:t,offset:[0,0,0]};let a=1/0,r=1/0,n=1/0,i=-1/0,o=-1/0,s=-1/0,l=0;for(let u=0;u<e.length;u+=3){const p=e[u],m=e[u+1],h=e[u+2];!Number.isFinite(p)||!Number.isFinite(m)||!Number.isFinite(h)||(l++,a=Math.min(a,p),r=Math.min(r,m),n=Math.min(n,h),i=Math.max(i,p),o=Math.max(o,m),s=Math.max(s,h))}if(l===0)return{slice:{positions:new Float32Array(0)},offset:[0,0,0]};const c=[(a+i)/2,(r+o)/2,(n+s)/2],d=new Float32Array(e.length);for(let u=0;u<e.length;u+=3){const p=e[u],m=e[u+1],h=e[u+2];if(!Number.isFinite(p)||!Number.isFinite(m)||!Number.isFinite(h)){d[u]=0,d[u+1]=0,d[u+2]=0;continue}d[u]=p-c[0],d[u+1]=m-c[1],d[u+2]=h-c[2]}return{slice:{positions:d,indices:t.indices?new Uint32Array(t.indices):void 0},offset:c}}function Ti(t,e,a={}){t.updateMatrixWorld(!0);const r=ye(e,t.matrixWorld);return ve(r)}function _i(t){const e=t.image;if(!e)return;if(typeof document>"u")return void 0;const a=document.createElement("canvas"),r=a.getContext("2d");if(!r)return;try{if(e instanceof ImageData)a.width=e.width,a.height=e.height,r.putImageData(e,0,0);else if(Oi(e)){a.width=e.width,a.height=e.height;const l=Hi(e.data,e.width*e.height),c=new ImageData(new Uint8ClampedArray(l),e.width,e.height);r.putImageData(c,0,0)}else if(Ri(e)){const l=$i(e);if(!l)return;a.width=l.width,a.height=l.height,r.drawImage(e,0,0)}else return}catch{return}const n=a.toDataURL("image/png"),i=n.indexOf(",");if(i<0)return;const o=atob(n.slice(i+1)),s=new Uint8Array(o.length);for(let l=0;l<o.length;l++)s[l]=o.charCodeAt(l);return{mimeType:"image/png",bytes:s}}function Ri(t){return t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement}function Oi(t){if(!t||typeof t!="object")return!1;const e=t;return e.data!=null&&typeof e.width=="number"&&typeof e.height=="number"&&e.width>=1&&e.height>=1}function $i(t){let e=Number(t.width),a=Number(t.height);if(t instanceof HTMLImageElement?(e=t.naturalWidth||t.width,a=t.naturalHeight||t.height):typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement&&(e=t.videoWidth||t.width,a=t.videoHeight||t.height),!(!Number.isFinite(e)||!Number.isFinite(a)||e<1||a<1))return{width:e,height:a}}function Hi(t,e){const a=e*4;if(t instanceof Uint8ClampedArray&&t.length>=a)return t.length===a?t:t.subarray(0,a);const r=new Uint8ClampedArray(a),n=Math.min(a,t.length);for(let i=0;i<n;i++)r[i]=t[i];if(t.length>=e*3&&t.length<a)for(let i=e-1;i>=0;i--){const o=i*3,s=i*4;r[s]=t[o],r[s+1]=t[o+1],r[s+2]=t[o+2],r[s+3]=255}return r}function ji(t,e){const a=t.getAttribute("uv");if(!a||a.count===0||a.itemSize<2)return;const r=Math.floor(e.length/3)*2;if(r<=0)return;const n=a.array;if(!(a.count*a.itemSize<r))return et(n,0,r)}function qa(t){const e=t;return e.map?!1:e.transparent===!0&&typeof e.opacity=="number"&&e.opacity<.01}function ke(t){const e=t;if(e.isShaderMaterial===!0||t.type==="ShaderMaterial")return e}function Vi(t){var e;const a=ke(t);if(!a)return;const r=a.uniforms.pattern,n=a.uniforms.patternLength;if(!r||!n)return;const i=r.value;if(!(!Array.isArray(i)||i.length===0))return{pattern:[...i],patternLength:Number(n.value),viewportScale:Number(((e=a.uniforms.u_viewportScale)==null?void 0:e.value)??1)}}function Xi(t){var e;const a=ke(t);if(!a)return;const r=a.uniforms.u_patternLines;if(!r)return;const n=r.value;if(!(!Array.isArray(n)||n.length===0))return{patternAngle:Number(((e=a.uniforms.u_patternAngle)==null?void 0:e.value)??0),patternLines:n.map(Gi)}}function Yi(t){var e,a,r,n,i;const o=ke(t);if(!o||o.uniforms.u_patternLines)return;const s=(e=o.uniforms.u_startColor)==null?void 0:e.value,l=(a=o.uniforms.u_endColor)==null?void 0:a.value,c=o.uniforms.u_gradientType;if(!(!(s!=null&&s.getHex)||c==null))return{startColor:s.getHex(),endColor:((r=l==null?void 0:l.getHex)==null?void 0:r.call(l))??s.getHex(),angle:Number(((n=o.uniforms.u_angle)==null?void 0:n.value)??0),shift:Number(((i=o.uniforms.u_shift)==null?void 0:i.value)??0),gradientType:Number(c.value)}}function Gi(t){return{angle:t.angle,base:[t.base.x,t.base.y],offset:[t.offset.x,t.offset.y],dashLengths:[...t.dashLengths],patternLength:t.patternLength}}function Ae(t){const e=t.length/3;if(e<2)return new Float32Array(0);const a=new Float32Array(e);for(let r=0;r<e;r+=2){r===0?a[r]=0:a[r]=a[r-1];const n=t[r*3],i=t[r*3+1],o=t[r*3+2]??0,s=t[(r+1)*3],l=t[(r+1)*3+1],c=t[(r+1)*3+2]??0,d=s-n,u=l-i,p=c-o;a[r+1]=a[r]+Math.sqrt(d*d+u*u+p*p)}return a}function Wi(t,e){const a=t.getAttribute(e);if(!a||a.count===0)return;const r=a.itemSize;if(t.getIndex()){const d=a.array;return et(d,0,a.count*r)}const n=t.drawRange,i=a.count,o=Math.max(0,Math.min(Math.floor(n.start),i)),s=Math.max(0,i-o),l=!Number.isFinite(n.count)||n.count<=0?s:Math.min(Math.floor(n.count),s);if(l<=0)return;const c=a.array;return et(c,o*r,l*r)}function ua(t,e){const a=e[0],r=e[1],n=e[4],i=e[5],o=e[12],s=e[13],l=Math.atan2(r,a),c=(p,m)=>[a*p+n*m+o,r*p+i*m+s],d=(p,m)=>[a*p+n*m,r*p+i*m],u=(p,m,h)=>{const f=Math.cos(h),g=Math.sin(h);return[f*p-g*m,g*p+f*m]};return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(p=>{const m=p.angle+t.patternAngle,h=p.angle+l,f=h+t.patternAngle,[g,w]=d(Math.cos(m),Math.sin(m)),b=Math.hypot(g,w),[A,y]=u(p.offset[0],p.offset[1],m),[I,C]=d(A,y),B=u(I,C,-f);return{angle:h,base:c(p.base[0],p.base[1]),offset:B,dashLengths:p.dashLengths.map(v=>v*b),patternLength:p.patternLength*b}})}}function Ki(t,e){return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(a=>{const r=new je(a.base[0]-e[0],a.base[1]-e[1]),n=new je(a.offset[0],a.offset[1]);return sn(r,n,a.angle,t.patternAngle,a.patternLength),{angle:a.angle,base:[r.x,r.y],offset:[a.offset[0],a.offset[1]],dashLengths:[...a.dashLengths],patternLength:a.patternLength}})}}function ne(t,e){return!Number.isFinite(t)||t<0?0:Math.min(Math.floor(t),e)}function ie(t,e,a){const r=Math.max(0,e-a);return!Number.isFinite(t)||t<=0?r:Math.min(Math.floor(t),r)}function Ft(t){const e=t.getAttribute("position");if(!e)return{positions:new Float32Array(0)};const a=t.drawRange,r=e.array,n=e.itemSize,i=t.getIndex();if(i){const l=et(r,0,e.count*n),c=i.array,d=ne(a.start,i.count),u=ie(a.count,i.count,d),p=Di(c,d,u);return Ja(l,p)}const o=ne(a.start,e.count),s=ie(a.count,e.count,o);return{positions:et(r,o*n,s*n)}}function Lt(t){return Ln(t.flags)&&Pn(t.flags)}function Qa(t){const{count:e}=t.mappingStats;for(let a=0;a<e;a++){let r;try{r=t.getGeometryRangeAt(a)}catch{continue}if(Lt(r)&&r.bboxIntersectionCheck)return!0}return!1}function oe(t){return Pa(t).bboxIntersectionCheck===!0}function Me(t,e){const a=e.getAttribute("position");if(!a)return{positions:new Float32Array(0)};const r=a.itemSize,n=a.array,i=e.getIndex(),{count:o}=t.mappingStats;if(i){const u=et(n,0,a.count*r),p=i.array;let m=0;const h=[];for(let w=0;w<o;w++){let b;try{b=t.getGeometryRangeAt(w)}catch{continue}const A=b.indexStart??0,y=b.indexCount??0;!Lt(b)||y<=0||(h.push({start:A,count:y}),m+=y)}if(m===0)return{positions:new Float32Array(0)};const f=new Uint32Array(m);let g=0;for(const w of h)for(let b=0;b<w.count;b++)f[g++]=p[w.start+b];return Ja(u,f)}let s=0;const l=[];for(let u=0;u<o;u++){let p;try{p=t.getGeometryRangeAt(u)}catch{continue}if(!Lt(p)||p.vertexCount<=0)continue;const m=p.vertexCount*r;l.push({start:p.vertexStart*r,floatCount:m}),s+=m}if(s===0)return{positions:new Float32Array(0)};const c=new Float32Array(s);let d=0;if(n instanceof Float32Array)for(const u of l)c.set(n.subarray(u.start,u.start+u.floatCount),d),d+=u.floatCount;else for(const u of l)for(let p=0;p<u.floatCount;p++)c[d++]=n[u.start+p];return{positions:c}}function ma(t,e,a){t.push(e.getX(a),e.getY(a),e.getZ(a))}function Zi(t,e){const a=e.getAttribute("instanceStart"),r=e.getAttribute("instanceEnd");if(!a||!r)return{positions:new Float32Array(0)};const{count:n}=t.mappingStats,i=[];for(let o=0;o<n;o++){let s;try{s=t.getGeometryRangeAt(o)}catch{continue}if(!Lt(s)||s.vertexCount<=0)continue;const l=s.vertexStart,c=l+s.vertexCount;for(let d=l;d<c;d++)ma(i,a,d),ma(i,r,d)}return{positions:new Float32Array(i)}}function Ji(t,e){const a=t.instanceCount;if(Number.isFinite(a)&&a>=0)return Math.min(Math.floor(a),e);const r=t.drawRange,n=ne(r.start,e);return ie(r.count,e,n)}function qi(t){const e=t.getAttribute("instanceStart"),a=t.getAttribute("instanceEnd");if(!e||!a||e.count===0)return{positions:new Float32Array(0)};const r=Ji(t,e.count);if(r<=0)return{positions:new Float32Array(0)};const n=[];for(let i=0;i<r;i++){const o=[e.getX(i),e.getY(i),e.getZ(i)],s=[a.getX(i),a.getY(i),a.getZ(i)];!o.every(Number.isFinite)||!s.every(Number.isFinite)||n.push(o[0],o[1],o[2],s[0],s[1],s[2])}return{positions:new Float32Array(n)}}function Bt(t,e){let a=t;for(;a&&a!==e;){if(a.visible===!1)return!1;a=a.parent}return!0}function tr(t){if(t instanceof nn)return t.linewidth}function xt(t){if("material"in t){const e=t.userData.originalMaterial??t.material;return Array.isArray(e)?e[0]:e}return t.material}function at(t){var e;const a=za(t),r=a.layer??"0",n=t;let i=n.color!=null?n.color.getHex():a.color??16777215;const o=Vi(t),s=Xi(t),l=Yi(t);if(t instanceof rn||t.type==="ShaderMaterial"){const c=(e=t.uniforms.u_color)==null?void 0:e.value;c!=null&&c.getHex?i=c.getHex():l&&(i=l.startColor)}return{color:i,layer:r,linePattern:o,hatchPattern:s,gradientFill:l,side:s||l?t.side:void 0}}function Qi(t,e){const a=za(e).drawOrder??t.renderOrder;return a===0?void 0:a}function dt(t,e,a){const r=Qi(e,a);r!=null&&(t.renderOrder=r)}function to(t,e){if(!e)return;const a=t.userData.bakedWorldMatrix;return a&&a.length>=16?ua(e,a):(t.updateMatrixWorld(!0),ua(e,Array.from(t.matrixWorld.elements)))}function Rt(t){return Ni(t)}function Zt(t,e,a={}){const r=Ti(t,e,a);return{...r.slice,offset:r.offset}}function eo(t){if(t.indices&&t.indices.length>=3)return t;const e=t.positions.length/3|0;if(e<3||e%3!==0)return t;const a=new Uint32Array(e);for(let r=0;r<e;r++)a[r]=r;return{...t,indices:a}}function kt(t,e,a,r,n,i=!1){i&&(r=eo(r));const o=at(e),s=to(a,o.hatchPattern),l=s?Ki(s,n):void 0,c=o.gradientFill?Wi(t,"gradientPosition"):void 0,d={layer:o.layer,color:o.color,offset:n,hatchPattern:l,gradientFill:o.gradientFill,gradientPositions:c,side:o.side,...r},u=e;if(u.map){const p=_i(u.map),m=ji(t,r.positions);if(!p||!m)return;d.texture=p,d.uvs=m,d.color=16777215,d.side=on}return dt(d,a,e),d}function ao(t){const e=Zi(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r}=at(t.material),n=tr(t.material),i={layer:r,color:a,offset:Rt(t),lineWidth:n,...e};return Qa(t)&&(i.excludeFromOsnap=!0),dt(i,t,t.material),i}function ro(t){const e=Me(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r,linePattern:n}=at(t.material),i=n?Ae(e.positions):void 0,o={layer:r,color:a,offset:Rt(t),linePattern:n,lineDistances:i,...e};return Qa(t)&&(o.excludeFromOsnap=!0),dt(o,t,t.material),o}function no(t){const e=Me(t,t.geometry);if(e.positions.length!==0)return kt(t.geometry,t.material,t,e,Rt(t),!0)}function io(t){const e=Me(t,t.geometry);if(e.positions.length===0)return;const a=kt(t.geometry,t.material,t,e,Rt(t));if(a)return{points:!0,...a}}const q=new ut,Pt=new ut,bt=new Rn;bt.matrixAutoUpdate=!1;function oo(t){const e=t;return e.isInstancedMesh===!0&&e.instanceMatrix!=null&&typeof e.count=="number"&&e.geometry!=null}function so(t){return t.renderOrder<1e4||t.isInstancedMesh===!0?!1:Pa(t).sharesTemplateGeometry===!0}function se(t){const e=t.elements;for(let i=0;i<16;i++)if(!Number.isFinite(e[i]))return!1;const a=Math.hypot(e[0],e[1],e[2]),r=Math.hypot(e[4],e[5],e[6]),n=Math.hypot(e[8],e[9],e[10]);return a+r+n>=1e-8}function er(t,e){var a;const r=ct(Ft(t.geometry),e),n=r.positions.length;if(n===0)return;t.updateMatrixWorld(!0);const i=t.instanceMatrix.array,o=((a=r.indices)==null?void 0:a.length)??0;let s=0;for(let m=0;m<t.count;m++)q.fromArray(i,m*16),se(q)&&s++;if(s===0)return;const l=new Float32Array(s*n),c=r.indices!=null?new Uint32Array(s*o):void 0,d=n/3;let u=0;for(let m=0;m<t.count;m++){if(q.fromArray(i,m*16),!se(q))continue;Pt.multiplyMatrices(t.matrixWorld,q);const h=ye(r,Pt);if(l.set(h.positions,u*n),c&&h.indices){const f=u*d;for(let g=0;g<h.indices.length;g++)c[u*o+g]=h.indices[g]+f}u++}const p=ve(ct({positions:l,indices:c},e));if(p.slice.positions.length!==0)return{slice:p.slice,offset:p.offset}}function lo(t){const e=at(t),a=t;return!!(e.hatchPattern||e.gradientFill||a.map)}function co(t,e){t.updateMatrixWorld(!0);const a=t.instanceMatrix.array;for(let r=0;r<t.count;r++)q.fromArray(a,r*16),se(q)&&(Pt.multiplyMatrices(t.matrixWorld,q),e(Pt))}function uo(t,e){const a=er(t,2);if(!a)return;const r=xt(t),{color:n,layer:i,linePattern:o}=at(r),s=o?Ae(a.slice.positions):void 0,l={layer:i,color:n,offset:a.offset,linePattern:o,lineDistances:s,...a.slice};oe(t)&&(l.excludeFromOsnap=!0),dt(l,t,r),e.push(l)}function pa(t,e,a){const r=xt(t);if(!a&&qa(r))return;if(!a&&lo(r)){const o=ct(Ft(t.geometry),3);if(o.positions.length===0)return;co(t,s=>{const l=ct(ye(o,s),3);if(l.positions.length===0)return;const c=ve(l);bt.matrix.copy(s),bt.matrixWorld.copy(s),bt.matrixWorldNeedsUpdate=!1;const d=kt(t.geometry,r,bt,c.slice,c.offset,!0);d&&e.push(d)});return}const n=er(t,a?1:3);if(!n)return;const i=kt(t.geometry,r,t,n.slice,n.offset,!a);i&&e.push(a?{...i,points:!0}:i)}function Et(t){const e=t;return t instanceof en||e.isLineSegments2===!0||t.type==="LineSegments2"}function ha(t){const e=t;return t instanceof tn||e.isLineSegments===!0||t.type==="LineSegments"}function fa(t){const e=t;return t instanceof an||e.isMesh===!0||e.isInstancedMesh===!0||t.type==="Mesh"}function mo(t){const e=[],a=[];return t.traverse(r=>{if(!(Yr(r)||Gr(r)||so(r))){if(oo(r)){if(!Bt(r,t))return;r.isPoints===!0?pa(r,a,!0):ha(r)&&!Et(r)?uo(r,e):fa(r)&&!Et(r)&&pa(r,a,!1);return}if(r instanceof $e){const n=ro(r);n&&e.push(n);return}if(r instanceof Wr){const n=ao(r);n&&e.push(n);return}if(r instanceof He){const n=no(r);n&&a.push(n);return}if(r instanceof Kr){const n=io(r);n&&a.push(n);return}if(Et(r)){if(!Bt(r,t))return;const n=qi(r.geometry);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s}=at(i),{offset:l,...c}=Zt(r,n),d={layer:s,color:o,offset:l,lineWidth:tr(i),...c};oe(r)&&(d.excludeFromOsnap=!0),dt(d,r,i),e.push(d)}else if(ha(r)&&!(r instanceof $e)){if(!Bt(r,t))return;const n=ct(Ft(r.geometry),2);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s,linePattern:l}=at(i),{offset:c,...d}=Zt(r,n),u=l?Ae(d.positions):void 0,p={layer:s,color:o,offset:c,linePattern:l,lineDistances:u,...d};oe(r)&&(p.excludeFromOsnap=!0),dt(p,r,i),e.push(p)}else if(fa(r)&&!Et(r)&&!(r instanceof He)){if(!Bt(r,t))return;const n=xt(r);if(qa(n))return;const i=ct(Ft(r.geometry),3);if(i.positions.length===0)return;const{offset:o,...s}=Zt(r,i),l=kt(r.geometry,n,r,s,o,!0);l&&a.push(l)}}}),{lineBatches:e,meshBatches:a}}const ga={size:8,colorCss:"#0080ff",hotColorCss:"#ff0000"};function ba(t){const e=new qr(Qr.ByACI,t);return e.cssColor??`rgb(${e.red}, ${e.green}, ${e.blue})`}function po(t){try{const e=Xr.instance(),a=e.getVar(Gt.GRIPSIZE,t),r=e.getVar(Gt.GRIPCOLOR,t),n=e.getVar(Gt.GRIPHOT,t);return!(a>0)||!Number.isFinite(a)?ga:{size:a,colorCss:ba(r),hotColorCss:ba(n)}}catch{return ga}}function ar(t,e){const a=t.extmin,r=t.extmax,n=po(t);return{title:e==null?void 0:e.title,extents:{minX:a.x,minY:a.y,maxX:r.x,maxY:r.y},units:{insunits:t.insunits,lunits:t.lunits,luprec:t.luprec,aunits:t.aunits,auprec:t.auprec,measurement:t.measurement,ltscale:t.ltscale,angbase:t.angbase,angdir:t.angdir},grip:n,background:(e==null?void 0:e.background)??0}}function wa(t,e,a,r,n){return Math.atan2(r-e,n*(a-t))}function Be(t){return t.z>=0?1:-1}function rr(t,e,a){if(!(a.radius>0)||!Number.isFinite(a.radius))return;const r=a.clockwise?-1:1,n=a.center.x,i=a.center.y;t.push({kind:"arc",layer:e,cx:n,cy:i,r:a.radius,startAngle:wa(n,i,a.startPoint.x,a.startPoint.y,r),endAngle:wa(n,i,a.endPoint.x,a.endPoint.y,r),normalSign:r})}function F(t,e){const a=new V(e.x,e.y,e.z??0).applyMatrix4(t);return{x:a.x,y:a.y}}function ho(t){const e=t.elements;return new ut(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])}function zt(t,e){return new ut().multiplyMatrices(t,ho(e))}function nr(t,e){const a=new V(e.x,e.y,e.z??0).transformDirection(t).normalize();return{x:a.x,y:a.y}}function le(t){const e=new V(t.elements[0],t.elements[1],t.elements[2]).length(),a=new V(t.elements[4],t.elements[5],t.elements[6]).length();return lt.equal(e,a,Ua*Math.max(e,a,1))}function fo(t,e){const a=t.tables.blockTable.getIdAt(e);if(a)return a;for(const n of t.tables.blockTable.newIterator())if(n.objectId===e)return n;const r=t.tables.blockTable.modelSpace;if(r.objectId===e)return r}function go(t){if(t instanceof zn)return!0;const e=t;return(e.type==="LINE"||e.type==="Line")&&e.startPoint!=null&&e.endPoint!=null}function bo(t,e,a,r){r.startPoint,r.endPoint}function ir(t,e){return t.blockTableRecord??(t.blockName?e.tables.blockTable.getAt(t.blockName):void 0)}function wo(t,e){const a=t.dimBlockId;return a?e.tables.blockTable.getAt(a):void 0}function xo(t,e){const a=ir(t,e);if(a)return a;const r=t.owningBlockRecordId;return r?e.tables.blockTable.getAt(r):void 0}function or(t){return t.getFullInsertionTransform()}function yo(t){for(const e of t.newIterator())return!0;return!1}function vo(t){return typeof t.getFullInsertionTransform=="function"&&"blockTableRecord"in t}function Q(t,e,a,r,n){if(r.length<2)return;const i=le(a),o=a.elements[0]*a.elements[5]-a.elements[4]*a.elements[1]<0?-1:1,s=[];for(const l of r){const c=F(a,l);let d=l.bulge??0;lt.isPositive(Math.abs(d))&&(d=i?d*o:0),s.push(c.x,c.y,d)}t.push({kind:"path",layer:e,closed:n,vertices:s})}function sr(t,e){return lt.equal(t.x,e.x)&&lt.equal(t.y,e.y)}function ko(t){return(t.clockwise?-1:1)*Math.tan(t.deltaAngle/4)}function xa(t,e,a,r){if(t.length===0){t.push({x:e.x,y:e.y,z:e.z??0,bulge:r}),t.push({x:a.x,y:a.y,z:a.z??0,bulge:0});return}const n=t[t.length-1];sr(n,e)?n.bulge=r:(n.bulge=0,t.push({x:e.x,y:e.y,z:e.z??0,bulge:r})),t.push({x:a.x,y:a.y,z:a.z??0,bulge:0})}function ya(t){return t.length>=2&&sr(t[0],t[t.length-1])&&t.pop(),t}function yt(t,e,a,r,n){if(r.length<2)return;const i=n?r.length:r.length-1;for(let o=0;o<i;o++)r[o],r[(o+1)%r.length]}function Ao(t,e,a,r){const n=[r.startPosition];for(const i of r.segments)n.push(i.position);yt(t,e,a,n,r.closed)}function Mo(t,e,a){if(a.vertices.length>=2)return a.vertices;if(a.vertices.length===0)return[];const r=a.vertices[0],n=e.lastLeaderLinePoint??e.landingPoint??t.landingPoint??t.contentBasePosition;if(!n)return a.vertices;const i=r.x-n.x,o=r.y-n.y,s=(r.z??0)-(n.z??0);return Math.hypot(i,o,s)<=Ua?a.vertices:[r,n]}function Bo(t,e,a,r){var n,i;for(const s of r.leaders)for(const l of s.leaderLines){const c=Mo(r,s,l);yt(t,e,a,c,!1)}const o=s=>{if(!s)return;const l=F(a,s);t.push({kind:"point",layer:e,x:l.x,y:l.y})};o(r.contentBasePosition),o((n=r.mtextContent)==null?void 0:n.anchorPoint),o((i=r.blockContent)==null?void 0:i.position)}function Eo(t,e,a,r){const n=r.numberOfVertices;if(n<2)return;const i=r.elevation,o=r.closed?n:n-1;for(let s=0;s<o;s++){const l=r.getPointAt(s),c=r.getPointAt((s+1)%n),d=r.getBulgeAt(s),u={x:l.x,y:l.y,z:i},p={x:c.x,y:c.y,z:i};if(lt.isPositive(Math.abs(d))){const m=F(a,u),h=F(a,p);rr(t,e,new me(m,h,d))}}}function Co(t,e,a,r,n,i){const o=F(a,r),s=new V(a.elements[0],a.elements[1],a.elements[2]).length(),l={kind:"circle",layer:e,cx:o.x,cy:o.y,r:n*s,normalSign:Be(i)};t.push(l)}function Io(t,e,a,r){const n=F(a,r.center),i=new V(a.elements[0],a.elements[1],a.elements[2]).length(),o={kind:"arc",layer:e,cx:n.x,cy:n.y,r:r.radius*i,startAngle:r.startAngle,endAngle:r.endAngle,normalSign:Be(r.normal)};t.push(o)}function Jt(t,e,a,r){const n=F(a,r.center),i=r._geo,o=(i==null?void 0:i.majorAxis)??{x:1,y:0,z:0},s=nr(a,o),l=Math.hypot(s.x,s.y)||1,c=new V(a.elements[0],a.elements[1],a.elements[2]).length(),d=new V(a.elements[4],a.elements[5],a.elements[6]).length(),u={kind:"ellipse",layer:e,cx:n.x,cy:n.y,majorX:s.x/l,majorY:s.y/l,majorR:r.majorAxisRadius*c,minorR:r.minorAxisRadius*d,startAngle:r.startAngle,endAngle:r.endAngle,closed:r.closed,normalSign:Be(r.normal)};t.push(u)}function So(t,e,a,r){var n,i;const o=r._geo;if(!((n=o==null?void 0:o.controlPoints)!=null&&n.length))return;const s=[];for(const c of o.controlPoints){const d=F(a,c);s.push(d.x,d.y)}const l={kind:"spline",layer:e,controlPoints:s,degree:o.degree??3,knots:[...o.knots??[]],weights:[...o.weights??[]],closed:o.closed??!1};if((i=o.fitPoints)!=null&&i.length){l.fitPoints=[];for(const c of o.fitPoints){const d=F(a,c);l.fitPoints.push(d.x,d.y)}}t.push(l)}const va=1e-6;function Fo(t){var e;const a=t.elevation,r=(e=t._geo)==null?void 0:e.vertices;return r&&r.length>1?r.map(n=>({x:n.x,y:n.y,z:a,bulge:n.bulge,startWidth:n.startWidth,endWidth:n.endWidth})):Array.from({length:t.numberOfVertices},(n,i)=>{const o=t.getPoint2dAt(i);return{x:o.x,y:o.y,z:a,bulge:0}})}function Lo(t){return t.some(e=>{const a=Math.max(0,e.startWidth??0),r=Math.max(0,e.endWidth??0);return a>va||r>va})}function Po(t,e,a,r){const n=Fo(r),i=n.length;if(i<2)return;if(Lo(n)){Q(t,e,a,n,r.closed);return}const o=r.closed?i:i-1;for(let s=0;s<o;s++){const l=n[s],c=n[(s+1)%i],d=l.bulge??0;if(lt.isPositive(Math.abs(d))){const u=F(a,l),p=F(a,c);rr(t,e,new me(u,p,d))}}}function zo(t,e,a,r,n){const i=F(a,{x:r.center.x,y:r.center.y,z:n}),o=nr(a,{x:Math.cos(r.rotation),y:Math.sin(r.rotation),z:0}),s=Math.hypot(o.x,o.y)||1,l=new V(a.elements[0],a.elements[1],a.elements[2]).length(),c=new V(a.elements[4],a.elements[5],a.elements[6]).length();t.push({kind:"ellipse",layer:e,cx:i.x,cy:i.y,majorX:o.x/s,majorY:o.y/s,majorR:r.majorAxisRadius*l,minorR:r.minorAxisRadius*c,startAngle:r.startAngle,endAngle:r.endAngle,closed:!1,normalSign:r.clockwise?-1:1})}function Uo(t,e,a,r,n){var i;const o=r.numberOfVertices;if(o<2)return;const s=[];for(let l=0;l<o;l++){const c=r.getPointAt(l);s.push({x:c.x,y:c.y,z:n,bulge:((i=r.vertices[l])==null?void 0:i.bulge)??0})}Q(t,e,a,s,r.closed)}function Do(t,e,a,r,n){if(r instanceof Dn){Uo(t,e,a,r,n);return}if(!(r instanceof Nn))return;const i=[];let o=!1;const s=()=>{const c=ya(i);c.length>=2&&Q(t,e,a,c,!1),i.length=0};for(const c of r.curves)c instanceof Tn?xa(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},0):c instanceof me?xa(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},ko(c)):c instanceof _n&&(o=!0,s(),zo(t,e,a,c,n));const l=ya(i);l.length>=2&&Q(t,e,a,l,!o)}function No(t,e,a,r){var n;const i=(n=r._geo)==null?void 0:n.loops;if(!(i!=null&&i.length))return;const o=r.elevation;for(const s of i)Do(t,e,a,s,o)}function To(t,e,a,r){zt(a,or(r));const n=[0];for(let o=0;o<r.numColumns;o++)n.push(n[o]+r.columnWidth(o));const i=[0];for(let o=0;o<r.numRows;o++)i.push(i[o]-r.rowHeight(o));n[n.length-1],i[i.length-1];for(const o of i);for(const o of n);}function _o(t,e,a,r,n,i,o,s=!0){const l=ce(t.layer,a);if(o&&!o(l))return;const c=xo(t,i);if(c&&!n.has(c.objectId)&&yo(c)){n.add(c.objectId);const u=zt(e,or(t));Ut(c,u,l,r,n,i,o,s),n.delete(c.objectId);return}To(r,l,e,t);const d=F(e,t.position);r.push({kind:"point",layer:l,x:d.x,y:d.y})}function Ro(t,e,a,r){let n=r.boundaryPath();if(n.length>1){const o=n[0],s=n[n.length-1];o.x===s.x&&o.y===s.y&&(o.z??0)===(s.z??0)&&(n=n.slice(0,-1))}n.length>=2&&Q(t,e,a,n,!0);const i=F(a,r.position);t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Oo(t,e,a,r){const n=r.position();Q(t,e,a,[n.upperLeft,n.upperRight,n.lowerRight,n.lowerLeft],!0);const i=F(a,r.getLocation());t.push({kind:"point",layer:e,x:i.x,y:i.y})}function $o(t){var e;const a=(e=t.attributeIterator)==null?void 0:e.call(t);return a?typeof a.toArray=="function"?a.toArray():[...a]:[]}function ce(t,e){return t==="0"?e:t}function lr(t,e,a,r,n,i,o,s=!0){if(!t.visibility)return;const l=ce(t.layer,a);if(!(o&&!o(l))){if(t instanceof ln){_o(t,e,a,r,n,i,o,s);return}if(vo(t)){const c=ir(t,i);if(!c||n.has(c.objectId))return;n.add(c.objectId);const d=t.getFullInsertionTransform(),u=Math.max(1,t.columnCount??1),p=Math.max(1,t.rowCount??1),m=t.columnSpacing??0,h=t.rowSpacing??0,f=ce(t.layer,a);for(let g=0;g<p;g++)for(let w=0;w<u;w++){const b=zt(e,d);(w!==0||g!==0)&&b.multiply(new ut().makeTranslation(w*m,g*h,0));const A=F(b,{x:0,y:0,z:0});r.push({kind:"point",layer:f,x:A.x,y:A.y}),Ut(c,b,f,r,n,i,o,s)}for(const g of $o(t))g instanceof cn,g.isInvisible||lr(g,e,f,r,n,i,o,s);n.delete(c.objectId);return}if(t instanceof dn){const c=t,d=wo(c,i);if(!d||n.has(d.objectId))return;n.add(d.objectId);const u=zt(e,c.getFullDimBlockTransform());Ut(d,u,l,r,n,i,o,!0),n.delete(d.objectId);return}if(go(t)){bo(r,l,e,t);return}if(t instanceof un){le(e)?Co(r,l,e,t.center,t.radius,t.normal):Jt(r,l,e,Ho(t));return}if(t instanceof mn){le(e)?Io(r,l,e,t):Jt(r,l,e,jo(t));return}if(t instanceof ue){Jt(r,l,e,t);return}if(t instanceof pn){So(r,l,e,t);return}if(t instanceof hn){Po(r,l,e,t);return}if(t instanceof fn){Eo(r,l,e,t);return}if(t instanceof gn){const c=[];for(let d=0;d<t.numberOfVertices;d++)c.push(t.getPointAt(d));yt(r,l,e,c,t.closed);return}if(t instanceof bn){s&&No(r,l,e,t);return}if(t instanceof wn){t.basePoint,t.unitDir;return}if(t instanceof xn){t.basePoint,t.unitDir;return}if(t instanceof yn){Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof vn){s&&Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof kn){const c=t.subGetGripPoints();c.length>=2&&yt(r,l,e,c,c.length>=3);return}if(t instanceof An){const c=t.vertices;c.length>=2&&yt(r,l,e,c,!1);return}if(t instanceof Mn){Ao(r,l,e,t);return}if(t instanceof Bn){Bo(r,l,e,t);return}if(t instanceof En){const c=F(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof Cn){const c=F(e,t.location);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof In){s&&Oo(r,l,e,t);return}if(t instanceof Sn){s&&Ro(r,l,e,t);return}if(t instanceof Fn){const c=F(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y})}}}function Ut(t,e,a,r,n,i,o,s=!0){for(const l of t.newIterator())lr(l,e,a,r,n,i,o,s)}function Ho(t){return new ue(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,0,Un)}function jo(t){return new ue(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,t.startAngle,t.endAngle)}function Vo(t,e,a={}){const r=fo(t,e);if(!r)return{primitives:[]};const n=[],i=new ut;return Ut(r,i,"0",n,new Set,t,a.includeLayer),{primitives:n.filter(o=>o.kind!=="line"&&Xo(o))}}function Xo(t){switch(t.kind){case"line":return Number.isFinite(t.x0)&&Number.isFinite(t.y0)&&Number.isFinite(t.x1)&&Number.isFinite(t.y1);case"circle":return Number.isFinite(t.cx)&&Number.isFinite(t.cy)&&Number.isFinite(t.r);case"arc":return Number.isFinite(t.cx)&&Number.isFinite(t.cy)&&Number.isFinite(t.r)&&Number.isFinite(t.startAngle)&&Number.isFinite(t.endAngle);case"ellipse":return Number.isFinite(t.cx)&&Number.isFinite(t.cy)&&Number.isFinite(t.majorX)&&Number.isFinite(t.majorY)&&Number.isFinite(t.majorR)&&Number.isFinite(t.minorR)&&Number.isFinite(t.startAngle)&&Number.isFinite(t.endAngle);case"spline":return t.controlPoints.every(e=>Number.isFinite(e))&&t.knots.every(e=>Number.isFinite(e))&&t.weights.every(e=>Number.isFinite(e));case"point":return Number.isFinite(t.x)&&Number.isFinite(t.y);case"path":return t.vertices.length>=6&&t.vertices.length%3===0&&t.vertices.every(e=>Number.isFinite(e));default:return t}}const Yo=["en","zh","cs","tr","ar"];function Ee(t){if(t==null||t==="")return null;const e=t.toLowerCase().replace("_","-");for(const a of Yo)if(e===a||e.startsWith(`${a}-`))return a;return null}const Go=1128612673;function cr(t){if(t.version!==X)throw new Error(`Unsupported chunk version: ${t.version}`);const e=new ge;e.writeU32(Go),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeString(t.layoutBtrId),e.writeU32(t.lineBatches.length);for(const a of t.lineBatches)Ga(e,a);e.writeU32(t.meshBatches.length);for(const a of t.meshBatches)Wa(e,a);return e.toUint8Array()}async function Wo(t){const e=cr(t),a=(await Ya(e)).bytes;return{uncompressed:e,compressed:a}}const Ko=1,dr=2*1024*1024,Ot=2*1024*1024,Zo=8*1024*1024,ka=12*1024*1024,Jo=2*1024*1024,$t="drawing.acex.json",qo=`./${$t}`;function Ce(...t){return`<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 1024 1024">${t.map(e=>`<path fill="currentColor" d="${e}"/>`).join("")}</svg>`}Ce("M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0M128 896v-64h768v64z");Ce("M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160");Ce("M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176","M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48");const Qo='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" aria-hidden="true"><path fill="currentColor" d="M10 13.5 14.5 9h-9L10 13.5Z"/></svg>',ts='<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 20 20"><path fill="currentColor" d="M10.09 3.53 16.09 6.97 10.09 10.29 4.18 7 10.09 3.56M10.09 2.4 2.17 7 3.31 7.65 10.09 11.45 17 7.62 18.17 7 10.08 2.37 10.09 2.4Z"/><path fill="currentColor" d="M10.25 14.83 18.17 10.22 17 9.57 10.22 13.57 3.32 9.59 2.17 10.22 10.25 14.83Z"/><path fill="currentColor" d="M10.25 17.63 18.17 13 17 12.37 10.22 16.37 3.32 12.38 2.17 13 10.25 17.63Z"/></svg>',es='<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 20 20"><path fill="currentColor" d="M10.09 5.15 16.09 8.59 10.09 11.91 4.18 8.59 10.09 5.15ZM10.09 4 2.17 8.61 3.31 9.25 10.09 13.06 17 9.24 18.16 8.61 10.08 4 10.09 4Z"/><path fill="currentColor" d="M10.25 16.46 18.17 11.85 17 11.2 10.22 15.2 3.32 11.21 2.17 11.85 10.25 16.46Z"/><path fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" d="M3.5 3.5 16.5 16.5"/></svg>',de={layerOn:ts,layerOff:es,chevronDown:Qo},as=[90,45,30,23,18,10,5];function rs(){return`<div id="mlcad-polar-angles" role="group" data-i18n-attr="aria-label" data-i18n-key="settings.polarAngles" aria-label="Polar tracking angles" hidden>
2
2
  ${as.map(t=>`<button type="button" class="mlcad-tool-btn mlcad-settings-option-btn mlcad-polar-angle-btn" data-polar-ang="${t}" title="${t}°" aria-label="${t}°"><span class="mlcad-settings-option-indicator" aria-hidden="true"></span><span class="mlcad-settings-option-text">${t}°</span></button>`).join("")}
3
3
  </div>`}const ns=600,is=960,os=1.231,Ie=`
4
4
  :root {
@@ -1383,7 +1383,7 @@ import{D as Xr,E as Gt,F as Yr,V as Gr,G as $e,H as Wr,I as He,J as Kr,K as Zr,L
1383
1383
  visibility: hidden !important;
1384
1384
  pointer-events: none !important;
1385
1385
  }
1386
- `;function Fe(t,e="measure",a=!0){const r=e==="measure"?`${rs()}${ls()}${ss()}`:"";return`
1386
+ `;function Se(t,e="measure",a=!0){const r=e==="measure"?`${rs()}${ls()}${ss()}`:"";return`
1387
1387
  <div id="mlcad-loading" aria-hidden="true" style="background:${t}">
1388
1388
  <div class="mlcad-loading-spinner"></div>
1389
1389
  <div id="mlcad-access-gate" hidden>
@@ -1417,7 +1417,7 @@ import{D as Xr,E as Gt,F as Yr,V as Gr,G as $e,H as Wr,I as He,J as Kr,K as Zr,L
1417
1417
  <nav id="mlcad-toolbar" data-i18n-attr="aria-label" data-i18n-key="toolbar.viewerTools" aria-label="Viewer tools"></nav>
1418
1418
  ${r}
1419
1419
  <div id="mlcad-layer-drawer" role="dialog" data-i18n-attr="aria-label" data-i18n-key="layers.title" aria-label="Layers" hidden>
1420
- ${Se("mlcad-layer-sheet-close","layers.close","Close layers")}
1420
+ ${Fe("mlcad-layer-sheet-close","layers.close","Close layers")}
1421
1421
  <div class="mlcad-drawer-header">
1422
1422
  <span data-i18n-key="layers.title" data-i18n-text>Layers</span>
1423
1423
  <button type="button" class="mlcad-drawer-close" id="mlcad-layer-close" data-i18n-key="layers.close" data-i18n-attr="aria-label" aria-label="Close layers">×</button>
@@ -1434,11 +1434,11 @@ import{D as Xr,E as Gt,F as Yr,V as Gr,G as $e,H as Wr,I as He,J as Kr,K as Zr,L
1434
1434
  </div>
1435
1435
  </aside>
1436
1436
  </div>
1437
- `}function Se(t,e,a){return`<div class="mlcad-drawer-sheet-chrome">
1437
+ `}function Fe(t,e,a){return`<div class="mlcad-drawer-sheet-chrome">
1438
1438
  <div class="mlcad-drawer-grabber" role="separator" aria-orientation="horizontal"></div>
1439
1439
  <button type="button" class="mlcad-drawer-sheet-close" id="${t}" data-i18n-key="${e}" data-i18n-attr="aria-label" aria-label="${a}">${de.chevronDown}</button>
1440
1440
  </div>`}function ss(){return`<div id="mlcad-review-drawer" role="dialog" data-i18n-attr="aria-label" data-i18n-key="review.title" aria-label="Review" hidden>
1441
- ${Se("mlcad-review-sheet-close","review.close","Close review")}
1441
+ ${Fe("mlcad-review-sheet-close","review.close","Close review")}
1442
1442
  <div class="mlcad-drawer-header">
1443
1443
  <span data-i18n-key="review.title" data-i18n-text>Review</span>
1444
1444
  <button type="button" class="mlcad-drawer-close" id="mlcad-review-close" data-i18n-key="review.close" data-i18n-attr="aria-label" aria-label="Close review">×</button>
@@ -1487,7 +1487,7 @@ import{D as Xr,E as Gt,F as Yr,V as Gr,G as $e,H as Wr,I as He,J as Kr,K as Zr,L
1487
1487
  </div>
1488
1488
  </div>
1489
1489
  </div>`}function ls(){return`<div id="mlcad-measure-drawer" role="dialog" data-i18n-attr="aria-label" data-i18n-key="measurePanel.title" aria-label="Measurements" hidden>
1490
- ${Se("mlcad-measure-sheet-close","measurePanel.close","Close measurements")}
1490
+ ${Fe("mlcad-measure-sheet-close","measurePanel.close","Close measurements")}
1491
1491
  <div class="mlcad-drawer-header">
1492
1492
  <span data-i18n-key="measurePanel.title" data-i18n-text>Measurements</span>
1493
1493
  <button type="button" class="mlcad-drawer-close" id="mlcad-measure-close" data-i18n-key="measurePanel.close" data-i18n-attr="aria-label" aria-label="Close measurements">×</button>
@@ -1514,7 +1514,7 @@ import{D as Xr,E as Gt,F as Yr,V as Gr,G as $e,H as Wr,I as He,J as Kr,K as Zr,L
1514
1514
  <tbody></tbody>
1515
1515
  </table>
1516
1516
  </div>
1517
- </div>`}function cs(t,e){var a;const r=e.title??t.meta.title??"CAD Drawing",n=e.encoded??Za(t),i=e.viewerRuntime,o=Ui(),s=n.compression,l=((a=e.accessManifest)==null?void 0:a.encrypted)===!0,c=`#${t.meta.background.toString(16).padStart(6,"0")}`,d=Be(t.meta.locale)??"en",u=t.meta.viewerMode??"measure",p=t.meta.exportLayouts!==!1,m=e.accessManifest?` <script id="mlcad-access" type="application/json">${pr(JSON.stringify(e.accessManifest))}<\/script>
1517
+ </div>`}function cs(t,e){var a;const r=e.title??t.meta.title??"CAD Drawing",n=e.encoded??Za(t),i=e.viewerRuntime,o=Ui(),s=n.compression,l=((a=e.accessManifest)==null?void 0:a.encrypted)===!0,c=`#${t.meta.background.toString(16).padStart(6,"0")}`,d=Ee(t.meta.locale)??"en",u=t.meta.viewerMode??"measure",p=t.meta.exportLayouts!==!1,m=e.accessManifest?` <script id="mlcad-access" type="application/json">${pr(JSON.stringify(e.accessManifest))}<\/script>
1518
1518
  `:"",h=l?`${o}+aes-gcm;base85`:`${o}+${s};base85`;return`<!DOCTYPE html>
1519
1519
  <html lang="${d}">
1520
1520
  <head>
@@ -1525,11 +1525,11 @@ import{D as Xr,E as Gt,F as Yr,V as Gr,G as $e,H as Wr,I as He,J as Kr,K as Zr,L
1525
1525
  <style>${Ie}</style>
1526
1526
  </head>
1527
1527
  <body>
1528
- ${Fe(c,u,p)}
1528
+ ${Se(c,u,p)}
1529
1529
  ${m} <script id="mlcad-snapshot" type="${h}">${n.payload}<\/script>
1530
1530
  <script>${mr(i)}<\/script>
1531
1531
  </body>
1532
- </html>`}function ds(t,e){var a;const r=e.title??t.meta.title??"CAD Drawing",n=e.viewerRuntime,i=`#${t.meta.background.toString(16).padStart(6,"0")}`,o=Be(t.meta.locale)??"en",s=t.meta.viewerMode??"measure",l=t.meta.exportLayouts!==!1,c=(a=e.manifestUrl)==null?void 0:a.trim(),d=JSON.stringify(c&&c!==qo?{manifestUrl:c}:{});return`<!DOCTYPE html>
1532
+ </html>`}function ds(t,e){var a;const r=e.title??t.meta.title??"CAD Drawing",n=e.viewerRuntime,i=`#${t.meta.background.toString(16).padStart(6,"0")}`,o=Ee(t.meta.locale)??"en",s=t.meta.viewerMode??"measure",l=t.meta.exportLayouts!==!1,c=(a=e.manifestUrl)==null?void 0:a.trim(),d=JSON.stringify(c&&c!==qo?{manifestUrl:c}:{});return`<!DOCTYPE html>
1533
1533
  <html lang="${o}">
1534
1534
  <head>
1535
1535
  <meta charset="utf-8" />
@@ -1539,12 +1539,12 @@ ${m} <script id="mlcad-snapshot" type="${h}">${n.payload}<\/script>
1539
1539
  <style>${Ie}</style>
1540
1540
  </head>
1541
1541
  <body>
1542
- ${Fe(i,s,l)}
1542
+ ${Se(i,s,l)}
1543
1543
  <script id="mlcad-package" type="application/json">${pr(d)}<\/script>
1544
1544
  <script>${mr(n)}<\/script>
1545
1545
  </body>
1546
- </html>`}function ur(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function mr(t){return t.replace(/<\/script/gi,"<\\/script")}function pr(t){return t.replace(/</g,"\\u003c")}const us=1,ms=1e5,ps=16,hs=12;function fs(t,e=Date.now(),a){return t==="never"?null:t==="custom"?a??null:e+t*24*60*60*1e3}function hr(t){var e;const a=!!((e=t.password)!=null&&e.trim());return t.expiresAt!=null||a}function Dt(t){var e;if(!hr(t))return;const a=!!((e=t.password)!=null&&e.trim());return{v:us,expiresAt:t.expiresAt,encrypted:a,...a&&t.salt?{salt:t.salt}:{}}}async function fr(t,e){const a=crypto.getRandomValues(new Uint8Array(ps));return{key:await xs(t,a),salt:gr(a)}}async function Le(t,e){const a=crypto.getRandomValues(new Uint8Array(hs)),r=new Uint8Array(e),n=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:a},t,r)),i=new Uint8Array(a.length+n.length);return i.set(a,0),i.set(n,a.length),i}async function gs(t,e,a="base85"){const{key:r,salt:n}=await fr(t),i=li(e,a),o=await Le(r,i);return{encryptedPayload:_t(o,a),salt:n}}function bs(t){return gr(t)}async function ws(t,e){var a;if(!hr(e))return{encoded:t};const r=(a=e.password)==null?void 0:a.trim();if(r){const{encryptedPayload:n,salt:i}=await gs(r,t.payload);return{encoded:{payload:n,compression:t.compression},manifest:Dt({expiresAt:e.expiresAt,password:r,salt:i})}}return{encoded:t,manifest:Dt({expiresAt:e.expiresAt})}}async function xs(t,e){const a=new TextEncoder,r=await crypto.subtle.importKey("raw",a.encode(t),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:new Uint8Array(e),iterations:ms,hash:"SHA-256"},r,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}function gr(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}const ys=256;function vs(t,e=Ot){return!(e>0)||be(t)<=e?[t]:t.indices&&t.indices.length>=2?Ms(t,e):As(t,e)}function ks(t,e=Ot){return t.texture?[t]:!(e>0)||we(t)<=e?[t]:t.points?Bs(t,e):!t.indices||t.indices.length<3?wr(t,e):Is(t,e)}function br(t){return t.linePattern?64+t.linePattern.pattern.length*8:0}function Pe(t){return(t.hatchPattern?128:0)+(t.gradientFill?64:0)}function Mt(t,e,a){const r=t-ys-e;return r<a?1:Math.max(1,Math.floor(r/a))}function As(t,e){var a;const r=(((a=t.lineDistances)==null?void 0:a.length)??0)>=2,n=24+(r?8:0),i=Mt(e,br(t),n),o=t.positions.length/6|0;if(o<=1)return[t];const s=[];for(let l=0;l<o;l+=i){const c=Math.min(i,o-l),d=l*6,u={layer:t.layer,color:t.color,offset:t.offset,positions:t.positions.slice(d,d+c*6)};if(vr(t,u),r&&t.lineDistances){const p=l*2;u.lineDistances=t.lineDistances.slice(p,p+c*2)}s.push(u)}return s.length>0?s:[t]}function Ms(t,e){var a;const r=t.indices,n=32+((((a=t.lineDistances)==null?void 0:a.length)??0)>0?8:0),i=Mt(e,br(t),n),o=[];for(let s=0;s+1<r.length;){const l=Math.min(i*2,r.length-s),c=l-l%2;if(c<2)break;o.push(Es(t,s,c)),s+=c}return o.length>0?o:[t]}function Es(t,e,a){const r=yr(t.positions,t.indices.subarray(e,e+a),t.lineDistances?[t.lineDistances]:[],[1]),n={layer:t.layer,color:t.color,offset:t.offset,positions:r.positions,indices:r.indices};return vr(t,n),r.attributes[0]&&r.attributes[0].length>0&&(n.lineDistances=r.attributes[0]),n}function Bs(t,e){return t.indices&&t.indices.length>0?Cs(t,e):wr(t,e)}function Cs(t,e){const a=t.indices,r=16+(t.uvs?8:0)+(t.gradientPositions?8:0),n=Mt(e,Pe(t),r),i=[];for(let o=0;o<a.length;){const s=Math.min(n,a.length-o);if(s<1)break;i.push(xr(t,o,s)),o+=s}return i.length>0?i:[t]}function wr(t,e){const a=t.positions.length/3|0;if(a<=1)return[t];const r=12+(t.uvs?8:0)+(t.gradientPositions?8:0),n=Mt(e,Pe(t),r),i=t.points?1:3,o=Math.max(i,n-n%i),s=[];for(let l=0;l<a;l+=o){const c=Math.min(o,a-l),d=c-c%i;if(d<i)break;s.push(Fs(t,l,d))}return s.length>0?s:[t]}function Is(t,e){const a=t.indices,r=48+(t.uvs?24:0)+(t.gradientPositions?24:0),n=Mt(e,Pe(t),r),i=[];for(let o=0;o+2<a.length;){const s=Math.min(n*3,a.length-o),l=s-s%3;if(l<3)break;i.push(xr(t,o,l)),o+=l}return i.length>0?i:[t]}function Fs(t,e,a){const r=e*3,n={layer:t.layer,color:t.color,offset:t.offset,positions:t.positions.slice(r,r+a*3)};return kr(t,n),t.uvs&&(n.uvs=t.uvs.slice(e*2,(e+a)*2)),t.gradientPositions&&(n.gradientPositions=t.gradientPositions.slice(e*2,(e+a)*2)),n}function xr(t,e,a){const r=[],n=[];t.uvs&&(r.push(t.uvs),n.push(2)),t.gradientPositions&&(r.push(t.gradientPositions),n.push(2));const i=yr(t.positions,t.indices.subarray(e,e+a),r,n),o={layer:t.layer,color:t.color,offset:t.offset,positions:i.positions,indices:i.indices};kr(t,o);let s=0;return t.uvs&&(o.uvs=i.attributes[s++]),t.gradientPositions&&(o.gradientPositions=i.attributes[s]),o}function yr(t,e,a,r){const n=new Map,i=[],o=new Uint32Array(e.length),s=a.map(()=>[]);for(let l=0;l<e.length;l++){const c=e[l];let d=n.get(c);if(d==null){d=n.size,n.set(c,d);const u=c*3;i.push(t[u]??0,t[u+1]??0,t[u+2]??0);for(let p=0;p<a.length;p++){const m=r[p],h=a[p],f=c*m;for(let g=0;g<m;g++)s[p].push(h[f+g]??0)}}o[l]=d}return{positions:Float32Array.from(i),indices:o,attributes:s.map(l=>Float32Array.from(l))}}function vr(t,e){t.linePattern&&(e.linePattern=t.linePattern),t.lineWidth!=null&&(e.lineWidth=t.lineWidth),t.renderOrder!=null&&(e.renderOrder=t.renderOrder),t.excludeFromOsnap&&(e.excludeFromOsnap=!0)}function kr(t,e){t.hatchPattern&&(e.hatchPattern=t.hatchPattern),t.gradientFill&&(e.gradientFill=t.gradientFill),t.side!=null&&(e.side=t.side),t.renderOrder!=null&&(e.renderOrder=t.renderOrder),t.points&&(e.points=!0)}function Ss(t,e,a=Ot){const r=[];let n={lineBatches:[],meshBatches:[],estimatedBytes:64};const i=()=>{n.lineBatches.length===0&&n.meshBatches.length===0&&r.length>0||(r.push(n),n={lineBatches:[],meshBatches:[],estimatedBytes:64})},o=c=>{const d=be(c);n.estimatedBytes+d>e&&(n.lineBatches.length>0||n.meshBatches.length>0)&&i(),n.lineBatches.push(c),n.estimatedBytes+=d},s=c=>{const d=we(c);n.estimatedBytes+d>e&&(n.lineBatches.length>0||n.meshBatches.length>0)&&i(),n.meshBatches.push(c),n.estimatedBytes+=d},l=Math.min(e,a);for(const c of t.lineBatches)for(const d of vs(c,l))o(d);for(const c of t.meshBatches)for(const d of ks(c,l))s(d);return(r.length===0||n.lineBatches.length>0||n.meshBatches.length>0)&&i(),r.length===0&&r.push({lineBatches:[],meshBatches:[],estimatedBytes:64}),r}function Ls(t,e){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const a=e.maxChunkBytes??dr,r=e.maxBatchBytes??Ot,n=e.maxOsnapChunkBytes??a,i=e.compressChunks!==!1,o=i?"acex.gz":"acex",s=i?"osnap.gz":"osnap",l=$t,c=Ds(t.layouts,t.activeLayoutBtrId),d=[],u=[],p=new Map;return c.forEach((m,h)=>{var f;p.set(m.btrId,h);const g=Ss(m,a,r),w=[];g.forEach((y,I)=>{const C=`L${h}-${String(I).padStart(3,"0")}`,E=`chunks/${C}.${o}`;w.push(C),d.push({kind:"geometry",id:C,href:E,layoutBtrId:m.btrId,lineBatchCount:y.lineBatches.length,meshBatchCount:y.meshBatches.length,chunk:{version:X,layoutBtrId:m.btrId,lineBatches:y.lineBatches,meshBatches:y.meshBatches}})});const b={btrId:m.btrId,name:m.name,isModelSpace:m.isModelSpace,viewports:m.viewports,...m.savedView?{savedView:m.savedView}:{},...m.fitExtents?{fitExtents:m.fitExtents}:{},chunkIds:w},A=(f=m.osnap)==null?void 0:f.primitives;if(A&&A.length>0){const y=Ei(A,n),I=[];y.forEach((C,E)=>{const v=`L${h}-osnap-${String(E).padStart(3,"0")}`,k=`chunks/${v}.${s}`;I.push(v),d.push({kind:"osnap",id:v,href:k,layoutBtrId:m.btrId,primitiveCount:C.length,primitives:C})}),b.osnapChunkIds=I}u.push(b)}),{jobs:d,layoutRefs:u,layoutIndexByBtrId:p,manifestFileName:l,compressChunks:i}}function Ps(t,e,a,r,n){var i,o;const s=[],l=[],c=[];for(const w of n){const{job:b,uncompressedByteLength:A,compressed:y}=w;c.push({path:b.href,bytes:y}),b.kind==="geometry"?s.push({id:b.id,href:b.href,layoutBtrId:b.layoutBtrId,byteLength:A,compressedByteLength:y.byteLength,lineBatchCount:b.lineBatchCount,meshBatchCount:b.meshBatchCount}):l.push({id:b.id,href:b.href,layoutBtrId:b.layoutBtrId,byteLength:A,compressedByteLength:y.byteLength,primitiveCount:b.primitiveCount})}const d=t.layouts.map(w=>{const b=a.get(w.btrId);return e[b]}),u=new Set(((i=d.find(w=>w.btrId===t.activeLayoutBtrId))==null?void 0:i.chunkIds)??[]),p=[...s.filter(w=>u.has(w.id)),...s.filter(w=>!u.has(w.id))],m=new Set(((o=d.find(w=>w.btrId===t.activeLayoutBtrId))==null?void 0:o.osnapChunkIds)??[]),h=[...l.filter(w=>m.has(w.id)),...l.filter(w=>!m.has(w.id))],f={format:"acex-package",packageVersion:Ko,snapshotVersion:X,meta:t.meta,layers:t.layers,activeLayoutBtrId:t.activeLayoutBtrId,layouts:d,chunks:p,...h.length>0?{osnapChunks:h}:{}},g=`${JSON.stringify(f)}
1547
- `;return c.unshift({path:r,bytes:vt(g)}),{manifest:f,manifestFileName:r,files:c}}async function zs(t,e){if(t.kind==="geometry"){if(!e){const o=cr(t.chunk);return{job:t,uncompressedByteLength:o.byteLength,compressed:o}}const{uncompressed:n,compressed:i}=await Wo(t.chunk);return{job:t,uncompressedByteLength:n.byteLength,compressed:i}}if(!e){const n=xe({primitives:t.primitives});return{job:t,uncompressedByteLength:n.byteLength,compressed:n}}const{uncompressed:a,compressed:r}=await Bi({primitives:t.primitives});return{job:t,uncompressedByteLength:a.byteLength,compressed:r}}async function Ar(t,e={}){const{jobs:a,layoutRefs:r,layoutIndexByBtrId:n,manifestFileName:i,compressChunks:o}=Ls(t,e),s=await Promise.all(a.map(l=>zs(l,o)));return Ps(t,r,n,i,s)}async function Us(t,e){const a=await Ar(t,e),r=ds(t,{title:t.meta.title,viewerRuntime:e.viewerRuntime,...e.manifestUrl?{manifestUrl:e.manifestUrl}:{}});return{html:r,manifest:a.manifest,manifestFileName:a.manifestFileName,files:[{path:"viewer.html",bytes:vt(r)},...a.files]}}function Ds(t,e){const a=t.find(n=>n.btrId===e),r=t.filter(n=>n.btrId!==e);return a?[a,...r]:[...t]}const Ns="application/vnd.mlightcad.acex-chunk;base85",Ts="application/vnd.mlightcad.acex-chunk+aes-gcm;base85",Mr="data-acex-href";function _s(t){var e;let a=0;for(const r of t.layouts){for(const i of r.lineBatches)a+=be(i);for(const i of r.meshBatches)a+=we(i);const n=(e=r.osnap)==null?void 0:e.primitives;if(n)for(const i of n)a+=Ka(i)}return a}function Rs(t,e=Zo){return _s(t)>=e}async function Os(t,e){var a;const r=e.title??t.meta.title??"CAD Drawing",n=e.viewerRuntime,i=`#${t.meta.background.toString(16).padStart(6,"0")}`,o=Be(t.meta.locale)??"en",s=t.meta.viewerMode??"measure",l=t.meta.exportLayouts!==!1,c=e.expiresAt??null,d=((a=e.password)==null?void 0:a.trim())||void 0,u={maxChunkBytes:e.maxChunkBytes??ka,maxBatchBytes:e.maxBatchBytes??e.maxChunkBytes??ka,maxOsnapChunkBytes:e.maxOsnapChunkBytes??Jo},p=await Ar(t,u);let m,h,f;if(d){const{key:w,salt:b}=await fr(d);m=Dt({expiresAt:c,password:d,salt:b});const A=new TextEncoder().encode(`${JSON.stringify(p.manifest)}
1546
+ </html>`}function ur(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function mr(t){return t.replace(/<\/script/gi,"<\\/script")}function pr(t){return t.replace(/</g,"\\u003c")}const us=1,ms=1e5,ps=16,hs=12;function fs(t,e=Date.now(),a){return t==="never"?null:t==="custom"?a??null:e+t*24*60*60*1e3}function hr(t){var e;const a=!!((e=t.password)!=null&&e.trim());return t.expiresAt!=null||a}function Dt(t){var e;if(!hr(t))return;const a=!!((e=t.password)!=null&&e.trim());return{v:us,expiresAt:t.expiresAt,encrypted:a,...a&&t.salt?{salt:t.salt}:{}}}async function fr(t,e){const a=crypto.getRandomValues(new Uint8Array(ps));return{key:await xs(t,a),salt:gr(a)}}async function Le(t,e){const a=crypto.getRandomValues(new Uint8Array(hs)),r=new Uint8Array(e),n=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:a},t,r)),i=new Uint8Array(a.length+n.length);return i.set(a,0),i.set(n,a.length),i}async function gs(t,e,a="base85"){const{key:r,salt:n}=await fr(t),i=li(e,a),o=await Le(r,i);return{encryptedPayload:_t(o,a),salt:n}}function bs(t){return gr(t)}async function ws(t,e){var a;if(!hr(e))return{encoded:t};const r=(a=e.password)==null?void 0:a.trim();if(r){const{encryptedPayload:n,salt:i}=await gs(r,t.payload);return{encoded:{payload:n,compression:t.compression},manifest:Dt({expiresAt:e.expiresAt,password:r,salt:i})}}return{encoded:t,manifest:Dt({expiresAt:e.expiresAt})}}async function xs(t,e){const a=new TextEncoder,r=await crypto.subtle.importKey("raw",a.encode(t),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:new Uint8Array(e),iterations:ms,hash:"SHA-256"},r,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}function gr(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}const ys=256;function vs(t,e=Ot){return!(e>0)||be(t)<=e?[t]:t.indices&&t.indices.length>=2?Ms(t,e):As(t,e)}function ks(t,e=Ot){return t.texture?[t]:!(e>0)||we(t)<=e?[t]:t.points?Es(t,e):!t.indices||t.indices.length<3?wr(t,e):Is(t,e)}function br(t){return t.linePattern?64+t.linePattern.pattern.length*8:0}function Pe(t){return(t.hatchPattern?128:0)+(t.gradientFill?64:0)}function Mt(t,e,a){const r=t-ys-e;return r<a?1:Math.max(1,Math.floor(r/a))}function As(t,e){var a;const r=(((a=t.lineDistances)==null?void 0:a.length)??0)>=2,n=24+(r?8:0),i=Mt(e,br(t),n),o=t.positions.length/6|0;if(o<=1)return[t];const s=[];for(let l=0;l<o;l+=i){const c=Math.min(i,o-l),d=l*6,u={layer:t.layer,color:t.color,offset:t.offset,positions:t.positions.slice(d,d+c*6)};if(vr(t,u),r&&t.lineDistances){const p=l*2;u.lineDistances=t.lineDistances.slice(p,p+c*2)}s.push(u)}return s.length>0?s:[t]}function Ms(t,e){var a;const r=t.indices,n=32+((((a=t.lineDistances)==null?void 0:a.length)??0)>0?8:0),i=Mt(e,br(t),n),o=[];for(let s=0;s+1<r.length;){const l=Math.min(i*2,r.length-s),c=l-l%2;if(c<2)break;o.push(Bs(t,s,c)),s+=c}return o.length>0?o:[t]}function Bs(t,e,a){const r=yr(t.positions,t.indices.subarray(e,e+a),t.lineDistances?[t.lineDistances]:[],[1]),n={layer:t.layer,color:t.color,offset:t.offset,positions:r.positions,indices:r.indices};return vr(t,n),r.attributes[0]&&r.attributes[0].length>0&&(n.lineDistances=r.attributes[0]),n}function Es(t,e){return t.indices&&t.indices.length>0?Cs(t,e):wr(t,e)}function Cs(t,e){const a=t.indices,r=16+(t.uvs?8:0)+(t.gradientPositions?8:0),n=Mt(e,Pe(t),r),i=[];for(let o=0;o<a.length;){const s=Math.min(n,a.length-o);if(s<1)break;i.push(xr(t,o,s)),o+=s}return i.length>0?i:[t]}function wr(t,e){const a=t.positions.length/3|0;if(a<=1)return[t];const r=12+(t.uvs?8:0)+(t.gradientPositions?8:0),n=Mt(e,Pe(t),r),i=t.points?1:3,o=Math.max(i,n-n%i),s=[];for(let l=0;l<a;l+=o){const c=Math.min(o,a-l),d=c-c%i;if(d<i)break;s.push(Ss(t,l,d))}return s.length>0?s:[t]}function Is(t,e){const a=t.indices,r=48+(t.uvs?24:0)+(t.gradientPositions?24:0),n=Mt(e,Pe(t),r),i=[];for(let o=0;o+2<a.length;){const s=Math.min(n*3,a.length-o),l=s-s%3;if(l<3)break;i.push(xr(t,o,l)),o+=l}return i.length>0?i:[t]}function Ss(t,e,a){const r=e*3,n={layer:t.layer,color:t.color,offset:t.offset,positions:t.positions.slice(r,r+a*3)};return kr(t,n),t.uvs&&(n.uvs=t.uvs.slice(e*2,(e+a)*2)),t.gradientPositions&&(n.gradientPositions=t.gradientPositions.slice(e*2,(e+a)*2)),n}function xr(t,e,a){const r=[],n=[];t.uvs&&(r.push(t.uvs),n.push(2)),t.gradientPositions&&(r.push(t.gradientPositions),n.push(2));const i=yr(t.positions,t.indices.subarray(e,e+a),r,n),o={layer:t.layer,color:t.color,offset:t.offset,positions:i.positions,indices:i.indices};kr(t,o);let s=0;return t.uvs&&(o.uvs=i.attributes[s++]),t.gradientPositions&&(o.gradientPositions=i.attributes[s]),o}function yr(t,e,a,r){const n=new Map,i=[],o=new Uint32Array(e.length),s=a.map(()=>[]);for(let l=0;l<e.length;l++){const c=e[l];let d=n.get(c);if(d==null){d=n.size,n.set(c,d);const u=c*3;i.push(t[u]??0,t[u+1]??0,t[u+2]??0);for(let p=0;p<a.length;p++){const m=r[p],h=a[p],f=c*m;for(let g=0;g<m;g++)s[p].push(h[f+g]??0)}}o[l]=d}return{positions:Float32Array.from(i),indices:o,attributes:s.map(l=>Float32Array.from(l))}}function vr(t,e){t.linePattern&&(e.linePattern=t.linePattern),t.lineWidth!=null&&(e.lineWidth=t.lineWidth),t.renderOrder!=null&&(e.renderOrder=t.renderOrder),t.excludeFromOsnap&&(e.excludeFromOsnap=!0)}function kr(t,e){t.hatchPattern&&(e.hatchPattern=t.hatchPattern),t.gradientFill&&(e.gradientFill=t.gradientFill),t.side!=null&&(e.side=t.side),t.renderOrder!=null&&(e.renderOrder=t.renderOrder),t.points&&(e.points=!0)}function Fs(t,e,a=Ot){const r=[];let n={lineBatches:[],meshBatches:[],estimatedBytes:64};const i=()=>{n.lineBatches.length===0&&n.meshBatches.length===0&&r.length>0||(r.push(n),n={lineBatches:[],meshBatches:[],estimatedBytes:64})},o=c=>{const d=be(c);n.estimatedBytes+d>e&&(n.lineBatches.length>0||n.meshBatches.length>0)&&i(),n.lineBatches.push(c),n.estimatedBytes+=d},s=c=>{const d=we(c);n.estimatedBytes+d>e&&(n.lineBatches.length>0||n.meshBatches.length>0)&&i(),n.meshBatches.push(c),n.estimatedBytes+=d},l=Math.min(e,a);for(const c of t.lineBatches)for(const d of vs(c,l))o(d);for(const c of t.meshBatches)for(const d of ks(c,l))s(d);return(r.length===0||n.lineBatches.length>0||n.meshBatches.length>0)&&i(),r.length===0&&r.push({lineBatches:[],meshBatches:[],estimatedBytes:64}),r}function Ls(t,e){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const a=e.maxChunkBytes??dr,r=e.maxBatchBytes??Ot,n=e.maxOsnapChunkBytes??a,i=e.compressChunks!==!1,o=i?"acex.gz":"acex",s=i?"osnap.gz":"osnap",l=$t,c=Ds(t.layouts,t.activeLayoutBtrId),d=[],u=[],p=new Map;return c.forEach((m,h)=>{var f;p.set(m.btrId,h);const g=Fs(m,a,r),w=[];g.forEach((y,I)=>{const C=`L${h}-${String(I).padStart(3,"0")}`,B=`chunks/${C}.${o}`;w.push(C),d.push({kind:"geometry",id:C,href:B,layoutBtrId:m.btrId,lineBatchCount:y.lineBatches.length,meshBatchCount:y.meshBatches.length,chunk:{version:X,layoutBtrId:m.btrId,lineBatches:y.lineBatches,meshBatches:y.meshBatches}})});const b={btrId:m.btrId,name:m.name,isModelSpace:m.isModelSpace,viewports:m.viewports,...m.savedView?{savedView:m.savedView}:{},...m.fitExtents?{fitExtents:m.fitExtents}:{},chunkIds:w},A=(f=m.osnap)==null?void 0:f.primitives;if(A&&A.length>0){const y=Bi(A,n),I=[];y.forEach((C,B)=>{const v=`L${h}-osnap-${String(B).padStart(3,"0")}`,k=`chunks/${v}.${s}`;I.push(v),d.push({kind:"osnap",id:v,href:k,layoutBtrId:m.btrId,primitiveCount:C.length,primitives:C})}),b.osnapChunkIds=I}u.push(b)}),{jobs:d,layoutRefs:u,layoutIndexByBtrId:p,manifestFileName:l,compressChunks:i}}function Ps(t,e,a,r,n){var i,o;const s=[],l=[],c=[];for(const w of n){const{job:b,uncompressedByteLength:A,compressed:y}=w;c.push({path:b.href,bytes:y}),b.kind==="geometry"?s.push({id:b.id,href:b.href,layoutBtrId:b.layoutBtrId,byteLength:A,compressedByteLength:y.byteLength,lineBatchCount:b.lineBatchCount,meshBatchCount:b.meshBatchCount}):l.push({id:b.id,href:b.href,layoutBtrId:b.layoutBtrId,byteLength:A,compressedByteLength:y.byteLength,primitiveCount:b.primitiveCount})}const d=t.layouts.map(w=>{const b=a.get(w.btrId);return e[b]}),u=new Set(((i=d.find(w=>w.btrId===t.activeLayoutBtrId))==null?void 0:i.chunkIds)??[]),p=[...s.filter(w=>u.has(w.id)),...s.filter(w=>!u.has(w.id))],m=new Set(((o=d.find(w=>w.btrId===t.activeLayoutBtrId))==null?void 0:o.osnapChunkIds)??[]),h=[...l.filter(w=>m.has(w.id)),...l.filter(w=>!m.has(w.id))],f={format:"acex-package",packageVersion:Ko,snapshotVersion:X,meta:t.meta,layers:t.layers,activeLayoutBtrId:t.activeLayoutBtrId,layouts:d,chunks:p,...h.length>0?{osnapChunks:h}:{}},g=`${JSON.stringify(f)}
1547
+ `;return c.unshift({path:r,bytes:vt(g)}),{manifest:f,manifestFileName:r,files:c}}async function zs(t,e){if(t.kind==="geometry"){if(!e){const o=cr(t.chunk);return{job:t,uncompressedByteLength:o.byteLength,compressed:o}}const{uncompressed:n,compressed:i}=await Wo(t.chunk);return{job:t,uncompressedByteLength:n.byteLength,compressed:i}}if(!e){const n=xe({primitives:t.primitives});return{job:t,uncompressedByteLength:n.byteLength,compressed:n}}const{uncompressed:a,compressed:r}=await Ei({primitives:t.primitives});return{job:t,uncompressedByteLength:a.byteLength,compressed:r}}async function Ar(t,e={}){const{jobs:a,layoutRefs:r,layoutIndexByBtrId:n,manifestFileName:i,compressChunks:o}=Ls(t,e),s=await Promise.all(a.map(l=>zs(l,o)));return Ps(t,r,n,i,s)}async function Us(t,e){const a=await Ar(t,e),r=ds(t,{title:t.meta.title,viewerRuntime:e.viewerRuntime,...e.manifestUrl?{manifestUrl:e.manifestUrl}:{}});return{html:r,manifest:a.manifest,manifestFileName:a.manifestFileName,files:[{path:"viewer.html",bytes:vt(r)},...a.files]}}function Ds(t,e){const a=t.find(n=>n.btrId===e),r=t.filter(n=>n.btrId!==e);return a?[a,...r]:[...t]}const Ns="application/vnd.mlightcad.acex-chunk;base85",Ts="application/vnd.mlightcad.acex-chunk+aes-gcm;base85",Mr="data-acex-href";function _s(t){var e;let a=0;for(const r of t.layouts){for(const i of r.lineBatches)a+=be(i);for(const i of r.meshBatches)a+=we(i);const n=(e=r.osnap)==null?void 0:e.primitives;if(n)for(const i of n)a+=Ka(i)}return a}function Rs(t,e=Zo){return _s(t)>=e}async function Os(t,e){var a;const r=e.title??t.meta.title??"CAD Drawing",n=e.viewerRuntime,i=`#${t.meta.background.toString(16).padStart(6,"0")}`,o=Ee(t.meta.locale)??"en",s=t.meta.viewerMode??"measure",l=t.meta.exportLayouts!==!1,c=e.expiresAt??null,d=((a=e.password)==null?void 0:a.trim())||void 0,u={maxChunkBytes:e.maxChunkBytes??ka,maxBatchBytes:e.maxBatchBytes??e.maxChunkBytes??ka,maxOsnapChunkBytes:e.maxOsnapChunkBytes??Jo},p=await Ar(t,u);let m,h,f;if(d){const{key:w,salt:b}=await fr(d);m=Dt({expiresAt:c,password:d,salt:b});const A=new TextEncoder().encode(`${JSON.stringify(p.manifest)}
1548
1548
  `),y=await Le(w,A);h={mode:"embedded",encrypted:!0,encryptedManifest:bs(y)},f=await Hs(p.files,w)}else m=Dt({expiresAt:c}),h={mode:"embedded",manifest:p.manifest},f=$s(p.files);const g=m?` <script id="mlcad-access" type="application/json">${Aa(JSON.stringify(m))}<\/script>
1549
1549
  `:"";return`<!DOCTYPE html>
1550
1550
  <html lang="${o}">
@@ -1552,14 +1552,14 @@ ${Fe(i,s,l)}
1552
1552
  <meta charset="utf-8" />
1553
1553
  <meta name="viewport" content="width=device-width, initial-scale=1" />
1554
1554
  <meta name="generator" content="mlightcad-cad-html-plugin" />
1555
- <title>${Er(r)}</title>
1555
+ <title>${Br(r)}</title>
1556
1556
  <style>${Ie}</style>
1557
1557
  </head>
1558
1558
  <body>
1559
- ${Fe(i,s,l)}
1559
+ ${Se(i,s,l)}
1560
1560
  ${g} <script id="mlcad-package" type="application/json">${Aa(JSON.stringify(h))}<\/script>
1561
1561
  ${f} <script>${js(n)}<\/script>
1562
1562
  </body>
1563
- </html>`}function $s(t){const e=[];for(const a of t)a.path!==$t&&e.push(` <script type="${Ns}" ${Mr}="${Br(a.path)}">${_t(a.bytes,"base85")}<\/script>
1564
- `);return e.join("")}async function Hs(t,e){const a=[];for(const r of t){if(r.path===$t)continue;const n=await Le(e,r.bytes);a.push(` <script type="${Ts}" ${Mr}="${Br(r.path)}">${_t(n,"base85")}<\/script>
1565
- `)}return a.join("")}function Er(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Br(t){return Er(t).replace(/'/g,"&#39;")}function js(t){return t.replace(/<\/script/gi,"<\\/script")}function Aa(t){return t.replace(/</g,"\\u003c")}function Vs(t){return!t||t.startsWith("/")||t.includes("\\")||t.includes("\0")?!1:t.split("/").every(e=>e.length>0&&e!=="."&&e!==".."&&/^[A-Za-z0-9._-]+$/.test(e))}function Xs(t){return t.endsWith(".gz")}function Ys(t){const e={};for(const a of t.files){if(!Vs(a.path))throw new Error(`Unsafe package path: ${a.path}`);Xs(a.path)?e[a.path]=[a.bytes,{level:0}]:e[a.path]=[a.bytes,{level:6}]}return si(e)}const Ht=0,ze=16777215;function Cr(t){return t==="white"||t==="space"?t:"black"}function Gs(t){return t==="white"?ze:Ht}function Ma(t,e,a){return t==="space"?e?Ht:ze:a>>>0}function Ea(t){const e=t>>>0,a=e>>16&255,r=e>>8&255,n=e&255;return(a*299+r*587+n*114)/1e3>=128}function Ws(t){const e=t>>>0,a=e>>16&255,r=e>>8&255,n=e&255,i=Math.max(a,r,n),o=Math.min(a,r,n);return i-o>16?null:i<=40?ze:o>=215?Ht:null}function Ct(t){return Ws(t)??t}function Ir(t,e,a){if(Ea(e)!==Ea(a)){for(const r of t.lineBatches)r.color=Ct(r.color);for(const r of t.meshBatches){if(r.texture)continue;r.color=Ct(r.color);const n=r.gradientFill;n&&(n.startColor=Ct(n.startColor),n.endColor=Ct(n.endColor))}}}function Ks(t,e,a){const r=a>>>0;t.meta.background=r;for(const n of t.layouts)Ir(n,e,r)}function Zs(t,e,a){const r=Cr(a);if(t.meta.backgroundMode=r,r==="space"){for(const i of t.layouts)Ir(i,e,Ma("space",i.isModelSpace,0));const n=t.layouts.find(i=>i.btrId===t.activeLayoutBtrId);t.meta.background=Ma("space",n==null||n.isModelSpace,Ht);return}Ks(t,e,Gs(r)),t.meta.backgroundMode=r}const Fr="https://mlightcad.com/cad-viewer/docs/";let Sr=Pr(Fr);function Lr(){return Sr}function Js(t){Sr=Pr(t)}function Pr(t){const e=t.trim();return e?e.replace(/\/+$/,""):Fr.replace(/\/+$/,"")}function qs(){return{minX:0,minY:0,maxX:0,maxY:0,valid:!1}}function Qs(t,e,a){if(e.length<3)return;const r=a[0],n=a[1];for(let i=0;i+2<e.length;i+=3){const o=ca(e[i],r),s=ca(e[i+1],n);t.valid?(o<t.minX&&(t.minX=o),o>t.maxX&&(t.maxX=o),s<t.minY&&(t.minY=s),s>t.maxY&&(t.maxY=s)):(t.minX=t.maxX=o,t.minY=t.maxY=s,t.valid=!0)}}function Ba(t,e){Qs(t,e.positions,e.offset)}function tl(t){return t.valid?{minX:t.minX,minY:t.minY,maxX:t.maxX,maxY:t.maxY}:null}function el(t,e){const a=qs();for(const r of t)Ba(a,r);for(const r of e)Ba(a,r);return tl(a)}function zr(t,e){return t?e?{minX:Math.min(t.minX,e.minX),minY:Math.min(t.minY,e.minY),maxX:Math.max(t.maxX,e.maxX),maxY:Math.max(t.maxY,e.maxY)}:t:e??null}function al(t){if(!t||t.length===0)return null;let e=null;for(const a of t)e=zr(e,a.paper);return e}function Ur(t){return zr(el(t.lineBatches,t.meshBatches),al(t.viewports))}function rl(t,e,a){if(a)return;const r=il(t,e);if(!(r!=null&&r.newIterator))return;const n=[];for(const i of r.newIterator()){if(!(i instanceof Zr)||Jr.isDefaultPaperSpaceViewport(i)||typeof i.toGiViewport!="function")continue;const o=i.toGiViewport(),s=o.box,l=o.viewBox,c=Ca(s),d=Ca(l);if(!c||!d)continue;const u=Number.isFinite(o.viewTwistAngle)?o.viewTwistAngle:i.viewTwistAngle,p=nl(o,i),m={paper:c,model:d};Number.isFinite(u)&&Math.abs(u)>1e-12&&(m.twist=u),p.length>0&&(m.frozenLayers=p),n.push(m)}return n.length>0?n:void 0}function nl(t,e){var a;const r=t.frozenLayers;if(r&&r.length>0)return[...r];const n=e.frozenLayerIds;if(!(n!=null&&n.length))return[];const i=(a=e.database)==null?void 0:a.tables.layerTable;if(!i)return[];const o=[];for(const s of n){const l=i.getIdAt(s);l&&o.push(l.name)}return o}function Ca(t){if(typeof t.isEmpty=="function"&&t.isEmpty())return;const e=t.min.x,a=t.min.y,r=t.max.x,n=t.max.y;if(!(!Number.isFinite(e)||!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(n)||r-e<=0||n-a<=0))return{minX:e,minY:a,maxX:r,maxY:n}}function il(t,e){var a;const r=(a=t.tables)==null?void 0:a.blockTable;if(!r)return;const n=typeof r.getIdAt=="function"?r.getIdAt(e):void 0;if(n)return n;if(typeof r.newIterator=="function"){for(const o of r.newIterator())if(o.objectId===e)return o}const i=r.modelSpace;if((i==null?void 0:i.objectId)===e)return i}const Ia=16/9;function ol(t,e,a,r=Ia){var n,i,o,s;const l=Number.isFinite(r)&&r>0?r:Ia;if(a){const d=(o=(i=(n=t.tables)==null?void 0:n.viewportTable)==null?void 0:i.getActiveVportBox)==null?void 0:o.call(i,l);return Fa(d)}const c=(s=t.objects)==null?void 0:s.layout;if(c!=null&&c.newIterator){for(const d of c.newIterator())if(d.blockTableRecordId===e)return Fa(d.limits)}}function Fa(t){if(!t||typeof t.isEmpty=="function"&&t.isEmpty())return;const e=t.min.x,a=t.min.y,r=t.max.x,n=t.max.y;if(!(!Number.isFinite(e)||!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(n)||r-e<=0||n-a<=0))return{minX:e,minY:a,maxX:r,maxY:n}}function Dr(t){var e;const a=(e=t.objects)==null?void 0:e.layout;if(!(a!=null&&a.newIterator))return[];const r=[];for(const n of a.newIterator()){const i=n.blockTableRecordId;i&&r.push({name:n.layoutName||i,tabOrder:n.tabOrder??0,blockTableRecordId:i})}return r.sort((n,i)=>n.tabOrder-i.tabOrder),r}function sl(t,e,a={}){return cl(t,e,a)}async function ll(t,e,a={}){const r=a.yieldBetweenLayouts;r&&await r();const n=a.exportInvisibleLayers!==!1,i=a.exportLayouts!==!1,o=n?void 0:h=>Ue(e,h,n),s=ar(t,{title:a.title,background:a.background}),l=Nr(e,n),c=Dr(t),d=new Map(c.map(h=>[h.blockTableRecordId,h.name])),u=Rr(e,i),p=_r(e,c,i),m=[];for(const h of p)m.push(Or(t,e,h,d,a,o)),r&&await r();return{version:X,meta:Tr(s,a,m,u),layers:l,layouts:m,activeLayoutBtrId:u}}function cl(t,e,a){const r=a.exportInvisibleLayers!==!1,n=a.exportLayouts!==!1,i=r?void 0:m=>Ue(e,m,r),o=ar(t,{title:a.title,background:a.background}),s=Nr(e,r),l=Dr(t),c=new Map(l.map(m=>[m.blockTableRecordId,m.name])),d=Rr(e,n),u=_r(e,l,n),p=[];for(const m of u)p.push(Or(t,e,m,c,a,i));return{version:X,meta:Tr(o,a,p,d),layers:s,layouts:p,activeLayoutBtrId:d}}function Nr(t,e){const a=[];for(const r of t.layers)Ue(t,r.name,e)&&a.push({name:r.name,color:r.color,visible:r.visible});return a}function Tr(t,e,a,r){const n=a.find(s=>s.btrId===r)??a[0],i=n?Ur(n):null,o=e.initialView??"fit";return{title:t.title,createdAt:new Date().toISOString(),extents:t.extents,viewExtents:i??void 0,units:t.units,grip:t.grip,background:t.background,locale:e.locale??"en",initialView:o,viewState:o==="current"?e.viewState:void 0,viewerMode:e.viewerMode??"measure",exportLayouts:e.exportLayouts!==!1,docsBaseUrl:e.docsBaseUrl??Lr()}}function dl(t){return(t.viewerMode??"measure")==="measure"}function Ue(t,e,a){if(a)return!0;const r=t.layers.find(n=>n.name===e);return r?r.visible:!0}function _r(t,e,a){if(!a){const o=t.layouts.find(s=>s.btrId===t.modelSpaceBtrId);return o?[o]:[]}const r=new Map(t.layouts.map(o=>[o.btrId,o])),n=new Set,i=[];for(const o of e){if(n.has(o.blockTableRecordId))continue;n.add(o.blockTableRecordId);const s=r.get(o.blockTableRecordId);i.push(s??{btrId:o.blockTableRecordId,name:o.name,isModelSpace:o.blockTableRecordId===t.modelSpaceBtrId,layers:[]})}for(const o of t.layouts)n.has(o.btrId)||(n.add(o.btrId),i.push(o));return i}function Rr(t,e){return e&&t.activeLayoutBtrId||t.modelSpaceBtrId}function Or(t,e,a,r,n,i){const o=[],s=[];for(const m of a.layers){if(i&&!i(m.name))continue;const h=mo(m.root);o.push(...h.lineBatches),s.push(...h.meshBatches)}const l=a.isModelSpace||a.btrId===e.modelSpaceBtrId,c=ol(t,a.btrId,l,n.canvasAspectRatio),d=rl(t,a.btrId,l),u=Ur({lineBatches:o,meshBatches:s,viewports:d})??void 0;let p;if(dl(n)){const m=performance.now();p=Vo(t,a.btrId,{includeLayer:i}),console.log(`[chtml] osnap catalog ${r.get(a.btrId)??a.name??a.btrId}: ${(performance.now()-m).toFixed(0)} ms (${(p==null?void 0:p.primitives.length)??0} primitives)`)}return{btrId:a.btrId,name:r.get(a.btrId)??a.name??ul(t,a.btrId),isModelSpace:l,lineBatches:o,meshBatches:s,osnap:p,viewports:d,...c?{savedView:c}:{},...u?{fitExtents:u}:{}}}function ul(t,e){var a;const r=(a=t.tables)==null?void 0:a.blockTable;if(r!=null&&r.newIterator){for(const n of r.newIterator())if(n.objectId===e)return n.name}return e}const ml=400,De=10,Ne=1,$r=64;function Nt(t){return Math.floor(t)*1024*1024}function Hr(t){return Math.max(Ne,Math.round(t/(1024*1024)))}function jr(t){return Number.isFinite(t)?Math.min($r,Math.max(Ne,Math.floor(t))):De}function G(t={}){var e;const a=t.exportFormat==="multi"?"multi":"single",r=a==="multi"?Nt(jr(t.maxChunkBytes!=null?Hr(t.maxChunkBytes):De)):dr;return{exportFormat:a,exportInvisibleLayers:t.exportInvisibleLayers!==!1,exportLayouts:t.exportLayouts!==!1,background:Cr(t.background),initialView:t.initialView??"fit",viewerMode:t.viewerMode??"measure",expiryDays:a==="multi"?"never":t.expiryDays??"never",expiresAt:a==="multi"?null:t.expiresAt??null,password:a==="multi"?"":((e=t.password)==null?void 0:e.trim())??"",maxChunkBytes:r,compressChunks:a==="multi"?t.compressChunks!==!1:!0}}function pl(t){const e=t.maxChunkBytes??Nt(De),a=t.compressChunks!==!1;return{maxChunkBytes:e,maxBatchBytes:e,maxOsnapChunkBytes:e,compressChunks:a}}function hl(t){const e=t.activeLayoutView,a=e.center,r=e.trCamera.zoom,n=Math.max(e.height,1),i=r*(2*ml)/n;return{centerX:a.x,centerY:a.y,zoom:i}}const fl="./viewer-runtime.iife.js";let At={};function gl(t){At={...At,...t}}function bl(){return{...At}}function wl(t){return t!=null?String(t):At.viewerRuntimeUrl!=null?String(At.viewerRuntimeUrl):fl}class xl{build(e,a,r={}){return sl(a,La(e),Sa(r))}async buildAsync(e,a,r={}){return ll(a,La(e),{...Sa(r),yieldBetweenLayouts:()=>j()})}}function Sa(t){return{title:t.title,background:t.background,locale:t.locale??x.currentLocale,exportInvisibleLayers:t.exportInvisibleLayers,exportLayouts:t.exportLayouts,initialView:t.initialView,viewState:t.viewState,viewerMode:t.viewerMode,canvasAspectRatio:t.canvasAspectRatio,docsBaseUrl:yl()}}function yl(){try{Js(Xn())}catch{}return Lr()}function La(t){const e=[...t.layers.values()].map(r=>({name:r.name,color:r.color.RGB??16777215,visible:!r.isOff&&!r.isFrozen})),a=[...t.layouts.entries()].map(([r,n])=>({btrId:r,isModelSpace:r===t.modelSpaceBtrId,layers:[...n.layers.values()].map(i=>({name:i.name,root:i.internalObject}))}));return{layers:e,layouts:a,activeLayoutBtrId:t.activeLayoutBtrId||t.modelSpaceBtrId,modelSpaceBtrId:t.modelSpaceBtrId}}function Z(t,e){console.log(`[chtml] ${t}: ${e.toFixed(0)} ms`)}class vl{constructor(e={}){this.options=e,this._snapshotBuilder=new xl}async prepareAcTrView2dForHtmlExport(e,a={}){if(!e||!("cadScene"in e)||!e.cadScene)throw new Error("CAD scene is not available. Open a drawing before exporting to HTML.");if(!(e instanceof jn))throw new Error("HTML export requires a 2D CAD view. Open a drawing before exporting.");const r=G(a),n={includeInvisibleLayers:r.exportInvisibleLayers,includeLayouts:r.exportLayouts};return await e.ensureEntitiesConvertedForExport(n),await j(),e}async convert(e,a={},r){const n=J.instance,i=G(a),o=performance.now();await n.withBusyIndicator(async()=>{await j();const s=n.curDocument;let l=performance.now();const c=await this.prepareAcTrView2dForHtmlExport(r??n.curView,i);Z("prepare (missing entities)",performance.now()-l);const d=e||s.fileName||s.docTitle,u=Vn(d);l=performance.now();const p=await this._snapshotBuilder.buildAsync(c.cadScene,s.database,{title:u,background:c.backgroundColor,exportInvisibleLayers:i.exportInvisibleLayers,exportLayouts:i.exportLayouts,initialView:i.initialView,viewerMode:i.viewerMode,viewState:i.initialView==="current"&&(i.exportLayouts||c.activeLayoutBtrId===c.modelSpaceBtrId)?hl(c):void 0,canvasAspectRatio:c.width/Math.max(c.height,1)});Zs(p,c.backgroundColor,i.background),Z("snapshot build",performance.now()-l),await j(),l=performance.now();const m=await this.loadViewerRuntime();if(Z("load viewer runtime",performance.now()-l),await j(),i.exportFormat==="multi"){l=performance.now();const g=pl(i),w=await Us(p,{viewerRuntime:m,...g});Z(g.compressChunks?"package + gzip chunks":"package chunks",performance.now()-l),l=performance.now();const b=Ys(w);Z("zip package",performance.now()-l),await j(),this.downloadBytes(b,Ve(d,"zip"),"application/zip"),Z("chtml total",performance.now()-o);return}const h=fs(i.expiryDays,Date.now(),i.expiresAt);l=performance.now();const f=await this.packSelfContainedHtml(p,m,{expiresAt:h,password:i.password||void 0});Z("pack self-contained html",performance.now()-l),await j(),this.downloadHtml(f,Ve(d,"html")),Z("chtml total",performance.now()-o)})}async packSnapshot(e,a){await J.instance.withBusyIndicator(async()=>{await j();const r=await this.loadViewerRuntime();await j();const n=await this.packSelfContainedHtml(e,r,{expiresAt:null});await j(),this.downloadHtml(n,a)})}async packSelfContainedHtml(e,a,r){if(Rs(e))return Os(e,{title:e.meta.title,viewerRuntime:a,expiresAt:r.expiresAt,password:r.password});const n=await ws(Za(e),{expiresAt:r.expiresAt,password:r.password});return cs(e,{title:e.meta.title,viewerRuntime:a,encoded:n.encoded,accessManifest:n.manifest})}async loadViewerRuntime(){const e=wl(this.options.viewerRuntimeUrl),a=await fetch(e);if(!a.ok)throw new Error(`Failed to load HTML viewer runtime from "${e}" (${a.status}). Install @mlightcad/cad-html-plugin, copy viewer-runtime.iife.js to your app assets, and set viewerRuntimeUrl on registerLazyHtmlPlugin / createHtmlPlugin / AcApHtmlConvertor.`);return a.text()}downloadHtml(e,a){this.downloadBytes(new TextEncoder().encode(e),a,"text/html;charset=utf-8")}downloadBytes(e,a,r){const n=new Uint8Array(e.byteLength);n.set(e);const i=new Blob([n],{type:r}),o=URL.createObjectURL(i),s=document.createElement("a");s.href=o,s.download=a,document.body.appendChild(s),s.click(),document.body.removeChild(s),window.setTimeout(()=>URL.revokeObjectURL(o),6e4)}}class kl extends $n{constructor(e={}){super(),this.pluginOptions=e}async execute(e){const a=await this.promptOptions();a&&await new vl(this.pluginOptions).convert(e.doc.fileName||e.doc.docTitle,a,e.view)}async promptOptions(){const e=G(),a=await this.promptExportFormat();if(a===void 0)return;const r=await this.promptYesNo("jig.chtml.exportInvisibleLayers",e.exportInvisibleLayers);if(r===void 0)return;const n=await this.promptYesNo("jig.chtml.exportLayouts",e.exportLayouts);if(n===void 0)return;const i=await this.promptBackground();if(i===void 0)return;const o=await this.promptInitialView();if(o===void 0)return;const s=await this.promptViewerMode();if(s===void 0)return;let l,c;if(!(a==="multi"&&(l=await this.promptChunkSizeMiB(),l===void 0||(c=await this.promptYesNo("jig.chtml.compressChunks",e.compressChunks),c===void 0))))return G({exportFormat:a,exportInvisibleLayers:r,exportLayouts:n,background:i,initialView:o,viewerMode:s,...a==="multi"?{maxChunkBytes:l,compressChunks:c}:{}})}async promptExportFormat(){const e=G(),a=new pt(x.t("jig.chtml.exportFormat"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.single.display"),x.t("jig.chtml.keywords.single.global"),x.t("jig.chtml.keywords.single.local")),n=a.keywords.add(x.t("jig.chtml.keywords.multi.display"),x.t("jig.chtml.keywords.multi.global"),x.t("jig.chtml.keywords.multi.local"));a.keywords.default=e.exportFormat==="multi"?n:r;const i=await J.instance.editor.getKeywords(a);if(i.status!==B.Cancel){if(i.status===B.None)return e.exportFormat;if(i.status===B.OK||i.status===B.Keyword)return i.stringResult?i.stringResult==="Multi"?"multi":"single":e.exportFormat}}async promptYesNo(e,a){const r=new pt(x.t(e));r.allowNone=!0;const n=r.keywords.add(x.t("jig.chtml.keywords.yes.display"),x.t("jig.chtml.keywords.yes.global"),x.t("jig.chtml.keywords.yes.local")),i=r.keywords.add(x.t("jig.chtml.keywords.no.display"),x.t("jig.chtml.keywords.no.global"),x.t("jig.chtml.keywords.no.local"));r.keywords.default=a?n:i;const o=await J.instance.editor.getKeywords(r);if(o.status!==B.Cancel){if(o.status===B.None)return a;if(o.status===B.OK||o.status===B.Keyword)return o.stringResult?o.stringResult==="Yes":a}}async promptChunkSizeMiB(){const e=G({exportFormat:"multi"}),a=Hr(e.maxChunkBytes),r=new Hn(x.t("jig.chtml.chunkSizeMiB"),Ne,$r);r.allowNone=!0,r.allowZero=!1,r.allowNegative=!1,r.useDefaultValue=!0,r.defaultValue=a;const n=await J.instance.editor.getInteger(r);if(n.status!==B.Cancel){if(n.status===B.None)return Nt(a);if(n.status===B.OK){const i=jr(n.value??a);return Nt(i)}}}async promptBackground(){const e=G(),a=new pt(x.t("jig.chtml.background"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.black.display"),x.t("jig.chtml.keywords.black.global"),x.t("jig.chtml.keywords.black.local")),n=a.keywords.add(x.t("jig.chtml.keywords.white.display"),x.t("jig.chtml.keywords.white.global"),x.t("jig.chtml.keywords.white.local")),i=a.keywords.add(x.t("jig.chtml.keywords.space.display"),x.t("jig.chtml.keywords.space.global"),x.t("jig.chtml.keywords.space.local"));a.keywords.default=e.background==="white"?n:e.background==="space"?i:r;const o=await J.instance.editor.getKeywords(a);if(o.status!==B.Cancel){if(o.status===B.None)return e.background;if(o.status===B.OK||o.status===B.Keyword)return o.stringResult?o.stringResult==="White"?"white":o.stringResult==="Space"?"space":"black":e.background}}async promptInitialView(){const e=G(),a=new pt(x.t("jig.chtml.initialView"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.extents.display"),x.t("jig.chtml.keywords.extents.global"),x.t("jig.chtml.keywords.extents.local")),n=a.keywords.add(x.t("jig.chtml.keywords.current.display"),x.t("jig.chtml.keywords.current.global"),x.t("jig.chtml.keywords.current.local"));a.keywords.default=e.initialView==="current"?n:r;const i=await J.instance.editor.getKeywords(a);if(i.status!==B.Cancel){if(i.status===B.None)return e.initialView;if(i.status===B.OK||i.status===B.Keyword)return i.stringResult?i.stringResult==="Current"?"current":"fit":e.initialView}}async promptViewerMode(){const e=G(),a=new pt(x.t("jig.chtml.viewerMode"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.view.display"),x.t("jig.chtml.keywords.view.global"),x.t("jig.chtml.keywords.view.local")),n=a.keywords.add(x.t("jig.chtml.keywords.measure.display"),x.t("jig.chtml.keywords.measure.global"),x.t("jig.chtml.keywords.measure.local"));a.keywords.default=e.viewerMode==="view"?r:n;const i=await J.instance.editor.getKeywords(a);if(i.status!==B.Cancel){if(i.status===B.None)return e.viewerMode;if(i.status===B.OK||i.status===B.Keyword)return i.stringResult?i.stringResult==="View"?"view":"measure":e.viewerMode}}}const Al="1.7.8-preview.6",Ml={version:Al};class El{constructor(e={}){this.options=e,this.name="HtmlPlugin",this.version=Ml.version,this.description="HTML export (-chtml) command",this.registeredCommands=[]}onLoad(e,a){const r=On.SYSTEMT_COMMAND_GROUP_NAME,n=new kl(this.options);a.addCommand(r,"-chtml","-chtml",n),this.registeredCommands.push({group:r,name:"-chtml"}),a.lookupGlobalCmd("chtml")||(a.addCommand(r,"chtml","chtml",n),this.registeredCommands.push({group:r,name:"chtml"}))}onUnload(e,a){for(const r of this.registeredCommands)a.removeCmd(r.group,r.name);this.registeredCommands=[]}}async function Cl(t={}){return t.viewerRuntimeUrl!=null&&gl(t),new El(bl())}export{Go as ACEC_CHUNK_MAGIC,gi as ACEO_OSNAP_MAGIC,bi as ACEO_OSNAP_VERSION,os as ACEX_COORDINATE_BADGE_LIFT_EM,dr as ACEX_DEFAULT_CHUNK_MAX_BYTES,De as ACEX_DEFAULT_CHUNK_SIZE_MIB,Fr as ACEX_DEFAULT_DOCS_BASE_URL,$t as ACEX_DEFAULT_MANIFEST_FILE,qo as ACEX_DEFAULT_MANIFEST_HREF,Ts as ACEX_EMBEDDED_CHUNK_ENCRYPTED_MIME,Mr as ACEX_EMBEDDED_CHUNK_HREF_ATTR,ka as ACEX_EMBEDDED_CHUNK_MAX_BYTES,Ns as ACEX_EMBEDDED_CHUNK_MIME,Zo as ACEX_EMBEDDED_CHUNK_THRESHOLD_BYTES,Jo as ACEX_EMBEDDED_OSNAP_CHUNK_MAX_BYTES,Ht as ACEX_HTML_BACKGROUND_BLACK,ze as ACEX_HTML_BACKGROUND_WHITE,Yo as ACEX_HTML_LOCALES,Ie as ACEX_HTML_SHELL_CSS,$r as ACEX_MAX_CHUNK_SIZE_MIB,Ot as ACEX_MAX_GEOMETRY_BATCH_BYTES,Ne as ACEX_MIN_CHUNK_SIZE_MIB,Ko as ACEX_PACKAGE_VERSION,as as ACEX_POLAR_ANGLE_INCREMENTS,Xa as ACEX_SNAPSHOT_COMPRESSION,X as ACEX_SNAPSHOT_VERSION,kl as AcApExportHtmlCmd,vl as AcApHtmlConvertor,xl as AcApHtmlSnapshotBuilder,ge as AcExBinaryWriter,de as AcExHtmlIcons,fl as DEFAULT_HTML_VIEWER_RUNTIME_URL,Qe as F_LINE_DISTANCES,hi as F_LINE_EXCLUDE_OSNAP,Je as F_LINE_INDICES,qe as F_LINE_PATTERN,ea as F_LINE_RENDER_ORDER,ta as F_LINE_WIDTH,na as F_MESH_GRADIENT_FILL,ia as F_MESH_GRADIENT_POS,ra as F_MESH_HATCH,aa as F_MESH_INDICES,fi as F_MESH_POINTS,sa as F_MESH_RENDER_ORDER,oa as F_MESH_SIDE,la as F_MESH_TEXTURE,Sl as HTML_PLUGIN_NAME,Ll as HTML_PLUGIN_TRIGGERS,is as ML_UI_COMPACT_MAX_WIDTH,ns as ML_UI_MOBILE_MAX_WIDTH,Gs as acExHtmlBackgroundRgb,di as acExHtmlBase85ToBytes,bs as acExHtmlBytesToBase64,ci as acExHtmlBytesToBase85,_t as acExHtmlBytesToText,Ma as acExHtmlLayoutBackground,li as acExHtmlTextToBytes,Hr as acexChunkSizeBytesToMiB,Nt as acexChunkSizeMiBToBytes,Lr as acexGetDocsBaseUrl,Js as acexSetDocsBaseUrl,Zs as applyAcExHtmlBackground,ye as bakePlainDrawableSlice,Dt as buildAcExHtmlAccessManifest,rs as buildAcExHtmlPolarAnglesPanel,Fe as buildAcExHtmlShellBody,Us as buildAcExPackageAsync,Ar as buildAcExPackageDataAsync,Vo as buildOsnapCatalog,sl as buildSnapshotFromExportScene,ll as buildSnapshotFromExportSceneAsync,ar as buildViewerMetadata,hl as captureAcApHtmlViewState,ol as captureAcExSavedViewExtents,jr as clampAcApHtmlChunkSizeMiB,mo as collectBatchesFromObject3D,rl as collectLayoutViewports,Ja as compactIndexedSlice,ae as compressSnapshotBinary,Ya as compressSnapshotBinaryAsync,el as computeLayoutExtents,Ur as computeLayoutViewExtents,Ae as computeLineDistancesForSegments,al as computeViewportPaperExtents,gl as configureHtmlPlugin,et as copyFloat32Range,Di as copyUint32Range,fr as createAcExHtmlAccessKey,qs as createEmptyExtents,Cl as createHtmlPlugin,cr as encodeChunkBinary,xe as encodeOsnapCatalogBinary,Za as encodeSnapshot,Fi as encodeSnapshotBinary,_i as encodeTextureForExport,Le as encryptAcExHtmlBytes,gs as encryptAcExHtmlSnapshotPayload,_s as estimateAcExSnapshotGeometryBytes,be as estimateLineBatchBytes,we as estimateMeshBatchBytes,Ka as estimateOsnapPrimitiveBytes,Ba as expandExtentsFromBatch,Qs as expandExtentsFromPositions,Zi as exportActiveBatchedLine2Slice,Me as exportActiveBatchedSlice,St as exportBufferGeometrySlice,Ti as exportPlainDrawableSlice,ji as exportUvsForPositionSlice,Wi as exportVertexAttributeSlice,Yi as extractGradientFill,Xi as extractHatchPattern,Vi as extractLinePattern,bl as getHtmlPluginOptions,qa as isTransparentImagePlaceholder,Dr as listDatabaseLayouts,hr as needsAcExHtmlAccessControl,Pr as normalizeAcExDocsBaseUrl,ct as omitNonFinitePrimitives,cs as packHtml,Os as packHtmlEmbeddedPackage,ds as packHtmlPackage,ws as protectAcExHtmlEncodedSnapshot,Ni as readBatchWorldOffset,Ki as rebaseHatchPatternToLocalOffset,ve as rebasePlainDrawableSliceAroundCentroid,Ks as remapAcExSnapshotForegroundForBackground,fs as resolveAcApHtmlExpiresAt,G as resolveAcApHtmlExportOptions,pl as resolveAcApHtmlPackageBuildOptions,Cr as resolveAcExHtmlBackground,Be as resolveAcExHtmlLocale,wl as resolveViewerRuntimeUrl,Rs as shouldEmbedAcExChunks,Ui as snapshotMimeType,Ss as splitLayoutIntoSlices,vs as splitLineBatch,ks as splitMeshBatch,Ei as splitOsnapPrimitives,tl as toExtents,ca as toWcsCoord,ua as transformHatchPatternToWorldSpace,zr as unionExtents,wa as wcsPointToOcsArcAngle,Ga as writeLineBatch,Wa as writeMeshBatch,Ys as zipAcExPackageFiles};
1563
+ </html>`}function $s(t){const e=[];for(const a of t)a.path!==$t&&e.push(` <script type="${Ns}" ${Mr}="${Er(a.path)}">${_t(a.bytes,"base85")}<\/script>
1564
+ `);return e.join("")}async function Hs(t,e){const a=[];for(const r of t){if(r.path===$t)continue;const n=await Le(e,r.bytes);a.push(` <script type="${Ts}" ${Mr}="${Er(r.path)}">${_t(n,"base85")}<\/script>
1565
+ `)}return a.join("")}function Br(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Er(t){return Br(t).replace(/'/g,"&#39;")}function js(t){return t.replace(/<\/script/gi,"<\\/script")}function Aa(t){return t.replace(/</g,"\\u003c")}function Vs(t){return!t||t.startsWith("/")||t.includes("\\")||t.includes("\0")?!1:t.split("/").every(e=>e.length>0&&e!=="."&&e!==".."&&/^[A-Za-z0-9._-]+$/.test(e))}function Xs(t){return t.endsWith(".gz")}function Ys(t){const e={};for(const a of t.files){if(!Vs(a.path))throw new Error(`Unsafe package path: ${a.path}`);Xs(a.path)?e[a.path]=[a.bytes,{level:0}]:e[a.path]=[a.bytes,{level:6}]}return si(e)}const Ht=0,ze=16777215;function Cr(t){return t==="white"||t==="space"?t:"black"}function Gs(t){return t==="white"?ze:Ht}function Ma(t,e,a){return t==="space"?e?Ht:ze:a>>>0}function Ba(t){const e=t>>>0,a=e>>16&255,r=e>>8&255,n=e&255;return(a*299+r*587+n*114)/1e3>=128}function Ws(t){const e=t>>>0,a=e>>16&255,r=e>>8&255,n=e&255,i=Math.max(a,r,n),o=Math.min(a,r,n);return i-o>16?null:i<=40?ze:o>=215?Ht:null}function Ct(t){return Ws(t)??t}function Ir(t,e,a){if(Ba(e)!==Ba(a)){for(const r of t.lineBatches)r.color=Ct(r.color);for(const r of t.meshBatches){if(r.texture)continue;r.color=Ct(r.color);const n=r.gradientFill;n&&(n.startColor=Ct(n.startColor),n.endColor=Ct(n.endColor))}}}function Ks(t,e,a){const r=a>>>0;t.meta.background=r;for(const n of t.layouts)Ir(n,e,r)}function Zs(t,e,a){const r=Cr(a);if(t.meta.backgroundMode=r,r==="space"){for(const i of t.layouts)Ir(i,e,Ma("space",i.isModelSpace,0));const n=t.layouts.find(i=>i.btrId===t.activeLayoutBtrId);t.meta.background=Ma("space",n==null||n.isModelSpace,Ht);return}Ks(t,e,Gs(r)),t.meta.backgroundMode=r}const Sr="https://mlightcad.com/cad-viewer/docs/";let Fr=Pr(Sr);function Lr(){return Fr}function Js(t){Fr=Pr(t)}function Pr(t){const e=t.trim();return e?e.replace(/\/+$/,""):Sr.replace(/\/+$/,"")}function qs(){return{minX:0,minY:0,maxX:0,maxY:0,valid:!1}}function Qs(t,e,a){if(e.length<3)return;const r=a[0],n=a[1];for(let i=0;i+2<e.length;i+=3){const o=ca(e[i],r),s=ca(e[i+1],n);t.valid?(o<t.minX&&(t.minX=o),o>t.maxX&&(t.maxX=o),s<t.minY&&(t.minY=s),s>t.maxY&&(t.maxY=s)):(t.minX=t.maxX=o,t.minY=t.maxY=s,t.valid=!0)}}function Ea(t,e){Qs(t,e.positions,e.offset)}function tl(t){return t.valid?{minX:t.minX,minY:t.minY,maxX:t.maxX,maxY:t.maxY}:null}function el(t,e){const a=qs();for(const r of t)Ea(a,r);for(const r of e)Ea(a,r);return tl(a)}function zr(t,e){return t?e?{minX:Math.min(t.minX,e.minX),minY:Math.min(t.minY,e.minY),maxX:Math.max(t.maxX,e.maxX),maxY:Math.max(t.maxY,e.maxY)}:t:e??null}function al(t){if(!t||t.length===0)return null;let e=null;for(const a of t)e=zr(e,a.paper);return e}function Ur(t){return zr(el(t.lineBatches,t.meshBatches),al(t.viewports))}function rl(t,e,a){if(a)return;const r=il(t,e);if(!(r!=null&&r.newIterator))return;const n=[];for(const i of r.newIterator()){if(!(i instanceof Zr)||Jr.isDefaultPaperSpaceViewport(i)||typeof i.toGiViewport!="function")continue;const o=i.toGiViewport(),s=o.box,l=o.viewBox,c=Ca(s),d=Ca(l);if(!c||!d)continue;const u=Number.isFinite(o.viewTwistAngle)?o.viewTwistAngle:i.viewTwistAngle,p=nl(o,i),m={paper:c,model:d};Number.isFinite(u)&&Math.abs(u)>1e-12&&(m.twist=u),p.length>0&&(m.frozenLayers=p),n.push(m)}return n.length>0?n:void 0}function nl(t,e){var a;const r=t.frozenLayers;if(r&&r.length>0)return[...r];const n=e.frozenLayerIds;if(!(n!=null&&n.length))return[];const i=(a=e.database)==null?void 0:a.tables.layerTable;if(!i)return[];const o=[];for(const s of n){const l=i.getIdAt(s);l&&o.push(l.name)}return o}function Ca(t){if(typeof t.isEmpty=="function"&&t.isEmpty())return;const e=t.min.x,a=t.min.y,r=t.max.x,n=t.max.y;if(!(!Number.isFinite(e)||!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(n)||r-e<=0||n-a<=0))return{minX:e,minY:a,maxX:r,maxY:n}}function il(t,e){var a;const r=(a=t.tables)==null?void 0:a.blockTable;if(!r)return;const n=typeof r.getIdAt=="function"?r.getIdAt(e):void 0;if(n)return n;if(typeof r.newIterator=="function"){for(const o of r.newIterator())if(o.objectId===e)return o}const i=r.modelSpace;if((i==null?void 0:i.objectId)===e)return i}const Ia=16/9;function ol(t,e,a,r=Ia){var n,i,o,s;const l=Number.isFinite(r)&&r>0?r:Ia;if(a){const d=(o=(i=(n=t.tables)==null?void 0:n.viewportTable)==null?void 0:i.getActiveVportBox)==null?void 0:o.call(i,l);return Sa(d)}const c=(s=t.objects)==null?void 0:s.layout;if(c!=null&&c.newIterator){for(const d of c.newIterator())if(d.blockTableRecordId===e)return Sa(d.limits)}}function Sa(t){if(!t||typeof t.isEmpty=="function"&&t.isEmpty())return;const e=t.min.x,a=t.min.y,r=t.max.x,n=t.max.y;if(!(!Number.isFinite(e)||!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(n)||r-e<=0||n-a<=0))return{minX:e,minY:a,maxX:r,maxY:n}}function Dr(t){var e;const a=(e=t.objects)==null?void 0:e.layout;if(!(a!=null&&a.newIterator))return[];const r=[];for(const n of a.newIterator()){const i=n.blockTableRecordId;i&&r.push({name:n.layoutName||i,tabOrder:n.tabOrder??0,blockTableRecordId:i})}return r.sort((n,i)=>n.tabOrder-i.tabOrder),r}function sl(t,e,a={}){return cl(t,e,a)}async function ll(t,e,a={}){const r=a.yieldBetweenLayouts;r&&await r();const n=a.exportInvisibleLayers!==!1,i=a.exportLayouts!==!1,o=n?void 0:h=>Ue(e,h,n),s=ar(t,{title:a.title,background:a.background}),l=Nr(e,n),c=Dr(t),d=new Map(c.map(h=>[h.blockTableRecordId,h.name])),u=Rr(e,i),p=_r(e,c,i),m=[];for(const h of p)m.push(Or(t,e,h,d,a,o)),r&&await r();return{version:X,meta:Tr(s,a,m,u),layers:l,layouts:m,activeLayoutBtrId:u}}function cl(t,e,a){const r=a.exportInvisibleLayers!==!1,n=a.exportLayouts!==!1,i=r?void 0:m=>Ue(e,m,r),o=ar(t,{title:a.title,background:a.background}),s=Nr(e,r),l=Dr(t),c=new Map(l.map(m=>[m.blockTableRecordId,m.name])),d=Rr(e,n),u=_r(e,l,n),p=[];for(const m of u)p.push(Or(t,e,m,c,a,i));return{version:X,meta:Tr(o,a,p,d),layers:s,layouts:p,activeLayoutBtrId:d}}function Nr(t,e){const a=[];for(const r of t.layers)Ue(t,r.name,e)&&a.push({name:r.name,color:r.color,visible:r.visible});return a}function Tr(t,e,a,r){const n=a.find(s=>s.btrId===r)??a[0],i=n?Ur(n):null,o=e.initialView??"fit";return{title:t.title,createdAt:new Date().toISOString(),extents:t.extents,viewExtents:i??void 0,units:t.units,grip:t.grip,background:t.background,locale:e.locale??"en",initialView:o,viewState:o==="current"?e.viewState:void 0,viewerMode:e.viewerMode??"measure",exportLayouts:e.exportLayouts!==!1,docsBaseUrl:e.docsBaseUrl??Lr()}}function dl(t){return(t.viewerMode??"measure")==="measure"}function Ue(t,e,a){if(a)return!0;const r=t.layers.find(n=>n.name===e);return r?r.visible:!0}function _r(t,e,a){if(!a){const o=t.layouts.find(s=>s.btrId===t.modelSpaceBtrId);return o?[o]:[]}const r=new Map(t.layouts.map(o=>[o.btrId,o])),n=new Set,i=[];for(const o of e){if(n.has(o.blockTableRecordId))continue;n.add(o.blockTableRecordId);const s=r.get(o.blockTableRecordId);i.push(s??{btrId:o.blockTableRecordId,name:o.name,isModelSpace:o.blockTableRecordId===t.modelSpaceBtrId,layers:[]})}for(const o of t.layouts)n.has(o.btrId)||(n.add(o.btrId),i.push(o));return i}function Rr(t,e){return e&&t.activeLayoutBtrId||t.modelSpaceBtrId}function Or(t,e,a,r,n,i){const o=[],s=[];for(const m of a.layers){if(i&&!i(m.name))continue;const h=mo(m.root);o.push(...h.lineBatches),s.push(...h.meshBatches)}const l=a.isModelSpace||a.btrId===e.modelSpaceBtrId,c=ol(t,a.btrId,l,n.canvasAspectRatio),d=rl(t,a.btrId,l),u=Ur({lineBatches:o,meshBatches:s,viewports:d})??void 0;let p;if(dl(n)){const m=performance.now();p=Vo(t,a.btrId,{includeLayer:i}),console.log(`[chtml] osnap catalog ${r.get(a.btrId)??a.name??a.btrId}: ${(performance.now()-m).toFixed(0)} ms (${(p==null?void 0:p.primitives.length)??0} primitives)`)}return{btrId:a.btrId,name:r.get(a.btrId)??a.name??ul(t,a.btrId),isModelSpace:l,lineBatches:o,meshBatches:s,osnap:p,viewports:d,...c?{savedView:c}:{},...u?{fitExtents:u}:{}}}function ul(t,e){var a;const r=(a=t.tables)==null?void 0:a.blockTable;if(r!=null&&r.newIterator){for(const n of r.newIterator())if(n.objectId===e)return n.name}return e}const ml=400,De=10,Ne=1,$r=64;function Nt(t){return Math.floor(t)*1024*1024}function Hr(t){return Math.max(Ne,Math.round(t/(1024*1024)))}function jr(t){return Number.isFinite(t)?Math.min($r,Math.max(Ne,Math.floor(t))):De}function G(t={}){var e;const a=t.exportFormat==="multi"?"multi":"single",r=a==="multi"?Nt(jr(t.maxChunkBytes!=null?Hr(t.maxChunkBytes):De)):dr;return{exportFormat:a,exportInvisibleLayers:t.exportInvisibleLayers!==!1,exportLayouts:t.exportLayouts!==!1,background:Cr(t.background),initialView:t.initialView??"fit",viewerMode:t.viewerMode??"measure",expiryDays:a==="multi"?"never":t.expiryDays??"never",expiresAt:a==="multi"?null:t.expiresAt??null,password:a==="multi"?"":((e=t.password)==null?void 0:e.trim())??"",maxChunkBytes:r,compressChunks:a==="multi"?t.compressChunks!==!1:!0}}function pl(t){const e=t.maxChunkBytes??Nt(De),a=t.compressChunks!==!1;return{maxChunkBytes:e,maxBatchBytes:e,maxOsnapChunkBytes:e,compressChunks:a}}function hl(t){const e=t.activeLayoutView,a=e.center,r=e.trCamera.zoom,n=Math.max(e.height,1),i=r*(2*ml)/n;return{centerX:a.x,centerY:a.y,zoom:i}}const fl="./viewer-runtime.iife.js";let At={};function gl(t){At={...At,...t}}function bl(){return{...At}}function wl(t){return t!=null?String(t):At.viewerRuntimeUrl!=null?String(At.viewerRuntimeUrl):fl}class xl{build(e,a,r={}){return sl(a,La(e),Fa(r))}async buildAsync(e,a,r={}){return ll(a,La(e),{...Fa(r),yieldBetweenLayouts:()=>j()})}}function Fa(t){return{title:t.title,background:t.background,locale:t.locale??x.currentLocale,exportInvisibleLayers:t.exportInvisibleLayers,exportLayouts:t.exportLayouts,initialView:t.initialView,viewState:t.viewState,viewerMode:t.viewerMode,canvasAspectRatio:t.canvasAspectRatio,docsBaseUrl:yl()}}function yl(){try{Js(Xn())}catch{}return Lr()}function La(t){const e=[...t.layers.values()].map(r=>({name:r.name,color:r.color.RGB??16777215,visible:!r.isOff&&!r.isFrozen})),a=[...t.layouts.entries()].map(([r,n])=>({btrId:r,isModelSpace:r===t.modelSpaceBtrId,layers:[...n.layers.values()].map(i=>({name:i.name,root:i.internalObject}))}));return{layers:e,layouts:a,activeLayoutBtrId:t.activeLayoutBtrId||t.modelSpaceBtrId,modelSpaceBtrId:t.modelSpaceBtrId}}function Z(t,e){console.log(`[chtml] ${t}: ${e.toFixed(0)} ms`)}class vl{constructor(e={}){this.options=e,this._snapshotBuilder=new xl}async prepareAcTrView2dForHtmlExport(e,a={}){if(!e||!("cadScene"in e)||!e.cadScene)throw new Error("CAD scene is not available. Open a drawing before exporting to HTML.");if(!(e instanceof jn))throw new Error("HTML export requires a 2D CAD view. Open a drawing before exporting.");const r=G(a),n={includeInvisibleLayers:r.exportInvisibleLayers,includeLayouts:r.exportLayouts};return await e.ensureEntitiesConvertedForExport(n),await j(),e}async convert(e,a={},r){const n=J.instance,i=G(a),o=performance.now();await n.withBusyIndicator(async()=>{await j();const s=n.curDocument;let l=performance.now();const c=await this.prepareAcTrView2dForHtmlExport(r??n.curView,i);Z("prepare (missing entities)",performance.now()-l);const d=e||s.fileName||s.docTitle,u=Vn(d);l=performance.now();const p=await this._snapshotBuilder.buildAsync(c.cadScene,s.database,{title:u,background:c.backgroundColor,exportInvisibleLayers:i.exportInvisibleLayers,exportLayouts:i.exportLayouts,initialView:i.initialView,viewerMode:i.viewerMode,viewState:i.initialView==="current"&&(i.exportLayouts||c.activeLayoutBtrId===c.modelSpaceBtrId)?hl(c):void 0,canvasAspectRatio:c.width/Math.max(c.height,1)});Zs(p,c.backgroundColor,i.background),Z("snapshot build",performance.now()-l),await j(),l=performance.now();const m=await this.loadViewerRuntime();if(Z("load viewer runtime",performance.now()-l),await j(),i.exportFormat==="multi"){l=performance.now();const g=pl(i),w=await Us(p,{viewerRuntime:m,...g});Z(g.compressChunks?"package + gzip chunks":"package chunks",performance.now()-l),l=performance.now();const b=Ys(w);Z("zip package",performance.now()-l),await j(),this.downloadBytes(b,Ve(d,"zip"),"application/zip"),Z("chtml total",performance.now()-o);return}const h=fs(i.expiryDays,Date.now(),i.expiresAt);l=performance.now();const f=await this.packSelfContainedHtml(p,m,{expiresAt:h,password:i.password||void 0});Z("pack self-contained html",performance.now()-l),await j(),this.downloadHtml(f,Ve(d,"html")),Z("chtml total",performance.now()-o)})}async packSnapshot(e,a){await J.instance.withBusyIndicator(async()=>{await j();const r=await this.loadViewerRuntime();await j();const n=await this.packSelfContainedHtml(e,r,{expiresAt:null});await j(),this.downloadHtml(n,a)})}async packSelfContainedHtml(e,a,r){if(Rs(e))return Os(e,{title:e.meta.title,viewerRuntime:a,expiresAt:r.expiresAt,password:r.password});const n=await ws(Za(e),{expiresAt:r.expiresAt,password:r.password});return cs(e,{title:e.meta.title,viewerRuntime:a,encoded:n.encoded,accessManifest:n.manifest})}async loadViewerRuntime(){const e=wl(this.options.viewerRuntimeUrl),a=await fetch(e);if(!a.ok)throw new Error(`Failed to load HTML viewer runtime from "${e}" (${a.status}). Install @mlightcad/cad-html-plugin, copy viewer-runtime.iife.js to your app assets, and set viewerRuntimeUrl on registerLazyHtmlPlugin / createHtmlPlugin / AcApHtmlConvertor.`);return a.text()}downloadHtml(e,a){this.downloadBytes(new TextEncoder().encode(e),a,"text/html;charset=utf-8")}downloadBytes(e,a,r){const n=new Uint8Array(e.byteLength);n.set(e);const i=new Blob([n],{type:r}),o=URL.createObjectURL(i),s=document.createElement("a");s.href=o,s.download=a,document.body.appendChild(s),s.click(),document.body.removeChild(s),window.setTimeout(()=>URL.revokeObjectURL(o),6e4)}}class kl extends $n{constructor(e={}){super(),this.pluginOptions=e}async execute(e){const a=await this.promptOptions();a&&await new vl(this.pluginOptions).convert(e.doc.fileName||e.doc.docTitle,a,e.view)}async promptOptions(){const e=G(),a=await this.promptExportFormat();if(a===void 0)return;const r=await this.promptYesNo("jig.chtml.exportInvisibleLayers",e.exportInvisibleLayers);if(r===void 0)return;const n=await this.promptYesNo("jig.chtml.exportLayouts",e.exportLayouts);if(n===void 0)return;const i=await this.promptBackground();if(i===void 0)return;const o=await this.promptInitialView();if(o===void 0)return;const s=await this.promptViewerMode();if(s===void 0)return;let l,c;if(!(a==="multi"&&(l=await this.promptChunkSizeMiB(),l===void 0||(c=await this.promptYesNo("jig.chtml.compressChunks",e.compressChunks),c===void 0))))return G({exportFormat:a,exportInvisibleLayers:r,exportLayouts:n,background:i,initialView:o,viewerMode:s,...a==="multi"?{maxChunkBytes:l,compressChunks:c}:{}})}async promptExportFormat(){const e=G(),a=new pt(x.t("jig.chtml.exportFormat"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.single.display"),x.t("jig.chtml.keywords.single.global"),x.t("jig.chtml.keywords.single.local")),n=a.keywords.add(x.t("jig.chtml.keywords.multi.display"),x.t("jig.chtml.keywords.multi.global"),x.t("jig.chtml.keywords.multi.local"));a.keywords.default=e.exportFormat==="multi"?n:r;const i=await J.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.exportFormat;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="Multi"?"multi":"single":e.exportFormat}}async promptYesNo(e,a){const r=new pt(x.t(e));r.allowNone=!0;const n=r.keywords.add(x.t("jig.chtml.keywords.yes.display"),x.t("jig.chtml.keywords.yes.global"),x.t("jig.chtml.keywords.yes.local")),i=r.keywords.add(x.t("jig.chtml.keywords.no.display"),x.t("jig.chtml.keywords.no.global"),x.t("jig.chtml.keywords.no.local"));r.keywords.default=a?n:i;const o=await J.instance.editor.getKeywords(r);if(o.status!==E.Cancel){if(o.status===E.None)return a;if(o.status===E.OK||o.status===E.Keyword)return o.stringResult?o.stringResult==="Yes":a}}async promptChunkSizeMiB(){const e=G({exportFormat:"multi"}),a=Hr(e.maxChunkBytes),r=new Hn(x.t("jig.chtml.chunkSizeMiB"),Ne,$r);r.allowNone=!0,r.allowZero=!1,r.allowNegative=!1,r.useDefaultValue=!0,r.defaultValue=a;const n=await J.instance.editor.getInteger(r);if(n.status!==E.Cancel){if(n.status===E.None)return Nt(a);if(n.status===E.OK){const i=jr(n.value??a);return Nt(i)}}}async promptBackground(){const e=G(),a=new pt(x.t("jig.chtml.background"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.black.display"),x.t("jig.chtml.keywords.black.global"),x.t("jig.chtml.keywords.black.local")),n=a.keywords.add(x.t("jig.chtml.keywords.white.display"),x.t("jig.chtml.keywords.white.global"),x.t("jig.chtml.keywords.white.local")),i=a.keywords.add(x.t("jig.chtml.keywords.space.display"),x.t("jig.chtml.keywords.space.global"),x.t("jig.chtml.keywords.space.local"));a.keywords.default=e.background==="white"?n:e.background==="space"?i:r;const o=await J.instance.editor.getKeywords(a);if(o.status!==E.Cancel){if(o.status===E.None)return e.background;if(o.status===E.OK||o.status===E.Keyword)return o.stringResult?o.stringResult==="White"?"white":o.stringResult==="Space"?"space":"black":e.background}}async promptInitialView(){const e=G(),a=new pt(x.t("jig.chtml.initialView"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.extents.display"),x.t("jig.chtml.keywords.extents.global"),x.t("jig.chtml.keywords.extents.local")),n=a.keywords.add(x.t("jig.chtml.keywords.current.display"),x.t("jig.chtml.keywords.current.global"),x.t("jig.chtml.keywords.current.local"));a.keywords.default=e.initialView==="current"?n:r;const i=await J.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.initialView;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="Current"?"current":"fit":e.initialView}}async promptViewerMode(){const e=G(),a=new pt(x.t("jig.chtml.viewerMode"));a.allowNone=!0;const r=a.keywords.add(x.t("jig.chtml.keywords.view.display"),x.t("jig.chtml.keywords.view.global"),x.t("jig.chtml.keywords.view.local")),n=a.keywords.add(x.t("jig.chtml.keywords.measure.display"),x.t("jig.chtml.keywords.measure.global"),x.t("jig.chtml.keywords.measure.local"));a.keywords.default=e.viewerMode==="view"?r:n;const i=await J.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.viewerMode;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="View"?"view":"measure":e.viewerMode}}}const Al="1.7.8",Ml={version:Al};class Bl{constructor(e={}){this.options=e,this.name="HtmlPlugin",this.version=Ml.version,this.description="HTML export (-chtml) command",this.registeredCommands=[]}onLoad(e,a){const r=On.SYSTEMT_COMMAND_GROUP_NAME,n=new kl(this.options);a.addCommand(r,"-chtml","-chtml",n),this.registeredCommands.push({group:r,name:"-chtml"}),a.lookupGlobalCmd("chtml")||(a.addCommand(r,"chtml","chtml",n),this.registeredCommands.push({group:r,name:"chtml"}))}onUnload(e,a){for(const r of this.registeredCommands)a.removeCmd(r.group,r.name);this.registeredCommands=[]}}async function Cl(t={}){return t.viewerRuntimeUrl!=null&&gl(t),new Bl(bl())}export{Go as ACEC_CHUNK_MAGIC,gi as ACEO_OSNAP_MAGIC,bi as ACEO_OSNAP_VERSION,os as ACEX_COORDINATE_BADGE_LIFT_EM,dr as ACEX_DEFAULT_CHUNK_MAX_BYTES,De as ACEX_DEFAULT_CHUNK_SIZE_MIB,Sr as ACEX_DEFAULT_DOCS_BASE_URL,$t as ACEX_DEFAULT_MANIFEST_FILE,qo as ACEX_DEFAULT_MANIFEST_HREF,Ts as ACEX_EMBEDDED_CHUNK_ENCRYPTED_MIME,Mr as ACEX_EMBEDDED_CHUNK_HREF_ATTR,ka as ACEX_EMBEDDED_CHUNK_MAX_BYTES,Ns as ACEX_EMBEDDED_CHUNK_MIME,Zo as ACEX_EMBEDDED_CHUNK_THRESHOLD_BYTES,Jo as ACEX_EMBEDDED_OSNAP_CHUNK_MAX_BYTES,Ht as ACEX_HTML_BACKGROUND_BLACK,ze as ACEX_HTML_BACKGROUND_WHITE,Yo as ACEX_HTML_LOCALES,Ie as ACEX_HTML_SHELL_CSS,$r as ACEX_MAX_CHUNK_SIZE_MIB,Ot as ACEX_MAX_GEOMETRY_BATCH_BYTES,Ne as ACEX_MIN_CHUNK_SIZE_MIB,Ko as ACEX_PACKAGE_VERSION,as as ACEX_POLAR_ANGLE_INCREMENTS,Xa as ACEX_SNAPSHOT_COMPRESSION,X as ACEX_SNAPSHOT_VERSION,kl as AcApExportHtmlCmd,vl as AcApHtmlConvertor,xl as AcApHtmlSnapshotBuilder,ge as AcExBinaryWriter,de as AcExHtmlIcons,fl as DEFAULT_HTML_VIEWER_RUNTIME_URL,Qe as F_LINE_DISTANCES,hi as F_LINE_EXCLUDE_OSNAP,Je as F_LINE_INDICES,qe as F_LINE_PATTERN,ea as F_LINE_RENDER_ORDER,ta as F_LINE_WIDTH,na as F_MESH_GRADIENT_FILL,ia as F_MESH_GRADIENT_POS,ra as F_MESH_HATCH,aa as F_MESH_INDICES,fi as F_MESH_POINTS,sa as F_MESH_RENDER_ORDER,oa as F_MESH_SIDE,la as F_MESH_TEXTURE,Fl as HTML_PLUGIN_NAME,Ll as HTML_PLUGIN_TRIGGERS,is as ML_UI_COMPACT_MAX_WIDTH,ns as ML_UI_MOBILE_MAX_WIDTH,Gs as acExHtmlBackgroundRgb,di as acExHtmlBase85ToBytes,bs as acExHtmlBytesToBase64,ci as acExHtmlBytesToBase85,_t as acExHtmlBytesToText,Ma as acExHtmlLayoutBackground,li as acExHtmlTextToBytes,Hr as acexChunkSizeBytesToMiB,Nt as acexChunkSizeMiBToBytes,Lr as acexGetDocsBaseUrl,Js as acexSetDocsBaseUrl,Zs as applyAcExHtmlBackground,ye as bakePlainDrawableSlice,Dt as buildAcExHtmlAccessManifest,rs as buildAcExHtmlPolarAnglesPanel,Se as buildAcExHtmlShellBody,Us as buildAcExPackageAsync,Ar as buildAcExPackageDataAsync,Vo as buildOsnapCatalog,sl as buildSnapshotFromExportScene,ll as buildSnapshotFromExportSceneAsync,ar as buildViewerMetadata,hl as captureAcApHtmlViewState,ol as captureAcExSavedViewExtents,jr as clampAcApHtmlChunkSizeMiB,mo as collectBatchesFromObject3D,rl as collectLayoutViewports,Ja as compactIndexedSlice,ae as compressSnapshotBinary,Ya as compressSnapshotBinaryAsync,el as computeLayoutExtents,Ur as computeLayoutViewExtents,Ae as computeLineDistancesForSegments,al as computeViewportPaperExtents,gl as configureHtmlPlugin,et as copyFloat32Range,Di as copyUint32Range,fr as createAcExHtmlAccessKey,qs as createEmptyExtents,Cl as createHtmlPlugin,cr as encodeChunkBinary,xe as encodeOsnapCatalogBinary,Za as encodeSnapshot,Si as encodeSnapshotBinary,_i as encodeTextureForExport,Le as encryptAcExHtmlBytes,gs as encryptAcExHtmlSnapshotPayload,_s as estimateAcExSnapshotGeometryBytes,be as estimateLineBatchBytes,we as estimateMeshBatchBytes,Ka as estimateOsnapPrimitiveBytes,Ea as expandExtentsFromBatch,Qs as expandExtentsFromPositions,Zi as exportActiveBatchedLine2Slice,Me as exportActiveBatchedSlice,Ft as exportBufferGeometrySlice,Ti as exportPlainDrawableSlice,ji as exportUvsForPositionSlice,Wi as exportVertexAttributeSlice,Yi as extractGradientFill,Xi as extractHatchPattern,Vi as extractLinePattern,bl as getHtmlPluginOptions,qa as isTransparentImagePlaceholder,Dr as listDatabaseLayouts,hr as needsAcExHtmlAccessControl,Pr as normalizeAcExDocsBaseUrl,ct as omitNonFinitePrimitives,cs as packHtml,Os as packHtmlEmbeddedPackage,ds as packHtmlPackage,ws as protectAcExHtmlEncodedSnapshot,Ni as readBatchWorldOffset,Ki as rebaseHatchPatternToLocalOffset,ve as rebasePlainDrawableSliceAroundCentroid,Ks as remapAcExSnapshotForegroundForBackground,fs as resolveAcApHtmlExpiresAt,G as resolveAcApHtmlExportOptions,pl as resolveAcApHtmlPackageBuildOptions,Cr as resolveAcExHtmlBackground,Ee as resolveAcExHtmlLocale,wl as resolveViewerRuntimeUrl,Rs as shouldEmbedAcExChunks,Ui as snapshotMimeType,Fs as splitLayoutIntoSlices,vs as splitLineBatch,ks as splitMeshBatch,Bi as splitOsnapPrimitives,tl as toExtents,ca as toWcsCoord,ua as transformHatchPatternToWorldSpace,zr as unionExtents,wa as wcsPointToOcsArcAngle,Ga as writeLineBatch,Wa as writeMeshBatch,Ys as zipAcExPackageFiles};