1 line
25 KiB
JavaScript
1 line
25 KiB
JavaScript
import{D as e,M as t}from"./package-Bop5TfAT.js";var n=class{constructor(e){this._pointer=0,this._eof=!1,this._data=e}next(){if(!this.hasNext())throw this._eof?Error(`Cannot call 'next' after EOF group has been read`):Error(`Unexpected end of input: EOF group not read before end of file. Ended on code `+this._data[this._pointer]);let e={code:parseInt(this._data[this._pointer])};return this._pointer++,e.value=r(e.code,this._data[this._pointer].trim()),this._pointer++,e.code===0&&e.value===`EOF`&&(this._eof=!0),this.lastReadGroup=e,e}peek(){if(!this.hasNext())throw this._eof?Error(`Cannot call 'next' after EOF group has been read`):Error(`Unexpected end of input: EOF group not read before end of file. Ended on code `+this._data[this._pointer]);let e={code:parseInt(this._data[this._pointer])};return e.value=r(e.code,this._data[this._pointer+1].trim()),e}rewind(e=1){this._pointer-=e*2}hasNext(){return!(this._eof||this._pointer>this._data.length-2)}isEOF(){return this._eof}};function r(e,t){return e<=9?t:e>=10&&e<=59?parseFloat(t):e>=60&&e<=99?parseInt(t):e>=100&&e<=109?t:e>=110&&e<=149?parseFloat(t):e>=160&&e<=179?parseInt(t):e>=210&&e<=239?parseFloat(t):e>=270&&e<=289?parseInt(t):e>=290&&e<=299?i(t):e>=300&&e<=369?t:e>=370&&e<=389?parseInt(t):e>=390&&e<=399?t:e>=400&&e<=409?parseInt(t):e>=410&&e<=419?t:e>=420&&e<=429?parseInt(t):e>=430&&e<=439?t:e>=440&&e<=459?parseInt(t):e>=460&&e<=469?parseFloat(t):e>=470&&e<=481||e===999||e>=1e3&&e<=1009?t:e>=1010&&e<=1059?parseFloat(t):e>=1060&&e<=1071?parseInt(t):(console.log(`WARNING: Group code does not have a defined type: %j`,{code:e,value:t}),t)}function i(e){if(e===`0`)return!1;if(e===`1`)return!0;throw TypeError(`String '`+e+`' cannot be cast to Boolean type`)}var a=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function o(e){return a[e]}function s(e){let t={};e.rewind();let n=e.next(),r=n.code;if(t.x=n.value,r+=10,n=e.next(),n.code!=r)throw Error(`Expected code for point value to be `+r+` but got `+n.code+`.`);return t.y=n.value,r+=10,n=e.next(),n.code==r?(t.z=n.value,t):(e.rewind(),t)}function c(e,t,n){switch(t.code){case 0:e.type=t.value;break;case 5:e.handle=t.value;break;case 6:e.lineType=t.value;break;case 8:e.layer=t.value;break;case 48:e.lineTypeScale=t.value;break;case 60:e.visible=t.value===0;break;case 62:e.colorIndex=t.value,e.color=o(Math.abs(t.value));break;case 67:e.inPaperSpace=t.value!==0;break;case 100:break;case 101:for(;t.code!=0;)t=n.next();n.rewind();break;case 330:e.ownerHandle=t.value;break;case 347:e.materialObjectHandle=t.value;break;case 370:e.lineweight=t.value;break;case 420:e.color=t.value;break;case 1e3:e.extendedData=e.extendedData||{},e.extendedData.customStrings=e.extendedData.customStrings||[],e.extendedData.customStrings.push(t.value);break;case 1001:e.extendedData=e.extendedData||{},e.extendedData.applicationName=t.value;break;default:return!1}return!0}var l=class{constructor(){this.ForEntityName=`3DFACE`}parseEntity(e,t){let n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 70:n.shape=(t.value&1)==1,n.hasContinuousLinetypePattern=(t.value&128)==128;break;case 10:n.vertices=u(e,t),t=e.lastReadGroup;break;default:c(n,t,e);break}t=e.next()}return n}};function u(e,t){var n=[],r=!1,i=!1,a=4;for(let s=0;s<=a;s++){for(var o={};!e.isEOF()&&!(t.code===0||i);){switch(t.code){case 10:case 11:case 12:case 13:if(r){i=!0;continue}o.x=t.value,r=!0;break;case 20:case 21:case 22:case 23:o.y=t.value;break;case 30:case 31:case 32:case 33:o.z=t.value;break;default:return n}t=e.next()}n.push(o),r=!1,i=!1}return e.rewind(),n}var d=class{constructor(){this.ForEntityName=`ARC`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.center=s(e);break;case 40:n.radius=t.value;break;case 50:n.startAngle=Math.PI/180*t.value;break;case 51:n.endAngle=Math.PI/180*t.value,n.angleLength=n.endAngle-n.startAngle;break;case 210:n.extrusionDirectionX=t.value;break;case 220:n.extrusionDirectionY=t.value;break;case 230:n.extrusionDirectionZ=t.value;break;default:c(n,t,e);break}t=e.next()}return n}},f=class{constructor(){this.ForEntityName=`ATTDEF`}parseEntity(e,t){var n={type:t.value,scale:1,textStyle:`STANDARD`};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 1:n.text=t.value;break;case 2:n.tag=t.value;break;case 3:n.prompt=t.value;break;case 7:n.textStyle=t.value;break;case 10:n.startPoint=s(e);break;case 11:n.endPoint=s(e);break;case 39:n.thickness=t.value;break;case 40:n.textHeight=t.value;break;case 41:n.scale=t.value;break;case 50:n.rotation=t.value;break;case 51:n.obliqueAngle=t.value;break;case 70:n.invisible=!!(t.value&1),n.constant=!!(t.value&2),n.verificationRequired=!!(t.value&4),n.preset=!!(t.value&8);break;case 71:n.backwards=!!(t.value&2),n.mirrored=!!(t.value&4);break;case 72:n.horizontalJustification=t.value;break;case 73:n.fieldLength=t.value;break;case 74:n.verticalJustification=t.value;break;case 100:break;case 210:n.extrusionDirectionX=t.value;break;case 220:n.extrusionDirectionY=t.value;break;case 230:n.extrusionDirectionZ=t.value;break;default:c(n,t,e);break}t=e.next()}return n}},p=class{constructor(){this.ForEntityName=`CIRCLE`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.center=s(e);break;case 40:n.radius=t.value;break;case 50:n.startAngle=Math.PI/180*t.value;break;case 51:let r=Math.PI/180*t.value;r<n.startAngle?n.angleLength=r+2*Math.PI-n.startAngle:n.angleLength=r-n.startAngle,n.endAngle=r;break;default:c(n,t,e);break}t=e.next()}return n}},m=class{constructor(){this.ForEntityName=`DIMENSION`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 2:n.block=t.value;break;case 10:n.anchorPoint=s(e);break;case 11:n.middleOfText=s(e);break;case 12:n.insertionPoint=s(e);break;case 13:n.linearOrAngularPoint1=s(e);break;case 14:n.linearOrAngularPoint2=s(e);break;case 15:n.diameterOrRadiusPoint=s(e);break;case 16:n.arcPoint=s(e);break;case 70:n.dimensionType=t.value;break;case 71:n.attachmentPoint=t.value;break;case 42:n.actualMeasurement=t.value;break;case 1:n.text=t.value;break;case 50:n.angle=t.value;break;default:c(n,t,e);break}t=e.next()}return n}},h=class{constructor(){this.ForEntityName=`ELLIPSE`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.center=s(e);break;case 11:n.majorAxisEndPoint=s(e);break;case 40:n.axisRatio=t.value;break;case 41:n.startAngle=t.value;break;case 42:n.endAngle=t.value;break;case 2:n.name=t.value;break;default:c(n,t,e);break}t=e.next()}return n}},g=class{constructor(){this.ForEntityName=`INSERT`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 2:n.name=t.value;break;case 41:n.xScale=t.value;break;case 42:n.yScale=t.value;break;case 43:n.zScale=t.value;break;case 10:n.position=s(e);break;case 50:n.rotation=t.value;break;case 70:n.columnCount=t.value;break;case 71:n.rowCount=t.value;break;case 44:n.columnSpacing=t.value;break;case 45:n.rowSpacing=t.value;break;case 210:n.extrusionDirection=s(e);break;default:c(n,t,e);break}t=e.next()}return n}},_=class{constructor(){this.ForEntityName=`LINE`}parseEntity(e,t){let n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.vertices.unshift(s(e));break;case 11:n.vertices.push(s(e));break;case 210:n.extrusionDirection=s(e);break;case 100:break;default:c(n,t,e);break}t=e.next()}return n}},v=class{constructor(){this.ForEntityName=`LWPOLYLINE`}parseEntity(e,t){let n={type:t.value,vertices:[]},r=0;for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 38:n.elevation=t.value;break;case 39:n.depth=t.value;break;case 70:n.shape=(t.value&1)==1,n.hasContinuousLinetypePattern=(t.value&128)==128;break;case 90:r=t.value;break;case 10:n.vertices=y(r,e);break;case 43:t.value!==0&&(n.width=t.value);break;case 210:n.extrusionDirectionX=t.value;break;case 220:n.extrusionDirectionY=t.value;break;case 230:n.extrusionDirectionZ=t.value;break;default:c(n,t,e);break}t=e.next()}return n}};function y(e,t){if(!e||e<=0)throw Error(`n must be greater than 0 verticies`);let n=[],r=!1,i=!1,a=t.lastReadGroup;for(let o=0;o<e;o++){let e={};for(;!t.isEOF()&&!(a.code===0||i);){switch(a.code){case 10:if(r){i=!0;continue}e.x=a.value,r=!0;break;case 20:e.y=a.value;break;case 30:e.z=a.value;break;case 40:e.startWidth=a.value;break;case 41:e.endWidth=a.value;break;case 42:a.value!=0&&(e.bulge=a.value);break;default:return t.rewind(),r&&n.push(e),t.rewind(),n}a=t.next()}n.push(e),r=!1,i=!1}return t.rewind(),n}var b=class{constructor(){this.ForEntityName=`MTEXT`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 3:n.text?n.text+=t.value:n.text=t.value;break;case 1:n.text?n.text+=t.value:n.text=t.value;break;case 10:n.position=s(e);break;case 11:n.directionVector=s(e);break;case 40:n.height=t.value;break;case 41:n.width=t.value;break;case 50:n.rotation=t.value;break;case 71:n.attachmentPoint=t.value;break;case 72:n.drawingDirection=t.value;break;default:c(n,t,e);break}t=e.next()}return n}},x=class{constructor(){this.ForEntityName=`POINT`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.position=s(e);break;case 39:n.thickness=t.value;break;case 210:n.extrusionDirection=s(e);break;case 100:break;default:c(n,t,e);break}t=e.next()}return n}},S=class{constructor(){this.ForEntityName=`VERTEX`}parseEntity(e,t){var n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.x=t.value;break;case 20:n.y=t.value;break;case 30:n.z=t.value;break;case 40:break;case 41:break;case 42:t.value!=0&&(n.bulge=t.value);break;case 70:n.curveFittingVertex=(t.value&1)!=0,n.curveFitTangent=(t.value&2)!=0,n.splineVertex=(t.value&8)!=0,n.splineControlPoint=(t.value&16)!=0,n.threeDPolylineVertex=(t.value&32)!=0,n.threeDPolylineMesh=(t.value&64)!=0,n.polyfaceMeshVertex=(t.value&128)!=0;break;case 50:break;case 71:n.faceA=t.value;break;case 72:n.faceB=t.value;break;case 73:n.faceC=t.value;break;case 74:n.faceD=t.value;break;default:c(n,t,e);break}t=e.next()}return n}},C=class{constructor(){this.ForEntityName=`POLYLINE`}parseEntity(e,t){var n={type:t.value,vertices:[]};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:break;case 20:break;case 30:break;case 39:n.thickness=t.value;break;case 40:break;case 41:break;case 70:n.shape=(t.value&1)!=0,n.includesCurveFitVertices=(t.value&2)!=0,n.includesSplineFitVertices=(t.value&4)!=0,n.is3dPolyline=(t.value&8)!=0,n.is3dPolygonMesh=(t.value&16)!=0,n.is3dPolygonMeshClosed=(t.value&32)!=0,n.isPolyfaceMesh=(t.value&64)!=0,n.hasContinuousLinetypePattern=(t.value&128)!=0;break;case 71:break;case 72:break;case 73:break;case 74:break;case 75:break;case 210:n.extrusionDirection=s(e);break;default:c(n,t,e);break}t=e.next()}return n.vertices=w(e,t),n}};function w(e,t){let n=new S,r=[];for(;!e.isEOF();)if(t.code===0){if(t.value===`VERTEX`)r.push(n.parseEntity(e,t)),t=e.lastReadGroup;else if(t.value===`SEQEND`){T(e,t);break}}return r}function T(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!=0;)c(n,t,e),t=e.next();return n}var E=class{constructor(){this.ForEntityName=`SOLID`}parseEntity(e,t){let n={type:t.value,points:[]};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.points[0]=s(e);break;case 11:n.points[1]=s(e);break;case 12:n.points[2]=s(e);break;case 13:n.points[3]=s(e);break;case 210:n.extrusionDirection=s(e);break;default:c(n,t,e);break}t=e.next()}return n}},D=class{constructor(){this.ForEntityName=`SPLINE`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.controlPoints||=[],n.controlPoints.push(s(e));break;case 11:n.fitPoints||=[],n.fitPoints.push(s(e));break;case 12:n.startTangent=s(e);break;case 13:n.endTangent=s(e);break;case 40:n.knotValues||=[],n.knotValues.push(t.value);break;case 70:t.value&1&&(n.closed=!0),t.value&2&&(n.periodic=!0),t.value&4&&(n.rational=!0),t.value&8&&(n.planar=!0),t.value&16&&(n.planar=!0,n.linear=!0);break;case 71:n.degreeOfSplineCurve=t.value;break;case 72:n.numberOfKnots=t.value;break;case 73:n.numberOfControlPoints=t.value;break;case 74:n.numberOfFitPoints=t.value;break;case 210:n.normalVector=s(e);break;default:c(n,t,e);break}t=e.next()}return n}},O=class{constructor(){this.ForEntityName=`TEXT`}parseEntity(e,t){let n={type:t.value};for(t=e.next();!e.isEOF()&&t.code!==0;){switch(t.code){case 10:n.startPoint=s(e);break;case 11:n.endPoint=s(e);break;case 40:n.textHeight=t.value;break;case 41:n.xScale=t.value;break;case 50:n.rotation=t.value;break;case 1:n.text=t.value;break;case 72:n.halign=t.value;break;case 73:n.valign=t.value;break;default:c(n,t,e);break}t=e.next()}return n}},k=t(e(((e,t)=>{(function(e,n){typeof define==`function`&&define.amd?define(n):typeof t==`object`&&t.exports?t.exports=n():e.log=n()})(e,function(){var e=function(){},t=`undefined`,n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=[`trace`,`debug`,`info`,`warn`,`error`],i={},a=null;function o(e,t){var n=e[t];if(typeof n.bind==`function`)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch{return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(r){return r===`debug`&&(r=`log`),typeof console===t?!1:r===`trace`&&n?s:console[r]===void 0?console.log===void 0?e:o(console,`log`):o(console,r)}function l(){for(var n=this.getLevel(),i=0;i<r.length;i++){var a=r[i];this[a]=i<n?e:this.methodFactory(a,n,this.name)}if(this.log=this.debug,typeof console===t&&n<this.levels.SILENT)return`No console available for logging`}function u(e){return function(){typeof console!==t&&(l.call(this),this[e].apply(this,arguments))}}function d(e,t,n){return c(e)||u.apply(this,arguments)}function f(e,n){var o=this,s,c,u,f=`loglevel`;typeof e==`string`?f+=`:`+e:typeof e==`symbol`&&(f=void 0);function p(e){var n=(r[e]||`silent`).toUpperCase();if(!(typeof window===t||!f)){try{window.localStorage[f]=n;return}catch{}try{window.document.cookie=encodeURIComponent(f)+`=`+n+`;`}catch{}}}function m(){var e;if(!(typeof window===t||!f)){try{e=window.localStorage[f]}catch{}if(typeof e===t)try{var n=window.document.cookie,r=encodeURIComponent(f),i=n.indexOf(r+`=`);i!==-1&&(e=/^([^;]+)/.exec(n.slice(i+r.length+1))[1])}catch{}return o.levels[e]===void 0&&(e=void 0),e}}function h(){if(!(typeof window===t||!f)){try{window.localStorage.removeItem(f)}catch{}try{window.document.cookie=encodeURIComponent(f)+`=; expires=Thu, 01 Jan 1970 00:00:00 UTC`}catch{}}}function g(e){var t=e;if(typeof t==`string`&&o.levels[t.toUpperCase()]!==void 0&&(t=o.levels[t.toUpperCase()]),typeof t==`number`&&t>=0&&t<=o.levels.SILENT)return t;throw TypeError(`log.setLevel() called with invalid level: `+e)}o.name=e,o.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},o.methodFactory=n||d,o.getLevel=function(){return u??c??s},o.setLevel=function(e,t){return u=g(e),t!==!1&&p(u),l.call(o)},o.setDefaultLevel=function(e){c=g(e),m()||o.setLevel(e,!1)},o.resetLevel=function(){u=null,h(),l.call(o)},o.enableAll=function(e){o.setLevel(o.levels.TRACE,e)},o.disableAll=function(e){o.setLevel(o.levels.SILENT,e)},o.rebuild=function(){if(a!==o&&(s=g(a.getLevel())),l.call(o),a===o)for(var e in i)i[e].rebuild()},s=g(a?a.getLevel():`WARN`);var _=m();_!=null&&(u=g(_)),l.call(o)}a=new f,a.getLogger=function(e){if(typeof e!=`symbol`&&typeof e!=`string`||e===``)throw TypeError(`You must supply a name when creating a logger.`);var t=i[e];return t||=i[e]=new f(e,a.methodFactory),t};var p=typeof window===t?void 0:window.log;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=p),a},a.getLoggers=function(){return i},a.default=a,a})}))());k.default.setLevel(`error`);function A(e){e.registerEntityHandler(l),e.registerEntityHandler(d),e.registerEntityHandler(f),e.registerEntityHandler(p),e.registerEntityHandler(m),e.registerEntityHandler(h),e.registerEntityHandler(g),e.registerEntityHandler(_),e.registerEntityHandler(v),e.registerEntityHandler(b),e.registerEntityHandler(x),e.registerEntityHandler(C),e.registerEntityHandler(E),e.registerEntityHandler(D),e.registerEntityHandler(O)}var j=class{constructor(){this._entityHandlers={},A(this)}parse(e){return typeof e==`string`?this._parse(e):(console.error("Cannot read dxf source of type `"+typeof e),null)}registerEntityHandler(e){let t=new e;this._entityHandlers[t.ForEntityName]=t}parseSync(e){return this.parse(e)}parseStream(e){let t=``,n=this;return new Promise((r,i)=>{e.on(`data`,e=>{t+=e}),e.on(`end`,()=>{try{r(n._parse(t))}catch(e){i(e)}}),e.on(`error`,e=>{i(e)})})}_parse(e){let t={},r=0,i=new n(e.split(/\r\n|\r|\n/g));if(!i.hasNext())throw Error(`Empty file`);let a=this,o;function s(){for(o=i.next();!i.isEOF();)if(o.code===0&&o.value===`SECTION`){if(o=i.next(),o.code!==2){console.error(`Unexpected code %s after 0:SECTION`,P(o)),o=i.next();continue}o.value===`HEADER`?(k.default.debug(`> HEADER`),t.header=c(),k.default.debug(`<`)):o.value===`BLOCKS`?(k.default.debug(`> BLOCKS`),t.blocks=l(),k.default.debug(`<`)):o.value===`ENTITIES`?(k.default.debug(`> ENTITIES`),t.entities=v(!1),k.default.debug(`<`)):o.value===`TABLES`?(k.default.debug(`> TABLES`),t.tables=d(),k.default.debug(`<`)):o.value===`EOF`?k.default.debug(`EOF`):k.default.warn(`Skipping section '%s'`,o.value)}else o=i.next()}function c(){let e=null,t=null,n={};for(o=i.next();;){if(M(o,0,`ENDSEC`)){e&&(n[e]=t);break}else o.code===9?(e&&(n[e]=t),e=o.value):o.code===10?t={x:o.value}:o.code===20?t.y=o.value:o.code===30?t.z=o.value:t=o.value;o=i.next()}return o=i.next(),n}function l(){let e={};for(o=i.next();o.value!==`EOF`&&!M(o,0,`ENDSEC`);)if(M(o,0,`BLOCK`)){k.default.debug(`block {`);let t=u();k.default.debug(`}`),b(t),t.name?e[t.name]=t:k.default.error(`block with handle "`+t.handle+`" is missing a name.`)}else N(o),o=i.next();return e}function u(){let e={};for(o=i.next();o.value!==`EOF`;){switch(o.code){case 1:e.xrefPath=o.value,o=i.next();break;case 2:e.name=o.value,o=i.next();break;case 3:e.name2=o.value,o=i.next();break;case 5:e.handle=o.value,o=i.next();break;case 8:e.layer=o.value,o=i.next();break;case 10:e.position=y(o),o=i.next();break;case 67:e.paperSpace=!!(o.value&&o.value==1),o=i.next();break;case 70:o.value!=0&&(e.type=o.value),o=i.next();break;case 100:o=i.next();break;case 330:e.ownerHandle=o.value,o=i.next();break;case 0:if(o.value==`ENDBLK`)break;e.entities=v(!0);break;default:N(o),o=i.next()}if(M(o,0,`ENDBLK`)){o=i.next();break}}return e}function d(){let e={};for(o=i.next();o.value!==`EOF`&&!M(o,0,`ENDSEC`);)M(o,0,`TABLE`)?(o=i.next(),_[o.value]?(k.default.debug(o.value+` Table {`),e[_[o.value].tableName]=p(o),k.default.debug(`}`)):k.default.debug(`Unhandled Table `+o.value)):o=i.next();return o=i.next(),e}let f=`ENDTAB`;function p(e){let t=_[e.value],n={},r=0;for(o=i.next();!M(o,0,f);)switch(o.code){case 5:n.handle=o.value,o=i.next();break;case 330:n.ownerHandle=o.value,o=i.next();break;case 100:o.value===`AcDbSymbolTable`||N(o),o=i.next();break;case 70:r=o.value,o=i.next();break;case 0:o.value===t.dxfSymbolName?n[t.tableRecordsProperty]=t.parseTableRecords():(N(o),o=i.next());break;default:N(o),o=i.next()}let a=n[t.tableRecordsProperty];if(a){let e=(()=>{if(a.constructor===Array)return a.length;if(typeof a==`object`)return Object.keys(a).length})();r!==e&&k.default.warn(`Parsed `+e+` `+t.dxfSymbolName+`'s but expected `+r)}return o=i.next(),n}function m(){let e=[],t={};for(k.default.debug(`ViewPort {`),o=i.next();!M(o,0,f);)switch(o.code){case 2:t.name=o.value,o=i.next();break;case 10:t.lowerLeftCorner=y(o),o=i.next();break;case 11:t.upperRightCorner=y(o),o=i.next();break;case 12:t.center=y(o),o=i.next();break;case 13:t.snapBasePoint=y(o),o=i.next();break;case 14:t.snapSpacing=y(o),o=i.next();break;case 15:t.gridSpacing=y(o),o=i.next();break;case 16:t.viewDirectionFromTarget=y(o),o=i.next();break;case 17:t.viewTarget=y(o),o=i.next();break;case 42:t.lensLength=o.value,o=i.next();break;case 43:t.frontClippingPlane=o.value,o=i.next();break;case 44:t.backClippingPlane=o.value,o=i.next();break;case 45:t.viewHeight=o.value,o=i.next();break;case 50:t.snapRotationAngle=o.value,o=i.next();break;case 51:t.viewTwistAngle=o.value,o=i.next();break;case 79:t.orthographicType=o.value,o=i.next();break;case 110:t.ucsOrigin=y(o),o=i.next();break;case 111:t.ucsXAxis=y(o),o=i.next();break;case 112:t.ucsYAxis=y(o),o=i.next();break;case 110:t.ucsOrigin=y(o),o=i.next();break;case 281:t.renderMode=o.value,o=i.next();break;case 281:t.defaultLightingType=o.value,o=i.next();break;case 292:t.defaultLightingOn=o.value,o=i.next();break;case 330:t.ownerHandle=o.value,o=i.next();break;case 63:case 421:case 431:t.ambientColor=o.value,o=i.next();break;case 0:o.value===`VPORT`&&(k.default.debug(`}`),e.push(t),k.default.debug(`ViewPort {`),t={},o=i.next());break;default:N(o),o=i.next();break}return k.default.debug(`}`),e.push(t),e}function h(){let e={},t={},n=0,r;for(k.default.debug(`LType {`),o=i.next();!M(o,0,`ENDTAB`);)switch(o.code){case 2:t.name=o.value,r=o.value,o=i.next();break;case 3:t.description=o.value,o=i.next();break;case 73:n=o.value,n>0&&(t.pattern=[]),o=i.next();break;case 40:t.patternLength=o.value,o=i.next();break;case 49:t.pattern.push(o.value),o=i.next();break;case 0:k.default.debug(`}`),n>0&&n!==t.pattern.length&&k.default.warn(`lengths do not match on LTYPE pattern`),e[r]=t,t={},k.default.debug(`LType {`),o=i.next();break;default:o=i.next()}return k.default.debug(`}`),e[r]=t,e}function g(){let e={},t={},n;for(k.default.debug(`Layer {`),o=i.next();!M(o,0,`ENDTAB`);)switch(o.code){case 2:t.name=o.value,n=o.value,o=i.next();break;case 62:t.visible=o.value>=0,t.colorIndex=Math.abs(o.value),t.color=F(t.colorIndex),o=i.next();break;case 70:t.frozen=(o.value&1)!=0||(o.value&2)!=0,o=i.next();break;case 0:o.value===`LAYER`&&(k.default.debug(`}`),e[n]=t,k.default.debug(`Layer {`),t={},n=void 0,o=i.next());break;default:N(o),o=i.next();break}return k.default.debug(`}`),e[n]=t,e}let _={VPORT:{tableRecordsProperty:`viewPorts`,tableName:`viewPort`,dxfSymbolName:`VPORT`,parseTableRecords:m},LTYPE:{tableRecordsProperty:`lineTypes`,tableName:`lineType`,dxfSymbolName:`LTYPE`,parseTableRecords:h},LAYER:{tableRecordsProperty:`layers`,tableName:`layer`,dxfSymbolName:`LAYER`,parseTableRecords:g}};function v(e){let t=[],n=e?`ENDBLK`:`ENDSEC`;for(e||(o=i.next());;)if(o.code===0){if(o.value===n)break;let e=a._entityHandlers[o.value];if(e!=null){k.default.debug(o.value+` {`);let n=e.parseEntity(i,o);o=i.lastReadGroup,k.default.debug(`}`),b(n),t.push(n)}else{k.default.warn(`Unhandled entity `+o.value),o=i.next();continue}}else o=i.next();return n==`ENDSEC`&&(o=i.next()),t}function y(e){let t={},n=e.code;if(t.x=e.value,n+=10,e=i.next(),e.code!=n)throw Error(`Expected code for point value to be `+n+` but got `+e.code+`.`);return t.y=e.value,n+=10,e=i.next(),e.code==n?(t.z=e.value,t):(i.rewind(),t)}function b(e){if(!e)throw TypeError(`entity cannot be undefined or null`);e.handle||=r++}return s(),t}};function M(e,t,n){return e.code===t&&e.value===n}function N(e){k.default.debug(`unhandled group `+P(e))}function P(e){return e.code+`:`+e.value}function F(e){return a[e]}var I=j;export{j as DxfParser,I as default}; |