@mlightcad/cad-simple-viewer-cli 1.7.8-preview.3 → 1.7.8-preview.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-runner/assets/{cad-html-plugin-CUddZiMN.js → cad-html-plugin-DroSb33u.js} +6 -6
- package/dist-runner/assets/{cad-pdf-plugin-DIs7aCUC.js → cad-pdf-plugin-jqCVfJ_2.js} +2 -2
- package/dist-runner/assets/{cad-svg-plugin-B7UTagM_.js → cad-svg-plugin-BgPtuUgG.js} +2 -2
- package/dist-runner/assets/{index-9p3u2GX4.js → index-Br_AatrV.js} +92 -92
- package/dist-runner/index.html +1 -1
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{D as Vr,E as Gt,O as Xr,R as Yr,F as He,G as Gr,H as $e,I as Wr,J as ut,K as Kr,L as Jr,f as Zr,N as qr,P as Pa,Q as Qr,S as tn,U as en,V as za,W as an,Y as rn,Z as nn,_ as je,a0 as on,a1 as sn,a2 as ln,a3 as cn,a4 as dn,a5 as un,a6 as ue,a7 as mn,a8 as pn,a9 as hn,aa as fn,ab as gn,ac as bn,ad as wn,ae as xn,af as yn,ag as vn,ah as kn,ai as An,aj as Mn,ak as Cn,al as Bn,am as Sn,an as Fn,ao as In,ap as En,aq as Ln,ar as V,as as Pn,at as lt,au as Da,av as zn,aw as me,n as Dn,ax as Un,ay as Nn,az as _n,aA as Tn,X as Rn,$ as On,aB as pt,h as x,v as Z,aC as B,aD as Hn,aE as $n,a as j,aF as jn,q as Ve,aG as Vn}from"./index-9p3u2GX4.js";import{aH as Il,aI as El}from"./index-9p3u2GX4.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]),Ua=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=Ua(he,2),Xn=Na.b,qt=Na.r;Xn[28]=258,qt[258]=28;var Yn=Ua(fe,0),Ye=Yn.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,m=u|(1<<d)-1;u<=m;++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 Ft=new z(32);for(var M=0;M<32;++M)Ft[M]=5;var Gn=wt(tt,9,0),Wn=wt(Ft,5,0),_a=function(t){return(t+7)/8|0},Ta=function(t,e,a){return(a==null||a>t.length)&&(a=t.length),new z(t.subarray(e,a))},Kn=["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"],_t=function(t,e,a){var r=new Error(e||Kn[t]);if(r.code=t,Error.captureStackTrace&&Error.captureStackTrace(r,_t),!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(F,S){return F.f-S.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 m=i[0].s,r=1;r<n;++r)i[r].s>m&&(m=i[r].s);var p=new N(m+1),h=te(a[d-1],p,0);if(h>e){var r=0,f=0,g=h-e,w=1<<g;for(i.sort(function(S,C){return p[C.s]-p[S.s]||S.f-C.f});r<n;++r){var b=i[r].s;if(p[b]>e)f+=w-(1<<h-p[b]),p[b]=e;else break}for(f>>=g;f>0;){var A=i[r].s;p[A]<e?f-=1<<e-p[A]++-1:++r}for(;r>=0&&f;--r){var y=i[r].s;p[y]==e&&(--p[y],++f)}h=e}return{t:new z(p),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=_a(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),m=u.t,p=u.l,h=Wt(i,15),f=h.t,g=h.l,w=Ge(m),b=w.c,A=w.n,y=Ge(f),F=y.c,S=y.n,C=new N(19),v=0;v<b.length;++v)++C[b[v]&31];for(var v=0;v<F.length;++v)++C[F[v]&31];for(var k=Wt(C,7),D=k.t,rt=k.l,U=19;U>4&&!D[Xe[U-1]];--U);var nt=c+5<<3,_=ft(n,tt)+ft(i,Ft)+o,T=ft(n,m)+ft(i,f)+o+14+3*U+ft(C,D)+2*C[16]+3*C[17]+7*C[18];if(l>=0&&nt<=_&&nt<=T)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(m,p,0),L=m,R=wt(f,g,0),W=f;var jt=wt(D,rt,0);Y(e,d,A-257),Y(e,d+5,S-1),Y(e,d+10,U-4),d+=14;for(var v=0;v<U;++v)Y(e,d+3*v,D[Xe[v]]);d+=3*U;for(var H=[b,F],mt=0;mt<2;++mt)for(var it=H[mt],v=0;v<it.length;++v){var $=it[v]&31;Y(e,d,jt[$]),d+=D[$],$>15&&(Y(e,d,it[v]>>5&127),d+=it[v]>>12)}}else O=Gn,L=tt,R=Wn,W=Ft;for(var v=0;v<s;++v){var P=r[v];if(P>255){var $=P>>18&31;ht(e,d,O[$+257]),d+=L[$+257],$>7&&(Y(e,d,P>>23&31),d+=he[$]);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),Zn=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],m=u>>13,p=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),F=new N(288),S=new N(32),C=0,v=0,k=i.i||0,D=0,rt=i.w||0,U=0;k+2<o;++k){var nt=A(k),_=k&32767,T=g[nt];if(f[_]=T,g[nt]=_,rt<=k){var O=o-k;if((C>7e3||D>24576)&&(O>423||!c)){d=We(t,l,0,y,F,S,v,D,U,k-U,d),D=C=v=0,U=k;for(var L=0;L<286;++L)F[L]=0;for(var L=0;L<30;++L)S[L]=0}var R=2,W=0,jt=p,H=_-T&32767;if(O>2&&nt==A(k-H))for(var mt=Math.min(m,O)-1,it=Math.min(32767,k),$=Math.min(258,O);H<=it&&--jt&&_!=T;){if(t[k+R]==t[k+R-H]){for(var P=0;P<$&&t[k+P]==t[k+P-H];++P);if(P>R){if(R=P,W=H,P>mt)break;for(var ot=Math.min(H,P-2),_e=0,L=0;L<ot;++L){var Vt=k-H+L&32767,jr=f[Vt],Te=Vt-jr&32767;Te>_e&&(_e=Te,T=Vt)}}}_=T,T=f[_],H+=_-T&32767}if(W){y[D++]=268435456|qt[R]<<18|Ye[W];var Re=qt[R]&31,Oe=Ye[W]&31;v+=he[Re]+fe[Oe],++F[257+Re],++S[Oe],rt=k+R,++C}else y[D++]=t[k],++F[t[k]]}}for(k=Math.max(k,rt);k<o;++k)y[D++]=t[k],++F[t[k]];d=We(t,l,c,y,F,S,v,D,U,k-U,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 Ta(s,0,r+_a(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})(),Ha=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}}},$a=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 Zn(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},I=function(t,e,a){for(;a;++e)t[e]=a,a>>>=8},Qn=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&&I(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)}},ti=function(t){return 10+(t.filename?t.filename.length+1:0)};function ei(t,e){return $a(t,e||{},0,0)}function ai(t,e){e||(e={});var a=Ha(),r=t.length;a.p(t);var n=$a(t,e,ti(e),8),i=n.length;return Qn(n,e),I(n,i-8,a.d()),I(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,ri=typeof TextDecoder<"u"&&new TextDecoder,ni=0;try{ri.decode(Oa,{stream:!0}),ni=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 Ta(n,0,i)}var ee=function(t){var e=0;if(t)for(var a in t){var r=t[a].length;r>65535&&_t(9),e+=r+4}return e},Je=function(t,e,a,r,n,i,o,s){var l=r.length,c=a.extra,d=s&&s.length,u=ee(c);I(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 m=new Date(a.mtime==null?Date.now():a.mtime),p=m.getFullYear()-1980;if((p<0||p>119)&&_t(10),I(t,e,p<<25|m.getMonth()+1<<21|m.getDate()<<16|m.getHours()<<11|m.getMinutes()<<5|m.getSeconds()>>1),e+=4,i!=-1&&(I(t,e,a.crc),I(t,e+4,i<0?-i-2:i),I(t,e+8,a.size)),I(t,e+12,l),I(t,e+14,u),e+=16,o!=null&&(I(t,e,d),I(t,e+6,a.attrs),I(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;I(t,e,+h),I(t,e+2,g),t.set(f,e+4),e+=4+g}return d&&(t.set(s,e),e+=d),e},ii=function(t,e,a,r,n){I(t,e,101010256),I(t,e+8,a),I(t,e+10,a),I(t,e+12,r),I(t,e+16,n)};function oi(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),m=u.length,p=c.comment,h=p&&vt(p),f=h&&h.length,g=ee(c.extra);m>65535&&_t(11);var w=d?ei(l,c):l,b=w.length,A=Ha();A.p(l),r.push(ja(c,{size:l.length,crc:A.d(),c:w,f:u,m:h,u:m!=o.length||h&&p.length!=f,o:n,compression:d})),n+=30+m+g+b,i+=76+2*(m+g)+(f||0)+b}for(var y=new z(i+22),F=n,S=i-n,C=0;C<r.length;++C){var u=r[C];Je(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),Je(y,n,u,u.f,u.u,u.c.length,u.o,u.m),n+=16+v+(u.m?u.m.length:0)}return ii(y,n,r.length,S,F),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:ai(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 It="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%()*+,-.;=?@[]^_{|}~",re=new Int16Array(128).fill(-1);for(let t=0;t<It.length;t++)re[It.charCodeAt(t)]=t;function Tt(t,e){return e==="base85"?li(t):ui(t)}function si(t,e){const a=t.length>0&&(t.charCodeAt(0)<=32||t.charCodeAt(t.length-1)<=32)?t.trim():t;return e==="base85"?ci(a):mi(a)}function li(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 m=new Array(5);for(let p=4;p>=0;p--)m[p]=u%85,u=u/85|0;for(let p=0;p<5;p++)n.push(It[m[p]])}const i=Math.ceil(e*5/4);return n.slice(0,i).join("")}function ci(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=It.length-1;let l=0;for(let c=0;c<i;c+=5){let d=0;for(let u=0;u<5;u++){const m=c+u<a?di(e.charCodeAt(c+u)):s;d=d*85+m}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 di(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 ui(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}function mi(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 Ze=1,qe=2,Qe=4,ta=8,ea=16,pi=32,aa=1,ra=2,na=4,ia=8,oa=16,hi=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|=Ze),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|=pi),t.writeU8(a),a&Ze&&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|=hi),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 fi=1329939265,gi=1,bi=1,wi=2,xi=3,yi=4,vi=5,ki=6,Ai=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 Mi(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(fi),e.writeU8(gi),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)Bi(e,i,n(i.layer));return e.toUint8Array()}async function Ci(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 Bi(t,e,a){switch(e.kind){case"line":t.writeU8(bi),t.writeU32(a),t.writeF64(e.x0),t.writeF64(e.y0),t.writeF64(e.x1),t.writeF64(e.y1);return;case"circle":t.writeU8(wi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),Kt(t,e.normalSign);return;case"arc":t.writeU8(xi),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(yi),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(vi),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(ki),t.writeU32(a),t.writeF64(e.x),t.writeF64(e.y);return;case"path":t.writeU8(Ai),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 Si=1480934209;function Fi(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=new ge;e.writeU32(Si),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeJson(Ii(t)),e.writeJson(t.layers),e.writeString(t.activeLayoutBtrId),e.writeU32(t.layouts.length);for(const a of t.layouts)Ei(e,a);return e.toUint8Array()}function Ii(t){const e={...t.meta.savedViews??{}};for(const a of t.layouts)a.savedView&&(e[a.btrId]=a.savedView);if(Object.keys(e).length===0){if(t.meta.savedViews==null)return t.meta;const{savedViews:a,...r}=t.meta;return r}return{...t.meta,savedViews:e}}function Ei(t,e){t.writeString(e.btrId),t.writeString(e.name),t.writeU8(e.isModelSpace?1:0),Li(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 Li(t,e){if(!e||e.primitives.length===0){t.writeU32(0);return}const a=xe(e);t.writeU32(a.length),t.writeBytes(a)}const Pi="application/vnd.mlightcad.acex-snapshot+binary";function Ja(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=Fi(t),a=ae(e);return{payload:Tt(a.bytes,"base85"),compression:a.compression}}function zi(){return Pi}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 Za(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 Ui(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 m=!0;for(let p=0;p<e;p++){const h=i[u+p];if(h<0||h>=r||!da(a,h)){m=!1;break}}if(m)for(let p=0;p<e;p++)s.push(i[u+p])}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 m=s[u];let p=l[m];if(p<0){p=c.length/3,l[m]=p;const h=m*3;c.push(a[h],a[h+1],a[h+2])}d[u]=p}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 m=e[u],p=e[u+1],h=e[u+2];!Number.isFinite(m)||!Number.isFinite(p)||!Number.isFinite(h)||(l++,a=Math.min(a,m),r=Math.min(r,p),n=Math.min(n,h),i=Math.max(i,m),o=Math.max(o,p),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 m=e[u],p=e[u+1],h=e[u+2];if(!Number.isFinite(m)||!Number.isFinite(p)||!Number.isFinite(h)){d[u]=0,d[u+1]=0,d[u+2]=0;continue}d[u]=m-c[0],d[u+1]=p-c[1],d[u+2]=h-c[2]}return{slice:{positions:d,indices:t.indices?new Uint32Array(t.indices):void 0},offset:c}}function Ni(t,e,a={}){t.updateMatrixWorld(!0);const r=ye(e,t.matrixWorld);return ve(r)}function _i(t){const e=t.image;if(!e||typeof document>"u")return;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(Ri(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(Ti(e)){const l=Oi(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 Ti(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 Ri(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 Oi(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 $i(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 ji(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 Vi(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(Yi)}}function Xi(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 Yi(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,m=c-o;a[r+1]=a[r]+Math.sqrt(d*d+u*u+m*m)}return a}function Gi(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=(m,p)=>[a*m+n*p+o,r*m+i*p+s],d=(m,p)=>[a*m+n*p,r*m+i*p],u=(m,p,h)=>{const f=Math.cos(h),g=Math.sin(h);return[f*m-g*p,g*m+f*p]};return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(m=>{const p=m.angle+t.patternAngle,h=m.angle+l,f=h+t.patternAngle,[g,w]=d(Math.cos(p),Math.sin(p)),b=Math.hypot(g,w),[A,y]=u(m.offset[0],m.offset[1],p),[F,S]=d(A,y),C=u(F,S,-f);return{angle:h,base:c(m.base[0],m.base[1]),offset:C,dashLengths:m.dashLengths.map(v=>v*b),patternLength:m.patternLength*b}})}}function Wi(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 on(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 Et(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),m=Di(c,d,u);return Za(l,m)}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 En(t.flags)&&Ln(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),m=i.array;let p=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}),p+=y)}if(p===0)return{positions:new Float32Array(0)};const f=new Uint32Array(p);let g=0;for(const w of h)for(let b=0;b<w.count;b++)f[g++]=m[w.start+b];return Za(u,f)}let s=0;const l=[];for(let u=0;u<o;u++){let m;try{m=t.getGeometryRangeAt(u)}catch{continue}if(!Lt(m)||m.vertexCount<=0)continue;const p=m.vertexCount*r;l.push({start:m.vertexStart*r,floatCount:p}),s+=p}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 m=0;m<u.floatCount;m++)c[d++]=n[u.start+m];return{positions:c}}function ma(t,e,a){t.push(e.getX(a),e.getY(a),e.getZ(a))}function Ki(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 Zi(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 Ct(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 rn)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=ji(t),s=Vi(t),l=Xi(t);if(t instanceof an||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 Qi(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 Ui(t)}function Jt(t,e,a={}){const r=Ni(t,e,a);return{...r.slice,offset:r.offset}}function to(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=to(r));const o=at(e),s=Qi(a,o.hatchPattern),l=s?Wi(s,n):void 0,c=o.gradientFill?Gi(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 m=_i(u.map),p=$i(t,r.positions);if(!m||!p)return;d.texture=m,d.uvs=p,d.color=16777215,d.side=nn}return dt(d,a,e),d}function eo(t){const e=Ki(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 ao(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 ro(t){const e=Me(t,t.geometry);if(e.positions.length!==0)return kt(t.geometry,t.material,t,e,Rt(t),!0)}function no(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 Tn;bt.matrixAutoUpdate=!1;function io(t){const e=t;return e.isInstancedMesh===!0&&e.instanceMatrix!=null&&typeof e.count=="number"&&e.geometry!=null}function oo(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(Et(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 p=0;p<t.count;p++)q.fromArray(i,p*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 p=0;p<t.count;p++){if(q.fromArray(i,p*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 m=ve(ct({positions:l,indices:c},e));if(m.slice.positions.length!==0)return{slice:m.slice,offset:m.offset}}function so(t){const e=at(t),a=t;return!!(e.hatchPattern||e.gradientFill||a.map)}function lo(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 co(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&&so(r)){const o=ct(Et(t.geometry),3);if(o.positions.length===0)return;lo(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 tn||e.isLineSegments2===!0||t.type==="LineSegments2"}function ha(t){const e=t;return t instanceof Qr||e.isLineSegments===!0||t.type==="LineSegments"}function fa(t){const e=t;return t instanceof en||e.isMesh===!0||e.isInstancedMesh===!0||t.type==="Mesh"}function uo(t){const e=[],a=[];return t.traverse(r=>{if(!(Xr(r)||Yr(r)||oo(r))){if(io(r)){if(!Ct(r,t))return;r.isPoints===!0?pa(r,a,!0):ha(r)&&!Bt(r)?co(r,e):fa(r)&&!Bt(r)&&pa(r,a,!1);return}if(r instanceof He){const n=ao(r);n&&e.push(n);return}if(r instanceof Gr){const n=eo(r);n&&e.push(n);return}if(r instanceof $e){const n=ro(r);n&&a.push(n);return}if(r instanceof Wr){const n=no(r);n&&a.push(n);return}if(Bt(r)){if(!Ct(r,t))return;const n=Zi(r.geometry);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s}=at(i),{offset:l,...c}=Jt(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 He)){if(!Ct(r,t))return;const n=ct(Et(r.geometry),2);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s,linePattern:l}=at(i),{offset:c,...d}=Jt(r,n),u=l?Ae(d.positions):void 0,m={layer:s,color:o,offset:c,linePattern:l,lineDistances:u,...d};oe(r)&&(m.excludeFromOsnap=!0),dt(m,r,i),e.push(m)}else if(fa(r)&&!Bt(r)&&!(r instanceof $e)){if(!Ct(r,t))return;const n=xt(r);if(qa(n))return;const i=ct(Et(r.geometry),3);if(i.positions.length===0)return;const{offset:o,...s}=Jt(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 Zr(qr.ByACI,t);return e.cssColor??`rgb(${e.red}, ${e.green}, ${e.blue})`}function mo(t){try{const e=Vr.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=mo(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 Ce(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 E(t,e){const a=new V(e.x,e.y,e.z??0).applyMatrix4(t);return{x:a.x,y:a.y}}function po(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,po(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,Da*Math.max(e,a,1))}function ho(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 fo(t){if(t instanceof Pn)return!0;const e=t;return(e.type==="LINE"||e.type==="Line")&&e.startPoint!=null&&e.endPoint!=null}function go(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 bo(t,e){const a=t.dimBlockId;return a?e.tables.blockTable.getAt(a):void 0}function wo(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 xo(t){for(const e of t.newIterator())return!0;return!1}function yo(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=E(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)&<.equal(t.y,e.y)}function vo(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 ko(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 Ao(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)<=Da?a.vertices:[r,n]}function Mo(t,e,a,r){var n,i;for(const s of r.leaders)for(const l of s.leaderLines){const c=Ao(r,s,l);yt(t,e,a,c,!1)}const o=s=>{if(!s)return;const l=E(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 Co(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},m={x:c.x,y:c.y,z:i};if(lt.isPositive(Math.abs(d))){const p=E(a,u),h=E(a,m);rr(t,e,new me(p,h,d))}}}function Bo(t,e,a,r,n,i){const o=E(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:Ce(i)};t.push(l)}function So(t,e,a,r){const n=E(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:Ce(r.normal)};t.push(o)}function Zt(t,e,a,r){const n=E(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:Ce(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=E(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=E(a,c);l.fitPoints.push(d.x,d.y)}}t.push(l)}const va=1e-6;function Io(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 Eo(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 Lo(t,e,a,r){const n=Io(r),i=n.length;if(i<2)return;if(Eo(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=E(a,l),m=E(a,c);rr(t,e,new me(u,m,d))}}}function Po(t,e,a,r,n){const i=E(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 zo(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){zo(t,e,a,r,n);return}if(!(r instanceof Un))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 Nn?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},vo(c)):c instanceof _n&&(o=!0,s(),Po(t,e,a,c,n));const l=ya(i);l.length>=2&&Q(t,e,a,l,!o)}function Uo(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 No(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=wo(t,i);if(c&&!n.has(c.objectId)&&xo(c)){n.add(c.objectId);const u=zt(e,or(t));Dt(c,u,l,r,n,i,o,s),n.delete(c.objectId);return}No(r,l,e,t);const d=E(e,t.position);r.push({kind:"point",layer:l,x:d.x,y:d.y})}function To(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=E(a,r.position);t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Ro(t,e,a,r){const n=r.position();Q(t,e,a,[n.upperLeft,n.upperRight,n.lowerRight,n.lowerLeft],!0);const i=E(a,r.getLocation());t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Oo(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 sn){_o(t,e,a,r,n,i,o,s);return}if(yo(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),m=Math.max(1,t.rowCount??1),p=t.columnSpacing??0,h=t.rowSpacing??0,f=ce(t.layer,a);for(let g=0;g<m;g++)for(let w=0;w<u;w++){const b=zt(e,d);(w!==0||g!==0)&&b.multiply(new ut().makeTranslation(w*p,g*h,0));const A=E(b,{x:0,y:0,z:0});r.push({kind:"point",layer:f,x:A.x,y:A.y}),Dt(c,b,f,r,n,i,o,s)}for(const g of Oo(t))g instanceof ln,g.isInvisible||lr(g,e,f,r,n,i,o,s);n.delete(c.objectId);return}if(t instanceof cn){const c=t,d=bo(c,i);if(!d||n.has(d.objectId))return;n.add(d.objectId);const u=zt(e,c.getFullDimBlockTransform());Dt(d,u,l,r,n,i,o,!0),n.delete(d.objectId);return}if(fo(t)){go(r,l,e,t);return}if(t instanceof dn){le(e)?Bo(r,l,e,t.center,t.radius,t.normal):Zt(r,l,e,Ho(t));return}if(t instanceof un){le(e)?So(r,l,e,t):Zt(r,l,e,$o(t));return}if(t instanceof ue){Zt(r,l,e,t);return}if(t instanceof mn){Fo(r,l,e,t);return}if(t instanceof pn){Lo(r,l,e,t);return}if(t instanceof hn){Co(r,l,e,t);return}if(t instanceof fn){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 gn){s&&Uo(r,l,e,t);return}if(t instanceof bn){t.basePoint,t.unitDir;return}if(t instanceof wn){t.basePoint,t.unitDir;return}if(t instanceof xn){Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof yn){s&&Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof vn){const c=t.subGetGripPoints();c.length>=2&&yt(r,l,e,c,c.length>=3);return}if(t instanceof kn){const c=t.vertices;c.length>=2&&yt(r,l,e,c,!1);return}if(t instanceof An){ko(r,l,e,t);return}if(t instanceof Mn){Mo(r,l,e,t);return}if(t instanceof Cn){const c=E(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof Bn){const c=E(e,t.location);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof Sn){s&&Ro(r,l,e,t);return}if(t instanceof Fn){s&&To(r,l,e,t);return}if(t instanceof In){const c=E(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y})}}}function Dt(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,zn)}function $o(t){return new ue(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,t.startAngle,t.endAngle)}function jo(t,e,a={}){const r=ho(t,e);if(!r)return{primitives:[]};const n=[],i=new ut;return Dt(r,i,"0",n,new Set,t,a.includeLayer),{primitives:n.filter(o=>o.kind!=="line"&&Vo(o))}}function Vo(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 Xo=["en","zh","cs","tr","ar"];function Be(t){if(t==null||t==="")return null;const e=t.toLowerCase().replace("_","-");for(const a of Xo)if(e===a||e.startsWith(`${a}-`))return a;return null}const Yo=1128612673;function cr(t){if(t.version!==X)throw new Error(`Unsupported chunk version: ${t.version}`);const e=new ge;e.writeU32(Yo),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 Go(t){const e=cr(t),a=(await Ya(e)).bytes;return{uncompressed:e,compressed:a}}const Wo=1,dr=2*1024*1024,Ot=2*1024*1024,Ko=8*1024*1024,ka=12*1024*1024,Jo=2*1024*1024,Ht="drawing.acex.json",Zo=`./${Ht}`;function Se(...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>`}Se("M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0M128 896v-64h768v64z");Se("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");Se("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>',Qo='<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>',ts='<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:Qo,layerOff:ts,chevronDown:qo},es=[90,45,30,23,18,10,5];function as(){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 Vr,E as Gt,F as Xr,V as Yr,G as $e,H as Gr,I as He,J as Wr,K as ut,L as Kr,N as Jr,f as Zr,O as qr,P as Pa,Q as Qr,R as tn,S as en,U as za,W as an,Y as rn,Z as nn,_ as je,a0 as on,a1 as sn,a2 as ln,a3 as cn,a4 as dn,a5 as un,a6 as ue,a7 as mn,a8 as pn,a9 as hn,aa as fn,ab as gn,ac as bn,ad as wn,ae as xn,af as yn,ag as vn,ah as kn,ai as An,aj as Mn,ak as Cn,al as Bn,am as Sn,an as Fn,ao as In,ap as En,aq as Ln,ar as V,as as Pn,at as lt,au as Da,av as zn,aw as me,n as Dn,ax as Un,ay as Nn,az as _n,aA as Tn,X as Rn,$ as On,aB as pt,h as x,v as Z,aC as B,aD as $n,aE as Hn,a as j,aF as jn,q as Ve,aG as Vn}from"./index-Br_AatrV.js";import{aH as Il,aI as El}from"./index-Br_AatrV.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]),Ua=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=Ua(he,2),Xn=Na.b,qt=Na.r;Xn[28]=258,qt[258]=28;var Yn=Ua(fe,0),Ye=Yn.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,m=u|(1<<d)-1;u<=m;++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 Ft=new z(32);for(var M=0;M<32;++M)Ft[M]=5;var Gn=wt(tt,9,0),Wn=wt(Ft,5,0),_a=function(t){return(t+7)/8|0},Ta=function(t,e,a){return(a==null||a>t.length)&&(a=t.length),new z(t.subarray(e,a))},Kn=["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"],_t=function(t,e,a){var r=new Error(e||Kn[t]);if(r.code=t,Error.captureStackTrace&&Error.captureStackTrace(r,_t),!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(F,S){return F.f-S.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 m=i[0].s,r=1;r<n;++r)i[r].s>m&&(m=i[r].s);var p=new N(m+1),h=te(a[d-1],p,0);if(h>e){var r=0,f=0,g=h-e,w=1<<g;for(i.sort(function(S,C){return p[C.s]-p[S.s]||S.f-C.f});r<n;++r){var b=i[r].s;if(p[b]>e)f+=w-(1<<h-p[b]),p[b]=e;else break}for(f>>=g;f>0;){var A=i[r].s;p[A]<e?f-=1<<e-p[A]++-1:++r}for(;r>=0&&f;--r){var y=i[r].s;p[y]==e&&(--p[y],++f)}h=e}return{t:new z(p),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=_a(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),m=u.t,p=u.l,h=Wt(i,15),f=h.t,g=h.l,w=Ge(m),b=w.c,A=w.n,y=Ge(f),F=y.c,S=y.n,C=new N(19),v=0;v<b.length;++v)++C[b[v]&31];for(var v=0;v<F.length;++v)++C[F[v]&31];for(var k=Wt(C,7),D=k.t,rt=k.l,U=19;U>4&&!D[Xe[U-1]];--U);var nt=c+5<<3,_=ft(n,tt)+ft(i,Ft)+o,T=ft(n,m)+ft(i,f)+o+14+3*U+ft(C,D)+2*C[16]+3*C[17]+7*C[18];if(l>=0&&nt<=_&&nt<=T)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(m,p,0),L=m,R=wt(f,g,0),W=f;var jt=wt(D,rt,0);Y(e,d,A-257),Y(e,d+5,S-1),Y(e,d+10,U-4),d+=14;for(var v=0;v<U;++v)Y(e,d+3*v,D[Xe[v]]);d+=3*U;for(var $=[b,F],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+=D[H],H>15&&(Y(e,d,it[v]>>5&127),d+=it[v]>>12)}}else O=Gn,L=tt,R=Wn,W=Ft;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),Zn=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],m=u>>13,p=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),F=new N(288),S=new N(32),C=0,v=0,k=i.i||0,D=0,rt=i.w||0,U=0;k+2<o;++k){var nt=A(k),_=k&32767,T=g[nt];if(f[_]=T,g[nt]=_,rt<=k){var O=o-k;if((C>7e3||D>24576)&&(O>423||!c)){d=We(t,l,0,y,F,S,v,D,U,k-U,d),D=C=v=0,U=k;for(var L=0;L<286;++L)F[L]=0;for(var L=0;L<30;++L)S[L]=0}var R=2,W=0,jt=p,$=_-T&32767;if(O>2&&nt==A(k-$))for(var mt=Math.min(m,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),_e=0,L=0;L<ot;++L){var Vt=k-$+L&32767,jr=f[Vt],Te=Vt-jr&32767;Te>_e&&(_e=Te,T=Vt)}}}_=T,T=f[_],$+=_-T&32767}if(W){y[D++]=268435456|qt[R]<<18|Ye[W];var Re=qt[R]&31,Oe=Ye[W]&31;v+=he[Re]+fe[Oe],++F[257+Re],++S[Oe],rt=k+R,++C}else y[D++]=t[k],++F[t[k]]}}for(k=Math.max(k,rt);k<o;++k)y[D++]=t[k],++F[t[k]];d=We(t,l,c,y,F,S,v,D,U,k-U,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 Ta(s,0,r+_a(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 Zn(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},I=function(t,e,a){for(;a;++e)t[e]=a,a>>>=8},Qn=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&&I(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)}},ti=function(t){return 10+(t.filename?t.filename.length+1:0)};function ei(t,e){return Ha(t,e||{},0,0)}function ai(t,e){e||(e={});var a=$a(),r=t.length;a.p(t);var n=Ha(t,e,ti(e),8),i=n.length;return Qn(n,e),I(n,i-8,a.d()),I(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,ri=typeof TextDecoder<"u"&&new TextDecoder,ni=0;try{ri.decode(Oa,{stream:!0}),ni=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 Ta(n,0,i)}var ee=function(t){var e=0;if(t)for(var a in t){var r=t[a].length;r>65535&&_t(9),e+=r+4}return e},Je=function(t,e,a,r,n,i,o,s){var l=r.length,c=a.extra,d=s&&s.length,u=ee(c);I(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 m=new Date(a.mtime==null?Date.now():a.mtime),p=m.getFullYear()-1980;if((p<0||p>119)&&_t(10),I(t,e,p<<25|m.getMonth()+1<<21|m.getDate()<<16|m.getHours()<<11|m.getMinutes()<<5|m.getSeconds()>>1),e+=4,i!=-1&&(I(t,e,a.crc),I(t,e+4,i<0?-i-2:i),I(t,e+8,a.size)),I(t,e+12,l),I(t,e+14,u),e+=16,o!=null&&(I(t,e,d),I(t,e+6,a.attrs),I(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;I(t,e,+h),I(t,e+2,g),t.set(f,e+4),e+=4+g}return d&&(t.set(s,e),e+=d),e},ii=function(t,e,a,r,n){I(t,e,101010256),I(t,e+8,a),I(t,e+10,a),I(t,e+12,r),I(t,e+16,n)};function oi(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),m=u.length,p=c.comment,h=p&&vt(p),f=h&&h.length,g=ee(c.extra);m>65535&&_t(11);var w=d?ei(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:m!=o.length||h&&p.length!=f,o:n,compression:d})),n+=30+m+g+b,i+=76+2*(m+g)+(f||0)+b}for(var y=new z(i+22),F=n,S=i-n,C=0;C<r.length;++C){var u=r[C];Je(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),Je(y,n,u,u.f,u.u,u.c.length,u.o,u.m),n+=16+v+(u.m?u.m.length:0)}return ii(y,n,r.length,S,F),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:ai(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 It="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%()*+,-.;=?@[]^_{|}~",re=new Int16Array(128).fill(-1);for(let t=0;t<It.length;t++)re[It.charCodeAt(t)]=t;function Tt(t,e){return e==="base85"?li(t):ui(t)}function si(t,e){const a=t.length>0&&(t.charCodeAt(0)<=32||t.charCodeAt(t.length-1)<=32)?t.trim():t;return e==="base85"?ci(a):mi(a)}function li(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 m=new Array(5);for(let p=4;p>=0;p--)m[p]=u%85,u=u/85|0;for(let p=0;p<5;p++)n.push(It[m[p]])}const i=Math.ceil(e*5/4);return n.slice(0,i).join("")}function ci(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=It.length-1;let l=0;for(let c=0;c<i;c+=5){let d=0;for(let u=0;u<5;u++){const m=c+u<a?di(e.charCodeAt(c+u)):s;d=d*85+m}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 di(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 ui(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}function mi(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 Ze=1,qe=2,Qe=4,ta=8,ea=16,pi=32,aa=1,ra=2,na=4,ia=8,oa=16,hi=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|=Ze),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|=pi),t.writeU8(a),a&Ze&&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|=hi),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 fi=1329939265,gi=1,bi=1,wi=2,xi=3,yi=4,vi=5,ki=6,Ai=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 Mi(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(fi),e.writeU8(gi),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)Bi(e,i,n(i.layer));return e.toUint8Array()}async function Ci(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 Bi(t,e,a){switch(e.kind){case"line":t.writeU8(bi),t.writeU32(a),t.writeF64(e.x0),t.writeF64(e.y0),t.writeF64(e.x1),t.writeF64(e.y1);return;case"circle":t.writeU8(wi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),Kt(t,e.normalSign);return;case"arc":t.writeU8(xi),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(yi),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(vi),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(ki),t.writeU32(a),t.writeF64(e.x),t.writeF64(e.y);return;case"path":t.writeU8(Ai),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 Si=1480934209;function Fi(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=new ge;e.writeU32(Si),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeJson(Ii(t)),e.writeJson(t.layers),e.writeString(t.activeLayoutBtrId),e.writeU32(t.layouts.length);for(const a of t.layouts)Ei(e,a);return e.toUint8Array()}function Ii(t){const e={...t.meta.savedViews??{}};for(const a of t.layouts)a.savedView&&(e[a.btrId]=a.savedView);if(Object.keys(e).length===0){if(t.meta.savedViews==null)return t.meta;const{savedViews:a,...r}=t.meta;return r}return{...t.meta,savedViews:e}}function Ei(t,e){t.writeString(e.btrId),t.writeString(e.name),t.writeU8(e.isModelSpace?1:0),Li(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 Li(t,e){if(!e||e.primitives.length===0){t.writeU32(0);return}const a=xe(e);t.writeU32(a.length),t.writeBytes(a)}const Pi="application/vnd.mlightcad.acex-snapshot+binary";function Ja(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=Fi(t),a=ae(e);return{payload:Tt(a.bytes,"base85"),compression:a.compression}}function zi(){return Pi}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 Za(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 Ui(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 m=!0;for(let p=0;p<e;p++){const h=i[u+p];if(h<0||h>=r||!da(a,h)){m=!1;break}}if(m)for(let p=0;p<e;p++)s.push(i[u+p])}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 m=s[u];let p=l[m];if(p<0){p=c.length/3,l[m]=p;const h=m*3;c.push(a[h],a[h+1],a[h+2])}d[u]=p}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 m=e[u],p=e[u+1],h=e[u+2];!Number.isFinite(m)||!Number.isFinite(p)||!Number.isFinite(h)||(l++,a=Math.min(a,m),r=Math.min(r,p),n=Math.min(n,h),i=Math.max(i,m),o=Math.max(o,p),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 m=e[u],p=e[u+1],h=e[u+2];if(!Number.isFinite(m)||!Number.isFinite(p)||!Number.isFinite(h)){d[u]=0,d[u+1]=0,d[u+2]=0;continue}d[u]=m-c[0],d[u+1]=p-c[1],d[u+2]=h-c[2]}return{slice:{positions:d,indices:t.indices?new Uint32Array(t.indices):void 0},offset:c}}function Ni(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(Ri(e)){a.width=e.width,a.height=e.height;const l=$i(e.data,e.width*e.height),c=new ImageData(new Uint8ClampedArray(l),e.width,e.height);r.putImageData(c,0,0)}else if(Ti(e)){const l=Oi(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 Ti(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 Ri(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 Oi(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 $i(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 Hi(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 ji(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 Vi(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(Yi)}}function Xi(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 Yi(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,m=c-o;a[r+1]=a[r]+Math.sqrt(d*d+u*u+m*m)}return a}function Gi(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=(m,p)=>[a*m+n*p+o,r*m+i*p+s],d=(m,p)=>[a*m+n*p,r*m+i*p],u=(m,p,h)=>{const f=Math.cos(h),g=Math.sin(h);return[f*m-g*p,g*m+f*p]};return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(m=>{const p=m.angle+t.patternAngle,h=m.angle+l,f=h+t.patternAngle,[g,w]=d(Math.cos(p),Math.sin(p)),b=Math.hypot(g,w),[A,y]=u(m.offset[0],m.offset[1],p),[F,S]=d(A,y),C=u(F,S,-f);return{angle:h,base:c(m.base[0],m.base[1]),offset:C,dashLengths:m.dashLengths.map(v=>v*b),patternLength:m.patternLength*b}})}}function Wi(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 on(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 Et(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),m=Di(c,d,u);return Za(l,m)}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 En(t.flags)&&Ln(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),m=i.array;let p=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}),p+=y)}if(p===0)return{positions:new Float32Array(0)};const f=new Uint32Array(p);let g=0;for(const w of h)for(let b=0;b<w.count;b++)f[g++]=m[w.start+b];return Za(u,f)}let s=0;const l=[];for(let u=0;u<o;u++){let m;try{m=t.getGeometryRangeAt(u)}catch{continue}if(!Lt(m)||m.vertexCount<=0)continue;const p=m.vertexCount*r;l.push({start:m.vertexStart*r,floatCount:p}),s+=p}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 m=0;m<u.floatCount;m++)c[d++]=n[u.start+m];return{positions:c}}function ma(t,e,a){t.push(e.getX(a),e.getY(a),e.getZ(a))}function Ki(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 Zi(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 Ct(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 rn)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=ji(t),s=Vi(t),l=Xi(t);if(t instanceof an||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 Qi(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 Ui(t)}function Jt(t,e,a={}){const r=Ni(t,e,a);return{...r.slice,offset:r.offset}}function to(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=to(r));const o=at(e),s=Qi(a,o.hatchPattern),l=s?Wi(s,n):void 0,c=o.gradientFill?Gi(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 m=_i(u.map),p=Hi(t,r.positions);if(!m||!p)return;d.texture=m,d.uvs=p,d.color=16777215,d.side=nn}return dt(d,a,e),d}function eo(t){const e=Ki(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 ao(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 ro(t){const e=Me(t,t.geometry);if(e.positions.length!==0)return kt(t.geometry,t.material,t,e,Rt(t),!0)}function no(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 Tn;bt.matrixAutoUpdate=!1;function io(t){const e=t;return e.isInstancedMesh===!0&&e.instanceMatrix!=null&&typeof e.count=="number"&&e.geometry!=null}function oo(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(Et(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 p=0;p<t.count;p++)q.fromArray(i,p*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 p=0;p<t.count;p++){if(q.fromArray(i,p*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 m=ve(ct({positions:l,indices:c},e));if(m.slice.positions.length!==0)return{slice:m.slice,offset:m.offset}}function so(t){const e=at(t),a=t;return!!(e.hatchPattern||e.gradientFill||a.map)}function lo(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 co(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&&so(r)){const o=ct(Et(t.geometry),3);if(o.positions.length===0)return;lo(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 tn||e.isLineSegments2===!0||t.type==="LineSegments2"}function ha(t){const e=t;return t instanceof Qr||e.isLineSegments===!0||t.type==="LineSegments"}function fa(t){const e=t;return t instanceof en||e.isMesh===!0||e.isInstancedMesh===!0||t.type==="Mesh"}function uo(t){const e=[],a=[];return t.traverse(r=>{if(!(Xr(r)||Yr(r)||oo(r))){if(io(r)){if(!Ct(r,t))return;r.isPoints===!0?pa(r,a,!0):ha(r)&&!Bt(r)?co(r,e):fa(r)&&!Bt(r)&&pa(r,a,!1);return}if(r instanceof $e){const n=ao(r);n&&e.push(n);return}if(r instanceof Gr){const n=eo(r);n&&e.push(n);return}if(r instanceof He){const n=ro(r);n&&a.push(n);return}if(r instanceof Wr){const n=no(r);n&&a.push(n);return}if(Bt(r)){if(!Ct(r,t))return;const n=Zi(r.geometry);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s}=at(i),{offset:l,...c}=Jt(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(!Ct(r,t))return;const n=ct(Et(r.geometry),2);if(n.positions.length===0)return;const i=xt(r),{color:o,layer:s,linePattern:l}=at(i),{offset:c,...d}=Jt(r,n),u=l?Ae(d.positions):void 0,m={layer:s,color:o,offset:c,linePattern:l,lineDistances:u,...d};oe(r)&&(m.excludeFromOsnap=!0),dt(m,r,i),e.push(m)}else if(fa(r)&&!Bt(r)&&!(r instanceof He)){if(!Ct(r,t))return;const n=xt(r);if(qa(n))return;const i=ct(Et(r.geometry),3);if(i.positions.length===0)return;const{offset:o,...s}=Jt(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 Zr(qr.ByACI,t);return e.cssColor??`rgb(${e.red}, ${e.green}, ${e.blue})`}function mo(t){try{const e=Vr.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=mo(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 Ce(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 E(t,e){const a=new V(e.x,e.y,e.z??0).applyMatrix4(t);return{x:a.x,y:a.y}}function po(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,po(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,Da*Math.max(e,a,1))}function ho(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 fo(t){if(t instanceof Pn)return!0;const e=t;return(e.type==="LINE"||e.type==="Line")&&e.startPoint!=null&&e.endPoint!=null}function go(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 bo(t,e){const a=t.dimBlockId;return a?e.tables.blockTable.getAt(a):void 0}function wo(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 xo(t){for(const e of t.newIterator())return!0;return!1}function yo(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=E(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)&<.equal(t.y,e.y)}function vo(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 ko(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 Ao(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)<=Da?a.vertices:[r,n]}function Mo(t,e,a,r){var n,i;for(const s of r.leaders)for(const l of s.leaderLines){const c=Ao(r,s,l);yt(t,e,a,c,!1)}const o=s=>{if(!s)return;const l=E(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 Co(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},m={x:c.x,y:c.y,z:i};if(lt.isPositive(Math.abs(d))){const p=E(a,u),h=E(a,m);rr(t,e,new me(p,h,d))}}}function Bo(t,e,a,r,n,i){const o=E(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:Ce(i)};t.push(l)}function So(t,e,a,r){const n=E(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:Ce(r.normal)};t.push(o)}function Zt(t,e,a,r){const n=E(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:Ce(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=E(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=E(a,c);l.fitPoints.push(d.x,d.y)}}t.push(l)}const va=1e-6;function Io(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 Eo(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 Lo(t,e,a,r){const n=Io(r),i=n.length;if(i<2)return;if(Eo(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=E(a,l),m=E(a,c);rr(t,e,new me(u,m,d))}}}function Po(t,e,a,r,n){const i=E(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 zo(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){zo(t,e,a,r,n);return}if(!(r instanceof Un))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 Nn?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},vo(c)):c instanceof _n&&(o=!0,s(),Po(t,e,a,c,n));const l=ya(i);l.length>=2&&Q(t,e,a,l,!o)}function Uo(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 No(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=wo(t,i);if(c&&!n.has(c.objectId)&&xo(c)){n.add(c.objectId);const u=zt(e,or(t));Dt(c,u,l,r,n,i,o,s),n.delete(c.objectId);return}No(r,l,e,t);const d=E(e,t.position);r.push({kind:"point",layer:l,x:d.x,y:d.y})}function To(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=E(a,r.position);t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Ro(t,e,a,r){const n=r.position();Q(t,e,a,[n.upperLeft,n.upperRight,n.lowerRight,n.lowerLeft],!0);const i=E(a,r.getLocation());t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Oo(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 sn){_o(t,e,a,r,n,i,o,s);return}if(yo(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),m=Math.max(1,t.rowCount??1),p=t.columnSpacing??0,h=t.rowSpacing??0,f=ce(t.layer,a);for(let g=0;g<m;g++)for(let w=0;w<u;w++){const b=zt(e,d);(w!==0||g!==0)&&b.multiply(new ut().makeTranslation(w*p,g*h,0));const A=E(b,{x:0,y:0,z:0});r.push({kind:"point",layer:f,x:A.x,y:A.y}),Dt(c,b,f,r,n,i,o,s)}for(const g of Oo(t))g instanceof ln,g.isInvisible||lr(g,e,f,r,n,i,o,s);n.delete(c.objectId);return}if(t instanceof cn){const c=t,d=bo(c,i);if(!d||n.has(d.objectId))return;n.add(d.objectId);const u=zt(e,c.getFullDimBlockTransform());Dt(d,u,l,r,n,i,o,!0),n.delete(d.objectId);return}if(fo(t)){go(r,l,e,t);return}if(t instanceof dn){le(e)?Bo(r,l,e,t.center,t.radius,t.normal):Zt(r,l,e,$o(t));return}if(t instanceof un){le(e)?So(r,l,e,t):Zt(r,l,e,Ho(t));return}if(t instanceof ue){Zt(r,l,e,t);return}if(t instanceof mn){Fo(r,l,e,t);return}if(t instanceof pn){Lo(r,l,e,t);return}if(t instanceof hn){Co(r,l,e,t);return}if(t instanceof fn){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 gn){s&&Uo(r,l,e,t);return}if(t instanceof bn){t.basePoint,t.unitDir;return}if(t instanceof wn){t.basePoint,t.unitDir;return}if(t instanceof xn){Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof yn){s&&Q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof vn){const c=t.subGetGripPoints();c.length>=2&&yt(r,l,e,c,c.length>=3);return}if(t instanceof kn){const c=t.vertices;c.length>=2&&yt(r,l,e,c,!1);return}if(t instanceof An){ko(r,l,e,t);return}if(t instanceof Mn){Mo(r,l,e,t);return}if(t instanceof Cn){const c=E(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof Bn){const c=E(e,t.location);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof Sn){s&&Ro(r,l,e,t);return}if(t instanceof Fn){s&&To(r,l,e,t);return}if(t instanceof In){const c=E(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y})}}}function Dt(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 $o(t){return new ue(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,0,zn)}function Ho(t){return new ue(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,t.startAngle,t.endAngle)}function jo(t,e,a={}){const r=ho(t,e);if(!r)return{primitives:[]};const n=[],i=new ut;return Dt(r,i,"0",n,new Set,t,a.includeLayer),{primitives:n.filter(o=>o.kind!=="line"&&Vo(o))}}function Vo(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 Xo=["en","zh","cs","tr","ar"];function Be(t){if(t==null||t==="")return null;const e=t.toLowerCase().replace("_","-");for(const a of Xo)if(e===a||e.startsWith(`${a}-`))return a;return null}const Yo=1128612673;function cr(t){if(t.version!==X)throw new Error(`Unsupported chunk version: ${t.version}`);const e=new ge;e.writeU32(Yo),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 Go(t){const e=cr(t),a=(await Ya(e)).bytes;return{uncompressed:e,compressed:a}}const Wo=1,dr=2*1024*1024,Ot=2*1024*1024,Ko=8*1024*1024,ka=12*1024*1024,Jo=2*1024*1024,$t="drawing.acex.json",Zo=`./${$t}`;function Se(...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>`}Se("M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0M128 896v-64h768v64z");Se("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");Se("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>',Qo='<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>',ts='<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:Qo,layerOff:ts,chevronDown:qo},es=[90,45,30,23,18,10,5];function as(){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
|
${es.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 rs=600,ns=960,Fe=`
|
|
4
4
|
:root {
|
|
@@ -1542,7 +1542,7 @@ ${Ie(i,s,l)}
|
|
|
1542
1542
|
<script id="mlcad-package" type="application/json">${pr(d)}<\/script>
|
|
1543
1543
|
<script>${mr(n)}<\/script>
|
|
1544
1544
|
</body>
|
|
1545
|
-
</html>`}function ur(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function mr(t){return t.replace(/<\/script/gi,"<\\/script")}function pr(t){return t.replace(/</g,"\\u003c")}const cs=1,ds=1e5,us=16,ms=12;function ps(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 Ut(t){var e;if(!hr(t))return;const a=!!((e=t.password)!=null&&e.trim());return{v:cs,expiresAt:t.expiresAt,encrypted:a,...a&&t.salt?{salt:t.salt}:{}}}async function fr(t,e){const a=crypto.getRandomValues(new Uint8Array(us));return{key:await bs(t,a),salt:gr(a)}}async function Le(t,e){const a=crypto.getRandomValues(new Uint8Array(ms)),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 hs(t,e,a="base85"){const{key:r,salt:n}=await fr(t),i=si(e,a),o=await Le(r,i);return{encryptedPayload:Tt(o,a),salt:n}}function fs(t){return gr(t)}async function gs(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 hs(r,t.payload);return{encoded:{payload:n,compression:t.compression},manifest:Ut({expiresAt:e.expiresAt,password:r,salt:i})}}return{encoded:t,manifest:Ut({expiresAt:e.expiresAt})}}async function bs(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:ds,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 ws=256;function xs(t,e=Ot){return!(e>0)||be(t)<=e?[t]:t.indices&&t.indices.length>=2?ks(t,e):vs(t,e)}function ys(t,e=Ot){return t.texture?[t]:!(e>0)||we(t)<=e?[t]:t.points?Ms(t,e):!t.indices||t.indices.length<3?wr(t,e):Bs(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-ws-e;return r<a?1:Math.max(1,Math.floor(r/a))}function vs(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 m=l*2;u.lineDistances=t.lineDistances.slice(m,m+c*2)}s.push(u)}return s.length>0?s:[t]}function ks(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(As(t,s,c)),s+=c}return o.length>0?o:[t]}function As(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 Ms(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 Bs(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 m=0;m<a.length;m++){const p=r[m],h=a[m],f=c*p;for(let g=0;g<p;g++)s[m].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 xs(c,l))o(d);for(const c of t.meshBatches)for(const d of ys(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 Is(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
|
|
1545
|
+
</html>`}function ur(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function mr(t){return t.replace(/<\/script/gi,"<\\/script")}function pr(t){return t.replace(/</g,"\\u003c")}const cs=1,ds=1e5,us=16,ms=12;function ps(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 Ut(t){var e;if(!hr(t))return;const a=!!((e=t.password)!=null&&e.trim());return{v:cs,expiresAt:t.expiresAt,encrypted:a,...a&&t.salt?{salt:t.salt}:{}}}async function fr(t,e){const a=crypto.getRandomValues(new Uint8Array(us));return{key:await bs(t,a),salt:gr(a)}}async function Le(t,e){const a=crypto.getRandomValues(new Uint8Array(ms)),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 hs(t,e,a="base85"){const{key:r,salt:n}=await fr(t),i=si(e,a),o=await Le(r,i);return{encryptedPayload:Tt(o,a),salt:n}}function fs(t){return gr(t)}async function gs(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 hs(r,t.payload);return{encoded:{payload:n,compression:t.compression},manifest:Ut({expiresAt:e.expiresAt,password:r,salt:i})}}return{encoded:t,manifest:Ut({expiresAt:e.expiresAt})}}async function bs(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:ds,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 ws=256;function xs(t,e=Ot){return!(e>0)||be(t)<=e?[t]:t.indices&&t.indices.length>=2?ks(t,e):vs(t,e)}function ys(t,e=Ot){return t.texture?[t]:!(e>0)||we(t)<=e?[t]:t.points?Ms(t,e):!t.indices||t.indices.length<3?wr(t,e):Bs(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-ws-e;return r<a?1:Math.max(1,Math.floor(r/a))}function vs(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 m=l*2;u.lineDistances=t.lineDistances.slice(m,m+c*2)}s.push(u)}return s.length>0?s:[t]}function ks(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(As(t,s,c)),s+=c}return o.length>0?o:[t]}function As(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 Ms(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 Bs(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 m=0;m<a.length;m++){const p=r[m],h=a[m],f=c*p;for(let g=0;g<p;g++)s[m].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 xs(c,l))o(d);for(const c of t.meshBatches)for(const d of ys(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 Is(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=zs(t.layouts,t.activeLayoutBtrId),d=[],u=[],m=new Map;return c.forEach((p,h)=>{var f;m.set(p.btrId,h);const g=Fs(p,a,r),w=[];g.forEach((y,F)=>{const S=`L${h}-${String(F).padStart(3,"0")}`,C=`chunks/${S}.${o}`;w.push(S),d.push({kind:"geometry",id:S,href:C,layoutBtrId:p.btrId,lineBatchCount:y.lineBatches.length,meshBatchCount:y.meshBatches.length,chunk:{version:X,layoutBtrId:p.btrId,lineBatches:y.lineBatches,meshBatches:y.meshBatches}})});const b={btrId:p.btrId,name:p.name,isModelSpace:p.isModelSpace,viewports:p.viewports,...p.savedView?{savedView:p.savedView}:{},chunkIds:w},A=(f=p.osnap)==null?void 0:f.primitives;if(A&&A.length>0){const y=Mi(A,n),F=[];y.forEach((S,C)=>{const v=`L${h}-osnap-${String(C).padStart(3,"0")}`,k=`chunks/${v}.${s}`;F.push(v),d.push({kind:"osnap",id:v,href:k,layoutBtrId:p.btrId,primitiveCount:S.length,primitives:S})}),b.osnapChunkIds=F}u.push(b)}),{jobs:d,layoutRefs:u,layoutIndexByBtrId:m,manifestFileName:l,compressChunks:i}}function Es(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)??[]),m=[...s.filter(w=>u.has(w.id)),...s.filter(w=>!u.has(w.id))],p=new Set(((o=d.find(w=>w.btrId===t.activeLayoutBtrId))==null?void 0:o.osnapChunkIds)??[]),h=[...l.filter(w=>p.has(w.id)),...l.filter(w=>!p.has(w.id))],f={format:"acex-package",packageVersion:Wo,snapshotVersion:X,meta:t.meta,layers:t.layers,activeLayoutBtrId:t.activeLayoutBtrId,layouts:d,chunks:m,...h.length>0?{osnapChunks:h}:{}},g=`${JSON.stringify(f)}
|
|
1546
1546
|
`;return c.unshift({path:r,bytes:vt(g)}),{manifest:f,manifestFileName:r,files:c}}async function Ls(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 Go(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 Ci({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}=Is(t,e),s=await Promise.all(a.map(l=>Ls(l,o)));return Es(t,r,n,i,s)}async function Ps(t,e){const a=await Ar(t,e),r=ls(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 zs(t,e){const a=t.find(n=>n.btrId===e),r=t.filter(n=>n.btrId!==e);return a?[a,...r]:[...t]}const Ds="application/vnd.mlightcad.acex-chunk;base85",Us="application/vnd.mlightcad.acex-chunk+aes-gcm;base85",Mr="data-acex-href";function Ns(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 _s(t,e=Ko){return Ns(t)>=e}async function Ts(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},m=await Ar(t,u);let p,h,f;if(d){const{key:w,salt:b}=await fr(d);p=Ut({expiresAt:c,password:d,salt:b});const A=new TextEncoder().encode(`${JSON.stringify(m.manifest)}
|
|
1547
1547
|
`),y=await Le(w,A);h={mode:"embedded",encrypted:!0,encryptedManifest:fs(y)},f=await Os(m.files,w)}else p=Ut({expiresAt:c}),h={mode:"embedded",manifest:m.manifest},f=Rs(m.files);const g=p?` <script id="mlcad-access" type="application/json">${Aa(JSON.stringify(p))}<\/script>
|
|
1548
1548
|
`:"";return`<!DOCTYPE html>
|
|
@@ -1557,8 +1557,8 @@ ${Ie(i,s,l)}
|
|
|
1557
1557
|
<body>
|
|
1558
1558
|
${Ie(i,s,l)}
|
|
1559
1559
|
${g} <script id="mlcad-package" type="application/json">${Aa(JSON.stringify(h))}<\/script>
|
|
1560
|
-
${f} <script>${
|
|
1560
|
+
${f} <script>${$s(n)}<\/script>
|
|
1561
1561
|
</body>
|
|
1562
|
-
</html>`}function Rs(t){const e=[];for(const a of t)a.path
|
|
1563
|
-
`);return e.join("")}async function Os(t,e){const a=[];for(const r of t){if(r.path
|
|
1564
|
-
`)}return a.join("")}function Cr(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Br(t){return Cr(t).replace(/'/g,"'")}function Hs(t){return t.replace(/<\/script/gi,"<\\/script")}function Aa(t){return t.replace(/</g,"\\u003c")}function $s(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 js(t){return t.endsWith(".gz")}function Vs(t){const e={};for(const a of t.files){if(!$s(a.path))throw new Error(`Unsafe package path: ${a.path}`);js(a.path)?e[a.path]=[a.bytes,{level:0}]:e[a.path]=[a.bytes,{level:6}]}return oi(e)}const $t=0,ze=16777215;function Sr(t){return t==="white"||t==="space"?t:"black"}function Xs(t){return t==="white"?ze:$t}function Ma(t,e,a){return t==="space"?e?$t:ze:a>>>0}function Ca(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 Ys(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?$t:null}function St(t){return Ys(t)??t}function Fr(t,e,a){if(Ca(e)!==Ca(a)){for(const r of t.lineBatches)r.color=St(r.color);for(const r of t.meshBatches){if(r.texture)continue;r.color=St(r.color);const n=r.gradientFill;n&&(n.startColor=St(n.startColor),n.endColor=St(n.endColor))}}}function Gs(t,e,a){const r=a>>>0;t.meta.background=r;for(const n of t.layouts)Fr(n,e,r)}function Ws(t,e,a){const r=Sr(a);if(t.meta.backgroundMode=r,r==="space"){for(const i of t.layouts)Fr(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,$t);return}Gs(t,e,Xs(r)),t.meta.backgroundMode=r}const Ir="https://mlightcad.com/cad-viewer/docs/";let Er=Pr(Ir);function Lr(){return Er}function Ks(t){Er=Pr(t)}function Pr(t){const e=t.trim();return e?e.replace(/\/+$/,""):Ir.replace(/\/+$/,"")}function Js(){return{minX:0,minY:0,maxX:0,maxY:0,valid:!1}}function Zs(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){Zs(t,e.positions,e.offset)}function qs(t){return t.valid?{minX:t.minX,minY:t.minY,maxX:t.maxX,maxY:t.maxY}:null}function Qs(t,e){const a=Js();for(const r of t)Ba(a,r);for(const r of e)Ba(a,r);return qs(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 tl(t){if(!t||t.length===0)return null;let e=null;for(const a of t)e=zr(e,a.paper);return e}function el(t){return zr(Qs(t.lineBatches,t.meshBatches),tl(t.viewports))}function al(t,e,a){if(a)return;const r=nl(t,e);if(!(r!=null&&r.newIterator))return;const n=[];for(const i of r.newIterator()){if(!(i instanceof Kr)||Jr.isDefaultPaperSpaceViewport(i)||typeof i.toGiViewport!="function")continue;const o=i.toGiViewport(),s=o.box,l=o.viewBox,c=Sa(s),d=Sa(l);if(!c||!d)continue;const u=Number.isFinite(o.viewTwistAngle)?o.viewTwistAngle:i.viewTwistAngle,m=rl(o,i),p={paper:c,model:d};Number.isFinite(u)&&Math.abs(u)>1e-12&&(p.twist=u),m.length>0&&(p.frozenLayers=m),n.push(p)}return n.length>0?n:void 0}function rl(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 Sa(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 nl(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 Fa=16/9;function il(t,e,a,r=Fa){var n,i,o,s;const l=Number.isFinite(r)&&r>0?r:Fa;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 Ia(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 Ia(d.limits)}}function Ia(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 ol(t,e,a={}){return ll(t,e,a)}async function sl(t,e,a={}){const r=a.yieldBetweenLayouts;r&&await r();const n=a.exportInvisibleLayers!==!1,i=a.exportLayouts!==!1,o=n?void 0:h=>De(e,h,n),s=ar(t,{title:a.title,background:a.background}),l=Ur(e,n),c=Dr(t),d=new Map(c.map(h=>[h.blockTableRecordId,h.name])),u=Tr(e,i),m=_r(e,c,i),p=[];for(const h of m)p.push(Rr(t,e,h,d,a,o)),r&&await r();return{version:X,meta:Nr(s,a,p,u),layers:l,layouts:p,activeLayoutBtrId:u}}function ll(t,e,a){const r=a.exportInvisibleLayers!==!1,n=a.exportLayouts!==!1,i=r?void 0:p=>De(e,p,r),o=ar(t,{title:a.title,background:a.background}),s=Ur(e,r),l=Dr(t),c=new Map(l.map(p=>[p.blockTableRecordId,p.name])),d=Tr(e,n),u=_r(e,l,n),m=[];for(const p of u)m.push(Rr(t,e,p,c,a,i));return{version:X,meta:Nr(o,a,m,d),layers:s,layouts:m,activeLayoutBtrId:d}}function Ur(t,e){const a=[];for(const r of t.layers)De(t,r.name,e)&&a.push({name:r.name,color:r.color,visible:r.visible});return a}function Nr(t,e,a,r){const n=a.find(s=>s.btrId===r)??a[0],i=n?el(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 cl(t){return(t.viewerMode??"measure")==="measure"}function De(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 Tr(t,e){return e&&t.activeLayoutBtrId||t.modelSpaceBtrId}function Rr(t,e,a,r,n,i){const o=[],s=[];for(const u of a.layers){if(i&&!i(u.name))continue;const m=uo(u.root);o.push(...m.lineBatches),s.push(...m.meshBatches)}const l=a.isModelSpace||a.btrId===e.modelSpaceBtrId,c=il(t,a.btrId,l,n.canvasAspectRatio);let d;if(cl(n)){const u=performance.now();d=jo(t,a.btrId,{includeLayer:i}),console.log(`[chtml] osnap catalog ${r.get(a.btrId)??a.name??a.btrId}: ${(performance.now()-u).toFixed(0)} ms (${(d==null?void 0:d.primitives.length)??0} primitives)`)}return{btrId:a.btrId,name:r.get(a.btrId)??a.name??dl(t,a.btrId),isModelSpace:l,lineBatches:o,meshBatches:s,osnap:d,viewports:al(t,a.btrId,l),...c?{savedView:c}:{}}}function dl(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 ul=400,Ue=10,Ne=1,Or=64;function Nt(t){return Math.floor(t)*1024*1024}function Hr(t){return Math.max(Ne,Math.round(t/(1024*1024)))}function $r(t){return Number.isFinite(t)?Math.min(Or,Math.max(Ne,Math.floor(t))):Ue}function G(t={}){var e;const a=t.exportFormat==="multi"?"multi":"single",r=a==="multi"?Nt($r(t.maxChunkBytes!=null?Hr(t.maxChunkBytes):Ue)):dr;return{exportFormat:a,exportInvisibleLayers:t.exportInvisibleLayers!==!1,exportLayouts:t.exportLayouts!==!1,background:Sr(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 ml(t){const e=t.maxChunkBytes??Nt(Ue),a=t.compressChunks!==!1;return{maxChunkBytes:e,maxBatchBytes:e,maxOsnapChunkBytes:e,compressChunks:a}}function pl(t){const e=t.activeLayoutView,a=e.center,r=e.trCamera.zoom,n=Math.max(e.height,1),i=r*(2*ul)/n;return{centerX:a.x,centerY:a.y,zoom:i}}const hl="./viewer-runtime.iife.js";let At={};function fl(t){At={...At,...t}}function gl(){return{...At}}function bl(t){return t!=null?String(t):At.viewerRuntimeUrl!=null?String(At.viewerRuntimeUrl):hl}class wl{build(e,a,r={}){return ol(a,La(e),Ea(r))}async buildAsync(e,a,r={}){return sl(a,La(e),{...Ea(r),yieldBetweenLayouts:()=>j()})}}function Ea(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:xl()}}function xl(){try{Ks(Vn())}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 J(t,e){console.log(`[chtml] ${t}: ${e.toFixed(0)} ms`)}class yl{constructor(e={}){this.options=e,this._snapshotBuilder=new wl}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 $n))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=Z.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);J("prepare (missing entities)",performance.now()-l);const d=e||s.fileName||s.docTitle,u=jn(d);l=performance.now();const m=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)?pl(c):void 0,canvasAspectRatio:c.width/Math.max(c.height,1)});Ws(m,c.backgroundColor,i.background),J("snapshot build",performance.now()-l),await j(),l=performance.now();const p=await this.loadViewerRuntime();if(J("load viewer runtime",performance.now()-l),await j(),i.exportFormat==="multi"){l=performance.now();const g=ml(i),w=await Ps(m,{viewerRuntime:p,...g});J(g.compressChunks?"package + gzip chunks":"package chunks",performance.now()-l),l=performance.now();const b=Vs(w);J("zip package",performance.now()-l),await j(),this.downloadBytes(b,Ve(d,"zip"),"application/zip"),J("chtml total",performance.now()-o);return}const h=ps(i.expiryDays,Date.now(),i.expiresAt);l=performance.now();const f=await this.packSelfContainedHtml(m,p,{expiresAt:h,password:i.password||void 0});J("pack self-contained html",performance.now()-l),await j(),this.downloadHtml(f,Ve(d,"html")),J("chtml total",performance.now()-o)})}async packSnapshot(e,a){await Z.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(_s(e))return Ts(e,{title:e.meta.title,viewerRuntime:a,expiresAt:r.expiresAt,password:r.password});const n=await gs(Ja(e),{expiresAt:r.expiresAt,password:r.password});return ss(e,{title:e.meta.title,viewerRuntime:a,encoded:n.encoded,accessManifest:n.manifest})}async loadViewerRuntime(){const e=bl(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 vl extends On{constructor(e={}){super(),this.pluginOptions=e}async execute(e){const a=await this.promptOptions();a&&await new yl(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 Z.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 Z.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,Or);r.allowNone=!0,r.allowZero=!1,r.allowNegative=!1,r.useDefaultValue=!0,r.defaultValue=a;const n=await Z.instance.editor.getInteger(r);if(n.status!==B.Cancel){if(n.status===B.None)return Nt(a);if(n.status===B.OK){const i=$r(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 Z.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 Z.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 Z.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 kl="1.7.8-preview.3",Al={version:kl};class Ml{constructor(e={}){this.options=e,this.name="HtmlPlugin",this.version=Al.version,this.description="HTML export (-chtml) command",this.registeredCommands=[]}onLoad(e,a){const r=Rn.SYSTEMT_COMMAND_GROUP_NAME,n=new vl(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 Bl(t={}){return t.viewerRuntimeUrl!=null&&fl(t),new Ml(gl())}export{Yo as ACEC_CHUNK_MAGIC,fi as ACEO_OSNAP_MAGIC,gi as ACEO_OSNAP_VERSION,dr as ACEX_DEFAULT_CHUNK_MAX_BYTES,Ue as ACEX_DEFAULT_CHUNK_SIZE_MIB,Ir as ACEX_DEFAULT_DOCS_BASE_URL,Ht as ACEX_DEFAULT_MANIFEST_FILE,Zo as ACEX_DEFAULT_MANIFEST_HREF,Us as ACEX_EMBEDDED_CHUNK_ENCRYPTED_MIME,Mr as ACEX_EMBEDDED_CHUNK_HREF_ATTR,ka as ACEX_EMBEDDED_CHUNK_MAX_BYTES,Ds as ACEX_EMBEDDED_CHUNK_MIME,Ko as ACEX_EMBEDDED_CHUNK_THRESHOLD_BYTES,Jo as ACEX_EMBEDDED_OSNAP_CHUNK_MAX_BYTES,$t as ACEX_HTML_BACKGROUND_BLACK,ze as ACEX_HTML_BACKGROUND_WHITE,Xo as ACEX_HTML_LOCALES,Fe as ACEX_HTML_SHELL_CSS,Or as ACEX_MAX_CHUNK_SIZE_MIB,Ot as ACEX_MAX_GEOMETRY_BATCH_BYTES,Ne as ACEX_MIN_CHUNK_SIZE_MIB,Wo as ACEX_PACKAGE_VERSION,es as ACEX_POLAR_ANGLE_INCREMENTS,Xa as ACEX_SNAPSHOT_COMPRESSION,X as ACEX_SNAPSHOT_VERSION,vl as AcApExportHtmlCmd,yl as AcApHtmlConvertor,wl as AcApHtmlSnapshotBuilder,ge as AcExBinaryWriter,de as AcExHtmlIcons,hl as DEFAULT_HTML_VIEWER_RUNTIME_URL,Qe as F_LINE_DISTANCES,pi as F_LINE_EXCLUDE_OSNAP,Ze 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,hi as F_MESH_POINTS,sa as F_MESH_RENDER_ORDER,oa as F_MESH_SIDE,la as F_MESH_TEXTURE,Il as HTML_PLUGIN_NAME,El as HTML_PLUGIN_TRIGGERS,ns as ML_UI_COMPACT_MAX_WIDTH,rs as ML_UI_MOBILE_MAX_WIDTH,Xs as acExHtmlBackgroundRgb,ci as acExHtmlBase85ToBytes,fs as acExHtmlBytesToBase64,li as acExHtmlBytesToBase85,Tt as acExHtmlBytesToText,Ma as acExHtmlLayoutBackground,si as acExHtmlTextToBytes,Hr as acexChunkSizeBytesToMiB,Nt as acexChunkSizeMiBToBytes,Lr as acexGetDocsBaseUrl,Ks as acexSetDocsBaseUrl,Ws as applyAcExHtmlBackground,ye as bakePlainDrawableSlice,Ut as buildAcExHtmlAccessManifest,as as buildAcExHtmlPolarAnglesPanel,Ie as buildAcExHtmlShellBody,Ps as buildAcExPackageAsync,Ar as buildAcExPackageDataAsync,jo as buildOsnapCatalog,ol as buildSnapshotFromExportScene,sl as buildSnapshotFromExportSceneAsync,ar as buildViewerMetadata,pl as captureAcApHtmlViewState,il as captureAcExSavedViewExtents,$r as clampAcApHtmlChunkSizeMiB,uo as collectBatchesFromObject3D,al as collectLayoutViewports,Za as compactIndexedSlice,ae as compressSnapshotBinary,Ya as compressSnapshotBinaryAsync,Qs as computeLayoutExtents,el as computeLayoutViewExtents,Ae as computeLineDistancesForSegments,tl as computeViewportPaperExtents,fl as configureHtmlPlugin,et as copyFloat32Range,Di as copyUint32Range,fr as createAcExHtmlAccessKey,Js as createEmptyExtents,Bl as createHtmlPlugin,cr as encodeChunkBinary,xe as encodeOsnapCatalogBinary,Ja as encodeSnapshot,Fi as encodeSnapshotBinary,_i as encodeTextureForExport,Le as encryptAcExHtmlBytes,hs as encryptAcExHtmlSnapshotPayload,Ns as estimateAcExSnapshotGeometryBytes,be as estimateLineBatchBytes,we as estimateMeshBatchBytes,Ka as estimateOsnapPrimitiveBytes,Ba as expandExtentsFromBatch,Zs as expandExtentsFromPositions,Ki as exportActiveBatchedLine2Slice,Me as exportActiveBatchedSlice,Et as exportBufferGeometrySlice,Ni as exportPlainDrawableSlice,$i as exportUvsForPositionSlice,Gi as exportVertexAttributeSlice,Xi as extractGradientFill,Vi as extractHatchPattern,ji as extractLinePattern,gl as getHtmlPluginOptions,qa as isTransparentImagePlaceholder,Dr as listDatabaseLayouts,hr as needsAcExHtmlAccessControl,Pr as normalizeAcExDocsBaseUrl,ct as omitNonFinitePrimitives,ss as packHtml,Ts as packHtmlEmbeddedPackage,ls as packHtmlPackage,gs as protectAcExHtmlEncodedSnapshot,Ui as readBatchWorldOffset,Wi as rebaseHatchPatternToLocalOffset,ve as rebasePlainDrawableSliceAroundCentroid,Gs as remapAcExSnapshotForegroundForBackground,ps as resolveAcApHtmlExpiresAt,G as resolveAcApHtmlExportOptions,ml as resolveAcApHtmlPackageBuildOptions,Sr as resolveAcExHtmlBackground,Be as resolveAcExHtmlLocale,bl as resolveViewerRuntimeUrl,_s as shouldEmbedAcExChunks,zi as snapshotMimeType,Fs as splitLayoutIntoSlices,xs as splitLineBatch,ys as splitMeshBatch,Mi as splitOsnapPrimitives,qs as toExtents,ca as toWcsCoord,ua as transformHatchPatternToWorldSpace,zr as unionExtents,wa as wcsPointToOcsArcAngle,Ga as writeLineBatch,Wa as writeMeshBatch,Vs as zipAcExPackageFiles};
|
|
1562
|
+
</html>`}function Rs(t){const e=[];for(const a of t)a.path!==$t&&e.push(` <script type="${Ds}" ${Mr}="${Br(a.path)}">${Tt(a.bytes,"base85")}<\/script>
|
|
1563
|
+
`);return e.join("")}async function Os(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="${Us}" ${Mr}="${Br(r.path)}">${Tt(n,"base85")}<\/script>
|
|
1564
|
+
`)}return a.join("")}function Cr(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Br(t){return Cr(t).replace(/'/g,"'")}function $s(t){return t.replace(/<\/script/gi,"<\\/script")}function Aa(t){return t.replace(/</g,"\\u003c")}function Hs(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 js(t){return t.endsWith(".gz")}function Vs(t){const e={};for(const a of t.files){if(!Hs(a.path))throw new Error(`Unsafe package path: ${a.path}`);js(a.path)?e[a.path]=[a.bytes,{level:0}]:e[a.path]=[a.bytes,{level:6}]}return oi(e)}const Ht=0,ze=16777215;function Sr(t){return t==="white"||t==="space"?t:"black"}function Xs(t){return t==="white"?ze:Ht}function Ma(t,e,a){return t==="space"?e?Ht:ze:a>>>0}function Ca(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 Ys(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 St(t){return Ys(t)??t}function Fr(t,e,a){if(Ca(e)!==Ca(a)){for(const r of t.lineBatches)r.color=St(r.color);for(const r of t.meshBatches){if(r.texture)continue;r.color=St(r.color);const n=r.gradientFill;n&&(n.startColor=St(n.startColor),n.endColor=St(n.endColor))}}}function Gs(t,e,a){const r=a>>>0;t.meta.background=r;for(const n of t.layouts)Fr(n,e,r)}function Ws(t,e,a){const r=Sr(a);if(t.meta.backgroundMode=r,r==="space"){for(const i of t.layouts)Fr(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}Gs(t,e,Xs(r)),t.meta.backgroundMode=r}const Ir="https://mlightcad.com/cad-viewer/docs/";let Er=Pr(Ir);function Lr(){return Er}function Ks(t){Er=Pr(t)}function Pr(t){const e=t.trim();return e?e.replace(/\/+$/,""):Ir.replace(/\/+$/,"")}function Js(){return{minX:0,minY:0,maxX:0,maxY:0,valid:!1}}function Zs(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){Zs(t,e.positions,e.offset)}function qs(t){return t.valid?{minX:t.minX,minY:t.minY,maxX:t.maxX,maxY:t.maxY}:null}function Qs(t,e){const a=Js();for(const r of t)Ba(a,r);for(const r of e)Ba(a,r);return qs(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 tl(t){if(!t||t.length===0)return null;let e=null;for(const a of t)e=zr(e,a.paper);return e}function el(t){return zr(Qs(t.lineBatches,t.meshBatches),tl(t.viewports))}function al(t,e,a){if(a)return;const r=nl(t,e);if(!(r!=null&&r.newIterator))return;const n=[];for(const i of r.newIterator()){if(!(i instanceof Kr)||Jr.isDefaultPaperSpaceViewport(i)||typeof i.toGiViewport!="function")continue;const o=i.toGiViewport(),s=o.box,l=o.viewBox,c=Sa(s),d=Sa(l);if(!c||!d)continue;const u=Number.isFinite(o.viewTwistAngle)?o.viewTwistAngle:i.viewTwistAngle,m=rl(o,i),p={paper:c,model:d};Number.isFinite(u)&&Math.abs(u)>1e-12&&(p.twist=u),m.length>0&&(p.frozenLayers=m),n.push(p)}return n.length>0?n:void 0}function rl(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 Sa(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 nl(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 Fa=16/9;function il(t,e,a,r=Fa){var n,i,o,s;const l=Number.isFinite(r)&&r>0?r:Fa;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 Ia(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 Ia(d.limits)}}function Ia(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 ol(t,e,a={}){return ll(t,e,a)}async function sl(t,e,a={}){const r=a.yieldBetweenLayouts;r&&await r();const n=a.exportInvisibleLayers!==!1,i=a.exportLayouts!==!1,o=n?void 0:h=>De(e,h,n),s=ar(t,{title:a.title,background:a.background}),l=Ur(e,n),c=Dr(t),d=new Map(c.map(h=>[h.blockTableRecordId,h.name])),u=Tr(e,i),m=_r(e,c,i),p=[];for(const h of m)p.push(Rr(t,e,h,d,a,o)),r&&await r();return{version:X,meta:Nr(s,a,p,u),layers:l,layouts:p,activeLayoutBtrId:u}}function ll(t,e,a){const r=a.exportInvisibleLayers!==!1,n=a.exportLayouts!==!1,i=r?void 0:p=>De(e,p,r),o=ar(t,{title:a.title,background:a.background}),s=Ur(e,r),l=Dr(t),c=new Map(l.map(p=>[p.blockTableRecordId,p.name])),d=Tr(e,n),u=_r(e,l,n),m=[];for(const p of u)m.push(Rr(t,e,p,c,a,i));return{version:X,meta:Nr(o,a,m,d),layers:s,layouts:m,activeLayoutBtrId:d}}function Ur(t,e){const a=[];for(const r of t.layers)De(t,r.name,e)&&a.push({name:r.name,color:r.color,visible:r.visible});return a}function Nr(t,e,a,r){const n=a.find(s=>s.btrId===r)??a[0],i=n?el(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 cl(t){return(t.viewerMode??"measure")==="measure"}function De(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 Tr(t,e){return e&&t.activeLayoutBtrId||t.modelSpaceBtrId}function Rr(t,e,a,r,n,i){const o=[],s=[];for(const u of a.layers){if(i&&!i(u.name))continue;const m=uo(u.root);o.push(...m.lineBatches),s.push(...m.meshBatches)}const l=a.isModelSpace||a.btrId===e.modelSpaceBtrId,c=il(t,a.btrId,l,n.canvasAspectRatio);let d;if(cl(n)){const u=performance.now();d=jo(t,a.btrId,{includeLayer:i}),console.log(`[chtml] osnap catalog ${r.get(a.btrId)??a.name??a.btrId}: ${(performance.now()-u).toFixed(0)} ms (${(d==null?void 0:d.primitives.length)??0} primitives)`)}return{btrId:a.btrId,name:r.get(a.btrId)??a.name??dl(t,a.btrId),isModelSpace:l,lineBatches:o,meshBatches:s,osnap:d,viewports:al(t,a.btrId,l),...c?{savedView:c}:{}}}function dl(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 ul=400,Ue=10,Ne=1,Or=64;function Nt(t){return Math.floor(t)*1024*1024}function $r(t){return Math.max(Ne,Math.round(t/(1024*1024)))}function Hr(t){return Number.isFinite(t)?Math.min(Or,Math.max(Ne,Math.floor(t))):Ue}function G(t={}){var e;const a=t.exportFormat==="multi"?"multi":"single",r=a==="multi"?Nt(Hr(t.maxChunkBytes!=null?$r(t.maxChunkBytes):Ue)):dr;return{exportFormat:a,exportInvisibleLayers:t.exportInvisibleLayers!==!1,exportLayouts:t.exportLayouts!==!1,background:Sr(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 ml(t){const e=t.maxChunkBytes??Nt(Ue),a=t.compressChunks!==!1;return{maxChunkBytes:e,maxBatchBytes:e,maxOsnapChunkBytes:e,compressChunks:a}}function pl(t){const e=t.activeLayoutView,a=e.center,r=e.trCamera.zoom,n=Math.max(e.height,1),i=r*(2*ul)/n;return{centerX:a.x,centerY:a.y,zoom:i}}const hl="./viewer-runtime.iife.js";let At={};function fl(t){At={...At,...t}}function gl(){return{...At}}function bl(t){return t!=null?String(t):At.viewerRuntimeUrl!=null?String(At.viewerRuntimeUrl):hl}class wl{build(e,a,r={}){return ol(a,La(e),Ea(r))}async buildAsync(e,a,r={}){return sl(a,La(e),{...Ea(r),yieldBetweenLayouts:()=>j()})}}function Ea(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:xl()}}function xl(){try{Ks(Vn())}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 J(t,e){console.log(`[chtml] ${t}: ${e.toFixed(0)} ms`)}class yl{constructor(e={}){this.options=e,this._snapshotBuilder=new wl}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 Hn))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=Z.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);J("prepare (missing entities)",performance.now()-l);const d=e||s.fileName||s.docTitle,u=jn(d);l=performance.now();const m=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)?pl(c):void 0,canvasAspectRatio:c.width/Math.max(c.height,1)});Ws(m,c.backgroundColor,i.background),J("snapshot build",performance.now()-l),await j(),l=performance.now();const p=await this.loadViewerRuntime();if(J("load viewer runtime",performance.now()-l),await j(),i.exportFormat==="multi"){l=performance.now();const g=ml(i),w=await Ps(m,{viewerRuntime:p,...g});J(g.compressChunks?"package + gzip chunks":"package chunks",performance.now()-l),l=performance.now();const b=Vs(w);J("zip package",performance.now()-l),await j(),this.downloadBytes(b,Ve(d,"zip"),"application/zip"),J("chtml total",performance.now()-o);return}const h=ps(i.expiryDays,Date.now(),i.expiresAt);l=performance.now();const f=await this.packSelfContainedHtml(m,p,{expiresAt:h,password:i.password||void 0});J("pack self-contained html",performance.now()-l),await j(),this.downloadHtml(f,Ve(d,"html")),J("chtml total",performance.now()-o)})}async packSnapshot(e,a){await Z.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(_s(e))return Ts(e,{title:e.meta.title,viewerRuntime:a,expiresAt:r.expiresAt,password:r.password});const n=await gs(Ja(e),{expiresAt:r.expiresAt,password:r.password});return ss(e,{title:e.meta.title,viewerRuntime:a,encoded:n.encoded,accessManifest:n.manifest})}async loadViewerRuntime(){const e=bl(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 vl extends On{constructor(e={}){super(),this.pluginOptions=e}async execute(e){const a=await this.promptOptions();a&&await new yl(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 Z.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 Z.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=$r(e.maxChunkBytes),r=new $n(x.t("jig.chtml.chunkSizeMiB"),Ne,Or);r.allowNone=!0,r.allowZero=!1,r.allowNegative=!1,r.useDefaultValue=!0,r.defaultValue=a;const n=await Z.instance.editor.getInteger(r);if(n.status!==B.Cancel){if(n.status===B.None)return Nt(a);if(n.status===B.OK){const i=Hr(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 Z.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 Z.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 Z.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 kl="1.7.8-preview.4",Al={version:kl};class Ml{constructor(e={}){this.options=e,this.name="HtmlPlugin",this.version=Al.version,this.description="HTML export (-chtml) command",this.registeredCommands=[]}onLoad(e,a){const r=Rn.SYSTEMT_COMMAND_GROUP_NAME,n=new vl(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 Bl(t={}){return t.viewerRuntimeUrl!=null&&fl(t),new Ml(gl())}export{Yo as ACEC_CHUNK_MAGIC,fi as ACEO_OSNAP_MAGIC,gi as ACEO_OSNAP_VERSION,dr as ACEX_DEFAULT_CHUNK_MAX_BYTES,Ue as ACEX_DEFAULT_CHUNK_SIZE_MIB,Ir as ACEX_DEFAULT_DOCS_BASE_URL,$t as ACEX_DEFAULT_MANIFEST_FILE,Zo as ACEX_DEFAULT_MANIFEST_HREF,Us as ACEX_EMBEDDED_CHUNK_ENCRYPTED_MIME,Mr as ACEX_EMBEDDED_CHUNK_HREF_ATTR,ka as ACEX_EMBEDDED_CHUNK_MAX_BYTES,Ds as ACEX_EMBEDDED_CHUNK_MIME,Ko 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,Xo as ACEX_HTML_LOCALES,Fe as ACEX_HTML_SHELL_CSS,Or as ACEX_MAX_CHUNK_SIZE_MIB,Ot as ACEX_MAX_GEOMETRY_BATCH_BYTES,Ne as ACEX_MIN_CHUNK_SIZE_MIB,Wo as ACEX_PACKAGE_VERSION,es as ACEX_POLAR_ANGLE_INCREMENTS,Xa as ACEX_SNAPSHOT_COMPRESSION,X as ACEX_SNAPSHOT_VERSION,vl as AcApExportHtmlCmd,yl as AcApHtmlConvertor,wl as AcApHtmlSnapshotBuilder,ge as AcExBinaryWriter,de as AcExHtmlIcons,hl as DEFAULT_HTML_VIEWER_RUNTIME_URL,Qe as F_LINE_DISTANCES,pi as F_LINE_EXCLUDE_OSNAP,Ze 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,hi as F_MESH_POINTS,sa as F_MESH_RENDER_ORDER,oa as F_MESH_SIDE,la as F_MESH_TEXTURE,Il as HTML_PLUGIN_NAME,El as HTML_PLUGIN_TRIGGERS,ns as ML_UI_COMPACT_MAX_WIDTH,rs as ML_UI_MOBILE_MAX_WIDTH,Xs as acExHtmlBackgroundRgb,ci as acExHtmlBase85ToBytes,fs as acExHtmlBytesToBase64,li as acExHtmlBytesToBase85,Tt as acExHtmlBytesToText,Ma as acExHtmlLayoutBackground,si as acExHtmlTextToBytes,$r as acexChunkSizeBytesToMiB,Nt as acexChunkSizeMiBToBytes,Lr as acexGetDocsBaseUrl,Ks as acexSetDocsBaseUrl,Ws as applyAcExHtmlBackground,ye as bakePlainDrawableSlice,Ut as buildAcExHtmlAccessManifest,as as buildAcExHtmlPolarAnglesPanel,Ie as buildAcExHtmlShellBody,Ps as buildAcExPackageAsync,Ar as buildAcExPackageDataAsync,jo as buildOsnapCatalog,ol as buildSnapshotFromExportScene,sl as buildSnapshotFromExportSceneAsync,ar as buildViewerMetadata,pl as captureAcApHtmlViewState,il as captureAcExSavedViewExtents,Hr as clampAcApHtmlChunkSizeMiB,uo as collectBatchesFromObject3D,al as collectLayoutViewports,Za as compactIndexedSlice,ae as compressSnapshotBinary,Ya as compressSnapshotBinaryAsync,Qs as computeLayoutExtents,el as computeLayoutViewExtents,Ae as computeLineDistancesForSegments,tl as computeViewportPaperExtents,fl as configureHtmlPlugin,et as copyFloat32Range,Di as copyUint32Range,fr as createAcExHtmlAccessKey,Js as createEmptyExtents,Bl as createHtmlPlugin,cr as encodeChunkBinary,xe as encodeOsnapCatalogBinary,Ja as encodeSnapshot,Fi as encodeSnapshotBinary,_i as encodeTextureForExport,Le as encryptAcExHtmlBytes,hs as encryptAcExHtmlSnapshotPayload,Ns as estimateAcExSnapshotGeometryBytes,be as estimateLineBatchBytes,we as estimateMeshBatchBytes,Ka as estimateOsnapPrimitiveBytes,Ba as expandExtentsFromBatch,Zs as expandExtentsFromPositions,Ki as exportActiveBatchedLine2Slice,Me as exportActiveBatchedSlice,Et as exportBufferGeometrySlice,Ni as exportPlainDrawableSlice,Hi as exportUvsForPositionSlice,Gi as exportVertexAttributeSlice,Xi as extractGradientFill,Vi as extractHatchPattern,ji as extractLinePattern,gl as getHtmlPluginOptions,qa as isTransparentImagePlaceholder,Dr as listDatabaseLayouts,hr as needsAcExHtmlAccessControl,Pr as normalizeAcExDocsBaseUrl,ct as omitNonFinitePrimitives,ss as packHtml,Ts as packHtmlEmbeddedPackage,ls as packHtmlPackage,gs as protectAcExHtmlEncodedSnapshot,Ui as readBatchWorldOffset,Wi as rebaseHatchPatternToLocalOffset,ve as rebasePlainDrawableSliceAroundCentroid,Gs as remapAcExSnapshotForegroundForBackground,ps as resolveAcApHtmlExpiresAt,G as resolveAcApHtmlExportOptions,ml as resolveAcApHtmlPackageBuildOptions,Sr as resolveAcExHtmlBackground,Be as resolveAcExHtmlLocale,bl as resolveViewerRuntimeUrl,_s as shouldEmbedAcExChunks,zi as snapshotMimeType,Fs as splitLayoutIntoSlices,xs as splitLineBatch,ys as splitMeshBatch,Mi as splitOsnapPrimitives,qs as toExtents,ca as toWcsCoord,ua as transformHatchPatternToWorldSpace,zr as unionExtents,wa as wcsPointToOcsArcAngle,Ga as writeLineBatch,Wa as writeMeshBatch,Vs as zipAcExPackageFiles};
|