{"version":3,"file":"vendor.dxf-writer-11fe9665.d01f398e191f21f5.bundle.js","mappings":"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","sources":["webpack://client-app/./node_modules/dxf-writer/src/Face.js","webpack://client-app/./node_modules/dxf-writer/src/Handle.js","webpack://client-app/./node_modules/dxf-writer/src/Layer.js","webpack://client-app/./node_modules/dxf-writer/src/Line.js","webpack://client-app/./node_modules/dxf-writer/src/Line3d.js","webpack://client-app/./node_modules/dxf-writer/src/LineType.js","webpack://client-app/./node_modules/dxf-writer/src/Point.js","webpack://client-app/./node_modules/dxf-writer/src/Polyline.js","webpack://client-app/./node_modules/dxf-writer/src/Polyline3d.js","webpack://client-app/./node_modules/dxf-writer/src/Spline.js","webpack://client-app/./node_modules/dxf-writer/src/Table.js","webpack://client-app/./node_modules/dxf-writer/src/TagsManager.js","webpack://client-app/./node_modules/dxf-writer/src/Text.js","webpack://client-app/./node_modules/dxf-writer/src/TextStyle.js","webpack://client-app/./node_modules/dxf-writer/src/Vertex.js","webpack://client-app/./node_modules/dxf-writer/src/Viewport.js"],"sourcesContent":["const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Face extends DatabaseObject {\n constructor(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) {\n super([\"AcDbEntity\", \"AcDbFace\"]);\n this.x1 = x1;\n this.y1 = y1;\n this.z1 = z1;\n this.x2 = x2;\n this.y2 = y2;\n this.z2 = z2;\n this.x3 = x3;\n this.y3 = y3;\n this.z3 = z3;\n this.x4 = x4;\n this.y4 = y4;\n this.z4 = z4;\n }\n\n tags(manager) {\n //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/3dface_al_u05_c.htm\n manager.push(0, \"3DFACE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x1, this.y1, this.z1);\n\n manager.push(11, this.x2);\n manager.push(21, this.y2);\n manager.push(31, this.z2);\n\n manager.push(12, this.x3);\n manager.push(22, this.y3);\n manager.push(32, this.z3);\n\n manager.push(13, this.x4);\n manager.push(23, this.y4);\n manager.push(33, this.z4);\n }\n}\n\nmodule.exports = Face;\n","class Handle {\n static seed = 0;\n\n static next() {\n return (++Handle.seed).toString(16).toUpperCase();\n }\n\n static peek() {\n return (Handle.seed + 1).toString(16).toUpperCase();\n }\n}\n\nmodule.exports = Handle;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Layer extends DatabaseObject {\n constructor(name, colorNumber, lineTypeName = null) {\n super([\"AcDbSymbolTableRecord\", \"AcDbLayerTableRecord\"]);\n this.name = name;\n this.colorNumber = colorNumber;\n this.lineTypeName = lineTypeName;\n this.shapes = [];\n this.trueColor = -1;\n }\n\n tags(manager) {\n manager.push(0, \"LAYER\");\n super.tags(manager);\n manager.push(2, this.name);\n if (this.trueColor !== -1) manager.push(420, this.trueColor);\n else manager.push(62, this.colorNumber);\n\n manager.push(70, 0);\n if (this.lineTypeName) manager.push(6, this.lineTypeName);\n\n /* Hard-pointer handle to PlotStyleName object; seems mandatory, but any value seems OK,\n * including 0.\n */\n manager.push(390, 1);\n }\n\n setTrueColor(color) {\n this.trueColor = color;\n }\n\n addShape(shape) {\n this.shapes.push(shape);\n shape.layer = this;\n }\n\n getShapes() {\n return this.shapes;\n }\n\n shapesTags(space, manager) {\n for (const shape of this.shapes) {\n shape.ownerObjectHandle = space.handle;\n shape.tags(manager);\n }\n }\n}\n\nmodule.exports = Layer;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Line extends DatabaseObject {\n constructor(x1, y1, x2, y2) {\n super([\"AcDbEntity\", \"AcDbLine\"]);\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n }\n\n tags(manager) {\n //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm\n manager.push(0, \"LINE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x1, this.y1);\n\n manager.push(11, this.x2);\n manager.push(21, this.y2);\n manager.push(31, 0);\n }\n}\n\nmodule.exports = Line;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Line3d extends DatabaseObject {\n constructor(x1, y1, z1, x2, y2, z2) {\n super([\"AcDbEntity\", \"AcDbLine\"]);\n this.x1 = x1;\n this.y1 = y1;\n this.z1 = z1;\n this.x2 = x2;\n this.y2 = y2;\n this.z2 = z2;\n }\n\n tags(manager) {\n //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/line_al_u05_c.htm\n manager.push(0, \"LINE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x1, this.y1, this.z1);\n\n manager.push(11, this.x2);\n manager.push(21, this.y2);\n manager.push(31, this.z2);\n }\n}\n\nmodule.exports = Line3d;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass LineType extends DatabaseObject {\n /**\n * @param {string} name\n * @param {string} description\n * @param {array} elements - if elem > 0 it is a line, if elem < 0 it is gap, if elem == 0.0 it is a\n */\n constructor(name, description, elements) {\n super([\"AcDbSymbolTableRecord\", \"AcDbLinetypeTableRecord\"]);\n this.name = name;\n this.description = description;\n this.elements = elements;\n }\n\n tags(manager) {\n // https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ltype_al_u05_c.htm\n manager.push(0, \"LTYPE\");\n super.tags(manager);\n manager.push(2, this.name);\n manager.push(3, this.description);\n manager.push(70, 0);\n manager.push(72, 65);\n manager.push(73, this.elements.length);\n manager.push(40, this.getElementsSum());\n\n this.elements.forEach((element) => {\n manager.push(49, element);\n manager.push(74, 0);\n });\n }\n\n getElementsSum() {\n return this.elements.reduce((sum, element) => {\n return sum + Math.abs(element);\n }, 0);\n }\n}\n\nmodule.exports = LineType;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Point extends DatabaseObject {\n constructor(x, y) {\n super([\"AcDbEntity\", \"AcDbPoint\"]);\n this.x = x;\n this.y = y;\n }\n\n tags(manager) {\n //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/point_al_u05_c.htm\n manager.push(0, \"POINT\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x, this.y);\n }\n}\n\nmodule.exports = Point;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Polyline extends DatabaseObject {\n /**\n * @param {array} points - Array of points like [ [x1, y1], [x2, y2, bulge]... ]\n * @param {boolean} closed\n * @param {number} startWidth\n * @param {number} endWidth\n */\n constructor(points, closed = false, startWidth = 0, endWidth = 0) {\n super([\"AcDbEntity\", \"AcDbPolyline\"]);\n this.points = points;\n this.closed = closed;\n this.startWidth = startWidth;\n this.endWidth = endWidth;\n }\n\n tags(manager) {\n manager.push(0, \"LWPOLYLINE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.push(6, \"ByLayer\");\n manager.push(62, 256);\n manager.push(370, -1);\n manager.push(90, this.points.length);\n manager.push(70, this.closed ? 1 : 0);\n\n this.points.forEach((point) => {\n const [x, y, z] = point;\n manager.push(10, x);\n manager.push(20, y);\n if (this.startWidth !== 0 || this.endWidth !== 0) {\n manager.push(40, this.startWidth);\n manager.push(41, this.endWidth);\n }\n if (z !== undefined) manager.push(42, z);\n });\n }\n}\n\nmodule.exports = Polyline;\n","const DatabaseObject = require(\"./DatabaseObject\");\nconst Handle = require(\"./Handle\");\nconst Vertex = require(\"./Vertex\");\n\nclass Polyline3d extends DatabaseObject {\n /**\n * @param {[number, number, number][]} points - Array of points like [ [x1, y1, z1], [x2, y2, z2]... ]\n */\n constructor(points) {\n super([\"AcDbEntity\", \"AcDb3dPolyline\"]);\n this.verticies = points.map((point) => {\n const [x, y, z] = point;\n const vertex = new Vertex(x, y, z);\n vertex.ownerObjectHandle = this.handle;\n return vertex;\n });\n this.seqendHandle = Handle.next();\n }\n\n tags(manager) {\n manager.push(0, \"POLYLINE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.push(66, 1);\n manager.push(70, 0);\n manager.point(0, 0);\n\n this.verticies.forEach((vertex) => {\n vertex.layer = this.layer;\n vertex.tags(manager);\n });\n\n manager.push(0, \"SEQEND\");\n manager.push(5, this.seqendHandle);\n manager.push(100, \"AcDbEntity\");\n manager.push(8, this.layer.name);\n }\n}\n\nmodule.exports = Polyline3d;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Spline extends DatabaseObject {\n /**\n * Creates a spline. See https://www.autodesk.com/techpubs/autocad/acad2000/dxf/spline_dxf_06.htm\n * @param {[Array]} controlPoints - Array of control points like [ [x1, y1], [x2, y2]... ]\n * @param {number} degree - Degree of spline: 2 for quadratic, 3 for cubic. Default is 3\n * @param {[number]} knots - Knot vector array. If null, will use a uniform knot vector. Default is null\n * @param {[number]} weights - Control point weights. If provided, must be one weight for each control point. Default is null\n * @param {[Array]} fitPoints - Array of fit points like [ [x1, y1], [x2, y2]... ]\n */\n constructor(\n controlPoints,\n degree = 3,\n knots = null,\n weights = null,\n fitPoints = []\n ) {\n super([\"AcDbEntity\", \"AcDbSpline\"]);\n if (controlPoints.length < degree + 1) {\n throw new Error(\n `For degree ${degree} spline, expected at least ${\n degree + 1\n } control points, but received only ${controlPoints.length}`\n );\n }\n\n if (knots == null) {\n // Examples:\n // degree 2, 3 pts: 0 0 0 1 1 1\n // degree 2, 4 pts: 0 0 0 1 2 2 2\n // degree 2, 5 pts: 0 0 0 1 2 3 3 3\n // degree 3, 4 pts: 0 0 0 0 1 1 1 1\n // degree 3, 5 pts: 0 0 0 0 1 2 2 2 2\n\n knots = [];\n for (let i = 0; i < degree + 1; i++) {\n knots.push(0);\n }\n for (let i = 1; i < controlPoints.length - degree; i++) {\n knots.push(i);\n }\n for (let i = 0; i < degree + 1; i++) {\n knots.push(controlPoints.length - degree);\n }\n }\n\n if (knots.length !== controlPoints.length + degree + 1) {\n throw new Error(\n `Invalid knot vector length. Expected ${\n controlPoints.length + degree + 1\n } but received ${knots.length}.`\n );\n }\n\n this.controlPoints = controlPoints;\n this.knots = knots;\n this.fitPoints = fitPoints;\n this.degree = degree;\n this.weights = weights;\n\n const closed = 0;\n const periodic = 0;\n const rational = this.weights ? 1 : 0;\n const planar = 1;\n const linear = 0;\n\n this.type =\n closed * 1 + periodic * 2 + rational * 4 + planar * 8 + linear * 16;\n\n // Not certain where the values of these flags came from so I'm going to leave them commented for now\n // const closed = 0\n // const periodic = 0\n // const rational = 1\n // const planar = 1\n // const linear = 0\n // const splineType = 1024 * closed + 128 * periodic + 8 * rational + 4 * planar + 2 * linear\n }\n\n tags(manager) {\n // https://www.autodesk.com/techpubs/autocad/acad2000/dxf/spline_dxf_06.htm\n manager.push(0, \"SPLINE\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n\n manager.push(210, 0.0);\n manager.push(220, 0.0);\n manager.push(230, 1.0);\n\n manager.push(70, this.type);\n manager.push(71, this.degree);\n manager.push(72, this.knots.length);\n manager.push(73, this.controlPoints.length);\n manager.push(74, this.fitPoints.length);\n\n manager.push(42, 1e-7);\n manager.push(43, 1e-7);\n manager.push(44, 1e-10);\n\n this.knots.forEach((knot) => {\n manager.push(40, knot);\n });\n\n if (this.weights) {\n this.weights.forEach((weight) => {\n manager.push(41, weight);\n });\n }\n\n this.controlPoints.forEach((point) => {\n manager.point(point[0], point[1]);\n });\n }\n}\n\nmodule.exports = Spline;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Table extends DatabaseObject {\n constructor(name) {\n super(\"AcDbSymbolTable\");\n this.name = name;\n this.elements = [];\n }\n\n add(element) {\n element.ownerObjectHandle = this.handle;\n this.elements.push(element);\n }\n\n tags(manager) {\n manager.push(0, \"TABLE\");\n manager.push(2, this.name);\n super.tags(manager);\n manager.push(70, this.elements.length);\n\n this.elements.forEach((element) => {\n element.tags(manager);\n });\n\n manager.push(0, \"ENDTAB\");\n }\n}\n\nmodule.exports = Table;\n","class TagsManager {\n constructor() {\n this.lines = [];\n }\n\n /**\n *\n * @param {number} x\n * @param {number} y\n * @param {number} z\n */\n point(x, y, z = 0) {\n this.push(10, x);\n this.push(20, y);\n this.push(30, z);\n }\n\n /**\n *\n * @param {string} name The name of the section\n */\n start(name) {\n this.push(0, \"SECTION\");\n this.push(2, name);\n }\n\n end() {\n this.push(0, \"ENDSEC\");\n }\n\n addHeaderVariable(name, tagsElements) {\n this.push(9, `$${name}`);\n tagsElements.forEach((tagElement) => {\n this.push(tagElement[0], tagElement[1]);\n });\n }\n\n push(code, value) {\n this.lines.push(code, value);\n }\n\n toDxfString() {\n return this.lines.join(\"\\n\");\n }\n}\n\nmodule.exports = TagsManager;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nconst H_ALIGN_CODES = [\"left\", \"center\", \"right\"];\nconst V_ALIGN_CODES = [\"baseline\", \"bottom\", \"middle\", \"top\"];\n\nclass Text extends DatabaseObject {\n /**\n * @param {number} x - x\n * @param {number} y - y\n * @param {number} height - Text height\n * @param {number} rotation - Text rotation\n * @param {string} value - the string itself\n * @param {string} [horizontalAlignment=\"left\"] left | center | right\n * @param {string} [verticalAlignment=\"baseline\"] baseline | bottom | middle | top\n */\n constructor(\n x,\n y,\n height,\n rotation,\n value,\n horizontalAlignment = \"left\",\n verticalAlignment = \"baseline\"\n ) {\n super([\"AcDbEntity\", \"AcDbText\"]);\n this.x = x;\n this.y = y;\n this.height = height;\n this.rotation = rotation;\n this.value = value;\n this.hAlign = horizontalAlignment;\n this.vAlign = verticalAlignment;\n }\n\n tags(manager) {\n //https://www.autodesk.com/techpubs/autocad/acadr14/dxf/text_al_u05_c.htm\n manager.push(0, \"TEXT\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x, this.y);\n manager.push(40, this.height);\n manager.push(1, this.value);\n manager.push(50, this.rotation);\n\n if (\n H_ALIGN_CODES.includes(this.hAlign, 1) ||\n V_ALIGN_CODES.includes(this.vAlign, 1)\n ) {\n manager.push(72, Math.max(H_ALIGN_CODES.indexOf(this.hAlign), 0));\n\n manager.push(11, this.x);\n manager.push(21, this.y);\n manager.push(31, 0);\n\n /* AutoCAD needs this one more time, yes, exactly here. */\n manager.push(100, \"AcDbText\");\n manager.push(73, Math.max(V_ALIGN_CODES.indexOf(this.vAlign), 0));\n } else {\n /* AutoCAD needs this one more time. */\n manager.push(100, \"AcDbText\");\n }\n }\n}\n\nmodule.exports = Text;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass TextStyle extends DatabaseObject {\n fontFileName = 'txt';\n constructor(name) {\n super([\"AcDbSymbolTableRecord\", \"AcDbTextStyleTableRecord\"]);\n this.name = name;\n }\n\n tags(manager) {\n manager.push(0, \"STYLE\");\n super.tags(manager);\n manager.push(2, this.name);\n /* No flags set */\n manager.push(70, 0);\n manager.push(40, 0);\n manager.push(41, 1);\n manager.push(50, 0);\n manager.push(71, 0);\n manager.push(42, 1);\n manager.push(3, this.fontFileName);\n manager.push(4, \"\");\n }\n}\n\nmodule.exports = TextStyle;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Vertex extends DatabaseObject {\n /**\n *\n * @param {number} x The X coordinate\n * @param {number} y The Y coordinate\n * @param {number} z The Z coordinate\n */\n constructor(x, y, z) {\n super([\"AcDbEntity\", \"AcDbVertex\", \"AcDb3dPolylineVertex\"]);\n this.x = x;\n this.y = y;\n this.z = z;\n }\n\n tags(manager) {\n manager.push(0, \"VERTEX\");\n super.tags(manager);\n manager.push(8, this.layer.name);\n manager.point(this.x, this.y, this.z);\n manager.push(70, 32);\n }\n}\n\nmodule.exports = Vertex;\n","const DatabaseObject = require(\"./DatabaseObject\");\n\nclass Viewport extends DatabaseObject {\n constructor(name, height) {\n super([\"AcDbSymbolTableRecord\", \"AcDbViewportTableRecord\"]);\n this.name = name;\n this.height = height;\n }\n\n tags(manager) {\n manager.push(0, \"VPORT\");\n super.tags(manager);\n manager.push(2, this.name);\n manager.push(40, this.height);\n /* No flags set */\n manager.push(70, 0);\n }\n}\n\nmodule.exports = Viewport;\n"],"names":["DatabaseObject","module","exports","constructor","x1","y1","z1","x2","y2","z2","x3","y3","z3","x4","y4","z4","super","this","tags","manager","push","layer","name","point","Handle","static","next","seed","toString","toUpperCase","peek","colorNumber","lineTypeName","shapes","trueColor","setTrueColor","color","addShape","shape","getShapes","shapesTags","space","ownerObjectHandle","handle","description","elements","length","getElementsSum","forEach","element","reduce","sum","Math","abs","x","y","points","closed","startWidth","endWidth","z","undefined","Vertex","verticies","map","vertex","seqendHandle","controlPoints","degree","knots","weights","fitPoints","Error","i","rational","type","planar","linear","knot","weight","add","lines","start","end","addHeaderVariable","tagsElements","tagElement","code","value","toDxfString","join","H_ALIGN_CODES","V_ALIGN_CODES","height","rotation","horizontalAlignment","verticalAlignment","hAlign","vAlign","includes","max","indexOf","fontFileName"],"sourceRoot":""}