@linkiez/dxf-renew 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/.eslintignore +17 -0
  2. package/.eslintrc.json +61 -0
  3. package/.gitattributes +4 -0
  4. package/.github/instructions/project-en_US.instructions.md +352 -0
  5. package/.github/workflows/release.yml +110 -0
  6. package/.husky/commit-msg +4 -0
  7. package/.husky/pre-commit +1 -0
  8. package/.prettierignore +1 -0
  9. package/.prettierrc.json +6 -0
  10. package/.releaserc.json +76 -0
  11. package/.travis.yml +6 -0
  12. package/.yarn/install-state.gz +0 -0
  13. package/.yarnrc.yml +1 -0
  14. package/CHANGELOG.md +134 -0
  15. package/CONTRIBUTING.md +271 -0
  16. package/LICENSE +21 -0
  17. package/PLAN.md +517 -0
  18. package/README.md +306 -0
  19. package/build.mjs +66 -0
  20. package/commitlint.config.js +25 -0
  21. package/dist/dxf.js +7234 -0
  22. package/docs/CODE_PATTERNS.md +182 -0
  23. package/docs/DIMENSION_SUMMARY.md +248 -0
  24. package/docs/DIMENSION_SUMMARY.pt-BR.md +248 -0
  25. package/docs/IMPLEMENTED-2D-ENTITIES.md +54 -0
  26. package/docs/IMPLEMENTED-2D-ENTITIES.pt-BR.md +54 -0
  27. package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.md +241 -0
  28. package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.pt-BR.md +169 -0
  29. package/docs/autocad_2012_pdf_dxf-reference_enu.md +8272 -0
  30. package/examples/dxf.html +36 -0
  31. package/examples/example.es5.js +30 -0
  32. package/examples/example.es6.js +30 -0
  33. package/examples/text-dimension-viewer.html +133 -0
  34. package/lib/Helper.cjs +89 -0
  35. package/lib/Helper.cjs.map +7 -0
  36. package/lib/Helper.js +59 -0
  37. package/lib/Helper.js.map +7 -0
  38. package/lib/applyTransforms.cjs +59 -0
  39. package/lib/applyTransforms.cjs.map +7 -0
  40. package/lib/applyTransforms.js +39 -0
  41. package/lib/applyTransforms.js.map +7 -0
  42. package/lib/cli.cjs +53 -0
  43. package/lib/cli.cjs.map +7 -0
  44. package/lib/cli.js +29 -0
  45. package/lib/cli.js.map +7 -0
  46. package/lib/config.cjs +30 -0
  47. package/lib/config.cjs.map +7 -0
  48. package/lib/config.js +10 -0
  49. package/lib/config.js.map +7 -0
  50. package/lib/constants.cjs +39 -0
  51. package/lib/constants.cjs.map +7 -0
  52. package/lib/constants.js +15 -0
  53. package/lib/constants.js.map +7 -0
  54. package/lib/denormalise.cjs +148 -0
  55. package/lib/denormalise.cjs.map +7 -0
  56. package/lib/denormalise.js +118 -0
  57. package/lib/denormalise.js.map +7 -0
  58. package/lib/dimensionToSVG.cjs +307 -0
  59. package/lib/dimensionToSVG.cjs.map +7 -0
  60. package/lib/dimensionToSVG.js +273 -0
  61. package/lib/dimensionToSVG.js.map +7 -0
  62. package/lib/entityToPolyline.cjs +248 -0
  63. package/lib/entityToPolyline.cjs.map +7 -0
  64. package/lib/entityToPolyline.js +213 -0
  65. package/lib/entityToPolyline.js.map +7 -0
  66. package/lib/getRGBForEntity.cjs +53 -0
  67. package/lib/getRGBForEntity.cjs.map +7 -0
  68. package/lib/getRGBForEntity.js +23 -0
  69. package/lib/getRGBForEntity.js.map +7 -0
  70. package/lib/groupEntitiesByLayer.cjs +34 -0
  71. package/lib/groupEntitiesByLayer.cjs.map +7 -0
  72. package/lib/groupEntitiesByLayer.js +14 -0
  73. package/lib/groupEntitiesByLayer.js.map +7 -0
  74. package/lib/handlers/blocks.cjs +93 -0
  75. package/lib/handlers/blocks.cjs.map +7 -0
  76. package/lib/handlers/blocks.js +63 -0
  77. package/lib/handlers/blocks.js.map +7 -0
  78. package/lib/handlers/entities.cjs +118 -0
  79. package/lib/handlers/entities.cjs.map +7 -0
  80. package/lib/handlers/entities.js +88 -0
  81. package/lib/handlers/entities.js.map +7 -0
  82. package/lib/handlers/entity/arc.cjs +82 -0
  83. package/lib/handlers/entity/arc.cjs.map +7 -0
  84. package/lib/handlers/entity/arc.js +47 -0
  85. package/lib/handlers/entity/arc.js.map +7 -0
  86. package/lib/handlers/entity/attdef.cjs +318 -0
  87. package/lib/handlers/entity/attdef.cjs.map +7 -0
  88. package/lib/handlers/entity/attdef.js +282 -0
  89. package/lib/handlers/entity/attdef.js.map +7 -0
  90. package/lib/handlers/entity/attrib.cjs +52 -0
  91. package/lib/handlers/entity/attrib.cjs.map +7 -0
  92. package/lib/handlers/entity/attrib.js +27 -0
  93. package/lib/handlers/entity/attrib.js.map +7 -0
  94. package/lib/handlers/entity/circle.cjs +73 -0
  95. package/lib/handlers/entity/circle.cjs.map +7 -0
  96. package/lib/handlers/entity/circle.js +38 -0
  97. package/lib/handlers/entity/circle.js.map +7 -0
  98. package/lib/handlers/entity/common.cjs +83 -0
  99. package/lib/handlers/entity/common.cjs.map +7 -0
  100. package/lib/handlers/entity/common.js +63 -0
  101. package/lib/handlers/entity/common.js.map +7 -0
  102. package/lib/handlers/entity/dimension.cjs +203 -0
  103. package/lib/handlers/entity/dimension.cjs.map +7 -0
  104. package/lib/handlers/entity/dimension.js +168 -0
  105. package/lib/handlers/entity/dimension.js.map +7 -0
  106. package/lib/handlers/entity/ellipse.cjs +88 -0
  107. package/lib/handlers/entity/ellipse.cjs.map +7 -0
  108. package/lib/handlers/entity/ellipse.js +53 -0
  109. package/lib/handlers/entity/ellipse.js.map +7 -0
  110. package/lib/handlers/entity/hatch.cjs +470 -0
  111. package/lib/handlers/entity/hatch.cjs.map +7 -0
  112. package/lib/handlers/entity/hatch.js +435 -0
  113. package/lib/handlers/entity/hatch.js.map +7 -0
  114. package/lib/handlers/entity/insert.cjs +106 -0
  115. package/lib/handlers/entity/insert.cjs.map +7 -0
  116. package/lib/handlers/entity/insert.js +71 -0
  117. package/lib/handlers/entity/insert.js.map +7 -0
  118. package/lib/handlers/entity/line.cjs +84 -0
  119. package/lib/handlers/entity/line.cjs.map +7 -0
  120. package/lib/handlers/entity/line.js +49 -0
  121. package/lib/handlers/entity/line.js.map +7 -0
  122. package/lib/handlers/entity/lwpolyline.cjs +82 -0
  123. package/lib/handlers/entity/lwpolyline.cjs.map +7 -0
  124. package/lib/handlers/entity/lwpolyline.js +47 -0
  125. package/lib/handlers/entity/lwpolyline.js.map +7 -0
  126. package/lib/handlers/entity/mtext.cjs +121 -0
  127. package/lib/handlers/entity/mtext.cjs.map +7 -0
  128. package/lib/handlers/entity/mtext.js +85 -0
  129. package/lib/handlers/entity/mtext.js.map +7 -0
  130. package/lib/handlers/entity/ole2Frame.cjs +98 -0
  131. package/lib/handlers/entity/ole2Frame.cjs.map +7 -0
  132. package/lib/handlers/entity/ole2Frame.js +63 -0
  133. package/lib/handlers/entity/ole2Frame.js.map +7 -0
  134. package/lib/handlers/entity/point.cjs +73 -0
  135. package/lib/handlers/entity/point.cjs.map +7 -0
  136. package/lib/handlers/entity/point.js +38 -0
  137. package/lib/handlers/entity/point.js.map +7 -0
  138. package/lib/handlers/entity/polyline.cjs +70 -0
  139. package/lib/handlers/entity/polyline.cjs.map +7 -0
  140. package/lib/handlers/entity/polyline.js +35 -0
  141. package/lib/handlers/entity/polyline.js.map +7 -0
  142. package/lib/handlers/entity/solid.cjs +101 -0
  143. package/lib/handlers/entity/solid.cjs.map +7 -0
  144. package/lib/handlers/entity/solid.js +66 -0
  145. package/lib/handlers/entity/solid.js.map +7 -0
  146. package/lib/handlers/entity/spline.cjs +109 -0
  147. package/lib/handlers/entity/spline.cjs.map +7 -0
  148. package/lib/handlers/entity/spline.js +74 -0
  149. package/lib/handlers/entity/spline.js.map +7 -0
  150. package/lib/handlers/entity/text.cjs +85 -0
  151. package/lib/handlers/entity/text.cjs.map +7 -0
  152. package/lib/handlers/entity/text.js +49 -0
  153. package/lib/handlers/entity/text.js.map +7 -0
  154. package/lib/handlers/entity/threeDFace.cjs +98 -0
  155. package/lib/handlers/entity/threeDFace.cjs.map +7 -0
  156. package/lib/handlers/entity/threeDFace.js +63 -0
  157. package/lib/handlers/entity/threeDFace.js.map +7 -0
  158. package/lib/handlers/entity/vertex.cjs +78 -0
  159. package/lib/handlers/entity/vertex.cjs.map +7 -0
  160. package/lib/handlers/entity/vertex.js +53 -0
  161. package/lib/handlers/entity/vertex.js.map +7 -0
  162. package/lib/handlers/entity/viewport.cjs +153 -0
  163. package/lib/handlers/entity/viewport.cjs.map +7 -0
  164. package/lib/handlers/entity/viewport.js +118 -0
  165. package/lib/handlers/entity/viewport.js.map +7 -0
  166. package/lib/handlers/header.cjs +92 -0
  167. package/lib/handlers/header.cjs.map +7 -0
  168. package/lib/handlers/header.js +72 -0
  169. package/lib/handlers/header.js.map +7 -0
  170. package/lib/handlers/objects.cjs +170 -0
  171. package/lib/handlers/objects.cjs.map +7 -0
  172. package/lib/handlers/objects.js +150 -0
  173. package/lib/handlers/objects.js.map +7 -0
  174. package/lib/handlers/tables.cjs +587 -0
  175. package/lib/handlers/tables.cjs.map +7 -0
  176. package/lib/handlers/tables.js +557 -0
  177. package/lib/handlers/tables.js.map +7 -0
  178. package/lib/index.cjs +60 -0
  179. package/lib/index.cjs.map +7 -0
  180. package/lib/index.js +19 -0
  181. package/lib/index.js.map +7 -0
  182. package/lib/parseString.cjs +118 -0
  183. package/lib/parseString.cjs.map +7 -0
  184. package/lib/parseString.js +88 -0
  185. package/lib/parseString.js.map +7 -0
  186. package/lib/toPolylines.cjs +69 -0
  187. package/lib/toPolylines.cjs.map +7 -0
  188. package/lib/toPolylines.js +39 -0
  189. package/lib/toPolylines.js.map +7 -0
  190. package/lib/toSVG.cjs +395 -0
  191. package/lib/toSVG.cjs.map +7 -0
  192. package/lib/toSVG.js +361 -0
  193. package/lib/toSVG.js.map +7 -0
  194. package/lib/types/arc-entity.cjs +17 -0
  195. package/lib/types/arc-entity.cjs.map +7 -0
  196. package/lib/types/arc-entity.js +1 -0
  197. package/lib/types/arc-entity.js.map +7 -0
  198. package/lib/types/base-entity.cjs +17 -0
  199. package/lib/types/base-entity.cjs.map +7 -0
  200. package/lib/types/base-entity.js +1 -0
  201. package/lib/types/base-entity.js.map +7 -0
  202. package/lib/types/circle-entity.cjs +17 -0
  203. package/lib/types/circle-entity.cjs.map +7 -0
  204. package/lib/types/circle-entity.js +1 -0
  205. package/lib/types/circle-entity.js.map +7 -0
  206. package/lib/types/common.cjs +17 -0
  207. package/lib/types/common.cjs.map +7 -0
  208. package/lib/types/common.js +1 -0
  209. package/lib/types/common.js.map +7 -0
  210. package/lib/types/dimension-entity.cjs +17 -0
  211. package/lib/types/dimension-entity.cjs.map +7 -0
  212. package/lib/types/dimension-entity.js +1 -0
  213. package/lib/types/dimension-entity.js.map +7 -0
  214. package/lib/types/dxf.cjs +17 -0
  215. package/lib/types/dxf.cjs.map +7 -0
  216. package/lib/types/dxf.js +1 -0
  217. package/lib/types/dxf.js.map +7 -0
  218. package/lib/types/ellipse-entity.cjs +17 -0
  219. package/lib/types/ellipse-entity.cjs.map +7 -0
  220. package/lib/types/ellipse-entity.js +1 -0
  221. package/lib/types/ellipse-entity.js.map +7 -0
  222. package/lib/types/entity.cjs +17 -0
  223. package/lib/types/entity.cjs.map +7 -0
  224. package/lib/types/entity.js +1 -0
  225. package/lib/types/entity.js.map +7 -0
  226. package/lib/types/handler-internal.cjs +17 -0
  227. package/lib/types/handler-internal.cjs.map +7 -0
  228. package/lib/types/handler-internal.js +1 -0
  229. package/lib/types/handler-internal.js.map +7 -0
  230. package/lib/types/handler.cjs +17 -0
  231. package/lib/types/handler.cjs.map +7 -0
  232. package/lib/types/handler.js +1 -0
  233. package/lib/types/handler.js.map +7 -0
  234. package/lib/types/hatch-entity.cjs +17 -0
  235. package/lib/types/hatch-entity.cjs.map +7 -0
  236. package/lib/types/hatch-entity.js +1 -0
  237. package/lib/types/hatch-entity.js.map +7 -0
  238. package/lib/types/helper.cjs +17 -0
  239. package/lib/types/helper.cjs.map +7 -0
  240. package/lib/types/helper.js +1 -0
  241. package/lib/types/helper.js.map +7 -0
  242. package/lib/types/index.cjs +77 -0
  243. package/lib/types/index.cjs.map +7 -0
  244. package/lib/types/index.js +29 -0
  245. package/lib/types/index.js.map +7 -0
  246. package/lib/types/insert-entity.cjs +17 -0
  247. package/lib/types/insert-entity.cjs.map +7 -0
  248. package/lib/types/insert-entity.js +1 -0
  249. package/lib/types/insert-entity.js.map +7 -0
  250. package/lib/types/layer-groups.cjs +17 -0
  251. package/lib/types/layer-groups.cjs.map +7 -0
  252. package/lib/types/layer-groups.js +1 -0
  253. package/lib/types/layer-groups.js.map +7 -0
  254. package/lib/types/line-entity.cjs +17 -0
  255. package/lib/types/line-entity.cjs.map +7 -0
  256. package/lib/types/line-entity.js +1 -0
  257. package/lib/types/line-entity.js.map +7 -0
  258. package/lib/types/mtext-entity.cjs +17 -0
  259. package/lib/types/mtext-entity.cjs.map +7 -0
  260. package/lib/types/mtext-entity.js +1 -0
  261. package/lib/types/mtext-entity.js.map +7 -0
  262. package/lib/types/ole2frame-entity.cjs +17 -0
  263. package/lib/types/ole2frame-entity.cjs.map +7 -0
  264. package/lib/types/ole2frame-entity.js +1 -0
  265. package/lib/types/ole2frame-entity.js.map +7 -0
  266. package/lib/types/options.cjs +17 -0
  267. package/lib/types/options.cjs.map +7 -0
  268. package/lib/types/options.js +1 -0
  269. package/lib/types/options.js.map +7 -0
  270. package/lib/types/point-entity.cjs +17 -0
  271. package/lib/types/point-entity.cjs.map +7 -0
  272. package/lib/types/point-entity.js +1 -0
  273. package/lib/types/point-entity.js.map +7 -0
  274. package/lib/types/polyline-entity.cjs +17 -0
  275. package/lib/types/polyline-entity.cjs.map +7 -0
  276. package/lib/types/polyline-entity.js +1 -0
  277. package/lib/types/polyline-entity.js.map +7 -0
  278. package/lib/types/polylines.cjs +17 -0
  279. package/lib/types/polylines.cjs.map +7 -0
  280. package/lib/types/polylines.js +1 -0
  281. package/lib/types/polylines.js.map +7 -0
  282. package/lib/types/solid-entity.cjs +17 -0
  283. package/lib/types/solid-entity.cjs.map +7 -0
  284. package/lib/types/solid-entity.js +1 -0
  285. package/lib/types/solid-entity.js.map +7 -0
  286. package/lib/types/spline-entity.cjs +17 -0
  287. package/lib/types/spline-entity.cjs.map +7 -0
  288. package/lib/types/spline-entity.js +1 -0
  289. package/lib/types/spline-entity.js.map +7 -0
  290. package/lib/types/svg.cjs +17 -0
  291. package/lib/types/svg.cjs.map +7 -0
  292. package/lib/types/svg.js +1 -0
  293. package/lib/types/svg.js.map +7 -0
  294. package/lib/types/tables.cjs +17 -0
  295. package/lib/types/tables.cjs.map +7 -0
  296. package/lib/types/tables.js +1 -0
  297. package/lib/types/tables.js.map +7 -0
  298. package/lib/types/text-entity.cjs +17 -0
  299. package/lib/types/text-entity.cjs.map +7 -0
  300. package/lib/types/text-entity.js +1 -0
  301. package/lib/types/text-entity.js.map +7 -0
  302. package/lib/types/util-types.cjs +17 -0
  303. package/lib/types/util-types.cjs.map +7 -0
  304. package/lib/types/util-types.js +1 -0
  305. package/lib/types/util-types.js.map +7 -0
  306. package/lib/types/vecks.d.cjs +2 -0
  307. package/lib/types/vecks.d.cjs.map +7 -0
  308. package/lib/types/vecks.d.js +1 -0
  309. package/lib/types/vecks.d.js.map +7 -0
  310. package/lib/types/viewport-entity.cjs +17 -0
  311. package/lib/types/viewport-entity.cjs.map +7 -0
  312. package/lib/types/viewport-entity.js +1 -0
  313. package/lib/types/viewport-entity.js.map +7 -0
  314. package/lib/types.cjs +23 -0
  315. package/lib/types.cjs.map +7 -0
  316. package/lib/types.js +2 -0
  317. package/lib/types.js.map +7 -0
  318. package/lib/util/bSpline.cjs +95 -0
  319. package/lib/util/bSpline.cjs.map +7 -0
  320. package/lib/util/bSpline.js +65 -0
  321. package/lib/util/bSpline.js.map +7 -0
  322. package/lib/util/colors.cjs +283 -0
  323. package/lib/util/colors.cjs.map +7 -0
  324. package/lib/util/colors.js +263 -0
  325. package/lib/util/colors.js.map +7 -0
  326. package/lib/util/createArcForLWPolyline.cjs +84 -0
  327. package/lib/util/createArcForLWPolyline.cjs.map +7 -0
  328. package/lib/util/createArcForLWPolyline.js +64 -0
  329. package/lib/util/createArcForLWPolyline.js.map +7 -0
  330. package/lib/util/dxfColorToRGB.cjs +115 -0
  331. package/lib/util/dxfColorToRGB.cjs.map +7 -0
  332. package/lib/util/dxfColorToRGB.js +90 -0
  333. package/lib/util/dxfColorToRGB.js.map +7 -0
  334. package/lib/util/insertKnot.cjs +77 -0
  335. package/lib/util/insertKnot.cjs.map +7 -0
  336. package/lib/util/insertKnot.js +57 -0
  337. package/lib/util/insertKnot.js.map +7 -0
  338. package/lib/util/logger.cjs +53 -0
  339. package/lib/util/logger.cjs.map +7 -0
  340. package/lib/util/logger.js +23 -0
  341. package/lib/util/logger.js.map +7 -0
  342. package/lib/util/rgbToColorAttribute.cjs +32 -0
  343. package/lib/util/rgbToColorAttribute.cjs.map +7 -0
  344. package/lib/util/rgbToColorAttribute.js +12 -0
  345. package/lib/util/rgbToColorAttribute.js.map +7 -0
  346. package/lib/util/rotate.cjs +30 -0
  347. package/lib/util/rotate.cjs.map +7 -0
  348. package/lib/util/rotate.js +10 -0
  349. package/lib/util/rotate.js.map +7 -0
  350. package/lib/util/round10.cjs +38 -0
  351. package/lib/util/round10.cjs.map +7 -0
  352. package/lib/util/round10.js +18 -0
  353. package/lib/util/round10.js.map +7 -0
  354. package/lib/util/toPiecewiseBezier.cjs +90 -0
  355. package/lib/util/toPiecewiseBezier.cjs.map +7 -0
  356. package/lib/util/toPiecewiseBezier.js +54 -0
  357. package/lib/util/toPiecewiseBezier.js.map +7 -0
  358. package/lib/util/transformBoundingBoxAndElement.cjs +80 -0
  359. package/lib/util/transformBoundingBoxAndElement.cjs.map +7 -0
  360. package/lib/util/transformBoundingBoxAndElement.js +60 -0
  361. package/lib/util/transformBoundingBoxAndElement.js.map +7 -0
  362. package/package.json +127 -0
  363. package/src/Helper.ts +71 -0
  364. package/src/applyTransforms.ts +54 -0
  365. package/src/cli.ts +41 -0
  366. package/src/config.ts +10 -0
  367. package/src/constants.ts +14 -0
  368. package/src/denormalise.ts +153 -0
  369. package/src/dimensionToSVG.ts +427 -0
  370. package/src/entityToPolyline.ts +338 -0
  371. package/src/getRGBForEntity.ts +28 -0
  372. package/src/groupEntitiesByLayer.ts +14 -0
  373. package/src/handlers/blocks.ts +65 -0
  374. package/src/handlers/entities.ts +111 -0
  375. package/src/handlers/entity/arc.ts +61 -0
  376. package/src/handlers/entity/attdef.ts +284 -0
  377. package/src/handlers/entity/attrib.ts +29 -0
  378. package/src/handlers/entity/circle.ts +47 -0
  379. package/src/handlers/entity/common.ts +79 -0
  380. package/src/handlers/entity/dimension.ts +217 -0
  381. package/src/handlers/entity/ellipse.ts +55 -0
  382. package/src/handlers/entity/hatch.ts +471 -0
  383. package/src/handlers/entity/insert.ts +73 -0
  384. package/src/handlers/entity/line.ts +56 -0
  385. package/src/handlers/entity/lwpolyline.ts +54 -0
  386. package/src/handlers/entity/mtext.ts +150 -0
  387. package/src/handlers/entity/ole2Frame.ts +64 -0
  388. package/src/handlers/entity/point.ts +47 -0
  389. package/src/handlers/entity/polyline.ts +49 -0
  390. package/src/handlers/entity/solid.ts +73 -0
  391. package/src/handlers/entity/spline.ts +103 -0
  392. package/src/handlers/entity/text.ts +83 -0
  393. package/src/handlers/entity/threeDFace.ts +69 -0
  394. package/src/handlers/entity/vertex.ts +55 -0
  395. package/src/handlers/entity/viewport.ts +119 -0
  396. package/src/handlers/header.ts +73 -0
  397. package/src/handlers/objects.ts +152 -0
  398. package/src/handlers/tables.ts +581 -0
  399. package/src/index.ts +19 -0
  400. package/src/parseString.ts +97 -0
  401. package/src/toPolylines.ts +47 -0
  402. package/src/toSVG.ts +518 -0
  403. package/src/types/README.md +91 -0
  404. package/src/types/arc-entity.ts +10 -0
  405. package/src/types/base-entity.ts +25 -0
  406. package/src/types/circle-entity.ts +8 -0
  407. package/src/types/common.ts +37 -0
  408. package/src/types/dimension-entity.ts +23 -0
  409. package/src/types/dxf.ts +64 -0
  410. package/src/types/ellipse-entity.ts +13 -0
  411. package/src/types/entity.ts +32 -0
  412. package/src/types/handler-internal.ts +51 -0
  413. package/src/types/handler.ts +10 -0
  414. package/src/types/hatch-entity.ts +127 -0
  415. package/src/types/helper.ts +12 -0
  416. package/src/types/index.ts +53 -0
  417. package/src/types/insert-entity.ts +19 -0
  418. package/src/types/layer-groups.ts +8 -0
  419. package/src/types/line-entity.ts +10 -0
  420. package/src/types/mtext-entity.ts +35 -0
  421. package/src/types/ole2frame-entity.ts +35 -0
  422. package/src/types/options.ts +17 -0
  423. package/src/types/point-entity.ts +7 -0
  424. package/src/types/polyline-entity.ts +20 -0
  425. package/src/types/polylines.ts +22 -0
  426. package/src/types/solid-entity.ts +9 -0
  427. package/src/types/spline-entity.ts +12 -0
  428. package/src/types/svg.ts +31 -0
  429. package/src/types/tables.ts +414 -0
  430. package/src/types/text-entity.ts +23 -0
  431. package/src/types/util-types.ts +27 -0
  432. package/src/types/vecks.d.ts +29 -0
  433. package/src/types/viewport-entity.ts +81 -0
  434. package/src/types.ts +5 -0
  435. package/src/util/bSpline.ts +97 -0
  436. package/src/util/colors.ts +266 -0
  437. package/src/util/createArcForLWPolyline.ts +93 -0
  438. package/src/util/diagram.png +0 -0
  439. package/src/util/dxfColorToRGB.ts +106 -0
  440. package/src/util/insertKnot.ts +69 -0
  441. package/src/util/logger.ts +23 -0
  442. package/src/util/rgbToColorAttribute.ts +14 -0
  443. package/src/util/rotate.ts +14 -0
  444. package/src/util/round10.ts +24 -0
  445. package/src/util/toPiecewiseBezier.ts +70 -0
  446. package/src/util/transformBoundingBoxAndElement.ts +74 -0
  447. package/tsconfig.json +34 -0
@@ -0,0 +1,23 @@
1
+ import colors from "./util/colors";
2
+ import logger from "./util/logger";
3
+ function getRGBForEntity(layers, entity) {
4
+ const layerTable = layers[entity.layer ?? "0"];
5
+ if (layerTable) {
6
+ const colorDefinedInEntity = "colorNumber" in entity && entity.colorNumber !== 256;
7
+ const colorNumber = colorDefinedInEntity ? entity.colorNumber : layerTable.colorNumber;
8
+ const rgb = colors[colorNumber ?? 0];
9
+ if (rgb) {
10
+ return rgb;
11
+ } else {
12
+ logger.warn("Color index", colorNumber, "invalid, defaulting to black");
13
+ return [0, 0, 0];
14
+ }
15
+ } else {
16
+ logger.warn("no layer table for layer:" + entity.layer);
17
+ return [0, 0, 0];
18
+ }
19
+ }
20
+ export {
21
+ getRGBForEntity as default
22
+ };
23
+ //# sourceMappingURL=getRGBForEntity.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/getRGBForEntity.ts"],
4
+ "sourcesContent": ["import colors from './util/colors'\nimport logger from './util/logger'\n\nimport type { ColorRGB, Entity, LayerTable } from './types'\n\nexport default function getRGBForEntity(\n layers: { [layerName: string]: LayerTable },\n entity: Entity,\n): ColorRGB {\n const layerTable = layers[entity.layer ?? '0']\n if (layerTable) {\n const colorDefinedInEntity =\n 'colorNumber' in entity && entity.colorNumber !== 256\n const colorNumber = colorDefinedInEntity\n ? entity.colorNumber\n : layerTable.colorNumber\n const rgb = colors[colorNumber ?? 0]\n if (rgb) {\n return rgb\n } else {\n logger.warn('Color index', colorNumber, 'invalid, defaulting to black')\n return [0, 0, 0]\n }\n } else {\n logger.warn('no layer table for layer:' + entity.layer)\n return [0, 0, 0]\n }\n}\n"],
5
+ "mappings": "AAAA,OAAO,YAAY;AACnB,OAAO,YAAY;AAIJ,SAAR,gBACL,QACA,QACU;AACV,QAAM,aAAa,OAAO,OAAO,SAAS,GAAG;AAC7C,MAAI,YAAY;AACd,UAAM,uBACJ,iBAAiB,UAAU,OAAO,gBAAgB;AACpD,UAAM,cAAc,uBAChB,OAAO,cACP,WAAW;AACf,UAAM,MAAM,OAAO,eAAe,CAAC;AACnC,QAAI,KAAK;AACP,aAAO;AAAA,IACT,OAAO;AACL,aAAO,KAAK,eAAe,aAAa,8BAA8B;AACtE,aAAO,CAAC,GAAG,GAAG,CAAC;AAAA,IACjB;AAAA,EACF,OAAO;AACL,WAAO,KAAK,8BAA8B,OAAO,KAAK;AACtD,WAAO,CAAC,GAAG,GAAG,CAAC;AAAA,EACjB;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var groupEntitiesByLayer_exports = {};
20
+ __export(groupEntitiesByLayer_exports, {
21
+ default: () => groupEntitiesByLayer
22
+ });
23
+ module.exports = __toCommonJS(groupEntitiesByLayer_exports);
24
+ function groupEntitiesByLayer(entities) {
25
+ return entities.reduce((acc, entity) => {
26
+ const layer = entity.layer ?? "0";
27
+ if (!acc[layer]) {
28
+ acc[layer] = [];
29
+ }
30
+ acc[layer].push(entity);
31
+ return acc;
32
+ }, {});
33
+ }
34
+ //# sourceMappingURL=groupEntitiesByLayer.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/groupEntitiesByLayer.ts"],
4
+ "sourcesContent": ["import type { Entity, LayerGroups } from './types'\n\nexport default function groupEntitiesByLayer(\n entities: Entity[],\n): LayerGroups {\n return entities.reduce((acc: LayerGroups, entity) => {\n const layer = entity.layer ?? '0'\n if (!acc[layer]) {\n acc[layer] = []\n }\n acc[layer].push(entity)\n return acc\n }, {})\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEe,SAAR,qBACL,UACa;AACb,SAAO,SAAS,OAAO,CAAC,KAAkB,WAAW;AACnD,UAAM,QAAQ,OAAO,SAAS;AAC9B,QAAI,CAAC,IAAI,KAAK,GAAG;AACf,UAAI,KAAK,IAAI,CAAC;AAAA,IAChB;AACA,QAAI,KAAK,EAAE,KAAK,MAAM;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACP;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ function groupEntitiesByLayer(entities) {
2
+ return entities.reduce((acc, entity) => {
3
+ const layer = entity.layer ?? "0";
4
+ if (!acc[layer]) {
5
+ acc[layer] = [];
6
+ }
7
+ acc[layer].push(entity);
8
+ return acc;
9
+ }, {});
10
+ }
11
+ export {
12
+ groupEntitiesByLayer as default
13
+ };
14
+ //# sourceMappingURL=groupEntitiesByLayer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/groupEntitiesByLayer.ts"],
4
+ "sourcesContent": ["import type { Entity, LayerGroups } from './types'\n\nexport default function groupEntitiesByLayer(\n entities: Entity[],\n): LayerGroups {\n return entities.reduce((acc: LayerGroups, entity) => {\n const layer = entity.layer ?? '0'\n if (!acc[layer]) {\n acc[layer] = []\n }\n acc[layer].push(entity)\n return acc\n }, {})\n}\n"],
5
+ "mappings": "AAEe,SAAR,qBACL,UACa;AACb,SAAO,SAAS,OAAO,CAAC,KAAkB,WAAW;AACnD,UAAM,QAAQ,OAAO,SAAS;AAC9B,QAAI,CAAC,IAAI,KAAK,GAAG;AACf,UAAI,KAAK,IAAI,CAAC;AAAA,IAChB;AACA,QAAI,KAAK,EAAE,KAAK,MAAM;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACP;",
6
+ "names": []
7
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var blocks_exports = {};
30
+ __export(blocks_exports, {
31
+ default: () => parseBlocks
32
+ });
33
+ module.exports = __toCommonJS(blocks_exports);
34
+ var import_entities = __toESM(require("./entities"), 1);
35
+ function parseBlocks(tuples) {
36
+ let state;
37
+ const blocks = [];
38
+ let block;
39
+ let entitiesTuples = [];
40
+ for (const tuple of tuples) {
41
+ const type = tuple[0];
42
+ const value = tuple[1];
43
+ if (value === "BLOCK") {
44
+ state = "block";
45
+ block = {};
46
+ entitiesTuples = [];
47
+ blocks.push(block);
48
+ } else if (value === "ENDBLK") {
49
+ if (block) {
50
+ if (state === "entities" && entitiesTuples) {
51
+ block.entities = (0, import_entities.default)(entitiesTuples);
52
+ } else {
53
+ block.entities = [];
54
+ }
55
+ }
56
+ entitiesTuples = void 0;
57
+ state = void 0;
58
+ } else if (state === "block" && type !== 0 && block) {
59
+ switch (type) {
60
+ case 1:
61
+ block.xref = value;
62
+ break;
63
+ case 2:
64
+ block.name = value;
65
+ break;
66
+ case 10:
67
+ block.x = value;
68
+ break;
69
+ case 20:
70
+ block.y = value;
71
+ break;
72
+ case 30:
73
+ block.z = value;
74
+ break;
75
+ case 67:
76
+ if (value !== 0) block.paperSpace = value;
77
+ break;
78
+ case 410:
79
+ block.layout = value;
80
+ break;
81
+ default:
82
+ break;
83
+ }
84
+ } else if (state === "block" && type === 0) {
85
+ state = "entities";
86
+ if (entitiesTuples) entitiesTuples.push(tuple);
87
+ } else if (state === "entities") {
88
+ if (entitiesTuples) entitiesTuples.push(tuple);
89
+ }
90
+ }
91
+ return blocks;
92
+ }
93
+ //# sourceMappingURL=blocks.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/handlers/blocks.ts"],
4
+ "sourcesContent": ["import type { BlockInternal, DXFTuple } from '../types'\n\nimport entitiesHandler from './entities'\n\nexport default function parseBlocks(tuples: DXFTuple[]): any[] {\n let state: 'block' | 'entities' | undefined\n const blocks: BlockInternal[] = []\n let block: BlockInternal | undefined\n let entitiesTuples: DXFTuple[] | undefined = []\n\n for (const tuple of tuples) {\n const type = tuple[0]\n const value = tuple[1]\n\n if (value === 'BLOCK') {\n state = 'block'\n block = {}\n entitiesTuples = []\n blocks.push(block)\n } else if (value === 'ENDBLK') {\n if (block) {\n if (state === 'entities' && entitiesTuples) {\n block.entities = entitiesHandler(entitiesTuples)\n } else {\n block.entities = []\n }\n }\n entitiesTuples = undefined\n state = undefined\n } else if (state === 'block' && type !== 0 && block) {\n switch (type) {\n case 1:\n block.xref = value\n break\n case 2:\n block.name = value\n break\n case 10:\n block.x = value\n break\n case 20:\n block.y = value\n break\n case 30:\n block.z = value\n break\n case 67:\n if (value !== 0) block.paperSpace = value\n break\n case 410:\n block.layout = value\n break\n default:\n break\n }\n } else if (state === 'block' && type === 0) {\n state = 'entities'\n if (entitiesTuples) entitiesTuples.push(tuple)\n } else if (state === 'entities') {\n if (entitiesTuples) entitiesTuples.push(tuple)\n }\n }\n\n return blocks\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAA4B;AAEb,SAAR,YAA6B,QAA2B;AAC7D,MAAI;AACJ,QAAM,SAA0B,CAAC;AACjC,MAAI;AACJ,MAAI,iBAAyC,CAAC;AAE9C,aAAW,SAAS,QAAQ;AAC1B,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,QAAQ,MAAM,CAAC;AAErB,QAAI,UAAU,SAAS;AACrB,cAAQ;AACR,cAAQ,CAAC;AACT,uBAAiB,CAAC;AAClB,aAAO,KAAK,KAAK;AAAA,IACnB,WAAW,UAAU,UAAU;AAC7B,UAAI,OAAO;AACT,YAAI,UAAU,cAAc,gBAAgB;AAC1C,gBAAM,eAAW,gBAAAA,SAAgB,cAAc;AAAA,QACjD,OAAO;AACL,gBAAM,WAAW,CAAC;AAAA,QACpB;AAAA,MACF;AACA,uBAAiB;AACjB,cAAQ;AAAA,IACV,WAAW,UAAU,WAAW,SAAS,KAAK,OAAO;AACnD,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,gBAAM,OAAO;AACb;AAAA,QACF,KAAK;AACH,gBAAM,OAAO;AACb;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AACV;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AACV;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AACV;AAAA,QACF,KAAK;AACH,cAAI,UAAU,EAAG,OAAM,aAAa;AACpC;AAAA,QACF,KAAK;AACH,gBAAM,SAAS;AACf;AAAA,QACF;AACE;AAAA,MACJ;AAAA,IACF,WAAW,UAAU,WAAW,SAAS,GAAG;AAC1C,cAAQ;AACR,UAAI,eAAgB,gBAAe,KAAK,KAAK;AAAA,IAC/C,WAAW,UAAU,YAAY;AAC/B,UAAI,eAAgB,gBAAe,KAAK,KAAK;AAAA,IAC/C;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": ["entitiesHandler"]
7
+ }
@@ -0,0 +1,63 @@
1
+ import entitiesHandler from "./entities";
2
+ function parseBlocks(tuples) {
3
+ let state;
4
+ const blocks = [];
5
+ let block;
6
+ let entitiesTuples = [];
7
+ for (const tuple of tuples) {
8
+ const type = tuple[0];
9
+ const value = tuple[1];
10
+ if (value === "BLOCK") {
11
+ state = "block";
12
+ block = {};
13
+ entitiesTuples = [];
14
+ blocks.push(block);
15
+ } else if (value === "ENDBLK") {
16
+ if (block) {
17
+ if (state === "entities" && entitiesTuples) {
18
+ block.entities = entitiesHandler(entitiesTuples);
19
+ } else {
20
+ block.entities = [];
21
+ }
22
+ }
23
+ entitiesTuples = void 0;
24
+ state = void 0;
25
+ } else if (state === "block" && type !== 0 && block) {
26
+ switch (type) {
27
+ case 1:
28
+ block.xref = value;
29
+ break;
30
+ case 2:
31
+ block.name = value;
32
+ break;
33
+ case 10:
34
+ block.x = value;
35
+ break;
36
+ case 20:
37
+ block.y = value;
38
+ break;
39
+ case 30:
40
+ block.z = value;
41
+ break;
42
+ case 67:
43
+ if (value !== 0) block.paperSpace = value;
44
+ break;
45
+ case 410:
46
+ block.layout = value;
47
+ break;
48
+ default:
49
+ break;
50
+ }
51
+ } else if (state === "block" && type === 0) {
52
+ state = "entities";
53
+ if (entitiesTuples) entitiesTuples.push(tuple);
54
+ } else if (state === "entities") {
55
+ if (entitiesTuples) entitiesTuples.push(tuple);
56
+ }
57
+ }
58
+ return blocks;
59
+ }
60
+ export {
61
+ parseBlocks as default
62
+ };
63
+ //# sourceMappingURL=blocks.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/handlers/blocks.ts"],
4
+ "sourcesContent": ["import type { BlockInternal, DXFTuple } from '../types'\n\nimport entitiesHandler from './entities'\n\nexport default function parseBlocks(tuples: DXFTuple[]): any[] {\n let state: 'block' | 'entities' | undefined\n const blocks: BlockInternal[] = []\n let block: BlockInternal | undefined\n let entitiesTuples: DXFTuple[] | undefined = []\n\n for (const tuple of tuples) {\n const type = tuple[0]\n const value = tuple[1]\n\n if (value === 'BLOCK') {\n state = 'block'\n block = {}\n entitiesTuples = []\n blocks.push(block)\n } else if (value === 'ENDBLK') {\n if (block) {\n if (state === 'entities' && entitiesTuples) {\n block.entities = entitiesHandler(entitiesTuples)\n } else {\n block.entities = []\n }\n }\n entitiesTuples = undefined\n state = undefined\n } else if (state === 'block' && type !== 0 && block) {\n switch (type) {\n case 1:\n block.xref = value\n break\n case 2:\n block.name = value\n break\n case 10:\n block.x = value\n break\n case 20:\n block.y = value\n break\n case 30:\n block.z = value\n break\n case 67:\n if (value !== 0) block.paperSpace = value\n break\n case 410:\n block.layout = value\n break\n default:\n break\n }\n } else if (state === 'block' && type === 0) {\n state = 'entities'\n if (entitiesTuples) entitiesTuples.push(tuple)\n } else if (state === 'entities') {\n if (entitiesTuples) entitiesTuples.push(tuple)\n }\n }\n\n return blocks\n}\n"],
5
+ "mappings": "AAEA,OAAO,qBAAqB;AAEb,SAAR,YAA6B,QAA2B;AAC7D,MAAI;AACJ,QAAM,SAA0B,CAAC;AACjC,MAAI;AACJ,MAAI,iBAAyC,CAAC;AAE9C,aAAW,SAAS,QAAQ;AAC1B,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,QAAQ,MAAM,CAAC;AAErB,QAAI,UAAU,SAAS;AACrB,cAAQ;AACR,cAAQ,CAAC;AACT,uBAAiB,CAAC;AAClB,aAAO,KAAK,KAAK;AAAA,IACnB,WAAW,UAAU,UAAU;AAC7B,UAAI,OAAO;AACT,YAAI,UAAU,cAAc,gBAAgB;AAC1C,gBAAM,WAAW,gBAAgB,cAAc;AAAA,QACjD,OAAO;AACL,gBAAM,WAAW,CAAC;AAAA,QACpB;AAAA,MACF;AACA,uBAAiB;AACjB,cAAQ;AAAA,IACV,WAAW,UAAU,WAAW,SAAS,KAAK,OAAO;AACnD,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,gBAAM,OAAO;AACb;AAAA,QACF,KAAK;AACH,gBAAM,OAAO;AACb;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AACV;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AACV;AAAA,QACF,KAAK;AACH,gBAAM,IAAI;AACV;AAAA,QACF,KAAK;AACH,cAAI,UAAU,EAAG,OAAM,aAAa;AACpC;AAAA,QACF,KAAK;AACH,gBAAM,SAAS;AACf;AAAA,QACF;AACE;AAAA,MACJ;AAAA,IACF,WAAW,UAAU,WAAW,SAAS,GAAG;AAC1C,cAAQ;AACR,UAAI,eAAgB,gBAAe,KAAK,KAAK;AAAA,IAC/C,WAAW,UAAU,YAAY;AAC/B,UAAI,eAAgB,gBAAe,KAAK,KAAK;AAAA,IAC/C;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var entities_exports = {};
30
+ __export(entities_exports, {
31
+ default: () => parseEntities
32
+ });
33
+ module.exports = __toCommonJS(entities_exports);
34
+ var import_logger = __toESM(require("../util/logger"), 1);
35
+ var import_arc = __toESM(require("./entity/arc"), 1);
36
+ var import_attdef = __toESM(require("./entity/attdef"), 1);
37
+ var import_attrib = __toESM(require("./entity/attrib"), 1);
38
+ var import_circle = __toESM(require("./entity/circle"), 1);
39
+ var import_dimension = __toESM(require("./entity/dimension"), 1);
40
+ var import_ellipse = __toESM(require("./entity/ellipse"), 1);
41
+ var import_hatch = __toESM(require("./entity/hatch"), 1);
42
+ var import_insert = __toESM(require("./entity/insert"), 1);
43
+ var import_line = __toESM(require("./entity/line"), 1);
44
+ var import_lwpolyline = __toESM(require("./entity/lwpolyline"), 1);
45
+ var import_mtext = __toESM(require("./entity/mtext"), 1);
46
+ var import_ole2Frame = __toESM(require("./entity/ole2Frame"), 1);
47
+ var import_point = __toESM(require("./entity/point"), 1);
48
+ var import_polyline = __toESM(require("./entity/polyline"), 1);
49
+ var import_solid = __toESM(require("./entity/solid"), 1);
50
+ var import_spline = __toESM(require("./entity/spline"), 1);
51
+ var import_text = __toESM(require("./entity/text"), 1);
52
+ var import_threeDFace = __toESM(require("./entity/threeDFace"), 1);
53
+ var import_vertex = __toESM(require("./entity/vertex"), 1);
54
+ var import_viewport = __toESM(require("./entity/viewport"), 1);
55
+ const handlers = [
56
+ import_point.default,
57
+ import_line.default,
58
+ import_lwpolyline.default,
59
+ import_polyline.default,
60
+ import_vertex.default,
61
+ import_circle.default,
62
+ import_arc.default,
63
+ import_ellipse.default,
64
+ import_spline.default,
65
+ import_solid.default,
66
+ import_hatch.default,
67
+ import_mtext.default,
68
+ import_attdef.default,
69
+ import_attrib.default,
70
+ import_text.default,
71
+ import_insert.default,
72
+ import_dimension.default,
73
+ import_threeDFace.default,
74
+ import_viewport.default,
75
+ import_ole2Frame.default
76
+ ].reduce((acc, mod) => {
77
+ acc[mod.TYPE] = mod;
78
+ return acc;
79
+ }, {});
80
+ function parseEntities(tuples) {
81
+ const entities = [];
82
+ const entityGroups = [];
83
+ let currentEntityTuples = [];
84
+ for (const tuple of tuples) {
85
+ const type = tuple[0];
86
+ if (type === 0) {
87
+ currentEntityTuples = [];
88
+ entityGroups.push(currentEntityTuples);
89
+ }
90
+ currentEntityTuples.push(tuple);
91
+ }
92
+ let currentPolyline;
93
+ for (const tuples2 of entityGroups) {
94
+ const entityType = tuples2[0][1];
95
+ const contentTuples = tuples2.slice(1);
96
+ if (entityType in handlers) {
97
+ const e = handlers[entityType].process(contentTuples);
98
+ if (entityType === "POLYLINE") {
99
+ currentPolyline = e;
100
+ entities.push(e);
101
+ } else if (entityType === "VERTEX") {
102
+ if (currentPolyline) {
103
+ currentPolyline.vertices.push(e);
104
+ } else {
105
+ import_logger.default.error("ignoring invalid VERTEX entity");
106
+ }
107
+ } else if (entityType === "SEQEND") {
108
+ currentPolyline = void 0;
109
+ } else {
110
+ entities.push(e);
111
+ }
112
+ } else {
113
+ import_logger.default.warn("unsupported type in ENTITIES section:", entityType);
114
+ }
115
+ }
116
+ return entities;
117
+ }
118
+ //# sourceMappingURL=entities.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/handlers/entities.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../types/dxf'\nimport type { Entity } from '../types/entity'\nimport type { PolylineEntity } from '../types/polyline-entity'\n\nimport logger from '../util/logger'\nimport arc from './entity/arc'\nimport attdef from './entity/attdef'\nimport attrib from './entity/attrib'\nimport circle from './entity/circle'\nimport dimension from './entity/dimension'\nimport ellipse from './entity/ellipse'\nimport hatch from './entity/hatch'\nimport insert from './entity/insert'\nimport line from './entity/line'\nimport lwpolyline from './entity/lwpolyline'\nimport mtext from './entity/mtext'\nimport ole2Frame from './entity/ole2Frame'\nimport point from './entity/point'\nimport polyline from './entity/polyline'\nimport solid from './entity/solid'\nimport spline from './entity/spline'\nimport text from './entity/text'\nimport threeDFace from './entity/threeDFace'\nimport vertex from './entity/vertex'\nimport viewport from './entity/viewport'\n\ninterface EntityHandler {\n TYPE: string\n process: (tuples: DXFTuple[]) => Entity\n}\n\nconst handlers: Record<string, EntityHandler> = [\n point,\n line,\n lwpolyline,\n polyline,\n vertex,\n circle,\n arc,\n ellipse,\n spline,\n solid,\n hatch,\n mtext,\n attdef,\n attrib,\n text,\n insert,\n dimension,\n threeDFace,\n viewport,\n ole2Frame,\n].reduce((acc, mod) => {\n acc[mod.TYPE] = mod\n return acc\n}, {} as Record<string, EntityHandler>)\n\n/**\n * Parses entities from DXF tuples\n *\n * @param tuples - Array of DXF tuples representing entities\n * @returns Array of parsed entities\n */\nexport default function parseEntities(tuples: DXFTuple[]): Entity[] {\n const entities: Entity[] = []\n const entityGroups: DXFTuple[][] = []\n let currentEntityTuples: DXFTuple[] = []\n\n // First group them together for easy processing\n for (const tuple of tuples) {\n const type = tuple[0]\n if (type === 0) {\n currentEntityTuples = []\n entityGroups.push(currentEntityTuples)\n }\n currentEntityTuples.push(tuple)\n }\n\n let currentPolyline: PolylineEntity | undefined\n for (const tuples of entityGroups) {\n const entityType = tuples[0][1]\n const contentTuples = tuples.slice(1)\n\n if (entityType in handlers) {\n const e = handlers[entityType].process(contentTuples)\n // \"POLYLINE\" cannot be parsed in isolation, it is followed by\n // N \"VERTEX\" entities and ended with a \"SEQEND\" entity.\n // Essentially we convert POLYLINE to LWPOLYLINE - the extra\n // vertex flags are not supported\n if (entityType === 'POLYLINE') {\n currentPolyline = e as PolylineEntity\n entities.push(e)\n } else if (entityType === 'VERTEX') {\n if (currentPolyline) {\n currentPolyline.vertices.push(e as any)\n } else {\n logger.error('ignoring invalid VERTEX entity')\n }\n } else if (entityType === 'SEQEND') {\n currentPolyline = undefined\n } else {\n // All other entities\n entities.push(e)\n }\n } else {\n logger.warn('unsupported type in ENTITIES section:', entityType)\n }\n }\n\n return entities\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,oBAAmB;AACnB,iBAAgB;AAChB,oBAAmB;AACnB,oBAAmB;AACnB,oBAAmB;AACnB,uBAAsB;AACtB,qBAAoB;AACpB,mBAAkB;AAClB,oBAAmB;AACnB,kBAAiB;AACjB,wBAAuB;AACvB,mBAAkB;AAClB,uBAAsB;AACtB,mBAAkB;AAClB,sBAAqB;AACrB,mBAAkB;AAClB,oBAAmB;AACnB,kBAAiB;AACjB,wBAAuB;AACvB,oBAAmB;AACnB,sBAAqB;AAOrB,MAAM,WAA0C;AAAA,EAC9C,aAAAA;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AACF,EAAE,OAAO,CAAC,KAAK,QAAQ;AACrB,MAAI,IAAI,IAAI,IAAI;AAChB,SAAO;AACT,GAAG,CAAC,CAAkC;AAQvB,SAAR,cAA+B,QAA8B;AAClE,QAAM,WAAqB,CAAC;AAC5B,QAAM,eAA6B,CAAC;AACpC,MAAI,sBAAkC,CAAC;AAGvC,aAAW,SAAS,QAAQ;AAC1B,UAAM,OAAO,MAAM,CAAC;AACpB,QAAI,SAAS,GAAG;AACd,4BAAsB,CAAC;AACvB,mBAAa,KAAK,mBAAmB;AAAA,IACvC;AACA,wBAAoB,KAAK,KAAK;AAAA,EAChC;AAEA,MAAI;AACJ,aAAWC,WAAU,cAAc;AACjC,UAAM,aAAaA,QAAO,CAAC,EAAE,CAAC;AAC9B,UAAM,gBAAgBA,QAAO,MAAM,CAAC;AAEpC,QAAI,cAAc,UAAU;AAC1B,YAAM,IAAI,SAAS,UAAU,EAAE,QAAQ,aAAa;AAKpD,UAAI,eAAe,YAAY;AAC7B,0BAAkB;AAClB,iBAAS,KAAK,CAAC;AAAA,MACjB,WAAW,eAAe,UAAU;AAClC,YAAI,iBAAiB;AACnB,0BAAgB,SAAS,KAAK,CAAQ;AAAA,QACxC,OAAO;AACL,wBAAAC,QAAO,MAAM,gCAAgC;AAAA,QAC/C;AAAA,MACF,WAAW,eAAe,UAAU;AAClC,0BAAkB;AAAA,MACpB,OAAO;AAEL,iBAAS,KAAK,CAAC;AAAA,MACjB;AAAA,IACF,OAAO;AACL,oBAAAA,QAAO,KAAK,yCAAyC,UAAU;AAAA,IACjE;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": ["point", "line", "lwpolyline", "polyline", "vertex", "circle", "arc", "ellipse", "spline", "solid", "hatch", "mtext", "attdef", "attrib", "text", "insert", "dimension", "threeDFace", "viewport", "ole2Frame", "tuples", "logger"]
7
+ }
@@ -0,0 +1,88 @@
1
+ import logger from "../util/logger";
2
+ import arc from "./entity/arc";
3
+ import attdef from "./entity/attdef";
4
+ import attrib from "./entity/attrib";
5
+ import circle from "./entity/circle";
6
+ import dimension from "./entity/dimension";
7
+ import ellipse from "./entity/ellipse";
8
+ import hatch from "./entity/hatch";
9
+ import insert from "./entity/insert";
10
+ import line from "./entity/line";
11
+ import lwpolyline from "./entity/lwpolyline";
12
+ import mtext from "./entity/mtext";
13
+ import ole2Frame from "./entity/ole2Frame";
14
+ import point from "./entity/point";
15
+ import polyline from "./entity/polyline";
16
+ import solid from "./entity/solid";
17
+ import spline from "./entity/spline";
18
+ import text from "./entity/text";
19
+ import threeDFace from "./entity/threeDFace";
20
+ import vertex from "./entity/vertex";
21
+ import viewport from "./entity/viewport";
22
+ const handlers = [
23
+ point,
24
+ line,
25
+ lwpolyline,
26
+ polyline,
27
+ vertex,
28
+ circle,
29
+ arc,
30
+ ellipse,
31
+ spline,
32
+ solid,
33
+ hatch,
34
+ mtext,
35
+ attdef,
36
+ attrib,
37
+ text,
38
+ insert,
39
+ dimension,
40
+ threeDFace,
41
+ viewport,
42
+ ole2Frame
43
+ ].reduce((acc, mod) => {
44
+ acc[mod.TYPE] = mod;
45
+ return acc;
46
+ }, {});
47
+ function parseEntities(tuples) {
48
+ const entities = [];
49
+ const entityGroups = [];
50
+ let currentEntityTuples = [];
51
+ for (const tuple of tuples) {
52
+ const type = tuple[0];
53
+ if (type === 0) {
54
+ currentEntityTuples = [];
55
+ entityGroups.push(currentEntityTuples);
56
+ }
57
+ currentEntityTuples.push(tuple);
58
+ }
59
+ let currentPolyline;
60
+ for (const tuples2 of entityGroups) {
61
+ const entityType = tuples2[0][1];
62
+ const contentTuples = tuples2.slice(1);
63
+ if (entityType in handlers) {
64
+ const e = handlers[entityType].process(contentTuples);
65
+ if (entityType === "POLYLINE") {
66
+ currentPolyline = e;
67
+ entities.push(e);
68
+ } else if (entityType === "VERTEX") {
69
+ if (currentPolyline) {
70
+ currentPolyline.vertices.push(e);
71
+ } else {
72
+ logger.error("ignoring invalid VERTEX entity");
73
+ }
74
+ } else if (entityType === "SEQEND") {
75
+ currentPolyline = void 0;
76
+ } else {
77
+ entities.push(e);
78
+ }
79
+ } else {
80
+ logger.warn("unsupported type in ENTITIES section:", entityType);
81
+ }
82
+ }
83
+ return entities;
84
+ }
85
+ export {
86
+ parseEntities as default
87
+ };
88
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/handlers/entities.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../types/dxf'\nimport type { Entity } from '../types/entity'\nimport type { PolylineEntity } from '../types/polyline-entity'\n\nimport logger from '../util/logger'\nimport arc from './entity/arc'\nimport attdef from './entity/attdef'\nimport attrib from './entity/attrib'\nimport circle from './entity/circle'\nimport dimension from './entity/dimension'\nimport ellipse from './entity/ellipse'\nimport hatch from './entity/hatch'\nimport insert from './entity/insert'\nimport line from './entity/line'\nimport lwpolyline from './entity/lwpolyline'\nimport mtext from './entity/mtext'\nimport ole2Frame from './entity/ole2Frame'\nimport point from './entity/point'\nimport polyline from './entity/polyline'\nimport solid from './entity/solid'\nimport spline from './entity/spline'\nimport text from './entity/text'\nimport threeDFace from './entity/threeDFace'\nimport vertex from './entity/vertex'\nimport viewport from './entity/viewport'\n\ninterface EntityHandler {\n TYPE: string\n process: (tuples: DXFTuple[]) => Entity\n}\n\nconst handlers: Record<string, EntityHandler> = [\n point,\n line,\n lwpolyline,\n polyline,\n vertex,\n circle,\n arc,\n ellipse,\n spline,\n solid,\n hatch,\n mtext,\n attdef,\n attrib,\n text,\n insert,\n dimension,\n threeDFace,\n viewport,\n ole2Frame,\n].reduce((acc, mod) => {\n acc[mod.TYPE] = mod\n return acc\n}, {} as Record<string, EntityHandler>)\n\n/**\n * Parses entities from DXF tuples\n *\n * @param tuples - Array of DXF tuples representing entities\n * @returns Array of parsed entities\n */\nexport default function parseEntities(tuples: DXFTuple[]): Entity[] {\n const entities: Entity[] = []\n const entityGroups: DXFTuple[][] = []\n let currentEntityTuples: DXFTuple[] = []\n\n // First group them together for easy processing\n for (const tuple of tuples) {\n const type = tuple[0]\n if (type === 0) {\n currentEntityTuples = []\n entityGroups.push(currentEntityTuples)\n }\n currentEntityTuples.push(tuple)\n }\n\n let currentPolyline: PolylineEntity | undefined\n for (const tuples of entityGroups) {\n const entityType = tuples[0][1]\n const contentTuples = tuples.slice(1)\n\n if (entityType in handlers) {\n const e = handlers[entityType].process(contentTuples)\n // \"POLYLINE\" cannot be parsed in isolation, it is followed by\n // N \"VERTEX\" entities and ended with a \"SEQEND\" entity.\n // Essentially we convert POLYLINE to LWPOLYLINE - the extra\n // vertex flags are not supported\n if (entityType === 'POLYLINE') {\n currentPolyline = e as PolylineEntity\n entities.push(e)\n } else if (entityType === 'VERTEX') {\n if (currentPolyline) {\n currentPolyline.vertices.push(e as any)\n } else {\n logger.error('ignoring invalid VERTEX entity')\n }\n } else if (entityType === 'SEQEND') {\n currentPolyline = undefined\n } else {\n // All other entities\n entities.push(e)\n }\n } else {\n logger.warn('unsupported type in ENTITIES section:', entityType)\n }\n }\n\n return entities\n}\n"],
5
+ "mappings": "AAIA,OAAO,YAAY;AACnB,OAAO,SAAS;AAChB,OAAO,YAAY;AACnB,OAAO,YAAY;AACnB,OAAO,YAAY;AACnB,OAAO,eAAe;AACtB,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,YAAY;AACnB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,OAAO,WAAW;AAClB,OAAO,eAAe;AACtB,OAAO,WAAW;AAClB,OAAO,cAAc;AACrB,OAAO,WAAW;AAClB,OAAO,YAAY;AACnB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,OAAO,YAAY;AACnB,OAAO,cAAc;AAOrB,MAAM,WAA0C;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,OAAO,CAAC,KAAK,QAAQ;AACrB,MAAI,IAAI,IAAI,IAAI;AAChB,SAAO;AACT,GAAG,CAAC,CAAkC;AAQvB,SAAR,cAA+B,QAA8B;AAClE,QAAM,WAAqB,CAAC;AAC5B,QAAM,eAA6B,CAAC;AACpC,MAAI,sBAAkC,CAAC;AAGvC,aAAW,SAAS,QAAQ;AAC1B,UAAM,OAAO,MAAM,CAAC;AACpB,QAAI,SAAS,GAAG;AACd,4BAAsB,CAAC;AACvB,mBAAa,KAAK,mBAAmB;AAAA,IACvC;AACA,wBAAoB,KAAK,KAAK;AAAA,EAChC;AAEA,MAAI;AACJ,aAAWA,WAAU,cAAc;AACjC,UAAM,aAAaA,QAAO,CAAC,EAAE,CAAC;AAC9B,UAAM,gBAAgBA,QAAO,MAAM,CAAC;AAEpC,QAAI,cAAc,UAAU;AAC1B,YAAM,IAAI,SAAS,UAAU,EAAE,QAAQ,aAAa;AAKpD,UAAI,eAAe,YAAY;AAC7B,0BAAkB;AAClB,iBAAS,KAAK,CAAC;AAAA,MACjB,WAAW,eAAe,UAAU;AAClC,YAAI,iBAAiB;AACnB,0BAAgB,SAAS,KAAK,CAAQ;AAAA,QACxC,OAAO;AACL,iBAAO,MAAM,gCAAgC;AAAA,QAC/C;AAAA,MACF,WAAW,eAAe,UAAU;AAClC,0BAAkB;AAAA,MACpB,OAAO;AAEL,iBAAS,KAAK,CAAC;AAAA,MACjB;AAAA,IACF,OAAO;AACL,aAAO,KAAK,yCAAyC,UAAU;AAAA,IACjE;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": ["tuples"]
7
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var arc_exports = {};
30
+ __export(arc_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => arc_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(arc_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "ARC";
38
+ const process = (tuples) => {
39
+ return tuples.reduce(
40
+ (entity, tuple) => {
41
+ const type = tuple[0];
42
+ const value = tuple[1];
43
+ switch (type) {
44
+ case 10:
45
+ entity.x = value;
46
+ break;
47
+ case 20:
48
+ entity.y = value;
49
+ break;
50
+ case 30:
51
+ entity.z = value;
52
+ break;
53
+ case 39:
54
+ entity.thickness = value;
55
+ break;
56
+ case 40:
57
+ entity.r = value;
58
+ break;
59
+ case 50:
60
+ entity.startAngle = value / 180 * Math.PI;
61
+ break;
62
+ case 51:
63
+ entity.endAngle = value / 180 * Math.PI;
64
+ break;
65
+ default:
66
+ Object.assign(entity, (0, import_common.default)(type, value));
67
+ break;
68
+ }
69
+ return entity;
70
+ },
71
+ {
72
+ type: TYPE
73
+ }
74
+ );
75
+ };
76
+ var arc_default = { TYPE, process };
77
+ // Annotate the CommonJS export names for ESM import in node:
78
+ 0 && (module.exports = {
79
+ TYPE,
80
+ process
81
+ });
82
+ //# sourceMappingURL=arc.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/arc.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'ARC'\n\n\ninterface ArcEntity {\n type: typeof TYPE\n x?: number\n y?: number\n z?: number\n thickness?: number\n r?: number\n startAngle?: number\n endAngle?: number\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): ArcEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 10:\n entity.x = value as number\n break\n case 20:\n entity.y = value as number\n break\n case 30:\n entity.z = value as number\n break\n case 39:\n entity.thickness = value as number\n break\n case 40:\n entity.r = value as number\n break\n case 50:\n // *Someone* decided that ELLIPSE angles are in radians but\n // ARC angles are in degrees\n entity.startAngle = ((value as number) / 180) * Math.PI\n break\n case 51:\n entity.endAngle = ((value as number) / 180) * Math.PI\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n } as ArcEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAeb,MAAM,UAAU,CAAC,WAAkC;AACxD,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AACrB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,YAAY;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AAGH,iBAAO,aAAe,QAAmB,MAAO,KAAK;AACrD;AAAA,QACF,KAAK;AACH,iBAAO,WAAa,QAAmB,MAAO,KAAK;AACnD;AAAA,QACF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,cAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": ["common"]
7
+ }