@mlightcad/cad-simple-viewer-cli 1.7.7-preview.0 → 1.7.7-preview.1
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-BCJIaxfo.js → cad-html-plugin-Dke9D3fu.js} +2 -2
- package/dist-runner/assets/{cad-pdf-plugin-D8qj3KMw.js → cad-pdf-plugin-B_koSXPK.js} +2 -2
- package/dist-runner/assets/{cad-svg-plugin-Dvsf9X2Y.js → cad-svg-plugin-C_EQNju8.js} +2 -2
- package/dist-runner/assets/{index-DQoJ_CWB.js → index-DcNjX9Io.js} +281 -281
- package/dist-runner/index.html +1 -1
- package/dist-runner/viewer-runtime.iife.js +1 -1
- package/package.json +10 -10
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{E as _r,F as Xt,H as Tr,I as Or,N as Te,J as Rr,K as Oe,L as $r,O as ut,P as Hr,Q as jr,j as Vr,R as Xr,S as Ca,_ as Yr,U as Gr,V as Wr,W as Kr,X as Ba,Y as Jr,Z as Zr,$ as qr,a0 as Re,a1 as Qr,a2 as tn,a3 as en,a4 as an,a5 as rn,a6 as nn,a7 as ce,a8 as on,a9 as sn,aa as ln,ab as cn,ac as dn,ad as un,ae as mn,af as pn,ag as hn,ah as fn,ai as gn,aj as bn,ak as wn,al as xn,am as yn,an as vn,ao as kn,ap as An,aq as Mn,ar as Fn,as as V,at as Sn,au as lt,av as Ea,aw as Cn,ax as de,q as Bn,ay as En,az as In,aA as Ln,aB as zn,G as Pn,a as Un,aC as Mt,h as k,x as Q,aD as E,aE as Dn,aF as Nn,b as j,aG as _n,d as $e,aH as Tn}from"./index-DQoJ_CWB.js";import{aI as xl,aJ as yl}from"./index-DQoJ_CWB.js";var P=Uint8Array,N=Uint16Array,ue=Int32Array,me=new P([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]),pe=new P([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]),He=new P([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ia=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 ue(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}},La=Ia(me,2),On=La.b,Jt=La.r;On[28]=258,Jt[258]=28;var Rn=Ia(pe,0),je=Rn.r,Zt=new N(32768);for(var M=0;M<32768;++M){var W=(M&43690)>>1|(M&21845)<<1;W=(W&52428)>>2|(W&13107)<<2,W=(W&61680)>>4|(W&3855)<<4,Zt[M]=((W&65280)>>8|(W&255)<<8)>>1}var bt=(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[Zt[u]>>l]=c}else for(s=new N(r),n=0;n<r;++n)t[n]&&(s[n]=Zt[o[t[n]-1]++]>>15-t[n]);return s}),tt=new P(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 Ct=new P(32);for(var M=0;M<32;++M)Ct[M]=5;var $n=bt(tt,9,0),Hn=bt(Ct,5,0),za=function(t){return(t+7)/8|0},Pa=function(t,e,a){return(a==null||a>t.length)&&(a=t.length),new P(t.subarray(e,a))},jn=["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"],Nt=function(t,e,a){var r=new Error(e||jn[t]);if(r.code=t,Error.captureStackTrace&&Error.captureStackTrace(r,Nt),!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},pt=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},Yt=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:Da,l:0};if(n==1){var o=new P(a[0].s+1);return o[a[0].s]=1,{t:o,l:1}}a.sort(function(C,S){return C.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=qt(a[d-1],p,0);if(h>e){var r=0,f=0,g=h-e,w=1<<g;for(i.sort(function(S,F){return p[F.s]-p[S.s]||S.f-F.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 x=i[r].s;p[x]==e&&(--p[x],++f)}h=e}return{t:new P(p),l:h}},qt=function(t,e,a){return t.s==-1?Math.max(qt(t.l,e,a+1),qt(t.r,e,a+1)):e[t.s]=a},Ve=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}},ht=function(t,e){for(var a=0,r=0;r<e.length;++r)a+=t[r]*e[r];return a},Ua=function(t,e,a){var r=a.length,n=za(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},Xe=function(t,e,a,r,n,i,o,s,l,c,d){Y(e,d++,a),++n[256];for(var u=Yt(n,15),m=u.t,p=u.l,h=Yt(i,15),f=h.t,g=h.l,w=Ve(m),b=w.c,A=w.n,x=Ve(f),C=x.c,S=x.n,F=new N(19),y=0;y<b.length;++y)++F[b[y]&31];for(var y=0;y<C.length;++y)++F[C[y]&31];for(var v=Yt(F,7),U=v.t,rt=v.l,D=19;D>4&&!U[He[D-1]];--D);var nt=c+5<<3,_=ht(n,tt)+ht(i,Ct)+o,T=ht(n,m)+ht(i,f)+o+14+3*D+ht(F,U)+2*F[16]+3*F[17]+7*F[18];if(l>=0&&nt<=_&&nt<=T)return Ua(e,d,t.subarray(l,l+c));var R,L,O,G;if(Y(e,d,1+(T<_)),d+=2,T<_){R=bt(m,p,0),L=m,O=bt(f,g,0),G=f;var $t=bt(U,rt,0);Y(e,d,A-257),Y(e,d+5,S-1),Y(e,d+10,D-4),d+=14;for(var y=0;y<D;++y)Y(e,d+3*y,U[He[y]]);d+=3*D;for(var $=[b,C],mt=0;mt<2;++mt)for(var it=$[mt],y=0;y<it.length;++y){var H=it[y]&31;Y(e,d,$t[H]),d+=U[H],H>15&&(Y(e,d,it[y]>>5&127),d+=it[y]>>12)}}else R=$n,L=tt,O=Hn,G=Ct;for(var y=0;y<s;++y){var z=r[y];if(z>255){var H=z>>18&31;pt(e,d,R[H+257]),d+=L[H+257],H>7&&(Y(e,d,z>>23&31),d+=me[H]);var ot=z&31;pt(e,d,O[ot]),d+=G[ot],ot>3&&(pt(e,d,z>>5&8191),d+=pe[ot])}else pt(e,d,R[z]),d+=L[z]}return pt(e,d,R[256]),d+L[256]},Vn=new ue([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Da=new P(0),Xn=function(t,e,a,r,n,i){var o=i.z||t.length,s=new P(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=Vn[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(Vt){return(t[Vt]^t[Vt+1]<<w^t[Vt+2]<<b)&h},x=new ue(25e3),C=new N(288),S=new N(32),F=0,y=0,v=i.i||0,U=0,rt=i.w||0,D=0;v+2<o;++v){var nt=A(v),_=v&32767,T=g[nt];if(f[_]=T,g[nt]=_,rt<=v){var R=o-v;if((F>7e3||U>24576)&&(R>423||!c)){d=Xe(t,l,0,x,C,S,y,U,D,v-D,d),U=F=y=0,D=v;for(var L=0;L<286;++L)C[L]=0;for(var L=0;L<30;++L)S[L]=0}var O=2,G=0,$t=p,$=_-T&32767;if(R>2&&nt==A(v-$))for(var mt=Math.min(m,R)-1,it=Math.min(32767,v),H=Math.min(258,R);$<=it&&--$t&&_!=T;){if(t[v+O]==t[v+O-$]){for(var z=0;z<H&&t[v+z]==t[v+z-$];++z);if(z>O){if(O=z,G=$,z>mt)break;for(var ot=Math.min($,z-2),Ue=0,L=0;L<ot;++L){var Ht=v-$+L&32767,Nr=f[Ht],De=Ht-Nr&32767;De>Ue&&(Ue=De,T=Ht)}}}_=T,T=f[_],$+=_-T&32767}if(G){x[U++]=268435456|Jt[O]<<18|je[G];var Ne=Jt[O]&31,_e=je[G]&31;y+=me[Ne]+pe[_e],++C[257+Ne],++S[_e],rt=v+O,++F}else x[U++]=t[v],++C[t[v]]}}for(v=Math.max(v,rt);v<o;++v)x[U++]=t[v],++C[t[v]];d=Xe(t,l,c,x,C,S,y,U,D,v-D,d),c||(i.r=d&7|l[d/8|0]<<3,d-=7,i.h=g,i.p=f,i.i=v,i.w=rt)}else{for(var v=i.w||0;v<o+c;v+=65535){var jt=v+65535;jt>=o&&(l[d/8|0]=c,jt=o),d=Ua(l,d+1,t.subarray(v,jt))}i.i=o}return Pa(s,0,r+za(d)+n)},Yn=(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})(),Na=function(){var t=-1;return{p:function(e){for(var a=t,r=0;r<e.length;++r)a=Yn[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 P(i.length+t.length);o.set(i),o.set(t,i.length),t=o,n.w=i.length}return Xn(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)},Ta=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},B=function(t,e,a){for(;a;++e)t[e]=a,a>>>=8},Gn=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&&B(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)}},Wn=function(t){return 10+(t.filename?t.filename.length+1:0)};function Kn(t,e){return _a(t,e||{},0,0)}function Jn(t,e){e||(e={});var a=Na(),r=t.length;a.p(t);var n=_a(t,e,Wn(e),8),i=n.length;return Gn(n,e),B(n,i-8,a.d()),B(n,i-4,r),n}var Oa=function(t,e,a,r){for(var n in t){var i=t[n],o=e+n,s=r;Array.isArray(i)&&(s=Ta(r,i[1]),i=i[0]),i instanceof P?a[o]=[i,s]:(a[o+="/"]=[new P(0),s],Oa(i,o,a,r))}},Ye=typeof TextEncoder<"u"&&new TextEncoder,Zn=typeof TextDecoder<"u"&&new TextDecoder,qn=0;try{Zn.decode(Da,{stream:!0}),qn=1}catch{}function yt(t,e){var a;if(Ye)return Ye.encode(t);for(var r=t.length,n=new P(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 P(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 Pa(n,0,i)}var Qt=function(t){var e=0;if(t)for(var a in t){var r=t[a].length;r>65535&&Nt(9),e+=r+4}return e},Ge=function(t,e,a,r,n,i,o,s){var l=r.length,c=a.extra,d=s&&s.length,u=Qt(c);B(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)&&Nt(10),B(t,e,p<<25|m.getMonth()+1<<21|m.getDate()<<16|m.getHours()<<11|m.getMinutes()<<5|m.getSeconds()>>1),e+=4,i!=-1&&(B(t,e,a.crc),B(t,e+4,i<0?-i-2:i),B(t,e+8,a.size)),B(t,e+12,l),B(t,e+14,u),e+=16,o!=null&&(B(t,e,d),B(t,e+6,a.attrs),B(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;B(t,e,+h),B(t,e+2,g),t.set(f,e+4),e+=4+g}return d&&(t.set(s,e),e+=d),e},Qn=function(t,e,a,r,n){B(t,e,101010256),B(t,e+8,a),B(t,e+10,a),B(t,e+12,r),B(t,e+16,n)};function ti(t,e){e||(e={});var a={},r=[];Oa(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=yt(o),m=u.length,p=c.comment,h=p&&yt(p),f=h&&h.length,g=Qt(c.extra);m>65535&&Nt(11);var w=d?Kn(l,c):l,b=w.length,A=Na();A.p(l),r.push(Ta(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 x=new P(i+22),C=n,S=i-n,F=0;F<r.length;++F){var u=r[F];Ge(x,u.o,u,u.f,u.u,u.c.length);var y=30+u.f.length+Qt(u.extra);x.set(u.c,u.o+y),Ge(x,n,u,u.f,u.u,u.c.length,u.o,u.m),n+=16+y+(u.m?u.m.length:0)}return Qn(x,n,r.length,S,C),x}class he{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=yt(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,Ra="gzip";function te(t){return{bytes:Jn(t),compression:Ra}}async function $a(t){if(typeof CompressionStream>"u")return te(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:Ra}}catch{return te(t)}}const Bt="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%()*+,-.;=?@[]^_{|}~",ee=new Int16Array(128).fill(-1);for(let t=0;t<Bt.length;t++)ee[Bt.charCodeAt(t)]=t;function _t(t,e){return e==="base85"?ai(t):ii(t)}function ei(t,e){const a=t.length>0&&(t.charCodeAt(0)<=32||t.charCodeAt(t.length-1)<=32)?t.trim():t;return e==="base85"?ri(a):oi(a)}function ai(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(Bt[m[p]])}const i=Math.ceil(e*5/4);return n.slice(0,i).join("")}function ri(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=Bt.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?ni(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 ni(t){if(t<0||t>=ee.length)throw new Error("Invalid base85 character");const e=ee[t];if(e<0)throw new Error("Invalid base85 character");return e}function ii(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}function oi(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 We=1,Ke=2,Je=4,Ze=8,qe=16,si=32,Qe=1,ta=2,ea=4,aa=8,ra=16,li=32,na=64,ia=128;function fe(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 ge(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 Ha(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|=We),e.linePattern&&(a|=Ke),e.lineDistances&&e.lineDistances.length>0&&(a|=Je),e.lineWidth!=null&&e.lineWidth>0&&(a|=Ze),e.renderOrder!=null&&e.renderOrder!==0&&(a|=qe),e.excludeFromOsnap&&(a|=si),t.writeU8(a),a&We&&t.writeUint32Array(e.indices),a&Ke&&t.writeJson(e.linePattern),a&Je&&t.writeFloat32Array(e.lineDistances),a&Ze&&t.writeF32(e.lineWidth),a&qe&&t.writeI32(e.renderOrder)}function ja(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|=Qe),e.hatchPattern&&(a|=ta),e.gradientFill&&(a|=ea),e.gradientPositions&&e.gradientPositions.length>0&&(a|=aa),e.side!=null&&(a|=ra),e.points&&(a|=li),e.renderOrder!=null&&e.renderOrder!==0&&(a|=na),e.texture&&e.texture.bytes.length>0&&e.uvs&&e.uvs.length>=2&&(a|=ia),t.writeU8(a),a&Qe&&t.writeUint32Array(e.indices),a&ta&&t.writeJson(e.hatchPattern),a&ea&&t.writeJson(e.gradientFill),a&aa&&t.writeFloat32Array(e.gradientPositions),a&ra&&t.writeU8(e.side),a&na&&t.writeI32(e.renderOrder),a&ia&&(t.writeFloat32Array(e.uvs),t.writeString(e.texture.mimeType||"image/png"),t.writeU32(e.texture.bytes.byteLength),t.writeBytes(e.texture.bytes))}const ci=1329939265,di=1,ui=1,mi=2,pi=3,hi=4,fi=5,gi=6,bi=7;function Va(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 wi(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=Va(o);r.length>0&&n+s>e&&i(),r.push(o),n+=s}return i(),a}function be(t){const e=new he;e.writeU32(ci),e.writeU8(di),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)yi(e,i,n(i.layer));return e.toUint8Array()}async function xi(t){const e=be(t),a=(await $a(e)).bytes;return{uncompressed:e,compressed:a}}function Gt(t,e){t.writeU8(e<0?0:1)}function ft(t,e){t.writeU32(e.length);for(const a of e)t.writeF64(a)}function yi(t,e,a){switch(e.kind){case"line":t.writeU8(ui),t.writeU32(a),t.writeF64(e.x0),t.writeF64(e.y0),t.writeF64(e.x1),t.writeF64(e.y1);return;case"circle":t.writeU8(mi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),Gt(t,e.normalSign);return;case"arc":t.writeU8(pi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),t.writeF64(e.startAngle),t.writeF64(e.endAngle),Gt(t,e.normalSign);return;case"ellipse":t.writeU8(hi),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),Gt(t,e.normalSign??1);return;case"spline":t.writeU8(fi),t.writeU32(a),ft(t,e.controlPoints),t.writeU32(e.degree),ft(t,e.knots),ft(t,e.weights),t.writeU8(e.closed?1:0),ft(t,e.fitPoints??[]);return;case"point":t.writeU8(gi),t.writeU32(a),t.writeF64(e.x),t.writeF64(e.y);return;case"path":t.writeU8(bi),t.writeU32(a),t.writeU8(e.closed?1:0),ft(t,e.vertices);return;default:{const r=e;throw new Error(`Unsupported osnap primitive: ${String(r)}`)}}}const vi=1480934209;function ki(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=new he;e.writeU32(vi),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeJson(Ai(t)),e.writeJson(t.layers),e.writeString(t.activeLayoutBtrId),e.writeU32(t.layouts.length);for(const a of t.layouts)Mi(e,a);return e.toUint8Array()}function Ai(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 Mi(t,e){t.writeString(e.btrId),t.writeString(e.name),t.writeU8(e.isModelSpace?1:0),Fi(t,e.osnap),t.writeJson(e.viewports??null),t.writeU32(e.lineBatches.length);for(const a of e.lineBatches)Ha(t,a);t.writeU32(e.meshBatches.length);for(const a of e.meshBatches)ja(t,a)}function Fi(t,e){if(!e||e.primitives.length===0){t.writeU32(0);return}const a=be(e);t.writeU32(a.length),t.writeBytes(a)}const Si="application/vnd.mlightcad.acex-snapshot+binary";function Xa(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=ki(t),a=te(e);return{payload:_t(a.bytes,"base85"),compression:a.compression}}function Ci(){return Si}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 Bi(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 Ya(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 oa(t,e){return t+e}const st={x:0,y:0,z:0};function Ei(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 we(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 sa(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||!sa(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(!sa(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 xe(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 Ii(t,e,a={}){t.updateMatrixWorld(!0);const r=we(e,t.matrixWorld);return xe(r)}function Li(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(Pi(e)){a.width=e.width,a.height=e.height;const l=Di(e.data,e.width*e.height),c=new ImageData(new Uint8ClampedArray(l),e.width,e.height);r.putImageData(c,0,0)}else if(zi(e)){const l=Ui(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 zi(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 Pi(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 Ui(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 Di(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 Ni(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 Ga(t){const e=t;return e.map?!1:e.transparent===!0&&typeof e.opacity=="number"&&e.opacity<.01}function ye(t){const e=t;if(e.isShaderMaterial===!0||t.type==="ShaderMaterial")return e}function _i(t){var e;const a=ye(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 Ti(t){var e;const a=ye(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(Ri)}}function Oi(t){var e,a,r,n,i;const o=ye(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 Ri(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 ve(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 $i(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 la(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,x]=u(m.offset[0],m.offset[1],p),[C,S]=d(A,x),F=u(C,S,-f);return{angle:h,base:c(m.base[0],m.base[1]),offset:F,dashLengths:m.dashLengths.map(y=>y*b),patternLength:m.patternLength*b}})}}function Hi(t,e){return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(a=>{const r=new Re(a.base[0]-e[0],a.base[1]-e[1]),n=new Re(a.offset[0],a.offset[1]);return Qr(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 ae(t,e){return!Number.isFinite(t)||t<0?0:Math.min(Math.floor(t),e)}function re(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=ae(a.start,i.count),u=re(a.count,i.count,d),m=Bi(c,d,u);return Ya(l,m)}const o=ae(a.start,e.count),s=re(a.count,e.count,o);return{positions:et(r,o*n,s*n)}}function It(t){return Mn(t.flags)&&Fn(t.flags)}function Wa(t){const{count:e}=t.mappingStats;for(let a=0;a<e;a++){let r;try{r=t.getGeometryRangeAt(a)}catch{continue}if(It(r)&&r.bboxIntersectionCheck)return!0}return!1}function ne(t){return Ca(t).bboxIntersectionCheck===!0}function ke(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,x=b.indexCount??0;!It(b)||x<=0||(h.push({start:A,count:x}),p+=x)}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 Ya(u,f)}let s=0;const l=[];for(let u=0;u<o;u++){let m;try{m=t.getGeometryRangeAt(u)}catch{continue}if(!It(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 ca(t,e,a){t.push(e.getX(a),e.getY(a),e.getZ(a))}function ji(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(!It(s)||s.vertexCount<=0)continue;const l=s.vertexStart,c=l+s.vertexCount;for(let d=l;d<c;d++)ca(i,a,d),ca(i,r,d)}return{positions:new Float32Array(i)}}function Vi(t,e){const a=t.instanceCount;if(Number.isFinite(a)&&a>=0)return Math.min(Math.floor(a),e);const r=t.drawRange,n=ae(r.start,e);return re(r.count,e,n)}function Xi(t){const e=t.getAttribute("instanceStart"),a=t.getAttribute("instanceEnd");if(!e||!a||e.count===0)return{positions:new Float32Array(0)};const r=Vi(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 Ft(t){return Yr(t)}function Ka(t){if(t instanceof Zr)return t.linewidth}function wt(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=Ba(t),r=a.layer??"0",n=t;let i=n.color!=null?n.color.getHex():a.color??16777215;const o=_i(t),s=Ti(t),l=Oi(t);if(t instanceof Jr||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 Yi(t,e){const a=Ba(e).drawOrder??t.renderOrder;return a===0?void 0:a}function dt(t,e,a){const r=Yi(e,a);r!=null&&(t.renderOrder=r)}function Gi(t,e){if(!e)return;const a=t.userData.bakedWorldMatrix;return a&&a.length>=16?la(e,a):(t.updateMatrixWorld(!0),la(e,Array.from(t.matrixWorld.elements)))}function Tt(t){return Ei(t)}function Wt(t,e,a={}){const r=Ii(t,e,a);return{...r.slice,offset:r.offset}}function Wi(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 vt(t,e,a,r,n,i=!1){i&&(r=Wi(r));const o=at(e),s=Gi(a,o.hatchPattern),l=s?Hi(s,n):void 0,c=o.gradientFill?$i(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=Li(u.map),p=Ni(t,r.positions);if(!m||!p)return;d.texture=m,d.uvs=p,d.color=16777215,d.side=qr}return dt(d,a,e),d}function Ki(t){const e=ji(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r}=at(t.material),n=Ka(t.material),i={layer:r,color:a,offset:Tt(t),lineWidth:n,...e};return Wa(t)&&(i.excludeFromOsnap=!0),dt(i,t,t.material),i}function Ji(t){const e=ke(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r,linePattern:n}=at(t.material),i=n?ve(e.positions):void 0,o={layer:r,color:a,offset:Tt(t),linePattern:n,lineDistances:i,...e};return Wa(t)&&(o.excludeFromOsnap=!0),dt(o,t,t.material),o}function Zi(t){const e=ke(t,t.geometry);if(e.positions.length!==0)return vt(t.geometry,t.material,t,e,Tt(t),!0)}function qi(t){const e=ke(t,t.geometry);if(e.positions.length===0)return;const a=vt(t.geometry,t.material,t,e,Tt(t));if(a)return{points:!0,...a}}const Z=new ut,Lt=new ut,gt=new zn;gt.matrixAutoUpdate=!1;function Qi(t){const e=t;return e.isInstancedMesh===!0&&e.instanceMatrix!=null&&typeof e.count=="number"&&e.geometry!=null}function to(t){return t.renderOrder<1e4||t.isInstancedMesh===!0?!1:Ca(t).sharesTemplateGeometry===!0}function ie(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 Ja(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++)Z.fromArray(i,p*16),ie(Z)&&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(Z.fromArray(i,p*16),!ie(Z))continue;Lt.multiplyMatrices(t.matrixWorld,Z);const h=we(r,Lt);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=xe(ct({positions:l,indices:c},e));if(m.slice.positions.length!==0)return{slice:m.slice,offset:m.offset}}function eo(t){const e=at(t),a=t;return!!(e.hatchPattern||e.gradientFill||a.map)}function ao(t,e){t.updateMatrixWorld(!0);const a=t.instanceMatrix.array;for(let r=0;r<t.count;r++)Z.fromArray(a,r*16),ie(Z)&&(Lt.multiplyMatrices(t.matrixWorld,Z),e(Lt))}function ro(t,e){const a=Ja(t,2);if(!a)return;const r=wt(t),{color:n,layer:i,linePattern:o}=at(r),s=o?ve(a.slice.positions):void 0,l={layer:i,color:n,offset:a.offset,linePattern:o,lineDistances:s,...a.slice};ne(t)&&(l.excludeFromOsnap=!0),dt(l,t,r),e.push(l)}function da(t,e,a){const r=wt(t);if(!a&&Ga(r))return;if(!a&&eo(r)){const o=ct(Et(t.geometry),3);if(o.positions.length===0)return;ao(t,s=>{const l=ct(we(o,s),3);if(l.positions.length===0)return;const c=xe(l);gt.matrix.copy(s),gt.matrixWorld.copy(s),gt.matrixWorldNeedsUpdate=!1;const d=vt(t.geometry,r,gt,c.slice,c.offset,!0);d&&e.push(d)});return}const n=Ja(t,a?1:3);if(!n)return;const i=vt(t.geometry,r,t,n.slice,n.offset,!a);i&&e.push(a?{...i,points:!0}:i)}function St(t){const e=t;return t instanceof Wr||e.isLineSegments2===!0||t.type==="LineSegments2"}function ua(t){const e=t;return t instanceof Gr||e.isLineSegments===!0||t.type==="LineSegments"}function ma(t){const e=t;return t instanceof Kr||e.isMesh===!0||e.isInstancedMesh===!0||t.type==="Mesh"}function no(t){const e=[],a=[];return t.traverse(r=>{if(!(Tr(r)||Or(r)||to(r))){if(Qi(r)){if(!Ft(r))return;r.isPoints===!0?da(r,a,!0):ua(r)&&!St(r)?ro(r,e):ma(r)&&!St(r)&&da(r,a,!1);return}if(r instanceof Te){const n=Ji(r);n&&e.push(n);return}if(r instanceof Rr){const n=Ki(r);n&&e.push(n);return}if(r instanceof Oe){const n=Zi(r);n&&a.push(n);return}if(r instanceof $r){const n=qi(r);n&&a.push(n);return}if(St(r)){if(!Ft(r))return;const n=Xi(r.geometry);if(n.positions.length===0)return;const i=wt(r),{color:o,layer:s}=at(i),{offset:l,...c}=Wt(r,n),d={layer:s,color:o,offset:l,lineWidth:Ka(i),...c};ne(r)&&(d.excludeFromOsnap=!0),dt(d,r,i),e.push(d)}else if(ua(r)&&!(r instanceof Te)){if(!Ft(r))return;const n=ct(Et(r.geometry),2);if(n.positions.length===0)return;const i=wt(r),{color:o,layer:s,linePattern:l}=at(i),{offset:c,...d}=Wt(r,n),u=l?ve(d.positions):void 0,m={layer:s,color:o,offset:c,linePattern:l,lineDistances:u,...d};ne(r)&&(m.excludeFromOsnap=!0),dt(m,r,i),e.push(m)}else if(ma(r)&&!St(r)&&!(r instanceof Oe)){if(!Ft(r))return;const n=wt(r);if(Ga(n))return;const i=ct(Et(r.geometry),3);if(i.positions.length===0)return;const{offset:o,...s}=Wt(r,i),l=vt(r.geometry,n,r,s,o,!0);l&&a.push(l)}}}),{lineBatches:e,meshBatches:a}}const pa={size:8,colorCss:"#0080ff",hotColorCss:"#ff0000"};function ha(t){const e=new Vr(Xr.ByACI,t);return e.cssColor??`rgb(${e.red}, ${e.green}, ${e.blue})`}function io(t){try{const e=_r.instance(),a=e.getVar(Xt.GRIPSIZE,t),r=e.getVar(Xt.GRIPCOLOR,t),n=e.getVar(Xt.GRIPHOT,t);return!(a>0)||!Number.isFinite(a)?pa:{size:a,colorCss:ha(r),hotColorCss:ha(n)}}catch{return pa}}function Za(t,e){const a=t.extmin,r=t.extmax,n=io(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 fa(t,e,a,r,n){return Math.atan2(r-e,n*(a-t))}function Ae(t){return t.z>=0?1:-1}function qa(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:fa(n,i,a.startPoint.x,a.startPoint.y,r),endAngle:fa(n,i,a.endPoint.x,a.endPoint.y,r),normalSign:r})}function I(t,e){const a=new V(e.x,e.y,e.z??0).applyMatrix4(t);return{x:a.x,y:a.y}}function oo(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,oo(e))}function Qa(t,e){const a=new V(e.x,e.y,e.z??0).transformDirection(t).normalize();return{x:a.x,y:a.y}}function oe(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,Ea*Math.max(e,a,1))}function so(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 lo(t){if(t instanceof Sn)return!0;const e=t;return(e.type==="LINE"||e.type==="Line")&&e.startPoint!=null&&e.endPoint!=null}function co(t,e,a,r){r.startPoint,r.endPoint}function tr(t,e){return t.blockTableRecord??(t.blockName?e.tables.blockTable.getAt(t.blockName):void 0)}function uo(t,e){const a=t.dimBlockId;return a?e.tables.blockTable.getAt(a):void 0}function mo(t,e){const a=tr(t,e);if(a)return a;const r=t.owningBlockRecordId;return r?e.tables.blockTable.getAt(r):void 0}function er(t){return t.getFullInsertionTransform()}function po(t){for(const e of t.newIterator())return!0;return!1}function ho(t){return typeof t.getFullInsertionTransform=="function"&&"blockTableRecord"in t}function q(t,e,a,r,n){if(r.length<2)return;const i=oe(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=I(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 ar(t,e){return lt.equal(t.x,e.x)&<.equal(t.y,e.y)}function fo(t){return(t.clockwise?-1:1)*Math.tan(t.deltaAngle/4)}function ga(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];ar(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 ba(t){return t.length>=2&&ar(t[0],t[t.length-1])&&t.pop(),t}function xt(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 go(t,e,a,r){const n=[r.startPosition];for(const i of r.segments)n.push(i.position);xt(t,e,a,n,r.closed)}function bo(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)<=Ea?a.vertices:[r,n]}function wo(t,e,a,r){var n,i;for(const s of r.leaders)for(const l of s.leaderLines){const c=bo(r,s,l);xt(t,e,a,c,!1)}const o=s=>{if(!s)return;const l=I(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 xo(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=I(a,u),h=I(a,m);qa(t,e,new de(p,h,d))}}}function yo(t,e,a,r,n,i){const o=I(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:Ae(i)};t.push(l)}function vo(t,e,a,r){const n=I(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:Ae(r.normal)};t.push(o)}function Kt(t,e,a,r){const n=I(a,r.center),i=r._geo,o=(i==null?void 0:i.majorAxis)??{x:1,y:0,z:0},s=Qa(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:Ae(r.normal)};t.push(u)}function ko(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=I(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=I(a,c);l.fitPoints.push(d.x,d.y)}}t.push(l)}const wa=1e-6;function Ao(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 Mo(t){return t.some(e=>{const a=Math.max(0,e.startWidth??0),r=Math.max(0,e.endWidth??0);return a>wa||r>wa})}function Fo(t,e,a,r){const n=Ao(r),i=n.length;if(i<2)return;if(Mo(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=I(a,l),m=I(a,c);qa(t,e,new de(u,m,d))}}}function So(t,e,a,r,n){const i=I(a,{x:r.center.x,y:r.center.y,z:n}),o=Qa(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 Co(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 Bo(t,e,a,r,n){if(r instanceof Bn){Co(t,e,a,r,n);return}if(!(r instanceof En))return;const i=[];let o=!1;const s=()=>{const c=ba(i);c.length>=2&&q(t,e,a,c,!1),i.length=0};for(const c of r.curves)c instanceof In?ga(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},0):c instanceof de?ga(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},fo(c)):c instanceof Ln&&(o=!0,s(),So(t,e,a,c,n));const l=ba(i);l.length>=2&&q(t,e,a,l,!o)}function Eo(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)Bo(t,e,a,s,o)}function Io(t,e,a,r){zt(a,er(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 Lo(t,e,a,r,n,i,o,s=!0){const l=se(t.layer,a);if(o&&!o(l))return;const c=mo(t,i);if(c&&!n.has(c.objectId)&&po(c)){n.add(c.objectId);const u=zt(e,er(t));Pt(c,u,l,r,n,i,o,s),n.delete(c.objectId);return}Io(r,l,e,t);const d=I(e,t.position);r.push({kind:"point",layer:l,x:d.x,y:d.y})}function zo(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=I(a,r.position);t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Po(t,e,a,r){const n=r.position();q(t,e,a,[n.upperLeft,n.upperRight,n.lowerRight,n.lowerLeft],!0);const i=I(a,r.getLocation());t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Uo(t){var e;const a=(e=t.attributeIterator)==null?void 0:e.call(t);return a?typeof a.toArray=="function"?a.toArray():[...a]:[]}function se(t,e){return t==="0"?e:t}function rr(t,e,a,r,n,i,o,s=!0){if(!t.visibility)return;const l=se(t.layer,a);if(!(o&&!o(l))){if(t instanceof tn){Lo(t,e,a,r,n,i,o,s);return}if(ho(t)){const c=tr(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=se(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=I(b,{x:0,y:0,z:0});r.push({kind:"point",layer:f,x:A.x,y:A.y}),Pt(c,b,f,r,n,i,o,s)}for(const g of Uo(t))g instanceof en,g.isInvisible||rr(g,e,f,r,n,i,o,s);n.delete(c.objectId);return}if(t instanceof an){const c=t,d=uo(c,i);if(!d||n.has(d.objectId))return;n.add(d.objectId);const u=zt(e,c.getFullDimBlockTransform());Pt(d,u,l,r,n,i,o,!0),n.delete(d.objectId);return}if(lo(t)){co(r,l,e,t);return}if(t instanceof rn){oe(e)?yo(r,l,e,t.center,t.radius,t.normal):Kt(r,l,e,Do(t));return}if(t instanceof nn){oe(e)?vo(r,l,e,t):Kt(r,l,e,No(t));return}if(t instanceof ce){Kt(r,l,e,t);return}if(t instanceof on){ko(r,l,e,t);return}if(t instanceof sn){Fo(r,l,e,t);return}if(t instanceof ln){xo(r,l,e,t);return}if(t instanceof cn){const c=[];for(let d=0;d<t.numberOfVertices;d++)c.push(t.getPointAt(d));xt(r,l,e,c,t.closed);return}if(t instanceof dn){s&&Eo(r,l,e,t);return}if(t instanceof un){t.basePoint,t.unitDir;return}if(t instanceof mn){t.basePoint,t.unitDir;return}if(t instanceof pn){q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof hn){s&&q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof fn){const c=t.subGetGripPoints();c.length>=2&&xt(r,l,e,c,c.length>=3);return}if(t instanceof gn){const c=t.vertices;c.length>=2&&xt(r,l,e,c,!1);return}if(t instanceof bn){go(r,l,e,t);return}if(t instanceof wn){wo(r,l,e,t);return}if(t instanceof xn){const c=I(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof yn){const c=I(e,t.location);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof vn){s&&Po(r,l,e,t);return}if(t instanceof kn){s&&zo(r,l,e,t);return}if(t instanceof An){const c=I(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y})}}}function Pt(t,e,a,r,n,i,o,s=!0){for(const l of t.newIterator())rr(l,e,a,r,n,i,o,s)}function Do(t){return new ce(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,0,Cn)}function No(t){return new ce(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,t.startAngle,t.endAngle)}function _o(t,e,a={}){const r=so(t,e);if(!r)return{primitives:[]};const n=[],i=new ut;return Pt(r,i,"0",n,new Set,t,a.includeLayer),{primitives:n.filter(o=>o.kind!=="line"&&To(o))}}function To(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 Oo=["en","zh","cs","tr","ar"];function Me(t){if(t==null||t==="")return null;const e=t.toLowerCase().replace("_","-");for(const a of Oo)if(e===a||e.startsWith(`${a}-`))return a;return null}const Ro=1128612673;function nr(t){if(t.version!==X)throw new Error(`Unsupported chunk version: ${t.version}`);const e=new he;e.writeU32(Ro),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)Ha(e,a);e.writeU32(t.meshBatches.length);for(const a of t.meshBatches)ja(e,a);return e.toUint8Array()}async function $o(t){const e=nr(t),a=(await $a(e)).bytes;return{uncompressed:e,compressed:a}}const Ho=1,ir=2*1024*1024,Ot=2*1024*1024,jo=8*1024*1024,xa=12*1024*1024,Vo=2*1024*1024,Rt="drawing.acex.json",Xo=`./${Rt}`;function Fe(...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>`}Fe("M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0M128 896v-64h768v64z");Fe("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");Fe("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 Yo='<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>',Go='<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>',Wo='<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>',le={layerOn:Go,layerOff:Wo,chevronDown:Yo},Ko=[90,45,30,23,18,10,5];function Jo(){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{E as _r,F as Xt,H as Tr,I as Or,N as Te,J as Rr,K as Oe,L as $r,O as ut,P as Hr,Q as jr,i as Vr,R as Xr,S as Ca,_ as Yr,U as Gr,V as Wr,W as Kr,X as Ba,Y as Jr,Z as Zr,$ as qr,a0 as Re,a1 as Qr,a2 as tn,a3 as en,a4 as an,a5 as rn,a6 as nn,a7 as ce,a8 as on,a9 as sn,aa as ln,ab as cn,ac as dn,ad as un,ae as mn,af as pn,ag as hn,ah as fn,ai as gn,aj as bn,ak as wn,al as xn,am as yn,an as vn,ao as kn,ap as An,aq as Mn,ar as Fn,as as V,at as Sn,au as lt,av as Ea,aw as Cn,ax as de,q as Bn,ay as En,az as In,aA as Ln,aB as zn,G as Pn,a as Un,aC as Mt,h as k,x as Q,aD as E,aE as Dn,aF as Nn,b as j,aG as _n,m as $e,aH as Tn}from"./index-DcNjX9Io.js";import{aI as xl,aJ as yl}from"./index-DcNjX9Io.js";var P=Uint8Array,N=Uint16Array,ue=Int32Array,me=new P([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]),pe=new P([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]),He=new P([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ia=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 ue(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}},La=Ia(me,2),On=La.b,Jt=La.r;On[28]=258,Jt[258]=28;var Rn=Ia(pe,0),je=Rn.r,Zt=new N(32768);for(var M=0;M<32768;++M){var W=(M&43690)>>1|(M&21845)<<1;W=(W&52428)>>2|(W&13107)<<2,W=(W&61680)>>4|(W&3855)<<4,Zt[M]=((W&65280)>>8|(W&255)<<8)>>1}var bt=(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[Zt[u]>>l]=c}else for(s=new N(r),n=0;n<r;++n)t[n]&&(s[n]=Zt[o[t[n]-1]++]>>15-t[n]);return s}),tt=new P(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 Ct=new P(32);for(var M=0;M<32;++M)Ct[M]=5;var $n=bt(tt,9,0),Hn=bt(Ct,5,0),za=function(t){return(t+7)/8|0},Pa=function(t,e,a){return(a==null||a>t.length)&&(a=t.length),new P(t.subarray(e,a))},jn=["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"],Nt=function(t,e,a){var r=new Error(e||jn[t]);if(r.code=t,Error.captureStackTrace&&Error.captureStackTrace(r,Nt),!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},pt=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},Yt=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:Da,l:0};if(n==1){var o=new P(a[0].s+1);return o[a[0].s]=1,{t:o,l:1}}a.sort(function(C,S){return C.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=qt(a[d-1],p,0);if(h>e){var r=0,f=0,g=h-e,w=1<<g;for(i.sort(function(S,F){return p[F.s]-p[S.s]||S.f-F.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 x=i[r].s;p[x]==e&&(--p[x],++f)}h=e}return{t:new P(p),l:h}},qt=function(t,e,a){return t.s==-1?Math.max(qt(t.l,e,a+1),qt(t.r,e,a+1)):e[t.s]=a},Ve=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}},ht=function(t,e){for(var a=0,r=0;r<e.length;++r)a+=t[r]*e[r];return a},Ua=function(t,e,a){var r=a.length,n=za(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},Xe=function(t,e,a,r,n,i,o,s,l,c,d){Y(e,d++,a),++n[256];for(var u=Yt(n,15),m=u.t,p=u.l,h=Yt(i,15),f=h.t,g=h.l,w=Ve(m),b=w.c,A=w.n,x=Ve(f),C=x.c,S=x.n,F=new N(19),y=0;y<b.length;++y)++F[b[y]&31];for(var y=0;y<C.length;++y)++F[C[y]&31];for(var v=Yt(F,7),U=v.t,rt=v.l,D=19;D>4&&!U[He[D-1]];--D);var nt=c+5<<3,_=ht(n,tt)+ht(i,Ct)+o,T=ht(n,m)+ht(i,f)+o+14+3*D+ht(F,U)+2*F[16]+3*F[17]+7*F[18];if(l>=0&&nt<=_&&nt<=T)return Ua(e,d,t.subarray(l,l+c));var R,L,O,G;if(Y(e,d,1+(T<_)),d+=2,T<_){R=bt(m,p,0),L=m,O=bt(f,g,0),G=f;var $t=bt(U,rt,0);Y(e,d,A-257),Y(e,d+5,S-1),Y(e,d+10,D-4),d+=14;for(var y=0;y<D;++y)Y(e,d+3*y,U[He[y]]);d+=3*D;for(var $=[b,C],mt=0;mt<2;++mt)for(var it=$[mt],y=0;y<it.length;++y){var H=it[y]&31;Y(e,d,$t[H]),d+=U[H],H>15&&(Y(e,d,it[y]>>5&127),d+=it[y]>>12)}}else R=$n,L=tt,O=Hn,G=Ct;for(var y=0;y<s;++y){var z=r[y];if(z>255){var H=z>>18&31;pt(e,d,R[H+257]),d+=L[H+257],H>7&&(Y(e,d,z>>23&31),d+=me[H]);var ot=z&31;pt(e,d,O[ot]),d+=G[ot],ot>3&&(pt(e,d,z>>5&8191),d+=pe[ot])}else pt(e,d,R[z]),d+=L[z]}return pt(e,d,R[256]),d+L[256]},Vn=new ue([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Da=new P(0),Xn=function(t,e,a,r,n,i){var o=i.z||t.length,s=new P(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=Vn[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(Vt){return(t[Vt]^t[Vt+1]<<w^t[Vt+2]<<b)&h},x=new ue(25e3),C=new N(288),S=new N(32),F=0,y=0,v=i.i||0,U=0,rt=i.w||0,D=0;v+2<o;++v){var nt=A(v),_=v&32767,T=g[nt];if(f[_]=T,g[nt]=_,rt<=v){var R=o-v;if((F>7e3||U>24576)&&(R>423||!c)){d=Xe(t,l,0,x,C,S,y,U,D,v-D,d),U=F=y=0,D=v;for(var L=0;L<286;++L)C[L]=0;for(var L=0;L<30;++L)S[L]=0}var O=2,G=0,$t=p,$=_-T&32767;if(R>2&&nt==A(v-$))for(var mt=Math.min(m,R)-1,it=Math.min(32767,v),H=Math.min(258,R);$<=it&&--$t&&_!=T;){if(t[v+O]==t[v+O-$]){for(var z=0;z<H&&t[v+z]==t[v+z-$];++z);if(z>O){if(O=z,G=$,z>mt)break;for(var ot=Math.min($,z-2),Ue=0,L=0;L<ot;++L){var Ht=v-$+L&32767,Nr=f[Ht],De=Ht-Nr&32767;De>Ue&&(Ue=De,T=Ht)}}}_=T,T=f[_],$+=_-T&32767}if(G){x[U++]=268435456|Jt[O]<<18|je[G];var Ne=Jt[O]&31,_e=je[G]&31;y+=me[Ne]+pe[_e],++C[257+Ne],++S[_e],rt=v+O,++F}else x[U++]=t[v],++C[t[v]]}}for(v=Math.max(v,rt);v<o;++v)x[U++]=t[v],++C[t[v]];d=Xe(t,l,c,x,C,S,y,U,D,v-D,d),c||(i.r=d&7|l[d/8|0]<<3,d-=7,i.h=g,i.p=f,i.i=v,i.w=rt)}else{for(var v=i.w||0;v<o+c;v+=65535){var jt=v+65535;jt>=o&&(l[d/8|0]=c,jt=o),d=Ua(l,d+1,t.subarray(v,jt))}i.i=o}return Pa(s,0,r+za(d)+n)},Yn=(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})(),Na=function(){var t=-1;return{p:function(e){for(var a=t,r=0;r<e.length;++r)a=Yn[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 P(i.length+t.length);o.set(i),o.set(t,i.length),t=o,n.w=i.length}return Xn(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)},Ta=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},B=function(t,e,a){for(;a;++e)t[e]=a,a>>>=8},Gn=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&&B(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)}},Wn=function(t){return 10+(t.filename?t.filename.length+1:0)};function Kn(t,e){return _a(t,e||{},0,0)}function Jn(t,e){e||(e={});var a=Na(),r=t.length;a.p(t);var n=_a(t,e,Wn(e),8),i=n.length;return Gn(n,e),B(n,i-8,a.d()),B(n,i-4,r),n}var Oa=function(t,e,a,r){for(var n in t){var i=t[n],o=e+n,s=r;Array.isArray(i)&&(s=Ta(r,i[1]),i=i[0]),i instanceof P?a[o]=[i,s]:(a[o+="/"]=[new P(0),s],Oa(i,o,a,r))}},Ye=typeof TextEncoder<"u"&&new TextEncoder,Zn=typeof TextDecoder<"u"&&new TextDecoder,qn=0;try{Zn.decode(Da,{stream:!0}),qn=1}catch{}function yt(t,e){var a;if(Ye)return Ye.encode(t);for(var r=t.length,n=new P(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 P(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 Pa(n,0,i)}var Qt=function(t){var e=0;if(t)for(var a in t){var r=t[a].length;r>65535&&Nt(9),e+=r+4}return e},Ge=function(t,e,a,r,n,i,o,s){var l=r.length,c=a.extra,d=s&&s.length,u=Qt(c);B(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)&&Nt(10),B(t,e,p<<25|m.getMonth()+1<<21|m.getDate()<<16|m.getHours()<<11|m.getMinutes()<<5|m.getSeconds()>>1),e+=4,i!=-1&&(B(t,e,a.crc),B(t,e+4,i<0?-i-2:i),B(t,e+8,a.size)),B(t,e+12,l),B(t,e+14,u),e+=16,o!=null&&(B(t,e,d),B(t,e+6,a.attrs),B(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;B(t,e,+h),B(t,e+2,g),t.set(f,e+4),e+=4+g}return d&&(t.set(s,e),e+=d),e},Qn=function(t,e,a,r,n){B(t,e,101010256),B(t,e+8,a),B(t,e+10,a),B(t,e+12,r),B(t,e+16,n)};function ti(t,e){e||(e={});var a={},r=[];Oa(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=yt(o),m=u.length,p=c.comment,h=p&&yt(p),f=h&&h.length,g=Qt(c.extra);m>65535&&Nt(11);var w=d?Kn(l,c):l,b=w.length,A=Na();A.p(l),r.push(Ta(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 x=new P(i+22),C=n,S=i-n,F=0;F<r.length;++F){var u=r[F];Ge(x,u.o,u,u.f,u.u,u.c.length);var y=30+u.f.length+Qt(u.extra);x.set(u.c,u.o+y),Ge(x,n,u,u.f,u.u,u.c.length,u.o,u.m),n+=16+y+(u.m?u.m.length:0)}return Qn(x,n,r.length,S,C),x}class he{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=yt(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,Ra="gzip";function te(t){return{bytes:Jn(t),compression:Ra}}async function $a(t){if(typeof CompressionStream>"u")return te(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:Ra}}catch{return te(t)}}const Bt="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%()*+,-.;=?@[]^_{|}~",ee=new Int16Array(128).fill(-1);for(let t=0;t<Bt.length;t++)ee[Bt.charCodeAt(t)]=t;function _t(t,e){return e==="base85"?ai(t):ii(t)}function ei(t,e){const a=t.length>0&&(t.charCodeAt(0)<=32||t.charCodeAt(t.length-1)<=32)?t.trim():t;return e==="base85"?ri(a):oi(a)}function ai(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(Bt[m[p]])}const i=Math.ceil(e*5/4);return n.slice(0,i).join("")}function ri(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=Bt.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?ni(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 ni(t){if(t<0||t>=ee.length)throw new Error("Invalid base85 character");const e=ee[t];if(e<0)throw new Error("Invalid base85 character");return e}function ii(t){let e="";for(let a=0;a<t.length;a++)e+=String.fromCharCode(t[a]);return btoa(e)}function oi(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 We=1,Ke=2,Je=4,Ze=8,qe=16,si=32,Qe=1,ta=2,ea=4,aa=8,ra=16,li=32,na=64,ia=128;function fe(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 ge(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 Ha(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|=We),e.linePattern&&(a|=Ke),e.lineDistances&&e.lineDistances.length>0&&(a|=Je),e.lineWidth!=null&&e.lineWidth>0&&(a|=Ze),e.renderOrder!=null&&e.renderOrder!==0&&(a|=qe),e.excludeFromOsnap&&(a|=si),t.writeU8(a),a&We&&t.writeUint32Array(e.indices),a&Ke&&t.writeJson(e.linePattern),a&Je&&t.writeFloat32Array(e.lineDistances),a&Ze&&t.writeF32(e.lineWidth),a&qe&&t.writeI32(e.renderOrder)}function ja(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|=Qe),e.hatchPattern&&(a|=ta),e.gradientFill&&(a|=ea),e.gradientPositions&&e.gradientPositions.length>0&&(a|=aa),e.side!=null&&(a|=ra),e.points&&(a|=li),e.renderOrder!=null&&e.renderOrder!==0&&(a|=na),e.texture&&e.texture.bytes.length>0&&e.uvs&&e.uvs.length>=2&&(a|=ia),t.writeU8(a),a&Qe&&t.writeUint32Array(e.indices),a&ta&&t.writeJson(e.hatchPattern),a&ea&&t.writeJson(e.gradientFill),a&aa&&t.writeFloat32Array(e.gradientPositions),a&ra&&t.writeU8(e.side),a&na&&t.writeI32(e.renderOrder),a&ia&&(t.writeFloat32Array(e.uvs),t.writeString(e.texture.mimeType||"image/png"),t.writeU32(e.texture.bytes.byteLength),t.writeBytes(e.texture.bytes))}const ci=1329939265,di=1,ui=1,mi=2,pi=3,hi=4,fi=5,gi=6,bi=7;function Va(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 wi(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=Va(o);r.length>0&&n+s>e&&i(),r.push(o),n+=s}return i(),a}function be(t){const e=new he;e.writeU32(ci),e.writeU8(di),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)yi(e,i,n(i.layer));return e.toUint8Array()}async function xi(t){const e=be(t),a=(await $a(e)).bytes;return{uncompressed:e,compressed:a}}function Gt(t,e){t.writeU8(e<0?0:1)}function ft(t,e){t.writeU32(e.length);for(const a of e)t.writeF64(a)}function yi(t,e,a){switch(e.kind){case"line":t.writeU8(ui),t.writeU32(a),t.writeF64(e.x0),t.writeF64(e.y0),t.writeF64(e.x1),t.writeF64(e.y1);return;case"circle":t.writeU8(mi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),Gt(t,e.normalSign);return;case"arc":t.writeU8(pi),t.writeU32(a),t.writeF64(e.cx),t.writeF64(e.cy),t.writeF64(e.r),t.writeF64(e.startAngle),t.writeF64(e.endAngle),Gt(t,e.normalSign);return;case"ellipse":t.writeU8(hi),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),Gt(t,e.normalSign??1);return;case"spline":t.writeU8(fi),t.writeU32(a),ft(t,e.controlPoints),t.writeU32(e.degree),ft(t,e.knots),ft(t,e.weights),t.writeU8(e.closed?1:0),ft(t,e.fitPoints??[]);return;case"point":t.writeU8(gi),t.writeU32(a),t.writeF64(e.x),t.writeF64(e.y);return;case"path":t.writeU8(bi),t.writeU32(a),t.writeU8(e.closed?1:0),ft(t,e.vertices);return;default:{const r=e;throw new Error(`Unsupported osnap primitive: ${String(r)}`)}}}const vi=1480934209;function ki(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=new he;e.writeU32(vi),e.writeU8(X),e.writeU8(0),e.writeU8(0),e.writeU8(0),e.writeJson(Ai(t)),e.writeJson(t.layers),e.writeString(t.activeLayoutBtrId),e.writeU32(t.layouts.length);for(const a of t.layouts)Mi(e,a);return e.toUint8Array()}function Ai(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 Mi(t,e){t.writeString(e.btrId),t.writeString(e.name),t.writeU8(e.isModelSpace?1:0),Fi(t,e.osnap),t.writeJson(e.viewports??null),t.writeU32(e.lineBatches.length);for(const a of e.lineBatches)Ha(t,a);t.writeU32(e.meshBatches.length);for(const a of e.meshBatches)ja(t,a)}function Fi(t,e){if(!e||e.primitives.length===0){t.writeU32(0);return}const a=be(e);t.writeU32(a.length),t.writeBytes(a)}const Si="application/vnd.mlightcad.acex-snapshot+binary";function Xa(t){if(t.version!==X)throw new Error(`Unsupported snapshot version: ${t.version}`);const e=ki(t),a=te(e);return{payload:_t(a.bytes,"base85"),compression:a.compression}}function Ci(){return Si}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 Bi(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 Ya(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 oa(t,e){return t+e}const st={x:0,y:0,z:0};function Ei(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 we(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 sa(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||!sa(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(!sa(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 xe(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 Ii(t,e,a={}){t.updateMatrixWorld(!0);const r=we(e,t.matrixWorld);return xe(r)}function Li(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(Pi(e)){a.width=e.width,a.height=e.height;const l=Di(e.data,e.width*e.height),c=new ImageData(new Uint8ClampedArray(l),e.width,e.height);r.putImageData(c,0,0)}else if(zi(e)){const l=Ui(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 zi(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 Pi(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 Ui(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 Di(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 Ni(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 Ga(t){const e=t;return e.map?!1:e.transparent===!0&&typeof e.opacity=="number"&&e.opacity<.01}function ye(t){const e=t;if(e.isShaderMaterial===!0||t.type==="ShaderMaterial")return e}function _i(t){var e;const a=ye(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 Ti(t){var e;const a=ye(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(Ri)}}function Oi(t){var e,a,r,n,i;const o=ye(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 Ri(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 ve(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 $i(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 la(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,x]=u(m.offset[0],m.offset[1],p),[C,S]=d(A,x),F=u(C,S,-f);return{angle:h,base:c(m.base[0],m.base[1]),offset:F,dashLengths:m.dashLengths.map(y=>y*b),patternLength:m.patternLength*b}})}}function Hi(t,e){return{patternAngle:t.patternAngle,patternLines:t.patternLines.map(a=>{const r=new Re(a.base[0]-e[0],a.base[1]-e[1]),n=new Re(a.offset[0],a.offset[1]);return Qr(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 ae(t,e){return!Number.isFinite(t)||t<0?0:Math.min(Math.floor(t),e)}function re(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=ae(a.start,i.count),u=re(a.count,i.count,d),m=Bi(c,d,u);return Ya(l,m)}const o=ae(a.start,e.count),s=re(a.count,e.count,o);return{positions:et(r,o*n,s*n)}}function It(t){return Mn(t.flags)&&Fn(t.flags)}function Wa(t){const{count:e}=t.mappingStats;for(let a=0;a<e;a++){let r;try{r=t.getGeometryRangeAt(a)}catch{continue}if(It(r)&&r.bboxIntersectionCheck)return!0}return!1}function ne(t){return Ca(t).bboxIntersectionCheck===!0}function ke(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,x=b.indexCount??0;!It(b)||x<=0||(h.push({start:A,count:x}),p+=x)}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 Ya(u,f)}let s=0;const l=[];for(let u=0;u<o;u++){let m;try{m=t.getGeometryRangeAt(u)}catch{continue}if(!It(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 ca(t,e,a){t.push(e.getX(a),e.getY(a),e.getZ(a))}function ji(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(!It(s)||s.vertexCount<=0)continue;const l=s.vertexStart,c=l+s.vertexCount;for(let d=l;d<c;d++)ca(i,a,d),ca(i,r,d)}return{positions:new Float32Array(i)}}function Vi(t,e){const a=t.instanceCount;if(Number.isFinite(a)&&a>=0)return Math.min(Math.floor(a),e);const r=t.drawRange,n=ae(r.start,e);return re(r.count,e,n)}function Xi(t){const e=t.getAttribute("instanceStart"),a=t.getAttribute("instanceEnd");if(!e||!a||e.count===0)return{positions:new Float32Array(0)};const r=Vi(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 Ft(t){return Yr(t)}function Ka(t){if(t instanceof Zr)return t.linewidth}function wt(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=Ba(t),r=a.layer??"0",n=t;let i=n.color!=null?n.color.getHex():a.color??16777215;const o=_i(t),s=Ti(t),l=Oi(t);if(t instanceof Jr||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 Yi(t,e){const a=Ba(e).drawOrder??t.renderOrder;return a===0?void 0:a}function dt(t,e,a){const r=Yi(e,a);r!=null&&(t.renderOrder=r)}function Gi(t,e){if(!e)return;const a=t.userData.bakedWorldMatrix;return a&&a.length>=16?la(e,a):(t.updateMatrixWorld(!0),la(e,Array.from(t.matrixWorld.elements)))}function Tt(t){return Ei(t)}function Wt(t,e,a={}){const r=Ii(t,e,a);return{...r.slice,offset:r.offset}}function Wi(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 vt(t,e,a,r,n,i=!1){i&&(r=Wi(r));const o=at(e),s=Gi(a,o.hatchPattern),l=s?Hi(s,n):void 0,c=o.gradientFill?$i(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=Li(u.map),p=Ni(t,r.positions);if(!m||!p)return;d.texture=m,d.uvs=p,d.color=16777215,d.side=qr}return dt(d,a,e),d}function Ki(t){const e=ji(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r}=at(t.material),n=Ka(t.material),i={layer:r,color:a,offset:Tt(t),lineWidth:n,...e};return Wa(t)&&(i.excludeFromOsnap=!0),dt(i,t,t.material),i}function Ji(t){const e=ke(t,t.geometry);if(e.positions.length===0)return;const{color:a,layer:r,linePattern:n}=at(t.material),i=n?ve(e.positions):void 0,o={layer:r,color:a,offset:Tt(t),linePattern:n,lineDistances:i,...e};return Wa(t)&&(o.excludeFromOsnap=!0),dt(o,t,t.material),o}function Zi(t){const e=ke(t,t.geometry);if(e.positions.length!==0)return vt(t.geometry,t.material,t,e,Tt(t),!0)}function qi(t){const e=ke(t,t.geometry);if(e.positions.length===0)return;const a=vt(t.geometry,t.material,t,e,Tt(t));if(a)return{points:!0,...a}}const Z=new ut,Lt=new ut,gt=new zn;gt.matrixAutoUpdate=!1;function Qi(t){const e=t;return e.isInstancedMesh===!0&&e.instanceMatrix!=null&&typeof e.count=="number"&&e.geometry!=null}function to(t){return t.renderOrder<1e4||t.isInstancedMesh===!0?!1:Ca(t).sharesTemplateGeometry===!0}function ie(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 Ja(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++)Z.fromArray(i,p*16),ie(Z)&&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(Z.fromArray(i,p*16),!ie(Z))continue;Lt.multiplyMatrices(t.matrixWorld,Z);const h=we(r,Lt);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=xe(ct({positions:l,indices:c},e));if(m.slice.positions.length!==0)return{slice:m.slice,offset:m.offset}}function eo(t){const e=at(t),a=t;return!!(e.hatchPattern||e.gradientFill||a.map)}function ao(t,e){t.updateMatrixWorld(!0);const a=t.instanceMatrix.array;for(let r=0;r<t.count;r++)Z.fromArray(a,r*16),ie(Z)&&(Lt.multiplyMatrices(t.matrixWorld,Z),e(Lt))}function ro(t,e){const a=Ja(t,2);if(!a)return;const r=wt(t),{color:n,layer:i,linePattern:o}=at(r),s=o?ve(a.slice.positions):void 0,l={layer:i,color:n,offset:a.offset,linePattern:o,lineDistances:s,...a.slice};ne(t)&&(l.excludeFromOsnap=!0),dt(l,t,r),e.push(l)}function da(t,e,a){const r=wt(t);if(!a&&Ga(r))return;if(!a&&eo(r)){const o=ct(Et(t.geometry),3);if(o.positions.length===0)return;ao(t,s=>{const l=ct(we(o,s),3);if(l.positions.length===0)return;const c=xe(l);gt.matrix.copy(s),gt.matrixWorld.copy(s),gt.matrixWorldNeedsUpdate=!1;const d=vt(t.geometry,r,gt,c.slice,c.offset,!0);d&&e.push(d)});return}const n=Ja(t,a?1:3);if(!n)return;const i=vt(t.geometry,r,t,n.slice,n.offset,!a);i&&e.push(a?{...i,points:!0}:i)}function St(t){const e=t;return t instanceof Wr||e.isLineSegments2===!0||t.type==="LineSegments2"}function ua(t){const e=t;return t instanceof Gr||e.isLineSegments===!0||t.type==="LineSegments"}function ma(t){const e=t;return t instanceof Kr||e.isMesh===!0||e.isInstancedMesh===!0||t.type==="Mesh"}function no(t){const e=[],a=[];return t.traverse(r=>{if(!(Tr(r)||Or(r)||to(r))){if(Qi(r)){if(!Ft(r))return;r.isPoints===!0?da(r,a,!0):ua(r)&&!St(r)?ro(r,e):ma(r)&&!St(r)&&da(r,a,!1);return}if(r instanceof Te){const n=Ji(r);n&&e.push(n);return}if(r instanceof Rr){const n=Ki(r);n&&e.push(n);return}if(r instanceof Oe){const n=Zi(r);n&&a.push(n);return}if(r instanceof $r){const n=qi(r);n&&a.push(n);return}if(St(r)){if(!Ft(r))return;const n=Xi(r.geometry);if(n.positions.length===0)return;const i=wt(r),{color:o,layer:s}=at(i),{offset:l,...c}=Wt(r,n),d={layer:s,color:o,offset:l,lineWidth:Ka(i),...c};ne(r)&&(d.excludeFromOsnap=!0),dt(d,r,i),e.push(d)}else if(ua(r)&&!(r instanceof Te)){if(!Ft(r))return;const n=ct(Et(r.geometry),2);if(n.positions.length===0)return;const i=wt(r),{color:o,layer:s,linePattern:l}=at(i),{offset:c,...d}=Wt(r,n),u=l?ve(d.positions):void 0,m={layer:s,color:o,offset:c,linePattern:l,lineDistances:u,...d};ne(r)&&(m.excludeFromOsnap=!0),dt(m,r,i),e.push(m)}else if(ma(r)&&!St(r)&&!(r instanceof Oe)){if(!Ft(r))return;const n=wt(r);if(Ga(n))return;const i=ct(Et(r.geometry),3);if(i.positions.length===0)return;const{offset:o,...s}=Wt(r,i),l=vt(r.geometry,n,r,s,o,!0);l&&a.push(l)}}}),{lineBatches:e,meshBatches:a}}const pa={size:8,colorCss:"#0080ff",hotColorCss:"#ff0000"};function ha(t){const e=new Vr(Xr.ByACI,t);return e.cssColor??`rgb(${e.red}, ${e.green}, ${e.blue})`}function io(t){try{const e=_r.instance(),a=e.getVar(Xt.GRIPSIZE,t),r=e.getVar(Xt.GRIPCOLOR,t),n=e.getVar(Xt.GRIPHOT,t);return!(a>0)||!Number.isFinite(a)?pa:{size:a,colorCss:ha(r),hotColorCss:ha(n)}}catch{return pa}}function Za(t,e){const a=t.extmin,r=t.extmax,n=io(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 fa(t,e,a,r,n){return Math.atan2(r-e,n*(a-t))}function Ae(t){return t.z>=0?1:-1}function qa(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:fa(n,i,a.startPoint.x,a.startPoint.y,r),endAngle:fa(n,i,a.endPoint.x,a.endPoint.y,r),normalSign:r})}function I(t,e){const a=new V(e.x,e.y,e.z??0).applyMatrix4(t);return{x:a.x,y:a.y}}function oo(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,oo(e))}function Qa(t,e){const a=new V(e.x,e.y,e.z??0).transformDirection(t).normalize();return{x:a.x,y:a.y}}function oe(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,Ea*Math.max(e,a,1))}function so(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 lo(t){if(t instanceof Sn)return!0;const e=t;return(e.type==="LINE"||e.type==="Line")&&e.startPoint!=null&&e.endPoint!=null}function co(t,e,a,r){r.startPoint,r.endPoint}function tr(t,e){return t.blockTableRecord??(t.blockName?e.tables.blockTable.getAt(t.blockName):void 0)}function uo(t,e){const a=t.dimBlockId;return a?e.tables.blockTable.getAt(a):void 0}function mo(t,e){const a=tr(t,e);if(a)return a;const r=t.owningBlockRecordId;return r?e.tables.blockTable.getAt(r):void 0}function er(t){return t.getFullInsertionTransform()}function po(t){for(const e of t.newIterator())return!0;return!1}function ho(t){return typeof t.getFullInsertionTransform=="function"&&"blockTableRecord"in t}function q(t,e,a,r,n){if(r.length<2)return;const i=oe(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=I(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 ar(t,e){return lt.equal(t.x,e.x)&<.equal(t.y,e.y)}function fo(t){return(t.clockwise?-1:1)*Math.tan(t.deltaAngle/4)}function ga(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];ar(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 ba(t){return t.length>=2&&ar(t[0],t[t.length-1])&&t.pop(),t}function xt(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 go(t,e,a,r){const n=[r.startPosition];for(const i of r.segments)n.push(i.position);xt(t,e,a,n,r.closed)}function bo(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)<=Ea?a.vertices:[r,n]}function wo(t,e,a,r){var n,i;for(const s of r.leaders)for(const l of s.leaderLines){const c=bo(r,s,l);xt(t,e,a,c,!1)}const o=s=>{if(!s)return;const l=I(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 xo(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=I(a,u),h=I(a,m);qa(t,e,new de(p,h,d))}}}function yo(t,e,a,r,n,i){const o=I(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:Ae(i)};t.push(l)}function vo(t,e,a,r){const n=I(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:Ae(r.normal)};t.push(o)}function Kt(t,e,a,r){const n=I(a,r.center),i=r._geo,o=(i==null?void 0:i.majorAxis)??{x:1,y:0,z:0},s=Qa(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:Ae(r.normal)};t.push(u)}function ko(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=I(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=I(a,c);l.fitPoints.push(d.x,d.y)}}t.push(l)}const wa=1e-6;function Ao(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 Mo(t){return t.some(e=>{const a=Math.max(0,e.startWidth??0),r=Math.max(0,e.endWidth??0);return a>wa||r>wa})}function Fo(t,e,a,r){const n=Ao(r),i=n.length;if(i<2)return;if(Mo(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=I(a,l),m=I(a,c);qa(t,e,new de(u,m,d))}}}function So(t,e,a,r,n){const i=I(a,{x:r.center.x,y:r.center.y,z:n}),o=Qa(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 Co(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 Bo(t,e,a,r,n){if(r instanceof Bn){Co(t,e,a,r,n);return}if(!(r instanceof En))return;const i=[];let o=!1;const s=()=>{const c=ba(i);c.length>=2&&q(t,e,a,c,!1),i.length=0};for(const c of r.curves)c instanceof In?ga(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},0):c instanceof de?ga(i,{x:c.startPoint.x,y:c.startPoint.y,z:n},{x:c.endPoint.x,y:c.endPoint.y,z:n},fo(c)):c instanceof Ln&&(o=!0,s(),So(t,e,a,c,n));const l=ba(i);l.length>=2&&q(t,e,a,l,!o)}function Eo(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)Bo(t,e,a,s,o)}function Io(t,e,a,r){zt(a,er(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 Lo(t,e,a,r,n,i,o,s=!0){const l=se(t.layer,a);if(o&&!o(l))return;const c=mo(t,i);if(c&&!n.has(c.objectId)&&po(c)){n.add(c.objectId);const u=zt(e,er(t));Pt(c,u,l,r,n,i,o,s),n.delete(c.objectId);return}Io(r,l,e,t);const d=I(e,t.position);r.push({kind:"point",layer:l,x:d.x,y:d.y})}function zo(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=I(a,r.position);t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Po(t,e,a,r){const n=r.position();q(t,e,a,[n.upperLeft,n.upperRight,n.lowerRight,n.lowerLeft],!0);const i=I(a,r.getLocation());t.push({kind:"point",layer:e,x:i.x,y:i.y})}function Uo(t){var e;const a=(e=t.attributeIterator)==null?void 0:e.call(t);return a?typeof a.toArray=="function"?a.toArray():[...a]:[]}function se(t,e){return t==="0"?e:t}function rr(t,e,a,r,n,i,o,s=!0){if(!t.visibility)return;const l=se(t.layer,a);if(!(o&&!o(l))){if(t instanceof tn){Lo(t,e,a,r,n,i,o,s);return}if(ho(t)){const c=tr(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=se(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=I(b,{x:0,y:0,z:0});r.push({kind:"point",layer:f,x:A.x,y:A.y}),Pt(c,b,f,r,n,i,o,s)}for(const g of Uo(t))g instanceof en,g.isInvisible||rr(g,e,f,r,n,i,o,s);n.delete(c.objectId);return}if(t instanceof an){const c=t,d=uo(c,i);if(!d||n.has(d.objectId))return;n.add(d.objectId);const u=zt(e,c.getFullDimBlockTransform());Pt(d,u,l,r,n,i,o,!0),n.delete(d.objectId);return}if(lo(t)){co(r,l,e,t);return}if(t instanceof rn){oe(e)?yo(r,l,e,t.center,t.radius,t.normal):Kt(r,l,e,Do(t));return}if(t instanceof nn){oe(e)?vo(r,l,e,t):Kt(r,l,e,No(t));return}if(t instanceof ce){Kt(r,l,e,t);return}if(t instanceof on){ko(r,l,e,t);return}if(t instanceof sn){Fo(r,l,e,t);return}if(t instanceof ln){xo(r,l,e,t);return}if(t instanceof cn){const c=[];for(let d=0;d<t.numberOfVertices;d++)c.push(t.getPointAt(d));xt(r,l,e,c,t.closed);return}if(t instanceof dn){s&&Eo(r,l,e,t);return}if(t instanceof un){t.basePoint,t.unitDir;return}if(t instanceof mn){t.basePoint,t.unitDir;return}if(t instanceof pn){q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof hn){s&&q(r,l,e,[t.getPointAt(0),t.getPointAt(1),t.getPointAt(3),t.getPointAt(2)],!0);return}if(t instanceof fn){const c=t.subGetGripPoints();c.length>=2&&xt(r,l,e,c,c.length>=3);return}if(t instanceof gn){const c=t.vertices;c.length>=2&&xt(r,l,e,c,!1);return}if(t instanceof bn){go(r,l,e,t);return}if(t instanceof wn){wo(r,l,e,t);return}if(t instanceof xn){const c=I(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof yn){const c=I(e,t.location);r.push({kind:"point",layer:l,x:c.x,y:c.y});return}if(t instanceof vn){s&&Po(r,l,e,t);return}if(t instanceof kn){s&&zo(r,l,e,t);return}if(t instanceof An){const c=I(e,t.position);r.push({kind:"point",layer:l,x:c.x,y:c.y})}}}function Pt(t,e,a,r,n,i,o,s=!0){for(const l of t.newIterator())rr(l,e,a,r,n,i,o,s)}function Do(t){return new ce(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,0,Cn)}function No(t){return new ce(t.center,t.normal,{x:1,y:0,z:0},t.radius,t.radius,t.startAngle,t.endAngle)}function _o(t,e,a={}){const r=so(t,e);if(!r)return{primitives:[]};const n=[],i=new ut;return Pt(r,i,"0",n,new Set,t,a.includeLayer),{primitives:n.filter(o=>o.kind!=="line"&&To(o))}}function To(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 Oo=["en","zh","cs","tr","ar"];function Me(t){if(t==null||t==="")return null;const e=t.toLowerCase().replace("_","-");for(const a of Oo)if(e===a||e.startsWith(`${a}-`))return a;return null}const Ro=1128612673;function nr(t){if(t.version!==X)throw new Error(`Unsupported chunk version: ${t.version}`);const e=new he;e.writeU32(Ro),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)Ha(e,a);e.writeU32(t.meshBatches.length);for(const a of t.meshBatches)ja(e,a);return e.toUint8Array()}async function $o(t){const e=nr(t),a=(await $a(e)).bytes;return{uncompressed:e,compressed:a}}const Ho=1,ir=2*1024*1024,Ot=2*1024*1024,jo=8*1024*1024,xa=12*1024*1024,Vo=2*1024*1024,Rt="drawing.acex.json",Xo=`./${Rt}`;function Fe(...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>`}Fe("M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0M128 896v-64h768v64z");Fe("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");Fe("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 Yo='<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>',Go='<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>',Wo='<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>',le={layerOn:Go,layerOff:Wo,chevronDown:Yo},Ko=[90,45,30,23,18,10,5];function Jo(){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
|
${Ko.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 Zo=600,qo=960,Se=`
|
|
4
4
|
:root {
|
|
@@ -1561,4 +1561,4 @@ ${f} <script>${Ds(n)}<\/script>
|
|
|
1561
1561
|
</body>
|
|
1562
1562
|
</html>`}function Ps(t){const e=[];for(const a of t)a.path!==Rt&&e.push(` <script type="${Bs}" ${xr}="${vr(a.path)}">${_t(a.bytes,"base85")}<\/script>
|
|
1563
1563
|
`);return e.join("")}async function Us(t,e){const a=[];for(const r of t){if(r.path===Rt)continue;const n=await Ee(e,r.bytes);a.push(` <script type="${Es}" ${xr}="${vr(r.path)}">${_t(n,"base85")}<\/script>
|
|
1564
|
-
`)}return a.join("")}function yr(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function vr(t){return yr(t).replace(/'/g,"'")}function Ds(t){return t.replace(/<\/script/gi,"<\\/script")}function ya(t){return t.replace(/</g,"\\u003c")}function Ns(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 _s(t){return t.endsWith(".gz")}function Ts(t){const e={};for(const a of t.files){if(!Ns(a.path))throw new Error(`Unsafe package path: ${a.path}`);_s(a.path)?e[a.path]=[a.bytes,{level:0}]:e[a.path]=[a.bytes,{level:6}]}return ti(e)}const kr="https://mlightcad.com/cad-viewer/docs/";let Ar=Fr(kr);function Mr(){return Ar}function Os(t){Ar=Fr(t)}function Fr(t){const e=t.trim();return e?e.replace(/\/+$/,""):kr.replace(/\/+$/,"")}function Rs(){return{minX:0,minY:0,maxX:0,maxY:0,valid:!1}}function $s(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=oa(e[i],r),s=oa(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 va(t,e){$s(t,e.positions,e.offset)}function Hs(t){return t.valid?{minX:t.minX,minY:t.minY,maxX:t.maxX,maxY:t.maxY}:null}function js(t,e){const a=Rs();for(const r of t)va(a,r);for(const r of e)va(a,r);return Hs(a)}function Sr(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 Vs(t){if(!t||t.length===0)return null;let e=null;for(const a of t)e=Sr(e,a.paper);return e}function Xs(t){return Sr(js(t.lineBatches,t.meshBatches),Vs(t.viewports))}function Ys(t,e,a){if(a)return;const r=Ws(t,e);if(!(r!=null&&r.newIterator))return;const n=[];for(const i of r.newIterator()){if(!(i instanceof Hr)||jr.isDefaultPaperSpaceViewport(i)||typeof i.toGiViewport!="function")continue;const o=i.toGiViewport(),s=o.box,l=o.viewBox,c=ka(s),d=ka(l);if(!c||!d)continue;const u=Number.isFinite(o.viewTwistAngle)?o.viewTwistAngle:i.viewTwistAngle,m=Gs(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 Gs(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 ka(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 Ws(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 Aa=16/9;function Ks(t,e,a,r=Aa){var n,i,o,s;const l=Number.isFinite(r)&&r>0?r:Aa;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 Ma(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 Ma(d.limits)}}function Ma(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 Cr(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 Js(t,e,a={}){return qs(t,e,a)}async function Zs(t,e,a={}){const r=a.yieldBetweenLayouts;r&&await r();const n=a.exportInvisibleLayers!==!1,i=a.exportLayouts!==!1,o=n?void 0:h=>Le(e,h,n),s=Za(t,{title:a.title,background:a.background}),l=Br(e,n),c=Cr(t),d=new Map(c.map(h=>[h.blockTableRecordId,h.name])),u=Lr(e,i),m=Ir(e,c,i),p=[];for(const h of m)p.push(zr(t,e,h,d,a,o)),r&&await r();return{version:X,meta:Er(s,a,p,u),layers:l,layouts:p,activeLayoutBtrId:u}}function qs(t,e,a){const r=a.exportInvisibleLayers!==!1,n=a.exportLayouts!==!1,i=r?void 0:p=>Le(e,p,r),o=Za(t,{title:a.title,background:a.background}),s=Br(e,r),l=Cr(t),c=new Map(l.map(p=>[p.blockTableRecordId,p.name])),d=Lr(e,n),u=Ir(e,l,n),m=[];for(const p of u)m.push(zr(t,e,p,c,a,i));return{version:X,meta:Er(o,a,m,d),layers:s,layouts:m,activeLayoutBtrId:d}}function Br(t,e){const a=[];for(const r of t.layers)Le(t,r.name,e)&&a.push({name:r.name,color:r.color,visible:r.visible});return a}function Er(t,e,a,r){const n=a.find(s=>s.btrId===r)??a[0],i=n?Xs(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??Mr()}}function Qs(t){return(t.viewerMode??"measure")==="measure"}function Le(t,e,a){if(a)return!0;const r=t.layers.find(n=>n.name===e);return r?r.visible:!0}function Ir(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 Lr(t,e){return e&&t.activeLayoutBtrId||t.modelSpaceBtrId}function zr(t,e,a,r,n,i){const o=[],s=[];for(const u of a.layers){if(i&&!i(u.name))continue;const m=no(u.root);o.push(...m.lineBatches),s.push(...m.meshBatches)}const l=a.isModelSpace||a.btrId===e.modelSpaceBtrId,c=Ks(t,a.btrId,l,n.canvasAspectRatio);let d;if(Qs(n)){const u=performance.now();d=_o(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??tl(t,a.btrId),isModelSpace:l,lineBatches:o,meshBatches:s,osnap:d,viewports:Ys(t,a.btrId,l),...c?{savedView:c}:{}}}function tl(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 el=400,ze=10,Pe=1,Pr=64;function Dt(t){return Math.floor(t)*1024*1024}function Ur(t){return Math.max(Pe,Math.round(t/(1024*1024)))}function Dr(t){return Number.isFinite(t)?Math.min(Pr,Math.max(Pe,Math.floor(t))):ze}function J(t={}){var e;const a=t.exportFormat==="multi"?"multi":"single",r=a==="multi"?Dt(Dr(t.maxChunkBytes!=null?Ur(t.maxChunkBytes):ze)):ir;return{exportFormat:a,exportInvisibleLayers:t.exportInvisibleLayers!==!1,exportLayouts:t.exportLayouts!==!1,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 al(t){const e=t.maxChunkBytes??Dt(ze),a=t.compressChunks!==!1;return{maxChunkBytes:e,maxBatchBytes:e,maxOsnapChunkBytes:e,compressChunks:a}}function rl(t){const e=t.activeLayoutView,a=e.center,r=e.trCamera.zoom,n=Math.max(e.height,1),i=r*(2*el)/n;return{centerX:a.x,centerY:a.y,zoom:i}}const nl="./viewer-runtime.iife.js";let kt={};function il(t){kt={...kt,...t}}function ol(){return{...kt}}function sl(t){return t!=null?String(t):kt.viewerRuntimeUrl!=null?String(kt.viewerRuntimeUrl):nl}class ll{build(e,a,r={}){return Js(a,Sa(e),Fa(r))}async buildAsync(e,a,r={}){return Zs(a,Sa(e),{...Fa(r),yieldBetweenLayouts:()=>j()})}}function Fa(t){return{title:t.title,background:t.background,locale:t.locale??k.currentLocale,exportInvisibleLayers:t.exportInvisibleLayers,exportLayouts:t.exportLayouts,initialView:t.initialView,viewState:t.viewState,viewerMode:t.viewerMode,canvasAspectRatio:t.canvasAspectRatio,docsBaseUrl:cl()}}function cl(){try{Os(Tn())}catch{}return Mr()}function Sa(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 K(t,e){console.log(`[chtml] ${t}: ${e.toFixed(0)} ms`)}class dl{constructor(e={}){this.options=e,this._snapshotBuilder=new ll}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 Nn))throw new Error("HTML export requires a 2D CAD view. Open a drawing before exporting.");const r=J(a),n={includeInvisibleLayers:r.exportInvisibleLayers,includeLayouts:r.exportLayouts};return await e.ensureEntitiesConvertedForExport(n),await j(),e}async convert(e,a={},r){const n=Q.instance,i=J(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);K("prepare (missing entities)",performance.now()-l);const d=e||s.fileName||s.docTitle,u=_n(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)?rl(c):void 0,canvasAspectRatio:c.width/Math.max(c.height,1)});K("snapshot build",performance.now()-l),await j(),l=performance.now();const p=await this.loadViewerRuntime();if(K("load viewer runtime",performance.now()-l),await j(),i.exportFormat==="multi"){l=performance.now();const g=al(i),w=await Ss(m,{viewerRuntime:p,...g});K(g.compressChunks?"package + gzip chunks":"package chunks",performance.now()-l),l=performance.now();const b=Ts(w);K("zip package",performance.now()-l),await j(),this.downloadBytes(b,$e(d,"zip"),"application/zip"),K("chtml total",performance.now()-o);return}const h=ss(i.expiryDays,Date.now(),i.expiresAt);l=performance.now();const f=await this.packSelfContainedHtml(m,p,{expiresAt:h,password:i.password||void 0});K("pack self-contained html",performance.now()-l),await j(),this.downloadHtml(f,$e(d,"html")),K("chtml total",performance.now()-o)})}async packSnapshot(e,a){await Q.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(Ls(e))return zs(e,{title:e.meta.title,viewerRuntime:a,expiresAt:r.expiresAt,password:r.password});const n=await ds(Xa(e),{expiresAt:r.expiresAt,password:r.password});return es(e,{title:e.meta.title,viewerRuntime:a,encoded:n.encoded,accessManifest:n.manifest})}async loadViewerRuntime(){const e=sl(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 ul extends Un{constructor(e={}){super(),this.pluginOptions=e}async execute(e){const a=await this.promptOptions();a&&await new dl(this.pluginOptions).convert(e.doc.fileName||e.doc.docTitle,a,e.view)}async promptOptions(){const e=J(),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.promptInitialView();if(i===void 0)return;const o=await this.promptViewerMode();if(o===void 0)return;let s,l;if(!(a==="multi"&&(s=await this.promptChunkSizeMiB(),s===void 0||(l=await this.promptYesNo("jig.chtml.compressChunks",e.compressChunks),l===void 0))))return J({exportFormat:a,exportInvisibleLayers:r,exportLayouts:n,initialView:i,viewerMode:o,...a==="multi"?{maxChunkBytes:s,compressChunks:l}:{}})}async promptExportFormat(){const e=J(),a=new Mt(k.t("jig.chtml.exportFormat"));a.allowNone=!0;const r=a.keywords.add(k.t("jig.chtml.keywords.single.display"),k.t("jig.chtml.keywords.single.global"),k.t("jig.chtml.keywords.single.local")),n=a.keywords.add(k.t("jig.chtml.keywords.multi.display"),k.t("jig.chtml.keywords.multi.global"),k.t("jig.chtml.keywords.multi.local"));a.keywords.default=e.exportFormat==="multi"?n:r;const i=await Q.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.exportFormat;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="Multi"?"multi":"single":e.exportFormat}}async promptYesNo(e,a){const r=new Mt(k.t(e));r.allowNone=!0;const n=r.keywords.add(k.t("jig.chtml.keywords.yes.display"),k.t("jig.chtml.keywords.yes.global"),k.t("jig.chtml.keywords.yes.local")),i=r.keywords.add(k.t("jig.chtml.keywords.no.display"),k.t("jig.chtml.keywords.no.global"),k.t("jig.chtml.keywords.no.local"));r.keywords.default=a?n:i;const o=await Q.instance.editor.getKeywords(r);if(o.status!==E.Cancel){if(o.status===E.None)return a;if(o.status===E.OK||o.status===E.Keyword)return o.stringResult?o.stringResult==="Yes":a}}async promptChunkSizeMiB(){const e=J({exportFormat:"multi"}),a=Ur(e.maxChunkBytes),r=new Dn(k.t("jig.chtml.chunkSizeMiB"),Pe,Pr);r.allowNone=!0,r.allowZero=!1,r.allowNegative=!1,r.useDefaultValue=!0,r.defaultValue=a;const n=await Q.instance.editor.getInteger(r);if(n.status!==E.Cancel){if(n.status===E.None)return Dt(a);if(n.status===E.OK){const i=Dr(n.value??a);return Dt(i)}}}async promptInitialView(){const e=J(),a=new Mt(k.t("jig.chtml.initialView"));a.allowNone=!0;const r=a.keywords.add(k.t("jig.chtml.keywords.extents.display"),k.t("jig.chtml.keywords.extents.global"),k.t("jig.chtml.keywords.extents.local")),n=a.keywords.add(k.t("jig.chtml.keywords.current.display"),k.t("jig.chtml.keywords.current.global"),k.t("jig.chtml.keywords.current.local"));a.keywords.default=e.initialView==="current"?n:r;const i=await Q.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.initialView;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="Current"?"current":"fit":e.initialView}}async promptViewerMode(){const e=J(),a=new Mt(k.t("jig.chtml.viewerMode"));a.allowNone=!0;const r=a.keywords.add(k.t("jig.chtml.keywords.view.display"),k.t("jig.chtml.keywords.view.global"),k.t("jig.chtml.keywords.view.local")),n=a.keywords.add(k.t("jig.chtml.keywords.measure.display"),k.t("jig.chtml.keywords.measure.global"),k.t("jig.chtml.keywords.measure.local"));a.keywords.default=e.viewerMode==="view"?r:n;const i=await Q.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.viewerMode;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="View"?"view":"measure":e.viewerMode}}}const ml="1.7.7-preview.0",pl={version:ml};class hl{constructor(e={}){this.options=e,this.name="HtmlPlugin",this.version=pl.version,this.description="HTML export (-chtml) command",this.registeredCommands=[]}onLoad(e,a){const r=Pn.SYSTEMT_COMMAND_GROUP_NAME,n=new ul(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 gl(t={}){return t.viewerRuntimeUrl!=null&&il(t),new hl(ol())}export{Ro as ACEC_CHUNK_MAGIC,ci as ACEO_OSNAP_MAGIC,di as ACEO_OSNAP_VERSION,ir as ACEX_DEFAULT_CHUNK_MAX_BYTES,ze as ACEX_DEFAULT_CHUNK_SIZE_MIB,kr as ACEX_DEFAULT_DOCS_BASE_URL,Rt as ACEX_DEFAULT_MANIFEST_FILE,Xo as ACEX_DEFAULT_MANIFEST_HREF,Es as ACEX_EMBEDDED_CHUNK_ENCRYPTED_MIME,xr as ACEX_EMBEDDED_CHUNK_HREF_ATTR,xa as ACEX_EMBEDDED_CHUNK_MAX_BYTES,Bs as ACEX_EMBEDDED_CHUNK_MIME,jo as ACEX_EMBEDDED_CHUNK_THRESHOLD_BYTES,Vo as ACEX_EMBEDDED_OSNAP_CHUNK_MAX_BYTES,Oo as ACEX_HTML_LOCALES,Se as ACEX_HTML_SHELL_CSS,Pr as ACEX_MAX_CHUNK_SIZE_MIB,Ot as ACEX_MAX_GEOMETRY_BATCH_BYTES,Pe as ACEX_MIN_CHUNK_SIZE_MIB,Ho as ACEX_PACKAGE_VERSION,Ko as ACEX_POLAR_ANGLE_INCREMENTS,Ra as ACEX_SNAPSHOT_COMPRESSION,X as ACEX_SNAPSHOT_VERSION,ul as AcApExportHtmlCmd,dl as AcApHtmlConvertor,ll as AcApHtmlSnapshotBuilder,he as AcExBinaryWriter,le as AcExHtmlIcons,nl as DEFAULT_HTML_VIEWER_RUNTIME_URL,Je as F_LINE_DISTANCES,si as F_LINE_EXCLUDE_OSNAP,We as F_LINE_INDICES,Ke as F_LINE_PATTERN,qe as F_LINE_RENDER_ORDER,Ze as F_LINE_WIDTH,ea as F_MESH_GRADIENT_FILL,aa as F_MESH_GRADIENT_POS,ta as F_MESH_HATCH,Qe as F_MESH_INDICES,li as F_MESH_POINTS,na as F_MESH_RENDER_ORDER,ra as F_MESH_SIDE,ia as F_MESH_TEXTURE,xl as HTML_PLUGIN_NAME,yl as HTML_PLUGIN_TRIGGERS,qo as ML_UI_COMPACT_MAX_WIDTH,Zo as ML_UI_MOBILE_MAX_WIDTH,ri as acExHtmlBase85ToBytes,cs as acExHtmlBytesToBase64,ai as acExHtmlBytesToBase85,_t as acExHtmlBytesToText,ei as acExHtmlTextToBytes,Ur as acexChunkSizeBytesToMiB,Dt as acexChunkSizeMiBToBytes,Mr as acexGetDocsBaseUrl,Os as acexSetDocsBaseUrl,we as bakePlainDrawableSlice,Ut as buildAcExHtmlAccessManifest,Jo as buildAcExHtmlPolarAnglesPanel,Ce as buildAcExHtmlShellBody,Ss as buildAcExPackageAsync,wr as buildAcExPackageDataAsync,_o as buildOsnapCatalog,Js as buildSnapshotFromExportScene,Zs as buildSnapshotFromExportSceneAsync,Za as buildViewerMetadata,rl as captureAcApHtmlViewState,Ks as captureAcExSavedViewExtents,Dr as clampAcApHtmlChunkSizeMiB,no as collectBatchesFromObject3D,Ys as collectLayoutViewports,Ya as compactIndexedSlice,te as compressSnapshotBinary,$a as compressSnapshotBinaryAsync,js as computeLayoutExtents,Xs as computeLayoutViewExtents,ve as computeLineDistancesForSegments,Vs as computeViewportPaperExtents,il as configureHtmlPlugin,et as copyFloat32Range,Bi as copyUint32Range,dr as createAcExHtmlAccessKey,Rs as createEmptyExtents,gl as createHtmlPlugin,nr as encodeChunkBinary,be as encodeOsnapCatalogBinary,Xa as encodeSnapshot,ki as encodeSnapshotBinary,Li as encodeTextureForExport,Ee as encryptAcExHtmlBytes,ls as encryptAcExHtmlSnapshotPayload,Is as estimateAcExSnapshotGeometryBytes,fe as estimateLineBatchBytes,ge as estimateMeshBatchBytes,Va as estimateOsnapPrimitiveBytes,va as expandExtentsFromBatch,$s as expandExtentsFromPositions,ji as exportActiveBatchedLine2Slice,ke as exportActiveBatchedSlice,Et as exportBufferGeometrySlice,Ii as exportPlainDrawableSlice,Ni as exportUvsForPositionSlice,$i as exportVertexAttributeSlice,Oi as extractGradientFill,Ti as extractHatchPattern,_i as extractLinePattern,ol as getHtmlPluginOptions,Ga as isTransparentImagePlaceholder,Cr as listDatabaseLayouts,cr as needsAcExHtmlAccessControl,Fr as normalizeAcExDocsBaseUrl,ct as omitNonFinitePrimitives,es as packHtml,zs as packHtmlEmbeddedPackage,as as packHtmlPackage,ds as protectAcExHtmlEncodedSnapshot,Ei as readBatchWorldOffset,Hi as rebaseHatchPatternToLocalOffset,xe as rebasePlainDrawableSliceAroundCentroid,ss as resolveAcApHtmlExpiresAt,J as resolveAcApHtmlExportOptions,al as resolveAcApHtmlPackageBuildOptions,Me as resolveAcExHtmlLocale,sl as resolveViewerRuntimeUrl,Ls as shouldEmbedAcExChunks,Ci as snapshotMimeType,ks as splitLayoutIntoSlices,ps as splitLineBatch,hs as splitMeshBatch,wi as splitOsnapPrimitives,Hs as toExtents,oa as toWcsCoord,la as transformHatchPatternToWorldSpace,Sr as unionExtents,fa as wcsPointToOcsArcAngle,Ha as writeLineBatch,ja as writeMeshBatch,Ts as zipAcExPackageFiles};
|
|
1564
|
+
`)}return a.join("")}function yr(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function vr(t){return yr(t).replace(/'/g,"'")}function Ds(t){return t.replace(/<\/script/gi,"<\\/script")}function ya(t){return t.replace(/</g,"\\u003c")}function Ns(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 _s(t){return t.endsWith(".gz")}function Ts(t){const e={};for(const a of t.files){if(!Ns(a.path))throw new Error(`Unsafe package path: ${a.path}`);_s(a.path)?e[a.path]=[a.bytes,{level:0}]:e[a.path]=[a.bytes,{level:6}]}return ti(e)}const kr="https://mlightcad.com/cad-viewer/docs/";let Ar=Fr(kr);function Mr(){return Ar}function Os(t){Ar=Fr(t)}function Fr(t){const e=t.trim();return e?e.replace(/\/+$/,""):kr.replace(/\/+$/,"")}function Rs(){return{minX:0,minY:0,maxX:0,maxY:0,valid:!1}}function $s(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=oa(e[i],r),s=oa(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 va(t,e){$s(t,e.positions,e.offset)}function Hs(t){return t.valid?{minX:t.minX,minY:t.minY,maxX:t.maxX,maxY:t.maxY}:null}function js(t,e){const a=Rs();for(const r of t)va(a,r);for(const r of e)va(a,r);return Hs(a)}function Sr(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 Vs(t){if(!t||t.length===0)return null;let e=null;for(const a of t)e=Sr(e,a.paper);return e}function Xs(t){return Sr(js(t.lineBatches,t.meshBatches),Vs(t.viewports))}function Ys(t,e,a){if(a)return;const r=Ws(t,e);if(!(r!=null&&r.newIterator))return;const n=[];for(const i of r.newIterator()){if(!(i instanceof Hr)||jr.isDefaultPaperSpaceViewport(i)||typeof i.toGiViewport!="function")continue;const o=i.toGiViewport(),s=o.box,l=o.viewBox,c=ka(s),d=ka(l);if(!c||!d)continue;const u=Number.isFinite(o.viewTwistAngle)?o.viewTwistAngle:i.viewTwistAngle,m=Gs(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 Gs(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 ka(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 Ws(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 Aa=16/9;function Ks(t,e,a,r=Aa){var n,i,o,s;const l=Number.isFinite(r)&&r>0?r:Aa;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 Ma(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 Ma(d.limits)}}function Ma(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 Cr(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 Js(t,e,a={}){return qs(t,e,a)}async function Zs(t,e,a={}){const r=a.yieldBetweenLayouts;r&&await r();const n=a.exportInvisibleLayers!==!1,i=a.exportLayouts!==!1,o=n?void 0:h=>Le(e,h,n),s=Za(t,{title:a.title,background:a.background}),l=Br(e,n),c=Cr(t),d=new Map(c.map(h=>[h.blockTableRecordId,h.name])),u=Lr(e,i),m=Ir(e,c,i),p=[];for(const h of m)p.push(zr(t,e,h,d,a,o)),r&&await r();return{version:X,meta:Er(s,a,p,u),layers:l,layouts:p,activeLayoutBtrId:u}}function qs(t,e,a){const r=a.exportInvisibleLayers!==!1,n=a.exportLayouts!==!1,i=r?void 0:p=>Le(e,p,r),o=Za(t,{title:a.title,background:a.background}),s=Br(e,r),l=Cr(t),c=new Map(l.map(p=>[p.blockTableRecordId,p.name])),d=Lr(e,n),u=Ir(e,l,n),m=[];for(const p of u)m.push(zr(t,e,p,c,a,i));return{version:X,meta:Er(o,a,m,d),layers:s,layouts:m,activeLayoutBtrId:d}}function Br(t,e){const a=[];for(const r of t.layers)Le(t,r.name,e)&&a.push({name:r.name,color:r.color,visible:r.visible});return a}function Er(t,e,a,r){const n=a.find(s=>s.btrId===r)??a[0],i=n?Xs(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??Mr()}}function Qs(t){return(t.viewerMode??"measure")==="measure"}function Le(t,e,a){if(a)return!0;const r=t.layers.find(n=>n.name===e);return r?r.visible:!0}function Ir(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 Lr(t,e){return e&&t.activeLayoutBtrId||t.modelSpaceBtrId}function zr(t,e,a,r,n,i){const o=[],s=[];for(const u of a.layers){if(i&&!i(u.name))continue;const m=no(u.root);o.push(...m.lineBatches),s.push(...m.meshBatches)}const l=a.isModelSpace||a.btrId===e.modelSpaceBtrId,c=Ks(t,a.btrId,l,n.canvasAspectRatio);let d;if(Qs(n)){const u=performance.now();d=_o(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??tl(t,a.btrId),isModelSpace:l,lineBatches:o,meshBatches:s,osnap:d,viewports:Ys(t,a.btrId,l),...c?{savedView:c}:{}}}function tl(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 el=400,ze=10,Pe=1,Pr=64;function Dt(t){return Math.floor(t)*1024*1024}function Ur(t){return Math.max(Pe,Math.round(t/(1024*1024)))}function Dr(t){return Number.isFinite(t)?Math.min(Pr,Math.max(Pe,Math.floor(t))):ze}function J(t={}){var e;const a=t.exportFormat==="multi"?"multi":"single",r=a==="multi"?Dt(Dr(t.maxChunkBytes!=null?Ur(t.maxChunkBytes):ze)):ir;return{exportFormat:a,exportInvisibleLayers:t.exportInvisibleLayers!==!1,exportLayouts:t.exportLayouts!==!1,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 al(t){const e=t.maxChunkBytes??Dt(ze),a=t.compressChunks!==!1;return{maxChunkBytes:e,maxBatchBytes:e,maxOsnapChunkBytes:e,compressChunks:a}}function rl(t){const e=t.activeLayoutView,a=e.center,r=e.trCamera.zoom,n=Math.max(e.height,1),i=r*(2*el)/n;return{centerX:a.x,centerY:a.y,zoom:i}}const nl="./viewer-runtime.iife.js";let kt={};function il(t){kt={...kt,...t}}function ol(){return{...kt}}function sl(t){return t!=null?String(t):kt.viewerRuntimeUrl!=null?String(kt.viewerRuntimeUrl):nl}class ll{build(e,a,r={}){return Js(a,Sa(e),Fa(r))}async buildAsync(e,a,r={}){return Zs(a,Sa(e),{...Fa(r),yieldBetweenLayouts:()=>j()})}}function Fa(t){return{title:t.title,background:t.background,locale:t.locale??k.currentLocale,exportInvisibleLayers:t.exportInvisibleLayers,exportLayouts:t.exportLayouts,initialView:t.initialView,viewState:t.viewState,viewerMode:t.viewerMode,canvasAspectRatio:t.canvasAspectRatio,docsBaseUrl:cl()}}function cl(){try{Os(Tn())}catch{}return Mr()}function Sa(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 K(t,e){console.log(`[chtml] ${t}: ${e.toFixed(0)} ms`)}class dl{constructor(e={}){this.options=e,this._snapshotBuilder=new ll}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 Nn))throw new Error("HTML export requires a 2D CAD view. Open a drawing before exporting.");const r=J(a),n={includeInvisibleLayers:r.exportInvisibleLayers,includeLayouts:r.exportLayouts};return await e.ensureEntitiesConvertedForExport(n),await j(),e}async convert(e,a={},r){const n=Q.instance,i=J(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);K("prepare (missing entities)",performance.now()-l);const d=e||s.fileName||s.docTitle,u=_n(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)?rl(c):void 0,canvasAspectRatio:c.width/Math.max(c.height,1)});K("snapshot build",performance.now()-l),await j(),l=performance.now();const p=await this.loadViewerRuntime();if(K("load viewer runtime",performance.now()-l),await j(),i.exportFormat==="multi"){l=performance.now();const g=al(i),w=await Ss(m,{viewerRuntime:p,...g});K(g.compressChunks?"package + gzip chunks":"package chunks",performance.now()-l),l=performance.now();const b=Ts(w);K("zip package",performance.now()-l),await j(),this.downloadBytes(b,$e(d,"zip"),"application/zip"),K("chtml total",performance.now()-o);return}const h=ss(i.expiryDays,Date.now(),i.expiresAt);l=performance.now();const f=await this.packSelfContainedHtml(m,p,{expiresAt:h,password:i.password||void 0});K("pack self-contained html",performance.now()-l),await j(),this.downloadHtml(f,$e(d,"html")),K("chtml total",performance.now()-o)})}async packSnapshot(e,a){await Q.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(Ls(e))return zs(e,{title:e.meta.title,viewerRuntime:a,expiresAt:r.expiresAt,password:r.password});const n=await ds(Xa(e),{expiresAt:r.expiresAt,password:r.password});return es(e,{title:e.meta.title,viewerRuntime:a,encoded:n.encoded,accessManifest:n.manifest})}async loadViewerRuntime(){const e=sl(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 ul extends Un{constructor(e={}){super(),this.pluginOptions=e}async execute(e){const a=await this.promptOptions();a&&await new dl(this.pluginOptions).convert(e.doc.fileName||e.doc.docTitle,a,e.view)}async promptOptions(){const e=J(),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.promptInitialView();if(i===void 0)return;const o=await this.promptViewerMode();if(o===void 0)return;let s,l;if(!(a==="multi"&&(s=await this.promptChunkSizeMiB(),s===void 0||(l=await this.promptYesNo("jig.chtml.compressChunks",e.compressChunks),l===void 0))))return J({exportFormat:a,exportInvisibleLayers:r,exportLayouts:n,initialView:i,viewerMode:o,...a==="multi"?{maxChunkBytes:s,compressChunks:l}:{}})}async promptExportFormat(){const e=J(),a=new Mt(k.t("jig.chtml.exportFormat"));a.allowNone=!0;const r=a.keywords.add(k.t("jig.chtml.keywords.single.display"),k.t("jig.chtml.keywords.single.global"),k.t("jig.chtml.keywords.single.local")),n=a.keywords.add(k.t("jig.chtml.keywords.multi.display"),k.t("jig.chtml.keywords.multi.global"),k.t("jig.chtml.keywords.multi.local"));a.keywords.default=e.exportFormat==="multi"?n:r;const i=await Q.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.exportFormat;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="Multi"?"multi":"single":e.exportFormat}}async promptYesNo(e,a){const r=new Mt(k.t(e));r.allowNone=!0;const n=r.keywords.add(k.t("jig.chtml.keywords.yes.display"),k.t("jig.chtml.keywords.yes.global"),k.t("jig.chtml.keywords.yes.local")),i=r.keywords.add(k.t("jig.chtml.keywords.no.display"),k.t("jig.chtml.keywords.no.global"),k.t("jig.chtml.keywords.no.local"));r.keywords.default=a?n:i;const o=await Q.instance.editor.getKeywords(r);if(o.status!==E.Cancel){if(o.status===E.None)return a;if(o.status===E.OK||o.status===E.Keyword)return o.stringResult?o.stringResult==="Yes":a}}async promptChunkSizeMiB(){const e=J({exportFormat:"multi"}),a=Ur(e.maxChunkBytes),r=new Dn(k.t("jig.chtml.chunkSizeMiB"),Pe,Pr);r.allowNone=!0,r.allowZero=!1,r.allowNegative=!1,r.useDefaultValue=!0,r.defaultValue=a;const n=await Q.instance.editor.getInteger(r);if(n.status!==E.Cancel){if(n.status===E.None)return Dt(a);if(n.status===E.OK){const i=Dr(n.value??a);return Dt(i)}}}async promptInitialView(){const e=J(),a=new Mt(k.t("jig.chtml.initialView"));a.allowNone=!0;const r=a.keywords.add(k.t("jig.chtml.keywords.extents.display"),k.t("jig.chtml.keywords.extents.global"),k.t("jig.chtml.keywords.extents.local")),n=a.keywords.add(k.t("jig.chtml.keywords.current.display"),k.t("jig.chtml.keywords.current.global"),k.t("jig.chtml.keywords.current.local"));a.keywords.default=e.initialView==="current"?n:r;const i=await Q.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.initialView;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="Current"?"current":"fit":e.initialView}}async promptViewerMode(){const e=J(),a=new Mt(k.t("jig.chtml.viewerMode"));a.allowNone=!0;const r=a.keywords.add(k.t("jig.chtml.keywords.view.display"),k.t("jig.chtml.keywords.view.global"),k.t("jig.chtml.keywords.view.local")),n=a.keywords.add(k.t("jig.chtml.keywords.measure.display"),k.t("jig.chtml.keywords.measure.global"),k.t("jig.chtml.keywords.measure.local"));a.keywords.default=e.viewerMode==="view"?r:n;const i=await Q.instance.editor.getKeywords(a);if(i.status!==E.Cancel){if(i.status===E.None)return e.viewerMode;if(i.status===E.OK||i.status===E.Keyword)return i.stringResult?i.stringResult==="View"?"view":"measure":e.viewerMode}}}const ml="1.7.7-preview.1",pl={version:ml};class hl{constructor(e={}){this.options=e,this.name="HtmlPlugin",this.version=pl.version,this.description="HTML export (-chtml) command",this.registeredCommands=[]}onLoad(e,a){const r=Pn.SYSTEMT_COMMAND_GROUP_NAME,n=new ul(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 gl(t={}){return t.viewerRuntimeUrl!=null&&il(t),new hl(ol())}export{Ro as ACEC_CHUNK_MAGIC,ci as ACEO_OSNAP_MAGIC,di as ACEO_OSNAP_VERSION,ir as ACEX_DEFAULT_CHUNK_MAX_BYTES,ze as ACEX_DEFAULT_CHUNK_SIZE_MIB,kr as ACEX_DEFAULT_DOCS_BASE_URL,Rt as ACEX_DEFAULT_MANIFEST_FILE,Xo as ACEX_DEFAULT_MANIFEST_HREF,Es as ACEX_EMBEDDED_CHUNK_ENCRYPTED_MIME,xr as ACEX_EMBEDDED_CHUNK_HREF_ATTR,xa as ACEX_EMBEDDED_CHUNK_MAX_BYTES,Bs as ACEX_EMBEDDED_CHUNK_MIME,jo as ACEX_EMBEDDED_CHUNK_THRESHOLD_BYTES,Vo as ACEX_EMBEDDED_OSNAP_CHUNK_MAX_BYTES,Oo as ACEX_HTML_LOCALES,Se as ACEX_HTML_SHELL_CSS,Pr as ACEX_MAX_CHUNK_SIZE_MIB,Ot as ACEX_MAX_GEOMETRY_BATCH_BYTES,Pe as ACEX_MIN_CHUNK_SIZE_MIB,Ho as ACEX_PACKAGE_VERSION,Ko as ACEX_POLAR_ANGLE_INCREMENTS,Ra as ACEX_SNAPSHOT_COMPRESSION,X as ACEX_SNAPSHOT_VERSION,ul as AcApExportHtmlCmd,dl as AcApHtmlConvertor,ll as AcApHtmlSnapshotBuilder,he as AcExBinaryWriter,le as AcExHtmlIcons,nl as DEFAULT_HTML_VIEWER_RUNTIME_URL,Je as F_LINE_DISTANCES,si as F_LINE_EXCLUDE_OSNAP,We as F_LINE_INDICES,Ke as F_LINE_PATTERN,qe as F_LINE_RENDER_ORDER,Ze as F_LINE_WIDTH,ea as F_MESH_GRADIENT_FILL,aa as F_MESH_GRADIENT_POS,ta as F_MESH_HATCH,Qe as F_MESH_INDICES,li as F_MESH_POINTS,na as F_MESH_RENDER_ORDER,ra as F_MESH_SIDE,ia as F_MESH_TEXTURE,xl as HTML_PLUGIN_NAME,yl as HTML_PLUGIN_TRIGGERS,qo as ML_UI_COMPACT_MAX_WIDTH,Zo as ML_UI_MOBILE_MAX_WIDTH,ri as acExHtmlBase85ToBytes,cs as acExHtmlBytesToBase64,ai as acExHtmlBytesToBase85,_t as acExHtmlBytesToText,ei as acExHtmlTextToBytes,Ur as acexChunkSizeBytesToMiB,Dt as acexChunkSizeMiBToBytes,Mr as acexGetDocsBaseUrl,Os as acexSetDocsBaseUrl,we as bakePlainDrawableSlice,Ut as buildAcExHtmlAccessManifest,Jo as buildAcExHtmlPolarAnglesPanel,Ce as buildAcExHtmlShellBody,Ss as buildAcExPackageAsync,wr as buildAcExPackageDataAsync,_o as buildOsnapCatalog,Js as buildSnapshotFromExportScene,Zs as buildSnapshotFromExportSceneAsync,Za as buildViewerMetadata,rl as captureAcApHtmlViewState,Ks as captureAcExSavedViewExtents,Dr as clampAcApHtmlChunkSizeMiB,no as collectBatchesFromObject3D,Ys as collectLayoutViewports,Ya as compactIndexedSlice,te as compressSnapshotBinary,$a as compressSnapshotBinaryAsync,js as computeLayoutExtents,Xs as computeLayoutViewExtents,ve as computeLineDistancesForSegments,Vs as computeViewportPaperExtents,il as configureHtmlPlugin,et as copyFloat32Range,Bi as copyUint32Range,dr as createAcExHtmlAccessKey,Rs as createEmptyExtents,gl as createHtmlPlugin,nr as encodeChunkBinary,be as encodeOsnapCatalogBinary,Xa as encodeSnapshot,ki as encodeSnapshotBinary,Li as encodeTextureForExport,Ee as encryptAcExHtmlBytes,ls as encryptAcExHtmlSnapshotPayload,Is as estimateAcExSnapshotGeometryBytes,fe as estimateLineBatchBytes,ge as estimateMeshBatchBytes,Va as estimateOsnapPrimitiveBytes,va as expandExtentsFromBatch,$s as expandExtentsFromPositions,ji as exportActiveBatchedLine2Slice,ke as exportActiveBatchedSlice,Et as exportBufferGeometrySlice,Ii as exportPlainDrawableSlice,Ni as exportUvsForPositionSlice,$i as exportVertexAttributeSlice,Oi as extractGradientFill,Ti as extractHatchPattern,_i as extractLinePattern,ol as getHtmlPluginOptions,Ga as isTransparentImagePlaceholder,Cr as listDatabaseLayouts,cr as needsAcExHtmlAccessControl,Fr as normalizeAcExDocsBaseUrl,ct as omitNonFinitePrimitives,es as packHtml,zs as packHtmlEmbeddedPackage,as as packHtmlPackage,ds as protectAcExHtmlEncodedSnapshot,Ei as readBatchWorldOffset,Hi as rebaseHatchPatternToLocalOffset,xe as rebasePlainDrawableSliceAroundCentroid,ss as resolveAcApHtmlExpiresAt,J as resolveAcApHtmlExportOptions,al as resolveAcApHtmlPackageBuildOptions,Me as resolveAcExHtmlLocale,sl as resolveViewerRuntimeUrl,Ls as shouldEmbedAcExChunks,Ci as snapshotMimeType,ks as splitLayoutIntoSlices,ps as splitLineBatch,hs as splitMeshBatch,wi as splitOsnapPrimitives,Hs as toExtents,oa as toWcsCoord,la as transformHatchPatternToWorldSpace,Sr as unionExtents,fa as wcsPointToOcsArcAngle,Ha as writeLineBatch,ja as writeMeshBatch,Ts as zipAcExPackageFiles};
|