{"version":3,"file":"vendor.dxf-writer-11fe9665.5b61e040dce6e0ba.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","seed","toString","toUpperCase","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","next","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":""}