@mlightcad/cad-simple-viewer-cli 1.7.4 → 1.7.5

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.
@@ -0,0 +1,16 @@
1
+ import{W as st,G as nt,v as at,a as X,A as Z,Y as rt,h as ot,b as ht,c as M,d as Q,e as lt,f as ct,g as tt,i as ut,j as mt,k as xt,l as gt,m as H,n as ft,o as O,p as W,q as pt,M as dt,r as yt,s as Y,t as S,u as p,w as I,T as L,x as bt,y as vt}from"./index-DXwRjL3l.js";import{z as Te,B as _e}from"./index-DXwRjL3l.js";const A=1e10;function wt(a){return Math.max(a.maxX-a.minX,a.maxY-a.minY)>=A?!0:Math.abs(a.minX)>=A||Math.abs(a.minY)>=A||Math.abs(a.maxX)>=A||Math.abs(a.maxY)>=A}function et(a){return a.isEmpty()?!1:Number.isFinite(a.min.x)&&Number.isFinite(a.min.y)&&Number.isFinite(a.max.x)&&Number.isFinite(a.max.y)}function St(a){const t=[];for(const l of a)et(l)&&t.push({minX:l.min.x,minY:l.min.y,maxX:l.max.x,maxY:l.max.y});if(t.length===0)return new M;const e=t.filter(l=>!wt(l));if(e.length===0)return new M;const i=e.map(l=>Math.max(l.maxX-l.minX,l.maxY-l.minY,1e-9));i.sort((l,c)=>l-c);const s=i[Math.floor(i.length/2)]||1,n=Math.max(s*50,A),r=[];for(const l of e)Math.max(l.maxX-l.minX,l.maxY-l.minY)<n&&r.push(l);if(r.length===0)return new M;const o=Tt(r),h=_t(o.length>0?o:r);return h?new M({x:h.minX,y:h.minY},{x:h.maxX,y:h.maxY}):new M}function Tt(a){if(a.length<2)return a;const t=a.map(c=>({x:(c.minX+c.maxX)/2,y:(c.minY+c.maxY)/2,box:c})),e=t.map(c=>c.x).sort((c,m)=>c-m),i=t.map(c=>c.y).sort((c,m)=>c-m),s=e[Math.floor(e.length/2)],n=i[Math.floor(i.length/2)],r=a.map(c=>Math.max(c.maxX-c.minX,c.maxY-c.minY,1e-9));r.sort((c,m)=>c-m);const o=r[Math.floor(r.length/2)]||1,h=Math.max(o*50,A),l=t.filter(c=>Math.hypot(c.x-s,c.y-n)<=h);return l.length>0?l.map(c=>c.box):a}function D(a,t){if(a.length<8)return a;const e=a.map(u=>({value:t==="x"?(u.minX+u.maxX)/2:(u.minY+u.maxY)/2,box:u})).sort((u,d)=>u.value-d.value),i=e[e.length-1].value-e[0].value;if(!(i>0))return a;let s=0,n=0;for(let u=1;u<e.length;u++){const d=e[u].value-e[u-1].value;d>s&&(s=d,n=u)}if(s<i*.2)return a;const r=e.slice(0,n),o=e.slice(n),h=r.length>=o.length?r:o,l=a.map(u=>Math.max(u.maxX-u.minX,u.maxY-u.minY,1e-9));l.sort((u,d)=>u-d);const c=l[Math.floor(l.length/2)]||1,m=[];for(let u=1;u<h.length;u++)m.push(h[u].value-h[u-1].value);m.sort((u,d)=>u-d);const f=m.length>0&&m[Math.floor(m.length/2)]||c,x=Math.max(f*10,c*20);return s<x?a:h.map(u=>u.box)}function G(a){if(a.length===0)return null;let t=1/0,e=1/0,i=-1/0,s=-1/0;for(const n of a)t=Math.min(t,n.minX),e=Math.min(e,n.minY),i=Math.max(i,n.maxX),s=Math.max(s,n.maxY);return{minX:t,minY:e,maxX:i,maxY:s}}function _t(a){if(a.length===0)return null;const t=G(a);if(a.length<8)return t;let e=a.slice(),i=-1;for(;e.length!==i;)i=e.length,e=D(e,"x"),e=D(e,"y");return G(e)??t}class V{static toSvgTransform(t){const e=t.elements;return`matrix(${e[0]},${e[1]},${e[4]},${e[5]},${e[12]},${e[13]})`}static transformPoint(t,e){const i=t.elements,s=e.x,n=e.y,r=e.z??0,o=i[3]*s+i[7]*n+i[11]*r+i[15],h=o===0?1:1/o;return{x:(i[0]*s+i[4]*n+i[8]*r+i[12])*h,y:(i[1]*s+i[5]*n+i[9]*r+i[13])*h}}static transformBox(t,e){if(t.isEmpty())return;const i=t.min,s=t.max;if(!Number.isFinite(i.x)||!Number.isFinite(i.y)||!Number.isFinite(s.x)||!Number.isFinite(s.y)){t.makeEmpty();return}const n=[{x:i.x,y:i.y,z:0},{x:s.x,y:i.y,z:0},{x:s.x,y:s.y,z:0},{x:i.x,y:s.y,z:0}];let r=1/0,o=1/0,h=-1/0,l=-1/0;for(const c of n){const m=this.transformPoint(e,c);if(!Number.isFinite(m.x)||!Number.isFinite(m.y)){t.makeEmpty();return}r=Math.min(r,m.x),o=Math.min(o,m.y),h=Math.max(h,m.x),l=Math.max(l,m.y)}t.min.set(r,o),t.max.set(h,l)}}class y{constructor(){this._objectId="",this._ownerId="",this._layerName="",this._visible=!0,this._userData={},this._box=new M,this._localSvg="",this._children=[]}get box(){return this._box}set box(t){this._box.copy(t)}get basePoint(){return this._basePoint}set basePoint(t){t==null?this._basePoint=t:this._basePoint=this._basePoint?this._basePoint.copy(t):new pt(t)}get svg(){return this.renderSvg()}set svg(t){this._localSvg=t}getLocalSvg(){return this._localSvg}get childCount(){return this._children.length}renderSvg(){const t=[];this._localSvg&&t.push(this._localSvg);for(const i of this._children){const s=i.renderSvg();s&&t.push(s)}const e=t.join(`
2
+ `);return e?this._matrix?`<g transform="${V.toSvgTransform(this._matrix)}">
3
+ ${e}
4
+ </g>`:e:""}get objectId(){return this._objectId}set objectId(t){this._objectId=t}get ownerId(){return this._ownerId}set ownerId(t){this._ownerId=t}get layerName(){return this._layerName}set layerName(t){this._layerName=t}get visible(){return this._visible}set visible(t){this._visible=t}get userData(){return this._userData}set userData(t){this._userData=t}applyMatrix(t){this._matrix?this._matrix=t.clone().multiply(this._matrix):this._matrix=t.clone(),this.transformBoxesRecursive(t)}transformBoxesRecursive(t){V.transformBox(this._box,t);for(const e of this._children)e.transformBoxesRecursive(t)}recomputeBoundingBox(){}highlight(){}unhighlight(){}fastDeepClone(){const t=new y;t._objectId=this._objectId,t._ownerId=this._ownerId,t._layerName=this._layerName,t._visible=this._visible,t._userData=this._userData,t._localSvg=this._localSvg,t._box.copy(this._box),this._matrix&&(t._matrix=this._matrix.clone()),this._basePoint&&(t._basePoint=this._basePoint.clone());for(const e of this._children)t._children.push(e.fastDeepClone());return t}addChild(t){t instanceof y&&(this._children.push(t),et(t.box)&&this._box.union(t.box))}}class g{static rgbToHex(t){const e=t>>16&255,i=t>>8&255,s=t&255;return`#${e.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`}static resolveRgb(t,e,i){return t.isBackgroundFill||i==="fill"&&t.color.isForeground&&this.isSolidBackgroundHatch(t)?e.backgroundColor:Q.fromBackgroundColor(e.backgroundColor).resolveSubEntityTraitsRgb(t)}static strokeAttributes(t,e){const i={stroke:this.rgbToHex(this.resolveRgb(t,e,"line")),fill:"none"};if(!e.showLineWeight)i["stroke-width"]="1",i["vector-effect"]="non-scaling-stroke";else{const r=this.resolveStrokeWidth(t.lineWeight);r!=null&&(i["stroke-width"]=String(r))}const s=this.resolveOpacity(t);s!=null&&s<1&&(i["stroke-opacity"]=String(s));const n=this.strokeDasharray(t,e);return n&&(i["stroke-dasharray"]=n),i}static fillAttributes(t,e){const i={fill:this.rgbToHex(this.resolveRgb(t,e,"fill")),stroke:"none"},s=this.resolveOpacity(t);return s!=null&&s<1&&(i["fill-opacity"]=String(s)),i}static textAttributes(t,e){const i={fill:this.rgbToHex(this.resolveRgb(t,e,"text")),stroke:"none"},s=this.resolveOpacity(t);return s!=null&&s<1&&(i["fill-opacity"]=String(s)),i}static pointAttributes(t,e){return this.textAttributes(t,e)}static formatAttributes(t){return Object.entries(t).map(([e,i])=>`${e}="${Lt(i)}"`).join(" ")}static tag(t,e,i){const s=this.formatAttributes(e);return i==null?`<${t} ${s}/>`:`<${t} ${s}>${i}</${t}>`}static isSolidBackgroundHatch(t){if((t.drawOrder??0)>=0)return!1;const e=t.fillType;return e.gradient?!1:!e.definitionLines||e.definitionLines.length===0}static resolveStrokeWidth(t){return t<0?null:Math.max(.01,t/100)}static resolveOpacity(t){const e=t.transparency;if(!(e!=null&&e.isByAlpha))return null;const i=e.alpha;return i==null||Number.isNaN(i)||i<=0?null:Math.min(1,Math.max(0,i/255))}static strokeDasharray(t,e){const i=t.lineType.pattern;if(!i||i.length===0)return;const s=e.ltscale*e.celtscale*t.lineTypeScale,n=this.patternToDashSegments(i,s);if(n.length!==0)return n.join(" ")}static patternToDashSegments(t,e){const i=[];for(const s of t){let n=s.elementLength;n<0&&s.elementTypeFlag!==0&&(n=Math.abs(n)),n*=e,n===0&&(n=.5*e),i.push(Math.abs(n))}return i}}function Lt(a){return a.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;")}class Mt extends y{constructor(t,e,i,s){super();const n=t.tessellate(s);let r="";for(const o of n){if(o.length===0)continue;const[h,...l]=o;r+=`M${h.x},${h.y}`;for(const c of l)r+=` L${c.x},${c.y}`;r+=" Z";for(const c of o)this._box.expandByPoint(c)}if(r){const o={d:r,"fill-rule":"evenodd",...g.fillAttributes(e,i)};this.svg=g.tag("path",o)}}}class Ct extends y{constructor(t,e,i,s){super();const n=t.tessellate(s),r=n.reduce((o,h,l)=>(o+=l===0?"M":"L",o+=`${h.x},${h.y}`,o),"");if(r){const o={d:r,...g.strokeAttributes(e,i)};this.svg=g.tag("path",o)}for(const o of n)this._box.expandByPoint(o)}}class kt extends y{constructor(t,e,i,s){super();const n=t.tessellate(s),r=n.reduce((o,h,l)=>(o+=l===0?"M":"L",o+=`${h.x},${h.y}`,o),"");if(r){const o={d:r,...g.strokeAttributes(e,i)};this.svg=g.tag("path",o)}for(const o of n)this._box.expandByPoint(o)}}class P{static isSafeEmbeddedUrl(t){const e=t.trim();return e.startsWith("data:")||e.startsWith("#")}static sanitizeExternalReferences(t){return t.replace(/<(?:image|use)\b[^>]*\s(?:xlink:)?href="(?!data:|#)[^"]*"[^>]*\/?>\s*/gi,"")}static stripInvalidXmlChars(t){return t.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\uFFFE\uFFFF]/g,"")}static escapeXml(t){return P.stripInvalidXmlChars(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}static async rasterizeSvgDataUrl(t){return typeof document>"u"?t:new Promise((e,i)=>{const s=new Image;s.onload=()=>{const n=Math.max(1,s.naturalWidth||1),r=Math.max(1,s.naturalHeight||1),o=document.createElement("canvas");o.width=n,o.height=r;const h=o.getContext("2d");if(!h){i(new Error("Canvas 2D context unavailable"));return}h.drawImage(s,0,0,n,r),e(o.toDataURL("image/png"))},s.onerror=()=>i(new Error("Failed to rasterize embedded SVG image")),s.src=t})}}class At extends y{constructor(t){super();for(const e of t)this.addChild(e)}}class E extends y{constructor(t,e,i,s){super();const{boundary:n}=e;if(n.length<2||!P.isSafeEmbeddedUrl(t))return;let r=1/0,o=1/0,h=-1/0,l=-1/0;for(const x of n)x.x<r&&(r=x.x),x.y<o&&(o=x.y),x.x>h&&(h=x.x),x.y>l&&(l=x.y),this._box.expandByPoint(x);const c=h-r,m=l-o,f=Rt(t);this._localSvg=`<image x="${r}" y="${o}" width="${c}" height="${m}" href="${f}" xlink:href="${f}" transform="scale(1,-1) translate(0,${-(o*2+m)})"/>`}static async fromBlob(t,e,i,s){let n=await Pt(t);if(t.type==="image/svg+xml"||n.startsWith("data:image/svg+xml"))try{n=await P.rasterizeSvgDataUrl(n)}catch{return new E("",e,i,s)}return new E(n,e,i,s)}}function Pt(a){return new Promise((t,e)=>{const i=new FileReader;i.onload=()=>t(i.result),i.onerror=e,i.readAsDataURL(a)})}function Rt(a){return a.replace(/&/g,"&amp;").replace(/"/g,"&quot;")}class Ft extends y{constructor(t,e,i){super();const s=t.reduce((n,r,o)=>(n+=o===0?"M":"L",n+=r.x+","+r.y,this.box.expandByPoint(r),n),"");if(s){const n={d:s,...g.strokeAttributes(e,i)};this.svg=g.tag("path",n)}}}class Yt extends y{constructor(t,e,i,s,n){super();const r=g.strokeAttributes(s,n),o=[];for(let h=0;h+1<i.length;h+=2){const l=i[h]*e,c=i[h+1]*e,m=t[l],f=t[l+1],x=t[c],u=t[c+1];o.push(g.tag("line",{x1:String(m),y1:String(f),x2:String(x),y2:String(u),...r})),this._box.expandByPoint({x:m,y:f}),this._box.expandByPoint({x,y:u})}this.svg=o.join(`
5
+ `)}}const it=/\.(shx|ttf|otf|woff2?)$/i,Bt={txt:"Lucida Console, Courier New, monospace",simplex:"Arial, Helvetica, sans-serif",romans:'"Times New Roman", Times, serif',romanc:'"Times New Roman", Times, serif',romand:'"Times New Roman", Times, serif',romant:'"Times New Roman", Times, serif',italic:'"Times New Roman", Times, serif',italict:'"Times New Roman", Times, serif',italicc:'"Times New Roman", Times, serif',monotxt:'"Courier New", Courier, monospace',isocp:"Arial, Helvetica, sans-serif",isocp2:"Arial, Helvetica, sans-serif",isocp3:"Arial, Helvetica, sans-serif",isoct:"Arial, Helvetica, sans-serif",isoct2:"Arial, Helvetica, sans-serif",isoct3:"Arial, Helvetica, sans-serif",gdt:"Arial, Helvetica, sans-serif",greekc:'"Times New Roman", Times, serif',greeks:'"Times New Roman", Times, serif',simsun:'SimSun, "Songti SC", STSong, serif',simhei:'SimHei, "Heiti SC", STHeiti, sans-serif',simkai:'KaiTi, "Kaiti SC", STKaiti, serif',simfang:'FangSong, "Fangsong SC", STFangsong, serif',msyh:'"Microsoft YaHei", "PingFang SC", sans-serif',dengxian:'DengXian, "Microsoft YaHei", sans-serif',arial:"Arial, Helvetica, sans-serif","times new roman":'"Times New Roman", Times, serif',courier:'"Courier New", Courier, monospace',tahoma:"Tahoma, Geneva, sans-serif",verdana:"Verdana, Geneva, sans-serif"},It={arial:"1",romans:"1.05",txt:"1.1",simplex:"1.05",isocp:"1"};let U={},j={};function $(a){return a.trim().replace(it,"").toLowerCase()}function N(a,t){const e=(t==null?void 0:t.trim())||"sans-serif";if(!(a!=null&&a.trim()))return N(e,"sans-serif");const i=$(a);return(U[i]??Bt[i]??U[a.toLowerCase()])||(it.test(a)?e:a.includes(",")?a:`"${a}", ${e}`)}function Et(a){if(!(a!=null&&a.trim()))return 1;const t=$(a),e=j[t]??It[t]??j[a.toLowerCase()];if(e==null)return 1;const i=Number(e);return Number.isFinite(i)&&i>0?i:1}function z(a){return $(a)}const Nt=1,q=5/3,Xt=.3,Ht=.6,$t=1,zt=4,Ot=.7;function Wt(a){if(!a||a.length!==1)return!1;const t=a.codePointAt(0)??0;return t>=4352&&t<=4607||t>=11904&&t<=40959||t>=63744&&t<=64255||t>=65040&&t<=65135||t>=65280&&t<=65376||t>=131072&&t<=196607}function Dt(a,t){const e=typeof t.lineSpaceFactor=="number"?t.lineSpaceFactor:Nt,i=a*Math.max(e,0)*q;return t.lineSpaceStyle===2?i:Math.max(i,a*q)}function Gt(a){return!Number.isFinite(a.width)||a.width<=0?null:a.width}function Vt(a){switch(a){case Y.RIGHT_TO_LEFT:return 1;case Y.TOP_TO_BOTTOM:return 2;case Y.BOTTOM_TO_TOP:return 3;case Y.LEFT_TO_RIGHT:case Y.BY_STYLE:default:return 0}}function Ut(a){const t=a.directionVector;return t&&(t.x!==0||t.y!==0)?Math.atan2(t.y,t.x):a.rotation??0}function jt(a){const t=a.width;if(!Number.isFinite(t)||t<=0||a.attachmentPoint==null)return S.LEFT;switch(a.attachmentPoint){case p.TopCenter:case p.MiddleCenter:case p.BottomCenter:case p.BaselineCenter:return S.CENTER;case p.TopRight:case p.MiddleRight:case p.BottomRight:case p.BaselineRight:return S.RIGHT;default:return S.LEFT}}function qt(a){return{minX:a.minX,maxX:a.maxX,minY:-a.maxY,maxY:-a.minY,baselineY:-a.firstBaselineY}}function Kt(a,t){const e=qt(t),i=(e.minX+e.maxX)/2,s=(e.minY+e.maxY)/2;switch(a){case p.TopCenter:return{x:-i,y:-e.maxY};case p.TopRight:return{x:-e.maxX,y:-e.maxY};case p.MiddleLeft:return{x:-e.minX,y:-s};case p.MiddleCenter:return{x:-i,y:-s};case p.MiddleRight:return{x:-e.maxX,y:-s};case p.BottomLeft:return{x:-e.minX,y:-e.minY};case p.BottomCenter:return{x:-i,y:-e.minY};case p.BottomRight:return{x:-e.maxX,y:-e.minY};case p.BaselineCenter:return{x:-i,y:-e.baselineY};case p.BaselineRight:return{x:-e.maxX,y:-e.baselineY};case p.BaselineLeft:return{x:-e.minX,y:-e.baselineY};case p.TopLeft:default:return{x:-e.minX,y:-e.maxY}}}function Jt(a,t,e,i){const s=new M,{text:n,height:r,position:o}=a;if(!n||r<=0)return{localSvg:"",box:s};const h=r,l=Dt(h,a),c=Gt(a),m=Vt(a.drawingDirection),f=N(t.extendedFont||t.font,"sans-serif"),x=typeof a.widthFactor=="number"&&a.widthFactor>0?a.widthFactor:typeof t.widthFactor=="number"&&t.widthFactor>0?t.widthFactor:1,u=new dt;u.capHeight={value:h,isRelative:!1},u.widthFactor={value:x,isRelative:!1},u.paragraph.align=jt(a),typeof t.obliqueAngle=="number"&&(u.oblique=t.obliqueAngle),u.fontFace.family=z(t.extendedFont||t.font||f);const d=new yt(n,u,{resetParagraphParameters:!0,yieldPropertyCommands:!0}),w=new Qt(h,l,c,m,f,x,t,e,i,u);for(const F of d.parse())w.consume(F);w.finish();const k=w.bounds,C=Kt(a.attachmentPoint,k),{x:b,y:T}=o,v=Ut(a)*180/Math.PI,_=[`translate(${b},${T})`];v!==0&&_.push(`rotate(${-v})`),_.push(`translate(${C.x},${C.y})`),_.push("scale(1,-1)");const B=[w.runMarkup,w.decorationMarkup].join(""),R=g.tag("g",{transform:_.join(" ")},B);return Zt(s,k,C,b,T),{localSvg:R,box:s}}function Zt(a,t,e,i,s){if(t.maxX<=t.minX&&t.maxY<=t.minY)return;const n=[{x:t.minX+e.x,y:e.y-t.minY},{x:t.maxX+e.x,y:e.y-t.minY},{x:t.minX+e.x,y:e.y-t.maxY},{x:t.maxX+e.x,y:e.y-t.maxY}];for(const r of n)a.expandByPoint({x:i+r.x,y:s+r.y})}class Qt{constructor(t,e,i,s,n,r,o,h,l,c){this.baseHeight=t,this.lineAdvance=e,this.wrapWidth=i,this.flowMode=s,this.defaultFont=n,this.traits=h,this.ctx=l,this.x=0,this.y=0,this.lineStartX=0,this.columnStartY=0,this.columnAdvance=0,this.isLineStart=!0,this.firstLineOfParagraph=!0,this.currentLine=null,this.lines=[],this.stackBars=[],this.decorationLines=[],this.activeLineIndex=0,this.minX=0,this.maxX=0,this.minY=0,this.maxY=0,this.firstBaselineY=0,this.hasContent=!1,this.heightScale=1,this.tracking=1,this.oblique=0,this.bold=!1,this.italic=!1,this.underline=!1,this.overline=!1,this.strikeThrough=!1,this.lineAlign=I.BOTTOM,this.prevCtx=c,this.hScale=r,this.oblique=typeof o.obliqueAngle=="number"?o.obliqueAngle:0,this.fontFamily=N(c.fontFace.family,n),this.fill=K(c.color,h,l),this.resetParagraphPosition(c)}get runMarkup(){let t="";for(const e of this.lines)for(const i of e.spans)t+=this.emitRunGroup(i);return t}get decorationMarkup(){return[...this.stackBars,...this.decorationLines].map(t=>g.tag("line",{x1:String(t.x1),y1:String(t.y1),x2:String(t.x2),y2:String(t.y2),stroke:t.stroke,"stroke-width":String(Math.max(this.baseHeight*.05,.05)),"stroke-linecap":"butt"})).join("")}get bounds(){return{minX:this.minX,maxX:this.maxX,minY:this.minY,maxY:this.maxY,firstBaselineY:this.firstBaselineY}}consume(t){switch(this.applyCtx(t.ctx),t.type){case L.WORD:this.emitText(String(t.data??""),t.ctx);break;case L.SPACE:this.emitSpace(t.ctx);break;case L.NBSP:this.emitText(" ",t.ctx);break;case L.TABULATOR:this.advanceToTab(t.ctx);break;case L.NEW_PARAGRAPH:this.newParagraph(t.ctx);break;case L.NEW_COLUMN:this.newColumn(t.ctx);break;case L.WRAP_AT_DIMLINE:this.wrapLine(t.ctx);break;case L.PROPERTIES_CHANGED:this.applyPropertyChange(t.data);break;case L.STACK:Array.isArray(t.data)&&t.data.length===3&&this.emitStack(t.data,t.ctx);break}}finish(){this.finalizeCurrentLine(),this.applyVerticalLineAlignment(),this.applyLineAlignment(),this.recomputeBoundsFromLines(),this.emitDecorationLines()}applyCtx(t){const e=t.capHeight;(e.value!==this.prevCtx.capHeight.value||e.isRelative!==this.prevCtx.capHeight.isRelative)&&(e.isRelative?this.heightScale*=e.value:this.heightBase=e.value);const i=t.widthFactor;(i.value!==this.prevCtx.widthFactor.value||i.isRelative!==this.prevCtx.widthFactor.isRelative)&&(this.hScale=i.isRelative?this.hScale*i.value:i.value);const s=t.charTrackingFactor;(s.value!==this.prevCtx.charTrackingFactor.value||s.isRelative!==this.prevCtx.charTrackingFactor.isRelative)&&(this.tracking=s.isRelative?s.value+1:s.value),t.oblique!==this.prevCtx.oblique&&(this.oblique=t.oblique),JSON.stringify(t.fontFace)!==JSON.stringify(this.prevCtx.fontFace)&&this.applyFontFaceChange(t.fontFace),(t.color.aci!==this.prevCtx.color.aci||t.color.rgbValue!==this.prevCtx.color.rgbValue||t.color.isRgb!==this.prevCtx.color.isRgb)&&(this.fill=K(t.color,this.traits,this.ctx)),this.underline=t.underline,this.overline=t.overline,this.strikeThrough=t.strikeThrough,this.lineAlign=t.align,this.prevCtx=t}currentStyle(){const t=this.prevCtx.fontFace.family||this.defaultFont;return{size:(this.heightBase??this.baseHeight)*this.heightScale*Et(t),hScale:this.hScale,tracking:this.tracking,oblique:this.oblique,fontFamily:this.fontFamily,bold:this.bold,italic:this.italic,fill:this.fill,underline:this.underline,overline:this.overline,strikeThrough:this.strikeThrough,align:this.lineAlign}}applyPropertyChange(t){var e,i;if(((e=t.changes.paragraph)==null?void 0:e.align)!=null&&this.currentLine&&(this.currentLine.paragraphAlign=t.changes.paragraph.align),t.command==="f"||t.command==="F")this.applyFontFaceChange(t.changes.fontFace);else if(t.command==="p"&&((i=t.changes.paragraph)==null?void 0:i.indent)!=null&&this.firstLineOfParagraph){const s=t.changes.paragraph.indent*this.baseHeight;this.isHorizontalRtl()?this.x-=s:this.isVertical()||(this.x+=s)}}applyFontFaceChange(t){if(t){if(t.family){const e=z(t.family);this.fontFamily=N(e,this.defaultFont)}this.applyFontFaceWeightAndStyle(t)}}applyFontFaceWeightAndStyle(t){t&&(this.bold=(t.weight??400)>=700,this.italic=t.style==="Italic")}applyVerticalLineAlignment(){for(const t of this.lines){if(t.spans.length===0)continue;let e=0;for(const i of t.spans)e=Math.max(e,i.style.size);if(!(e<=0))for(const i of t.spans){const s=i.style.size;let n=0;switch(i.style.align){case I.TOP:n=s-e;break;case I.MIDDLE:n=(s-e)/2;break;case I.BOTTOM:default:n=0;break}i.y+=n}}}applyLineAlignment(){var t,e;if(this.wrapWidth!=null)for(let i=0;i<this.lines.length;i++){const s=this.lines[i];if(s.maxX-s.minX<=0)continue;const n=((t=s.spans[0])==null?void 0:t.paragraphLeft)??0,r=((e=s.spans[0])==null?void 0:e.paragraphRight)??0,o=this.wrapWidth-n-r;let h=0;switch(s.paragraphAlign){case S.CENTER:h=s.columnLeft+o/2-(s.minX+s.maxX)/2;break;case S.RIGHT:h=s.columnLeft+o-s.maxX;break;case S.JUSTIFIED:case S.DISTRIBUTED:case S.LEFT:case S.DEFAULT:default:h=0;break}if(h!==0){for(const l of s.spans)l.x+=h;s.minX+=h,s.maxX+=h;for(const l of this.stackBars)l.lineIndex===i&&(l.x1+=h,l.x2+=h)}}}recomputeBoundsFromLines(){this.minX=0,this.maxX=0,this.minY=0,this.maxY=0,this.hasContent=!1;for(const t of this.lines)for(const e of t.spans)this.includeSpanBounds(e)}emitDecorationLines(){this.decorationLines.length=0;for(let t=0;t<this.lines.length;t++){const e=this.lines[t];for(const i of e.spans)this.pushRunDecorations(i,t)}}pushRunDecorations(t,e){const{style:i,advance:s}=t;if(s<=0)return;const n=this.isHorizontalRtl()?t.x-s:t.x,r=n+s,o=i.fill,h=i.size;i.underline&&this.decorationLines.push({x1:n,y1:t.y+h*.12,x2:r,y2:t.y+h*.12,stroke:o,lineIndex:e}),i.overline&&this.decorationLines.push({x1:n,y1:t.y-h*.95,x2:r,y2:t.y-h*.95,stroke:o,lineIndex:e}),i.strikeThrough&&this.decorationLines.push({x1:n,y1:t.y-h*.4,x2:r,y2:t.y-h*.4,stroke:o,lineIndex:e})}emitRunGroup(t){const{style:e}=t,i=[`translate(${this.isHorizontalRtl()?t.x-t.advance:t.x},${t.y})`];e.hScale!==1&&i.push(`scale(${e.hScale},1)`),e.oblique!==0&&i.push(`skewX(${-e.oblique})`);const s={"font-size":String(e.size),"font-family":e.fontFamily,fill:e.fill};e.bold&&(s["font-weight"]="700"),e.italic&&(s["font-style"]="italic");const n=g.tag("text",s,te(t.text));return g.tag("g",{transform:i.join(" ")},n)}emitSpace(t){const e=this.currentStyle(),i=this.runAdvance(" ",e);this.isLineStart||this.isHorizontal()&&(this.ensureFits(i,t),this.isLineStart)||this.advancePosition(i,e.size)}emitText(t,e,i){if(!t)return;const s=i??this.currentStyle();if(this.isVertical()){for(const r of t)this.emitTextRun(r,e,s);return}if(this.wrapWidth!=null){const r=this.runAdvance(t,s);!this.isLineStart&&r>0&&this.penOffset(e)+r>this.maxLineWidth(e)&&this.wrapLine(e)}if(s.tracking!==1){for(const r of t)this.emitTextRun(r,e,s);return}if(this.wrapWidth==null){this.emitTextRun(t,e,s);return}let n="";for(const r of t){if(n.length>0){const o=this.runAdvance(n+r,s);this.penOffset(e)+o>this.maxLineWidth(e)&&(this.emitTextRun(n,e,s),n="",this.wrapLine(e))}n+=r}n&&this.emitTextRun(n,e,s)}emitTextRun(t,e,i){var s;if(!t)return;const n=i??this.currentStyle(),r=this.runAdvance(t,n),o=this.isVertical()?n.size:r;this.ensureFits(o,e);const h=this.currentPosition(),l={text:t,x:h.x,y:h.y,advance:r,style:{...n},paragraphLeft:this.paragraphLeft(e),paragraphRight:this.rightMargin(e)};(s=this.currentLine)==null||s.spans.push(l),this.includeSpanBounds(l),this.advancePosition(r,n.size),this.firstLineOfParagraph=!1}emitStack(t,e){const[i,s,n]=t,r=this.currentPosition(),o=this.isLineStart,h=this.currentStyle(),l=h.size,c={...h,size:l*Ot};if(n==="^"){if(i&&!s){this.setPosition(r.x,r.y-l*.35),this.isLineStart=!0,this.emitText(i,e,c);const b=this.measureHorizontalSpan(r,this.currentPosition());this.setPosition(r.x+b,r.y)}else if(!i&&s){this.setPosition(r.x,r.y+l*.2),this.isLineStart=!0,this.emitText(s,e,c);const b=this.measureHorizontalSpan(r,this.currentPosition());this.setPosition(r.x+b,r.y)}else if(i&&s){const b=this.runAdvance(i,c),T=this.runAdvance(s,c),v=Math.max(b,T);this.setPosition(r.x+(v-b)/2,r.y-l*.35),this.isLineStart=!0,this.emitText(i,e,c),this.setPosition(r.x+(v-T)/2,r.y+l*.2),this.isLineStart=!0,this.emitText(s,e,c);const _=this.isHorizontalRtl()?r.x-v:r.x+v;this.setPosition(_,r.y)}this.isLineStart=o;return}const m=this.runAdvance(i,c),f=this.runAdvance(s,c),x=Math.max(m,f),u=(x-m)/2,d=(x-f)/2,w=h.fill;this.setPosition(r.x+u,r.y-l*.35),this.isLineStart=!0,this.emitText(i,e,c),this.setPosition(r.x+d,r.y+l*.2),this.isLineStart=!0,this.emitText(s,e,c);const k=r.y-l*.05+this.baseHeight*Xt;this.stackBars.push({x1:r.x,y1:k,x2:r.x+x,y2:k,stroke:w,lineIndex:this.activeLineIndex});const C=this.isHorizontalRtl()?r.x-x:r.x+x;this.setPosition(C,r.y),this.isLineStart=o}newParagraph(t){if(this.finalizeCurrentLine(),this.isVertical()){this.newColumn(t);return}this.y+=this.lineAdvance,this.columnStartY=this.y,this.resetParagraphPosition(t)}wrapLine(t){if(this.finalizeCurrentLine(),this.isVertical()){this.newColumn(t);return}this.y+=this.lineAdvance,this.columnStartY=this.y,this.resetLinePosition(t)}newColumn(t){if(this.finalizeCurrentLine(),this.isVertical()){this.x+=this.columnAdvance>0?this.columnAdvance:this.baseHeight,this.columnAdvance=0,this.isVerticalTtb()&&(this.columnStartY=0),this.resetParagraphPosition(t);return}this.x+=this.wrapWidth??this.baseHeight*4,this.resetParagraphPosition(t)}finalizeCurrentLine(){this.currentLine&&this.currentLine.spans.length>0&&(this.lines.push(this.currentLine),this.activeLineIndex=this.lines.length),this.currentLine=null}resetParagraphPosition(t){this.firstLineOfParagraph=!0,this.resetLinePosition(t)}resetLinePosition(t){const e=this.paragraphLeft(t),i=this.firstLineOfParagraph?this.firstLineIndent(t):0,s=this.lineLimits(t);this.isHorizontalRtl()?(this.x=s.right-i,this.y=this.columnStartY):this.isVerticalTtb()?(this.x=e,this.y=this.columnStartY+i):this.isVerticalBtt()?(this.x=e,this.y=(this.wrapWidth!=null?this.wrapWidth:this.baseHeight*10)-i,this.columnStartY=this.y):(this.x=e+i,this.y=this.columnStartY),this.lineStartX=e,this.isLineStart=!0,this.currentLine={spans:[],minX:this.x,maxX:this.x,minY:this.y,maxY:this.y,baselineY:this.y,columnLeft:e,paragraphAlign:t.paragraph.align}}wouldOverflow(t,e){if(this.wrapWidth==null||t<=0||this.isLineStart)return!1;if(this.isHorizontal())return this.penOffset(e)+t>this.maxLineWidth(e);const i=this.verticalLimits(e);return this.isVerticalTtb()?this.y+t>i.bottom:this.y-t<i.top}penOffset(t){return this.isHorizontalRtl()?this.lineLimits(t).right-this.x:this.x-this.paragraphLeft(t)}maxLineWidth(t){return this.wrapWidth==null?Number.POSITIVE_INFINITY:this.wrapWidth-this.paragraphLeft(t)-this.rightMargin(t)}ensureFits(t,e){this.wrapWidth!=null&&this.isHorizontal()&&!this.isLineStart&&this.penOffset(e)>this.maxLineWidth(e)&&this.wrapLine(e),this.wouldOverflow(t,e)&&this.wrapLine(e)}advancePosition(t,e){this.isHorizontalRtl()?this.x-=t:this.isVerticalTtb()?this.y+=e:this.isVerticalBtt()?this.y-=e:this.x+=t,this.isLineStart=!1,this.columnAdvance=Math.max(this.columnAdvance,t)}advanceToTab(t){const e=this.baseHeight*zt,i=t.paragraph.tabs,s=this.currentStyle();if(i.length===0){const n=this.isHorizontalRtl()?Math.floor(this.x/e)*e:Math.ceil((this.x+1)/e)*e,r=this.isHorizontalRtl()?this.x-n:n-this.x;this.advancePosition(Math.max(0,r),s.size);return}for(const n of i){const r=this.lineStartX+(typeof n=="number"?n*this.baseHeight:parseFloat(String(n))*this.baseHeight);if(this.isHorizontalRtl()){if(!Number.isNaN(r)&&r<this.x){this.advancePosition(this.x-r,s.size);return}}else if(!Number.isNaN(r)&&r>this.x){this.advancePosition(r-this.x,s.size);return}}this.advancePosition(e,s.size)}lineLimits(t){const e=this.paragraphLeft(t),i=t.paragraph.right*this.baseHeight,s=this.wrapWidth!=null?e+this.wrapWidth-i:Number.POSITIVE_INFINITY;return{left:e,right:s}}verticalLimits(t){if(this.isVerticalBtt()){const s=this.columnStartY-t.paragraph.right*this.baseHeight;return{top:this.wrapWidth!=null?this.columnStartY-this.wrapWidth+this.firstLineIndent(t):Number.NEGATIVE_INFINITY,bottom:s}}const e=this.columnStartY+this.firstLineIndent(t),i=this.wrapWidth!=null?this.columnStartY+this.wrapWidth-t.paragraph.right*this.baseHeight:Number.POSITIVE_INFINITY;return{top:e,bottom:i}}currentPosition(){return{x:this.x,y:this.y}}setPosition(t,e){this.x=t,this.y=e}includeSpanBounds(t){const e=t.advance,i=this.isHorizontalRtl()?t.x-e:t.x,s=this.isHorizontalRtl()?t.x:t.x+e,n=t.y-t.style.size,r=t.y;this.hasContent?(this.minX=Math.min(this.minX,i),this.maxX=Math.max(this.maxX,s),this.minY=Math.min(this.minY,n),this.maxY=Math.max(this.maxY,r)):(this.minX=i,this.maxX=s,this.minY=n,this.maxY=r,this.firstBaselineY=t.y,this.hasContent=!0),this.currentLine&&(this.currentLine.minX=Math.min(this.currentLine.minX,i),this.currentLine.maxX=Math.max(this.currentLine.maxX,s),this.currentLine.minY=Math.min(this.currentLine.minY,n),this.currentLine.maxY=Math.max(this.currentLine.maxY,r))}measureHorizontalSpan(t,e){return Math.abs(e.x-t.x)}runAdvance(t,e){let i=0,s=0;for(const r of t){const o=Wt(r)?$t:Ht;i+=e.size*o,s+=1}const n=i*e.hScale;return e.tracking===1||s===0?n:n+s*(e.tracking-1)*e.size*e.hScale}paragraphLeft(t){return t.paragraph.left*this.baseHeight}firstLineIndent(t){return t.paragraph.indent*this.baseHeight}rightMargin(t){return((t==null?void 0:t.paragraph.right)??0)*this.baseHeight}isHorizontal(){return this.flowMode===0||this.flowMode===1}isHorizontalRtl(){return this.flowMode===1}isVertical(){return this.flowMode===2||this.flowMode===3}isVerticalTtb(){return this.flowMode===2}isVerticalBtt(){return this.flowMode===3}}function K(a,t,e){if(a.isRgb&&a.rgbValue!=null)return g.rgbToHex(a.rgbValue);if(a.aci===256||a.aci==null||a.aci===0)return g.rgbToHex(g.resolveRgb(t,e,"text"));const i=new tt;i.colorIndex=a.aci;const s=i.RGB;return typeof s=="number"?g.rgbToHex(s):g.rgbToHex(g.resolveRgb(t,e,"text"))}function te(a){return P.escapeXml(a)}class ee extends y{constructor(t,e,i,s){super();const n=Jt(t,e,i,s);this._localSvg=n.localSvg,this._box=n.box}}const ie=.5;class se extends y{constructor(t,e,i,s){super();const n=e.displaySize>0?e.displaySize/2:ie,r={cx:String(t.x),cy:String(t.y),r:String(n),...g.pointAttributes(i,s)};this.svg=g.tag("circle",r),this._box.expandByPoint(t)}}function ne(a,t,e,i){const s=new M,n={localSvg:"",box:s},r=a.size,o=a.position;if(!o||!(r>0))return n;const h=he(a,t);if(!(h!=null&&h.length))return n;const l=a.widthFactor??t.widthFactor??1,c=(t.obliqueAngle??0)*Math.PI/180,m=c!==0?Math.tan(c):0,f=ae(h,l,m);if(f.length===0)return n;const x=re(f),u=oe(a.rotation,a.directionVector),d=Math.cos(u),w=Math.sin(u),k=g.strokeAttributes(e,i),C=[];for(const b of f){let T="";for(let v=0;v<b.length;v++){const _=b[v].x+x.x,B=b[v].y+x.y,R=_*d-B*w+o.x,F=_*w+B*d+o.y;T+=v===0?`M${R},${F}`:`L${R},${F}`,s.expandByPoint({x:R,y:F})}T&&C.push(g.tag("path",{d:T,...k}))}return{localSvg:C.join(`
6
+ `),box:s}}function ae(a,t,e){const i=[];for(const s of a){if(s.length<2)continue;const n=[];for(const r of s){let o=r.x*t;const h=r.y;e!==0&&(o+=e*h),n.push({x:o,y:h})}i.push(n)}return i}function re(a){let t=1/0,e=1/0;for(const i of a)for(const s of i)t=Math.min(t,s.x),e=Math.min(e,s.y);return{x:Number.isFinite(t)?-t:0,y:Number.isFinite(e)?-e:0}}function oe(a,t){if(!t)return a??0;const e=t.x??0,i=t.y??0,s=t.z??1,n=Math.hypot(e,i,s);if(n<1e-12)return a??0;const r=e/n,o=i/n,h=s/n;return Math.hypot(r,o)<1e-10&&h>0?a??0:Math.acos(Math.min(1,Math.max(-1,h)))}function he(a,t){var e;const i=z(t.font),s=a.size,n=(e=a.name)==null?void 0:e.trim(),r=a.shapeNumber,o=bt.instance,h=n&&o.getShapeByName(n,i,s)||(r!=null&&r!==0?o.getShapeByCode(r,i,s):void 0);if(h)return le(h);const l=o.getFontByName(i,!1);if((l==null?void 0:l.type)!=="shx")return;const c=new vt(l.data);try{const m=n&&c.getShapeByName(n,s)||(r!=null&&r!==0?c.getCharShape(r,s):void 0),f=m==null?void 0:m.polylines;return f!=null&&f.some(x=>x.length>=2)?f:void 0}finally{c.release()}}function le(a){var t;const e=(t=a.shape)==null?void 0:t.polylines;if(e!=null&&e.some(i=>i.length>=2))return e}class ce extends y{constructor(t,e,i,s){super();const n=ne(t,e,i,s);this._localSvg=n.localSvg,this._box=n.box}}const ue=200;class J{constructor(){this._ltscale=1,this._celtscale=1,this._currentBackgroundColor=0,this._foregroundColor=0,this._showLineWeight=!1,this._entities=[],this._bbox=new M,this._fontMapping={},this._pendingImages=[],this._context=Q.fromBackgroundColor(this._currentBackgroundColor),this._subEntityTraits={color:new tt,lineType:{type:"ByLayer",name:"Continuous",standardFlag:0,description:"Solid line",totalPatternLength:0},lineTypeScale:1,lineWeight:ct.ByLayer,fillType:{solidFill:!0,patternAngle:0,definitionLines:[]},transparency:new lt,thickness:0,layer:"0",drawOrder:0}}static prepareExport(){ut.instance.clear()}get subEntityTraits(){return this._subEntityTraits}get context(){return this._context}setFontMapping(t){this._fontMapping=t}set ltscale(t){this._ltscale=t}set celtscale(t){this._celtscale=t}get currentBackgroundColor(){return this._currentBackgroundColor}set currentBackgroundColor(t){this._currentBackgroundColor=t,this._context.backgroundIsDark=!mt(t),this._context.foregroundOnDark=xt,this._context.foregroundOnLight=gt}changeForeground(t){this._foregroundColor=t}get showLineWeight(){return this._showLineWeight}set showLineWeight(t){this._showLineWeight=t}get styleContext(){return{ltscale:this._ltscale,celtscale:this._celtscale,backgroundColor:this._currentBackgroundColor,foregroundColor:this._foregroundColor,showLineWeight:this._showLineWeight}}pushEntity(t){return this._entities.push(t),t}removeEntities(t){for(const e of t){const i=this._entities.indexOf(e);i>=0&&this._entities.splice(i,1)}}group(t){return this.removeEntities(t),this.pushEntity(new At(t))}point(t,e){return this.pushEntity(new se(t,e,this._subEntityTraits,this.styleContext))}circularArc(t){return this.pushEntity(new Ct(t,this._subEntityTraits,this.styleContext,H(this)))}ellipticalArc(t){return this.pushEntity(new kt(t,this._subEntityTraits,this.styleContext,H(this)))}lines(t){return this.pushEntity(new Ft(t,this._subEntityTraits,this.styleContext))}lineSegments(t,e,i){return this.pushEntity(new Yt(t,e,i,this._subEntityTraits,this.styleContext))}area(t){return this.pushEntity(new Mt(t,this._subEntityTraits,this.styleContext,H(this)))}offsetRing(t,e){const i=new ft;return i.add(new O(t.map(s=>new W(s.x,s.y)),!0)),i.add(new O(e.map(s=>new W(s.x,s.y)),!0)),this.area(i)}mtext(t,e,i){const s=this._fontMapping[e.font]??e.font,n=s!==e.font?{...e,font:s}:e;return this.pushEntity(new ee(t,n,this._subEntityTraits,this.styleContext))}shape(t,e,i){const s=this._fontMapping[e.font]??e.font,n=s!==e.font?{...e,font:s}:e;return this.pushEntity(new ce(t,n,this._subEntityTraits,this.styleContext))}image(t,e){const i={...this._subEntityTraits},s=this.styleContext,n=E.fromBlob(t,e,i,s).then(r=>this.pushEntity(r));return this._pendingImages.push(n.then(()=>{})),me}async exportAsync(t){return await Promise.all(this._pendingImages),this.exportMarkup(!0,t)}export(t){return this.exportMarkup(!1,t)}resetCollected(){this._entities.length=0}exportMarkup(t,e){return t?this.exportMarkupCooperative(e):this.assembleMarkup(this.collectEntityParts(e))}collectEntityParts(t){const e=t??this._entities,i=[],s=[];for(const n of e){const r=n.renderSvg();r&&(i.push(r),s.push(n.box))}return{parts:i,boxes:s}}async exportMarkupCooperative(t){const e=t??this._entities,i=[],s=[],n=new Z(ue),r=()=>new Promise(o=>setTimeout(o,0));for(const o of e){const h=o.renderSvg();h&&(i.push(h),s.push(o.box)),await n.maybeYield(r)}return await r(),this.assembleMarkup({parts:i,boxes:s})}assembleMarkup(t){this._bbox=St(t.boxes);const e=t.parts.join(`
7
+ `),i=this._bbox.isEmpty()?0:Math.max(this._bbox.max.x-this._bbox.min.x,this._bbox.max.y-this._bbox.min.y)*.02,s=this._bbox.isEmpty()?{x:0,y:0,width:0,height:0}:{x:this._bbox.min.x-i,y:-(this._bbox.max.y+i),width:this._bbox.max.x-this._bbox.min.x+i*2,height:this._bbox.max.y-this._bbox.min.y+i*2},n=Math.max(s.width,1),r=Math.max(s.height,1),o=this.buildBackgroundRect({...s,width:n,height:r}),h=P.sanitizeExternalReferences(`<?xml version="1.0" encoding="UTF-8"?>
8
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
9
+ preserveAspectRatio="xMinYMin meet"
10
+ viewBox="${s.x} ${s.y} ${n} ${r}"
11
+ width="100%" height="100%">
12
+ ${o}
13
+ <g transform="matrix(1,0,0,-1,0,0)">
14
+ ${e}
15
+ </g>
16
+ </svg>`);return P.stripInvalidXmlChars(h)}buildBackgroundRect(t){const e=g.rgbToHex(this._currentBackgroundColor),i=Math.max(t.width,1),s=Math.max(t.height,1);return` <rect x="${t.x}" y="${t.y}" width="${i}" height="${s}" fill="${e}"/>`}}const me=new y,xe=200;class ge{async convert(t){await at.instance.withBusyIndicator(async()=>{await X(),J.prepareExport();const e=t.doc.database.tables.blockTable.modelSpace.newIterator(),i=new J;this.configureRenderer(i,t);const s=new Z(xe),n=()=>new Promise(l=>setTimeout(l,0)),r=[];for(const l of e){const c=l.worldDraw(i);c instanceof y&&r.push(c),await s.maybeYield(n)}await X();const o=await i.exportAsync(r);await X();const h=rt(t.doc.fileName||t.doc.docTitle,"svg");this.createFileAndDownloadIt(o,h)},ot.t("main.message.exportingSvg"))}configureRenderer(t,e){const i=e.doc.database;t.ltscale=i.ltscale,t.celtscale=i.celtscale,t.showLineWeight=!!i.lwdisplay,t.setFontMapping(ht.instance.fontMapping);const s=e.view,n=(s==null?void 0:s.backgroundColor)??16777215;t.currentBackgroundColor=n,t.changeForeground(n===0?16777215:0)}createFileAndDownloadIt(t,e){const i=new Blob([t],{type:"image/svg+xml;charset=utf-8"}),s=URL.createObjectURL(i),n=document.createElement("a");n.href=s,n.download=e,document.body.appendChild(n),n.click(),document.body.removeChild(n),window.setTimeout(()=>URL.revokeObjectURL(s),6e4)}}class fe extends nt{async execute(t){await new ge().convert(t)}}const pe="1.7.5",de={version:pe};class ye{constructor(){this.name="SvgPlugin",this.version=de.version,this.description="SVG export (csvg) command",this.registeredCommands=[]}onLoad(t,e){const i=st.SYSTEMT_COMMAND_GROUP_NAME;e.addCommand(i,"csvg","csvg",new fe),this.registeredCommands.push({group:i,name:"csvg"})}onUnload(t,e){for(const i of this.registeredCommands)e.removeCmd(i.group,i.name);this.registeredCommands=[]}}async function ve(){return new ye}export{fe as AcApConvertToSvgCmd,ge as AcApSvgConvertor,J as AcSvgRenderer,Te as SVG_PLUGIN_NAME,_e as SVG_PLUGIN_TRIGGERS,ve as createSvgPlugin};