@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,153 @@
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 viewport_exports = {};
30
+ __export(viewport_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => viewport_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(viewport_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "VIEWPORT";
38
+ const process = (tuples) => {
39
+ return tuples.reduce(
40
+ (entity, tuple) => {
41
+ const type = tuple[0];
42
+ const value = tuple[1];
43
+ const coordMap = {
44
+ 10: { obj: "center", prop: "x" },
45
+ 20: { obj: "center", prop: "y" },
46
+ 30: { obj: "center", prop: "z" },
47
+ 12: { obj: "centerDCS", prop: "x" },
48
+ 22: { obj: "centerDCS", prop: "y" },
49
+ 13: { obj: "snap", prop: "x" },
50
+ 23: { obj: "snap", prop: "y" },
51
+ 14: { obj: "snapSpacing", prop: "x" },
52
+ 24: { obj: "snapSpacing", prop: "y" },
53
+ 15: { obj: "gridSpacing", prop: "x" },
54
+ 25: { obj: "gridSpacing", prop: "y" },
55
+ 16: { obj: "direction", prop: "x" },
56
+ 26: { obj: "direction", prop: "y" },
57
+ 36: { obj: "direction", prop: "z" },
58
+ 17: { obj: "target", prop: "x" },
59
+ 27: { obj: "target", prop: "y" },
60
+ 37: { obj: "target", prop: "z" }
61
+ };
62
+ if (coordMap[type]) {
63
+ const { obj, prop } = coordMap[type];
64
+ const target = entity[obj];
65
+ if (target && typeof target === "object") {
66
+ ;
67
+ target[prop] = Number.parseFloat(String(value));
68
+ }
69
+ } else {
70
+ switch (type) {
71
+ case 1:
72
+ entity.layout = Number.parseFloat(String(value));
73
+ break;
74
+ case 40:
75
+ entity.width = Number.parseFloat(String(value));
76
+ break;
77
+ case 41:
78
+ entity.height = Number.parseFloat(String(value));
79
+ break;
80
+ case 50:
81
+ entity.snapAngle = Number.parseFloat(String(value));
82
+ break;
83
+ case 51:
84
+ entity.angle = Number.parseFloat(String(value));
85
+ break;
86
+ case 68:
87
+ entity.status = value;
88
+ break;
89
+ case 69:
90
+ entity.id = value;
91
+ break;
92
+ case 90:
93
+ entity.flags = value;
94
+ break;
95
+ case 110:
96
+ entity.x = Number.parseFloat(String(value));
97
+ break;
98
+ case 120:
99
+ entity.y = Number.parseFloat(String(value));
100
+ break;
101
+ case 130:
102
+ entity.z = Number.parseFloat(String(value));
103
+ break;
104
+ case 111:
105
+ entity.xAxisX = Number.parseFloat(String(value));
106
+ break;
107
+ case 121:
108
+ entity.xAxisY = Number.parseFloat(String(value));
109
+ break;
110
+ case 131:
111
+ entity.xAxisZ = Number.parseFloat(String(value));
112
+ break;
113
+ case 112:
114
+ entity.xAxisX = Number.parseFloat(String(value));
115
+ break;
116
+ case 122:
117
+ entity.xAxisY = Number.parseFloat(String(value));
118
+ break;
119
+ case 132:
120
+ entity.xAxisZ = Number.parseFloat(String(value));
121
+ break;
122
+ case 146:
123
+ entity.elevation = Number.parseFloat(String(value));
124
+ break;
125
+ case 281:
126
+ entity.render = value;
127
+ break;
128
+ default:
129
+ Object.assign(entity, (0, import_common.default)(type, value));
130
+ break;
131
+ }
132
+ }
133
+ return entity;
134
+ },
135
+ {
136
+ type: TYPE,
137
+ center: {},
138
+ centerDCS: {},
139
+ snap: {},
140
+ snapSpacing: {},
141
+ gridSpacing: {},
142
+ direction: {},
143
+ target: {}
144
+ }
145
+ );
146
+ };
147
+ var viewport_default = { TYPE, process };
148
+ // Annotate the CommonJS export names for ESM import in node:
149
+ 0 && (module.exports = {
150
+ TYPE,
151
+ process
152
+ });
153
+ //# sourceMappingURL=viewport.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/viewport.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, ViewportEntity } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'VIEWPORT'\n\nexport const process = (tuples: DXFTuple[]): ViewportEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n // Map coordinate cases to their properties\n const coordMap: Record<number, { obj: keyof ViewportEntity; prop: string }> = {\n 10: { obj: 'center', prop: 'x' },\n 20: { obj: 'center', prop: 'y' },\n 30: { obj: 'center', prop: 'z' },\n 12: { obj: 'centerDCS', prop: 'x' },\n 22: { obj: 'centerDCS', prop: 'y' },\n 13: { obj: 'snap', prop: 'x' },\n 23: { obj: 'snap', prop: 'y' },\n 14: { obj: 'snapSpacing', prop: 'x' },\n 24: { obj: 'snapSpacing', prop: 'y' },\n 15: { obj: 'gridSpacing', prop: 'x' },\n 25: { obj: 'gridSpacing', prop: 'y' },\n 16: { obj: 'direction', prop: 'x' },\n 26: { obj: 'direction', prop: 'y' },\n 36: { obj: 'direction', prop: 'z' },\n 17: { obj: 'target', prop: 'x' },\n 27: { obj: 'target', prop: 'y' },\n 37: { obj: 'target', prop: 'z' },\n }\n\n if (coordMap[type]) {\n const { obj, prop } = coordMap[type]\n const target = entity[obj]\n if (target && typeof target === 'object') {\n ;(target as any)[prop] = Number.parseFloat(String(value))\n }\n } else {\n switch (type) {\n case 1:\n entity.layout = Number.parseFloat(String(value))\n break\n case 40:\n entity.width = Number.parseFloat(String(value))\n break\n case 41:\n entity.height = Number.parseFloat(String(value))\n break\n case 50:\n entity.snapAngle = Number.parseFloat(String(value))\n break\n case 51:\n entity.angle = Number.parseFloat(String(value))\n break\n case 68:\n entity.status = value\n break\n case 69:\n entity.id = value\n break\n case 90:\n entity.flags = value\n break\n case 110:\n entity.x = Number.parseFloat(String(value))\n break\n case 120:\n entity.y = Number.parseFloat(String(value))\n break\n case 130:\n entity.z = Number.parseFloat(String(value))\n break\n case 111:\n entity.xAxisX = Number.parseFloat(String(value))\n break\n case 121:\n entity.xAxisY = Number.parseFloat(String(value))\n break\n case 131:\n entity.xAxisZ = Number.parseFloat(String(value))\n break\n case 112:\n entity.xAxisX = Number.parseFloat(String(value))\n break\n case 122:\n entity.xAxisY = Number.parseFloat(String(value))\n break\n case 132:\n entity.xAxisZ = Number.parseFloat(String(value))\n break\n case 146:\n entity.elevation = Number.parseFloat(String(value))\n break\n case 281:\n entity.render = value\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n }\n return entity\n },\n {\n type: TYPE,\n center: {},\n centerDCS: {},\n snap: {},\n snapSpacing: {},\n gridSpacing: {},\n direction: {},\n target: {},\n } as ViewportEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "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",
6
+ "names": ["common"]
7
+ }
@@ -0,0 +1,118 @@
1
+ import common from "./common";
2
+ const TYPE = "VIEWPORT";
3
+ const process = (tuples) => {
4
+ return tuples.reduce(
5
+ (entity, tuple) => {
6
+ const type = tuple[0];
7
+ const value = tuple[1];
8
+ const coordMap = {
9
+ 10: { obj: "center", prop: "x" },
10
+ 20: { obj: "center", prop: "y" },
11
+ 30: { obj: "center", prop: "z" },
12
+ 12: { obj: "centerDCS", prop: "x" },
13
+ 22: { obj: "centerDCS", prop: "y" },
14
+ 13: { obj: "snap", prop: "x" },
15
+ 23: { obj: "snap", prop: "y" },
16
+ 14: { obj: "snapSpacing", prop: "x" },
17
+ 24: { obj: "snapSpacing", prop: "y" },
18
+ 15: { obj: "gridSpacing", prop: "x" },
19
+ 25: { obj: "gridSpacing", prop: "y" },
20
+ 16: { obj: "direction", prop: "x" },
21
+ 26: { obj: "direction", prop: "y" },
22
+ 36: { obj: "direction", prop: "z" },
23
+ 17: { obj: "target", prop: "x" },
24
+ 27: { obj: "target", prop: "y" },
25
+ 37: { obj: "target", prop: "z" }
26
+ };
27
+ if (coordMap[type]) {
28
+ const { obj, prop } = coordMap[type];
29
+ const target = entity[obj];
30
+ if (target && typeof target === "object") {
31
+ ;
32
+ target[prop] = Number.parseFloat(String(value));
33
+ }
34
+ } else {
35
+ switch (type) {
36
+ case 1:
37
+ entity.layout = Number.parseFloat(String(value));
38
+ break;
39
+ case 40:
40
+ entity.width = Number.parseFloat(String(value));
41
+ break;
42
+ case 41:
43
+ entity.height = Number.parseFloat(String(value));
44
+ break;
45
+ case 50:
46
+ entity.snapAngle = Number.parseFloat(String(value));
47
+ break;
48
+ case 51:
49
+ entity.angle = Number.parseFloat(String(value));
50
+ break;
51
+ case 68:
52
+ entity.status = value;
53
+ break;
54
+ case 69:
55
+ entity.id = value;
56
+ break;
57
+ case 90:
58
+ entity.flags = value;
59
+ break;
60
+ case 110:
61
+ entity.x = Number.parseFloat(String(value));
62
+ break;
63
+ case 120:
64
+ entity.y = Number.parseFloat(String(value));
65
+ break;
66
+ case 130:
67
+ entity.z = Number.parseFloat(String(value));
68
+ break;
69
+ case 111:
70
+ entity.xAxisX = Number.parseFloat(String(value));
71
+ break;
72
+ case 121:
73
+ entity.xAxisY = Number.parseFloat(String(value));
74
+ break;
75
+ case 131:
76
+ entity.xAxisZ = Number.parseFloat(String(value));
77
+ break;
78
+ case 112:
79
+ entity.xAxisX = Number.parseFloat(String(value));
80
+ break;
81
+ case 122:
82
+ entity.xAxisY = Number.parseFloat(String(value));
83
+ break;
84
+ case 132:
85
+ entity.xAxisZ = Number.parseFloat(String(value));
86
+ break;
87
+ case 146:
88
+ entity.elevation = Number.parseFloat(String(value));
89
+ break;
90
+ case 281:
91
+ entity.render = value;
92
+ break;
93
+ default:
94
+ Object.assign(entity, common(type, value));
95
+ break;
96
+ }
97
+ }
98
+ return entity;
99
+ },
100
+ {
101
+ type: TYPE,
102
+ center: {},
103
+ centerDCS: {},
104
+ snap: {},
105
+ snapSpacing: {},
106
+ gridSpacing: {},
107
+ direction: {},
108
+ target: {}
109
+ }
110
+ );
111
+ };
112
+ var viewport_default = { TYPE, process };
113
+ export {
114
+ TYPE,
115
+ viewport_default as default,
116
+ process
117
+ };
118
+ //# sourceMappingURL=viewport.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/viewport.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, ViewportEntity } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'VIEWPORT'\n\nexport const process = (tuples: DXFTuple[]): ViewportEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n // Map coordinate cases to their properties\n const coordMap: Record<number, { obj: keyof ViewportEntity; prop: string }> = {\n 10: { obj: 'center', prop: 'x' },\n 20: { obj: 'center', prop: 'y' },\n 30: { obj: 'center', prop: 'z' },\n 12: { obj: 'centerDCS', prop: 'x' },\n 22: { obj: 'centerDCS', prop: 'y' },\n 13: { obj: 'snap', prop: 'x' },\n 23: { obj: 'snap', prop: 'y' },\n 14: { obj: 'snapSpacing', prop: 'x' },\n 24: { obj: 'snapSpacing', prop: 'y' },\n 15: { obj: 'gridSpacing', prop: 'x' },\n 25: { obj: 'gridSpacing', prop: 'y' },\n 16: { obj: 'direction', prop: 'x' },\n 26: { obj: 'direction', prop: 'y' },\n 36: { obj: 'direction', prop: 'z' },\n 17: { obj: 'target', prop: 'x' },\n 27: { obj: 'target', prop: 'y' },\n 37: { obj: 'target', prop: 'z' },\n }\n\n if (coordMap[type]) {\n const { obj, prop } = coordMap[type]\n const target = entity[obj]\n if (target && typeof target === 'object') {\n ;(target as any)[prop] = Number.parseFloat(String(value))\n }\n } else {\n switch (type) {\n case 1:\n entity.layout = Number.parseFloat(String(value))\n break\n case 40:\n entity.width = Number.parseFloat(String(value))\n break\n case 41:\n entity.height = Number.parseFloat(String(value))\n break\n case 50:\n entity.snapAngle = Number.parseFloat(String(value))\n break\n case 51:\n entity.angle = Number.parseFloat(String(value))\n break\n case 68:\n entity.status = value\n break\n case 69:\n entity.id = value\n break\n case 90:\n entity.flags = value\n break\n case 110:\n entity.x = Number.parseFloat(String(value))\n break\n case 120:\n entity.y = Number.parseFloat(String(value))\n break\n case 130:\n entity.z = Number.parseFloat(String(value))\n break\n case 111:\n entity.xAxisX = Number.parseFloat(String(value))\n break\n case 121:\n entity.xAxisY = Number.parseFloat(String(value))\n break\n case 131:\n entity.xAxisZ = Number.parseFloat(String(value))\n break\n case 112:\n entity.xAxisX = Number.parseFloat(String(value))\n break\n case 122:\n entity.xAxisY = Number.parseFloat(String(value))\n break\n case 132:\n entity.xAxisZ = Number.parseFloat(String(value))\n break\n case 146:\n entity.elevation = Number.parseFloat(String(value))\n break\n case 281:\n entity.render = value\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n }\n return entity\n },\n {\n type: TYPE,\n center: {},\n centerDCS: {},\n snap: {},\n snapSpacing: {},\n gridSpacing: {},\n direction: {},\n target: {},\n } as ViewportEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,92 @@
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 header_exports = {};
20
+ __export(header_exports, {
21
+ default: () => parseHeader
22
+ });
23
+ module.exports = __toCommonJS(header_exports);
24
+ function parseHeader(tuples) {
25
+ let state;
26
+ const header = {};
27
+ for (const tuple of tuples) {
28
+ const type = tuple[0];
29
+ const value = tuple[1];
30
+ switch (value) {
31
+ case "$MEASUREMENT": {
32
+ state = "measurement";
33
+ break;
34
+ }
35
+ case "$INSUNITS": {
36
+ state = "insUnits";
37
+ break;
38
+ }
39
+ case "$EXTMIN":
40
+ header.extMin = {};
41
+ state = "extMin";
42
+ break;
43
+ case "$EXTMAX":
44
+ header.extMax = {};
45
+ state = "extMax";
46
+ break;
47
+ case "$DIMASZ":
48
+ header.dimArrowSize = {};
49
+ state = "dimArrowSize";
50
+ break;
51
+ default:
52
+ switch (state) {
53
+ case "extMin":
54
+ case "extMax": {
55
+ const target = header[state];
56
+ if (target) {
57
+ switch (type) {
58
+ case 10:
59
+ target.x = value;
60
+ break;
61
+ case 20:
62
+ target.y = value;
63
+ break;
64
+ case 30:
65
+ target.z = value;
66
+ state = void 0;
67
+ break;
68
+ }
69
+ }
70
+ break;
71
+ }
72
+ case "measurement":
73
+ case "insUnits": {
74
+ if (type === 70) {
75
+ header[state] = value;
76
+ state = void 0;
77
+ }
78
+ break;
79
+ }
80
+ case "dimArrowSize": {
81
+ if (type === 40) {
82
+ header[state] = value;
83
+ state = void 0;
84
+ }
85
+ break;
86
+ }
87
+ }
88
+ }
89
+ }
90
+ return header;
91
+ }
92
+ //# sourceMappingURL=header.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/handlers/header.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, ParsedHeader } from '../types'\n\nexport default function parseHeader(tuples: DXFTuple[]): ParsedHeader {\n let state: 'measurement' | 'insUnits' | 'extMin' | 'extMax' | 'dimArrowSize' | undefined\n const header: ParsedHeader = {}\n\n for (const tuple of tuples) {\n const type = tuple[0]\n const value = tuple[1]\n\n switch (value) {\n case '$MEASUREMENT': {\n state = 'measurement'\n break\n }\n case '$INSUNITS': {\n state = 'insUnits'\n break\n }\n case '$EXTMIN':\n header.extMin = {}\n state = 'extMin'\n break\n case '$EXTMAX':\n header.extMax = {}\n state = 'extMax'\n break\n case '$DIMASZ':\n header.dimArrowSize = {}\n state = 'dimArrowSize'\n break\n default:\n switch (state) {\n case 'extMin':\n case 'extMax': {\n const target = header[state]\n if (target) {\n switch (type) {\n case 10:\n target.x = value as number\n break\n case 20:\n target.y = value as number\n break\n case 30:\n target.z = value as number\n state = undefined\n break\n }\n }\n break\n }\n case 'measurement':\n case 'insUnits': {\n if (type === 70) {\n header[state] = value\n state = undefined\n }\n break\n }\n case 'dimArrowSize': {\n if (type === 40) {\n header[state] = value\n state = undefined\n }\n break\n }\n }\n }\n }\n\n return header\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEe,SAAR,YAA6B,QAAkC;AACpE,MAAI;AACJ,QAAM,SAAuB,CAAC;AAE9B,aAAW,SAAS,QAAQ;AAC1B,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,QAAQ,MAAM,CAAC;AAErB,YAAQ,OAAO;AAAA,MACb,KAAK,gBAAgB;AACnB,gBAAQ;AACR;AAAA,MACF;AAAA,MACA,KAAK,aAAa;AAChB,gBAAQ;AACR;AAAA,MACF;AAAA,MACA,KAAK;AACH,eAAO,SAAS,CAAC;AACjB,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO,SAAS,CAAC;AACjB,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO,eAAe,CAAC;AACvB,gBAAQ;AACR;AAAA,MACF;AACE,gBAAQ,OAAO;AAAA,UACb,KAAK;AAAA,UACL,KAAK,UAAU;AACb,kBAAM,SAAS,OAAO,KAAK;AAC3B,gBAAI,QAAQ;AACV,sBAAQ,MAAM;AAAA,gBACZ,KAAK;AACH,yBAAO,IAAI;AACX;AAAA,gBACF,KAAK;AACH,yBAAO,IAAI;AACX;AAAA,gBACF,KAAK;AACH,yBAAO,IAAI;AACX,0BAAQ;AACR;AAAA,cACJ;AAAA,YACF;AACA;AAAA,UACF;AAAA,UACA,KAAK;AAAA,UACL,KAAK,YAAY;AACf,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,IAAI;AAChB,sBAAQ;AAAA,YACV;AACA;AAAA,UACF;AAAA,UACA,KAAK,gBAAgB;AACnB,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,IAAI;AAChB,sBAAQ;AAAA,YACV;AACA;AAAA,UACF;AAAA,QACF;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,72 @@
1
+ function parseHeader(tuples) {
2
+ let state;
3
+ const header = {};
4
+ for (const tuple of tuples) {
5
+ const type = tuple[0];
6
+ const value = tuple[1];
7
+ switch (value) {
8
+ case "$MEASUREMENT": {
9
+ state = "measurement";
10
+ break;
11
+ }
12
+ case "$INSUNITS": {
13
+ state = "insUnits";
14
+ break;
15
+ }
16
+ case "$EXTMIN":
17
+ header.extMin = {};
18
+ state = "extMin";
19
+ break;
20
+ case "$EXTMAX":
21
+ header.extMax = {};
22
+ state = "extMax";
23
+ break;
24
+ case "$DIMASZ":
25
+ header.dimArrowSize = {};
26
+ state = "dimArrowSize";
27
+ break;
28
+ default:
29
+ switch (state) {
30
+ case "extMin":
31
+ case "extMax": {
32
+ const target = header[state];
33
+ if (target) {
34
+ switch (type) {
35
+ case 10:
36
+ target.x = value;
37
+ break;
38
+ case 20:
39
+ target.y = value;
40
+ break;
41
+ case 30:
42
+ target.z = value;
43
+ state = void 0;
44
+ break;
45
+ }
46
+ }
47
+ break;
48
+ }
49
+ case "measurement":
50
+ case "insUnits": {
51
+ if (type === 70) {
52
+ header[state] = value;
53
+ state = void 0;
54
+ }
55
+ break;
56
+ }
57
+ case "dimArrowSize": {
58
+ if (type === 40) {
59
+ header[state] = value;
60
+ state = void 0;
61
+ }
62
+ break;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ return header;
68
+ }
69
+ export {
70
+ parseHeader as default
71
+ };
72
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/handlers/header.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, ParsedHeader } from '../types'\n\nexport default function parseHeader(tuples: DXFTuple[]): ParsedHeader {\n let state: 'measurement' | 'insUnits' | 'extMin' | 'extMax' | 'dimArrowSize' | undefined\n const header: ParsedHeader = {}\n\n for (const tuple of tuples) {\n const type = tuple[0]\n const value = tuple[1]\n\n switch (value) {\n case '$MEASUREMENT': {\n state = 'measurement'\n break\n }\n case '$INSUNITS': {\n state = 'insUnits'\n break\n }\n case '$EXTMIN':\n header.extMin = {}\n state = 'extMin'\n break\n case '$EXTMAX':\n header.extMax = {}\n state = 'extMax'\n break\n case '$DIMASZ':\n header.dimArrowSize = {}\n state = 'dimArrowSize'\n break\n default:\n switch (state) {\n case 'extMin':\n case 'extMax': {\n const target = header[state]\n if (target) {\n switch (type) {\n case 10:\n target.x = value as number\n break\n case 20:\n target.y = value as number\n break\n case 30:\n target.z = value as number\n state = undefined\n break\n }\n }\n break\n }\n case 'measurement':\n case 'insUnits': {\n if (type === 70) {\n header[state] = value\n state = undefined\n }\n break\n }\n case 'dimArrowSize': {\n if (type === 40) {\n header[state] = value\n state = undefined\n }\n break\n }\n }\n }\n }\n\n return header\n}\n"],
5
+ "mappings": "AAEe,SAAR,YAA6B,QAAkC;AACpE,MAAI;AACJ,QAAM,SAAuB,CAAC;AAE9B,aAAW,SAAS,QAAQ;AAC1B,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,QAAQ,MAAM,CAAC;AAErB,YAAQ,OAAO;AAAA,MACb,KAAK,gBAAgB;AACnB,gBAAQ;AACR;AAAA,MACF;AAAA,MACA,KAAK,aAAa;AAChB,gBAAQ;AACR;AAAA,MACF;AAAA,MACA,KAAK;AACH,eAAO,SAAS,CAAC;AACjB,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO,SAAS,CAAC;AACjB,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO,eAAe,CAAC;AACvB,gBAAQ;AACR;AAAA,MACF;AACE,gBAAQ,OAAO;AAAA,UACb,KAAK;AAAA,UACL,KAAK,UAAU;AACb,kBAAM,SAAS,OAAO,KAAK;AAC3B,gBAAI,QAAQ;AACV,sBAAQ,MAAM;AAAA,gBACZ,KAAK;AACH,yBAAO,IAAI;AACX;AAAA,gBACF,KAAK;AACH,yBAAO,IAAI;AACX;AAAA,gBACF,KAAK;AACH,yBAAO,IAAI;AACX,0BAAQ;AACR;AAAA,cACJ;AAAA,YACF;AACA;AAAA,UACF;AAAA,UACA,KAAK;AAAA,UACL,KAAK,YAAY;AACf,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,IAAI;AAChB,sBAAQ;AAAA,YACV;AACA;AAAA,UACF;AAAA,UACA,KAAK,gBAAgB;AACnB,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,IAAI;AAChB,sBAAQ;AAAA,YACV;AACA;AAAA,UACF;AAAA,QACF;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,170 @@
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 objects_exports = {};
20
+ __export(objects_exports, {
21
+ default: () => parseObjects
22
+ });
23
+ module.exports = __toCommonJS(objects_exports);
24
+ function parseObjects(tuples) {
25
+ let state;
26
+ const objects = {
27
+ layouts: []
28
+ };
29
+ let layout;
30
+ for (const tuple of tuples) {
31
+ const type = tuple[0];
32
+ const value = tuple[1];
33
+ if (type === 0) {
34
+ state = "IDLE";
35
+ }
36
+ if (value === "LAYOUT") {
37
+ state = "layout";
38
+ layout = {};
39
+ objects.layouts.push(layout);
40
+ }
41
+ if (state === "layout" && type !== 0) {
42
+ switch (type) {
43
+ case 100:
44
+ if (value === "AcDbLayout") state = "AcDbLayout";
45
+ break;
46
+ }
47
+ }
48
+ if (state === "AcDbLayout" && type !== 0 && layout) {
49
+ switch (type) {
50
+ case 1:
51
+ layout.name = value;
52
+ break;
53
+ case 5:
54
+ layout.handle = value;
55
+ break;
56
+ case 10:
57
+ layout.minLimitX = Number.parseFloat(String(value));
58
+ break;
59
+ case 20:
60
+ layout.minLimitY = Number.parseFloat(String(value));
61
+ break;
62
+ case 11:
63
+ layout.maxLimitX = Number.parseFloat(String(value));
64
+ break;
65
+ case 21:
66
+ layout.maxLimitY = Number.parseFloat(String(value));
67
+ break;
68
+ case 12:
69
+ layout.x = Number.parseFloat(String(value));
70
+ break;
71
+ case 22:
72
+ layout.y = Number.parseFloat(String(value));
73
+ break;
74
+ case 32:
75
+ layout.z = Number.parseFloat(String(value));
76
+ break;
77
+ case 14:
78
+ layout.minX = Number.parseFloat(String(value));
79
+ break;
80
+ case 24:
81
+ layout.minY = Number.parseFloat(String(value));
82
+ break;
83
+ case 34:
84
+ layout.minZ = Number.parseFloat(String(value));
85
+ break;
86
+ case 15:
87
+ layout.maxX = Number.parseFloat(String(value));
88
+ break;
89
+ case 25:
90
+ layout.maxY = Number.parseFloat(String(value));
91
+ break;
92
+ case 35:
93
+ layout.maxZ = Number.parseFloat(String(value));
94
+ break;
95
+ case 70:
96
+ layout.flag = value === 1 ? "PSLTSCALE" : "LIMCHECK";
97
+ break;
98
+ case 71:
99
+ layout.tabOrder = value;
100
+ break;
101
+ case 146:
102
+ layout.elevation = Number.parseFloat(String(value));
103
+ break;
104
+ case 13:
105
+ layout.ucsX = Number.parseFloat(String(value));
106
+ break;
107
+ case 23:
108
+ layout.ucsY = Number.parseFloat(String(value));
109
+ break;
110
+ case 33:
111
+ layout.ucsZ = Number.parseFloat(String(value));
112
+ break;
113
+ case 16:
114
+ layout.ucsXaxisX = Number.parseFloat(String(value));
115
+ break;
116
+ case 26:
117
+ layout.ucsXaxisY = Number.parseFloat(String(value));
118
+ break;
119
+ case 36:
120
+ layout.ucsXaxisZ = Number.parseFloat(String(value));
121
+ break;
122
+ case 17:
123
+ layout.ucsYaxisX = Number.parseFloat(String(value));
124
+ break;
125
+ case 27:
126
+ layout.ucsYaxisY = Number.parseFloat(String(value));
127
+ break;
128
+ case 37:
129
+ layout.ucsYaxisZ = Number.parseFloat(String(value));
130
+ break;
131
+ case 76:
132
+ switch (value) {
133
+ case 0:
134
+ layout.ucsType = "NOT ORTHOGRAPHIC";
135
+ break;
136
+ case 1:
137
+ layout.ucsType = "TOP";
138
+ break;
139
+ case 2:
140
+ layout.ucsType = "BOTTOM";
141
+ break;
142
+ case 3:
143
+ layout.ucsType = "FRONT";
144
+ break;
145
+ case 4:
146
+ layout.ucsType = "BACK";
147
+ break;
148
+ case 5:
149
+ layout.ucsType = "LEFT";
150
+ break;
151
+ case 6:
152
+ layout.ucsType = "RIGHT";
153
+ break;
154
+ }
155
+ break;
156
+ case 330:
157
+ layout.tableRecord = value;
158
+ break;
159
+ case 331:
160
+ layout.lastActiveViewport = value;
161
+ break;
162
+ case 333:
163
+ layout.shadePlot = value;
164
+ break;
165
+ }
166
+ }
167
+ }
168
+ return objects;
169
+ }
170
+ //# sourceMappingURL=objects.cjs.map