@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,587 @@
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 tables_exports = {};
30
+ __export(tables_exports, {
31
+ default: () => parseTables
32
+ });
33
+ module.exports = __toCommonJS(tables_exports);
34
+ var import_logger = __toESM(require("../util/logger"), 1);
35
+ const ltypeHandler = (tuples) => {
36
+ let element;
37
+ let offset;
38
+ return tuples.reduce(
39
+ (layer, tuple) => {
40
+ const type = tuple[0];
41
+ const value = tuple[1];
42
+ switch (type) {
43
+ case 2:
44
+ layer.name = value;
45
+ break;
46
+ case 3:
47
+ layer.description = value;
48
+ break;
49
+ case 70:
50
+ layer.flag = value;
51
+ break;
52
+ case 72:
53
+ layer.alignment = value;
54
+ break;
55
+ case 73:
56
+ layer.elementCount = Number.parseInt(String(value));
57
+ break;
58
+ case 40:
59
+ layer.patternLength = value;
60
+ break;
61
+ case 49:
62
+ element = { length: value };
63
+ layer.pattern.push(element);
64
+ break;
65
+ case 74:
66
+ if (element) {
67
+ element.shape = value;
68
+ }
69
+ break;
70
+ case 75:
71
+ if (element) {
72
+ element.shapeNumber = value;
73
+ }
74
+ break;
75
+ case 340:
76
+ if (element) {
77
+ element.styleHandle = value;
78
+ }
79
+ break;
80
+ case 46:
81
+ if (element) {
82
+ element.scales ?? (element.scales = []);
83
+ element.scales.push(value);
84
+ }
85
+ break;
86
+ case 50:
87
+ if (element) {
88
+ element.rotation = value;
89
+ }
90
+ break;
91
+ case 44:
92
+ offset = { x: value, y: 0 };
93
+ if (element) {
94
+ element.offset ?? (element.offset = []);
95
+ element.offset.push(offset);
96
+ }
97
+ break;
98
+ case 45:
99
+ if (offset) {
100
+ offset.y = value;
101
+ }
102
+ break;
103
+ case 9:
104
+ if (element) {
105
+ element.text = value;
106
+ }
107
+ break;
108
+ default:
109
+ }
110
+ return layer;
111
+ },
112
+ { type: "LTYPE", pattern: [] }
113
+ );
114
+ };
115
+ const layerHandler = (tuples) => {
116
+ return tuples.reduce(
117
+ (layer, tuple) => {
118
+ const type = tuple[0];
119
+ const value = tuple[1];
120
+ switch (type) {
121
+ case 2:
122
+ layer.name = value;
123
+ break;
124
+ case 6:
125
+ layer.lineTypeName = value;
126
+ break;
127
+ case 62:
128
+ layer.colorNumber = value;
129
+ break;
130
+ case 70:
131
+ layer.flags = value;
132
+ break;
133
+ case 290:
134
+ layer.plot = Number.parseInt(String(value)) !== 0;
135
+ break;
136
+ case 370:
137
+ layer.lineWeightEnum = value;
138
+ break;
139
+ default:
140
+ }
141
+ return layer;
142
+ },
143
+ { type: "LAYER" }
144
+ );
145
+ };
146
+ const styleHandler = (tuples) => {
147
+ return tuples.reduce(
148
+ (style, tuple) => {
149
+ const type = tuple[0];
150
+ const value = tuple[1];
151
+ switch (type) {
152
+ case 2:
153
+ style.name = value;
154
+ break;
155
+ case 6:
156
+ style.lineTypeName = value;
157
+ break;
158
+ case 40:
159
+ style.fixedTextHeight = value;
160
+ break;
161
+ case 41:
162
+ style.widthFactor = value;
163
+ break;
164
+ case 50:
165
+ style.obliqueAngle = value;
166
+ break;
167
+ case 71:
168
+ style.flags = value;
169
+ break;
170
+ case 42:
171
+ style.lastHeightUsed = value;
172
+ break;
173
+ case 3:
174
+ style.primaryFontFileName = value;
175
+ break;
176
+ case 4:
177
+ style.bigFontFileName = value;
178
+ break;
179
+ default:
180
+ }
181
+ return style;
182
+ },
183
+ { type: "STYLE" }
184
+ );
185
+ };
186
+ const vPortHandler = (tuples) => {
187
+ return tuples.reduce(
188
+ (vport, tuple) => {
189
+ const type = tuple[0];
190
+ const value = tuple[1];
191
+ switch (type) {
192
+ case 2:
193
+ vport.name = value;
194
+ break;
195
+ case 5:
196
+ vport.handle = value;
197
+ break;
198
+ case 70:
199
+ vport.flags = value;
200
+ break;
201
+ case 10:
202
+ vport.lowerLeft.x = Number.parseFloat(String(value));
203
+ break;
204
+ case 20:
205
+ vport.lowerLeft.y = Number.parseFloat(String(value));
206
+ break;
207
+ case 11:
208
+ vport.upperRight.x = Number.parseFloat(String(value));
209
+ break;
210
+ case 21:
211
+ vport.upperRight.y = Number.parseFloat(String(value));
212
+ break;
213
+ case 12:
214
+ vport.center.x = Number.parseFloat(String(value));
215
+ break;
216
+ case 22:
217
+ vport.center.y = Number.parseFloat(String(value));
218
+ break;
219
+ case 14:
220
+ vport.snapSpacing.x = Number.parseFloat(String(value));
221
+ break;
222
+ case 24:
223
+ vport.snapSpacing.y = Number.parseFloat(String(value));
224
+ break;
225
+ case 15:
226
+ vport.gridSpacing.x = Number.parseFloat(String(value));
227
+ break;
228
+ case 25:
229
+ vport.gridSpacing.y = Number.parseFloat(String(value));
230
+ break;
231
+ case 16:
232
+ vport.direction.x = Number.parseFloat(String(value));
233
+ break;
234
+ case 26:
235
+ vport.direction.y = Number.parseFloat(String(value));
236
+ break;
237
+ case 36:
238
+ vport.direction.z = Number.parseFloat(String(value));
239
+ break;
240
+ case 17:
241
+ vport.target.x = Number.parseFloat(String(value));
242
+ break;
243
+ case 27:
244
+ vport.target.y = Number.parseFloat(String(value));
245
+ break;
246
+ case 37:
247
+ vport.target.z = Number.parseFloat(String(value));
248
+ break;
249
+ case 45:
250
+ vport.height = Number.parseFloat(String(value));
251
+ break;
252
+ case 50:
253
+ vport.snapAngle = Number.parseFloat(String(value));
254
+ break;
255
+ case 51:
256
+ vport.angle = Number.parseFloat(String(value));
257
+ break;
258
+ case 110:
259
+ vport.x = Number.parseFloat(String(value));
260
+ break;
261
+ case 120:
262
+ vport.y = Number.parseFloat(String(value));
263
+ break;
264
+ case 130:
265
+ vport.z = Number.parseFloat(String(value));
266
+ break;
267
+ case 111:
268
+ vport.xAxisX = Number.parseFloat(String(value));
269
+ break;
270
+ case 121:
271
+ vport.xAxisY = Number.parseFloat(String(value));
272
+ break;
273
+ case 131:
274
+ vport.xAxisZ = Number.parseFloat(String(value));
275
+ break;
276
+ case 112:
277
+ vport.xAxisX = Number.parseFloat(String(value));
278
+ break;
279
+ case 122:
280
+ vport.xAxisY = Number.parseFloat(String(value));
281
+ break;
282
+ case 132:
283
+ vport.xAxisZ = Number.parseFloat(String(value));
284
+ break;
285
+ case 146:
286
+ vport.elevation = Number.parseFloat(String(value));
287
+ break;
288
+ default:
289
+ }
290
+ return vport;
291
+ },
292
+ {
293
+ type: "VPORT",
294
+ center: {},
295
+ lowerLeft: {},
296
+ upperRight: {},
297
+ snap: {},
298
+ snapSpacing: {},
299
+ gridSpacing: {},
300
+ direction: {},
301
+ target: {}
302
+ }
303
+ );
304
+ };
305
+ const dimStyleHandler = (tuples) => {
306
+ return tuples.reduce(
307
+ (dimStyle, tuple) => {
308
+ const type = tuple[0];
309
+ const value = tuple[1];
310
+ switch (type) {
311
+ case 2:
312
+ dimStyle.name = value;
313
+ break;
314
+ case 70:
315
+ dimStyle.flags = value;
316
+ break;
317
+ case 3:
318
+ dimStyle.dimPost = value;
319
+ break;
320
+ case 4:
321
+ dimStyle.dimAPost = value;
322
+ break;
323
+ case 40:
324
+ dimStyle.dimScale = Number.parseFloat(String(value));
325
+ break;
326
+ case 41:
327
+ dimStyle.dimAsz = Number.parseFloat(String(value));
328
+ break;
329
+ case 42:
330
+ dimStyle.dimExo = Number.parseFloat(String(value));
331
+ break;
332
+ case 43:
333
+ dimStyle.dimDli = Number.parseFloat(String(value));
334
+ break;
335
+ case 44:
336
+ dimStyle.dimExe = Number.parseFloat(String(value));
337
+ break;
338
+ case 45:
339
+ dimStyle.dimRnd = Number.parseFloat(String(value));
340
+ break;
341
+ case 46:
342
+ dimStyle.dimDle = Number.parseFloat(String(value));
343
+ break;
344
+ case 47:
345
+ dimStyle.dimTp = Number.parseFloat(String(value));
346
+ break;
347
+ case 48:
348
+ dimStyle.dimTm = Number.parseFloat(String(value));
349
+ break;
350
+ case 140:
351
+ dimStyle.dimTxt = Number.parseFloat(String(value));
352
+ break;
353
+ case 141:
354
+ dimStyle.dimCen = Number.parseFloat(String(value));
355
+ break;
356
+ case 142:
357
+ dimStyle.dimTsz = Number.parseFloat(String(value));
358
+ break;
359
+ case 143:
360
+ dimStyle.dimAltf = Number.parseFloat(String(value));
361
+ break;
362
+ case 144:
363
+ dimStyle.dimLfac = Number.parseFloat(String(value));
364
+ break;
365
+ case 145:
366
+ dimStyle.dimTvp = Number.parseFloat(String(value));
367
+ break;
368
+ case 146:
369
+ dimStyle.dimTfac = Number.parseFloat(String(value));
370
+ break;
371
+ case 147:
372
+ dimStyle.dimGap = Number.parseFloat(String(value));
373
+ break;
374
+ case 148:
375
+ dimStyle.dimAltRnd = Number.parseFloat(String(value));
376
+ break;
377
+ case 71:
378
+ dimStyle.dimTol = Number.parseInt(String(value));
379
+ break;
380
+ case 72:
381
+ dimStyle.dimLim = Number.parseInt(String(value));
382
+ break;
383
+ case 73:
384
+ dimStyle.dimTih = Number.parseInt(String(value));
385
+ break;
386
+ case 74:
387
+ dimStyle.dimToh = Number.parseInt(String(value));
388
+ break;
389
+ case 75:
390
+ dimStyle.dimSe1 = Number.parseInt(String(value));
391
+ break;
392
+ case 76:
393
+ dimStyle.dimSe2 = Number.parseInt(String(value));
394
+ break;
395
+ case 77:
396
+ dimStyle.dimTad = Number.parseInt(String(value));
397
+ break;
398
+ case 78:
399
+ dimStyle.dimZin = Number.parseInt(String(value));
400
+ break;
401
+ case 79:
402
+ dimStyle.dimAzin = Number.parseInt(String(value));
403
+ break;
404
+ case 170:
405
+ dimStyle.dimAlt = Number.parseInt(String(value));
406
+ break;
407
+ case 171:
408
+ dimStyle.dimAltd = Number.parseInt(String(value));
409
+ break;
410
+ case 172:
411
+ dimStyle.dimTofl = Number.parseInt(String(value));
412
+ break;
413
+ case 173:
414
+ dimStyle.dimSah = Number.parseInt(String(value));
415
+ break;
416
+ case 174:
417
+ dimStyle.dimTix = Number.parseInt(String(value));
418
+ break;
419
+ case 175:
420
+ dimStyle.dimSoxd = Number.parseInt(String(value));
421
+ break;
422
+ case 176:
423
+ dimStyle.dimClrd = Number.parseInt(String(value));
424
+ break;
425
+ case 177:
426
+ dimStyle.dimClre = Number.parseInt(String(value));
427
+ break;
428
+ case 178:
429
+ dimStyle.dimClrt = Number.parseInt(String(value));
430
+ break;
431
+ case 179:
432
+ dimStyle.dimAdec = Number.parseInt(String(value));
433
+ break;
434
+ case 270:
435
+ dimStyle.dimUnit = Number.parseInt(String(value));
436
+ break;
437
+ case 271:
438
+ dimStyle.dimDec = Number.parseInt(String(value));
439
+ break;
440
+ case 272:
441
+ dimStyle.dimTdec = Number.parseInt(String(value));
442
+ break;
443
+ case 273:
444
+ dimStyle.dimAltu = Number.parseInt(String(value));
445
+ break;
446
+ case 274:
447
+ dimStyle.dimAlttd = Number.parseInt(String(value));
448
+ break;
449
+ case 275:
450
+ dimStyle.dimAunit = Number.parseInt(String(value));
451
+ break;
452
+ case 276:
453
+ dimStyle.dimFrac = Number.parseInt(String(value));
454
+ break;
455
+ case 277:
456
+ dimStyle.dimLunit = Number.parseInt(String(value));
457
+ break;
458
+ case 278:
459
+ dimStyle.dimDsep = Number.parseInt(String(value));
460
+ break;
461
+ case 279:
462
+ dimStyle.dimTmove = Number.parseInt(String(value));
463
+ break;
464
+ case 280:
465
+ dimStyle.dimJust = Number.parseInt(String(value));
466
+ break;
467
+ case 281:
468
+ dimStyle.dimSd1 = Number.parseInt(String(value));
469
+ break;
470
+ case 282:
471
+ dimStyle.dimSd2 = Number.parseInt(String(value));
472
+ break;
473
+ case 283:
474
+ dimStyle.dimTolj = Number.parseInt(String(value));
475
+ break;
476
+ case 284:
477
+ dimStyle.dimTzin = Number.parseInt(String(value));
478
+ break;
479
+ case 285:
480
+ dimStyle.dimAltz = Number.parseInt(String(value));
481
+ break;
482
+ case 286:
483
+ dimStyle.dimAlttz = Number.parseInt(String(value));
484
+ break;
485
+ case 287:
486
+ dimStyle.dimFit = Number.parseInt(String(value));
487
+ break;
488
+ case 288:
489
+ dimStyle.dimUpt = Number.parseInt(String(value));
490
+ break;
491
+ case 289:
492
+ dimStyle.dimAtfit = Number.parseInt(String(value));
493
+ break;
494
+ case 340:
495
+ dimStyle.dimTxsty = value;
496
+ break;
497
+ case 341:
498
+ dimStyle.dimLdrblk = value;
499
+ break;
500
+ case 342:
501
+ dimStyle.dimBlk = value;
502
+ break;
503
+ case 343:
504
+ dimStyle.dimBlk1 = value;
505
+ break;
506
+ case 344:
507
+ dimStyle.dimBlk2 = value;
508
+ break;
509
+ case 371:
510
+ dimStyle.dimLwd = Number.parseInt(String(value));
511
+ break;
512
+ case 372:
513
+ dimStyle.dimLwe = Number.parseInt(String(value));
514
+ break;
515
+ default:
516
+ }
517
+ return dimStyle;
518
+ },
519
+ { type: "DIMSTYLE" }
520
+ );
521
+ };
522
+ const tableHandler = (tuples, tableType, handler) => {
523
+ const tableRowsTuples = [];
524
+ let tableRowTuples;
525
+ for (const tuple of tuples) {
526
+ const type = tuple[0];
527
+ const value = tuple[1];
528
+ if ((type === 0 || type === 2) && value === tableType) {
529
+ tableRowTuples = [];
530
+ tableRowsTuples.push(tableRowTuples);
531
+ } else if (tableRowTuples) {
532
+ tableRowTuples.push(tuple);
533
+ }
534
+ }
535
+ return tableRowsTuples.reduce((acc, rowTuples) => {
536
+ const tableRow = handler(rowTuples);
537
+ if (tableRow.name) {
538
+ acc[String(tableRow.name)] = tableRow;
539
+ } else {
540
+ import_logger.default.warn("table row without name:", tableRow);
541
+ }
542
+ return acc;
543
+ }, {});
544
+ };
545
+ function parseTables(tuples) {
546
+ const tableGroups = [];
547
+ let tableTuples;
548
+ for (const tuple of tuples) {
549
+ const value = tuple[1];
550
+ if (value === "TABLE") {
551
+ tableTuples = [];
552
+ tableGroups.push(tableTuples);
553
+ } else if (value === "ENDTAB") {
554
+ if (tableTuples) {
555
+ tableGroups.push(tableTuples);
556
+ }
557
+ } else if (tableTuples) {
558
+ tableTuples.push(tuple);
559
+ }
560
+ }
561
+ let stylesTuples = [];
562
+ let layersTuples = [];
563
+ let vPortTuples = [];
564
+ let ltypeTuples = [];
565
+ let dimStyleTuples = [];
566
+ for (const group of tableGroups) {
567
+ if (group[0]?.[1] === "STYLE") {
568
+ stylesTuples = group;
569
+ } else if (group[0]?.[1] === "LTYPE") {
570
+ ltypeTuples = group;
571
+ } else if (group[0]?.[1] === "LAYER") {
572
+ layersTuples = group;
573
+ } else if (group[0]?.[1] === "VPORT") {
574
+ vPortTuples = group;
575
+ } else if (group[0]?.[1] === "DIMSTYLE") {
576
+ dimStyleTuples = group;
577
+ }
578
+ }
579
+ return {
580
+ layers: tableHandler(layersTuples, "LAYER", layerHandler),
581
+ styles: tableHandler(stylesTuples, "STYLE", styleHandler),
582
+ vports: tableHandler(vPortTuples, "VPORT", vPortHandler),
583
+ ltypes: tableHandler(ltypeTuples, "LTYPE", ltypeHandler),
584
+ dimStyles: tableHandler(dimStyleTuples, "DIMSTYLE", dimStyleHandler)
585
+ };
586
+ }
587
+ //# sourceMappingURL=tables.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/handlers/tables.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, DimStyleInternal, LTypeElement, LTypeInternal, LayerInternal, StyleInternal, VPortInternal } from '../types'\n\nimport logger from '../util/logger'\n\nconst ltypeHandler = (tuples: DXFTuple[]): LTypeInternal => {\n let element: LTypeElement | undefined\n let offset: { x: string | number; y: string | number } | undefined\n return tuples.reduce(\n (layer, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n // https://documentation.help/AutoCAD-DXF/WS1a9193826455f5ff18cb41610ec0a2e719-7a4f.htm\n switch (type) {\n case 2:\n layer.name = value\n break\n case 3:\n layer.description = value\n break\n case 70:\n // Standard flag values (bit-coded values):\n // 16 = If set, table entry is externally dependent on an xref\n // 32 = If both this bit and bit 16 are set, the externally dependent xref has been successfully resolved\n // 64 = If set, the table entry was referenced by at least one entity in the drawing the last time the drawing was edited. (This flag is for the benefit of AutoCAD commands. It can be ignored by most programs that read DXF files and need not be set by programs that write DXF files)\n layer.flag = value\n break\n case 72:\n // Alignment code (value is always 65, the ASCII code for A):\n layer.alignment = value\n break\n case 73:\n layer.elementCount = Number.parseInt(String(value))\n break\n case 40:\n layer.patternLength = value\n break\n case 49:\n element = { length: value }\n layer.pattern.push(element)\n break\n case 74:\n // Complex linetype element type (one per element). Default is 0 (no embedded shape/text) (bit-coded values)\n // 1 = If set, code 50 specifies an absolute rotation; if not set, code 50 specifies a relative rotation\n // 2 = Embedded element is a text string\n // 4 = Embedded element is a shape\n if (element) {\n element.shape = value\n }\n break\n case 75:\n if (element) {\n element.shapeNumber = value\n }\n break\n case 340:\n if (element) {\n element.styleHandle = value\n }\n break\n case 46:\n if (element) {\n element.scales ??= []\n element.scales.push(value)\n }\n break\n case 50:\n if (element) {\n element.rotation = value\n }\n break\n case 44:\n offset = { x: value, y: 0 }\n if (element) {\n element.offset ??= []\n element.offset.push(offset)\n }\n break\n case 45:\n if (offset) {\n offset.y = value\n }\n break\n case 9:\n if (element) {\n element.text = value\n }\n break\n default:\n }\n return layer\n },\n { type: 'LTYPE', pattern: [] } as LTypeInternal,\n )\n}\n\nconst layerHandler = (tuples: DXFTuple[]): LayerInternal => {\n return tuples.reduce(\n (layer, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n // https://www.autodesk.com/techpubs/autocad/acad2000/dxf/layer_dxf_04.htm\n switch (type) {\n case 2:\n layer.name = value\n break\n case 6:\n layer.lineTypeName = value\n break\n case 62:\n layer.colorNumber = value\n break\n case 70:\n layer.flags = value\n break\n case 290:\n layer.plot = Number.parseInt(String(value)) !== 0\n break\n case 370:\n layer.lineWeightEnum = value\n break\n default:\n }\n return layer\n },\n { type: 'LAYER' } as LayerInternal,\n )\n}\n\nconst styleHandler = (tuples: DXFTuple[]): StyleInternal => {\n return tuples.reduce(\n (style, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 2:\n style.name = value\n break\n case 6:\n style.lineTypeName = value\n break\n case 40:\n style.fixedTextHeight = value\n break\n case 41:\n style.widthFactor = value\n break\n case 50:\n style.obliqueAngle = value\n break\n case 71:\n style.flags = value\n break\n case 42:\n style.lastHeightUsed = value\n break\n case 3:\n style.primaryFontFileName = value\n break\n case 4:\n style.bigFontFileName = value\n break\n default:\n }\n return style\n },\n { type: 'STYLE' } as StyleInternal,\n )\n}\n\nconst vPortHandler = (tuples: DXFTuple[]): VPortInternal => {\n return tuples.reduce(\n (vport, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 2:\n vport.name = value\n break\n case 5:\n vport.handle = value\n break\n case 70:\n vport.flags = value\n break\n case 10:\n vport.lowerLeft.x = Number.parseFloat(String(value))\n break\n case 20:\n vport.lowerLeft.y = Number.parseFloat(String(value))\n break\n case 11:\n vport.upperRight.x = Number.parseFloat(String(value))\n break\n case 21:\n vport.upperRight.y = Number.parseFloat(String(value))\n break\n case 12:\n vport.center.x = Number.parseFloat(String(value))\n break\n case 22:\n vport.center.y = Number.parseFloat(String(value))\n break\n case 14:\n vport.snapSpacing.x = Number.parseFloat(String(value))\n break\n case 24:\n vport.snapSpacing.y = Number.parseFloat(String(value))\n break\n case 15:\n vport.gridSpacing.x = Number.parseFloat(String(value))\n break\n case 25:\n vport.gridSpacing.y = Number.parseFloat(String(value))\n break\n case 16:\n vport.direction.x = Number.parseFloat(String(value))\n break\n case 26:\n vport.direction.y = Number.parseFloat(String(value))\n break\n case 36:\n vport.direction.z = Number.parseFloat(String(value))\n break\n case 17:\n vport.target.x = Number.parseFloat(String(value))\n break\n case 27:\n vport.target.y = Number.parseFloat(String(value))\n break\n case 37:\n vport.target.z = Number.parseFloat(String(value))\n break\n case 45:\n vport.height = Number.parseFloat(String(value))\n break\n case 50:\n vport.snapAngle = Number.parseFloat(String(value))\n break\n case 51:\n vport.angle = Number.parseFloat(String(value))\n break\n case 110:\n vport.x = Number.parseFloat(String(value))\n break\n case 120:\n vport.y = Number.parseFloat(String(value))\n break\n case 130:\n vport.z = Number.parseFloat(String(value))\n break\n case 111:\n vport.xAxisX = Number.parseFloat(String(value))\n break\n case 121:\n vport.xAxisY = Number.parseFloat(String(value))\n break\n case 131:\n vport.xAxisZ = Number.parseFloat(String(value))\n break\n case 112:\n vport.xAxisX = Number.parseFloat(String(value))\n break\n case 122:\n vport.xAxisY = Number.parseFloat(String(value))\n break\n case 132:\n vport.xAxisZ = Number.parseFloat(String(value))\n break\n case 146:\n vport.elevation = Number.parseFloat(String(value))\n break\n default:\n }\n return vport\n },\n {\n type: 'VPORT',\n center: {},\n lowerLeft: {},\n upperRight: {},\n snap: {},\n snapSpacing: {},\n gridSpacing: {},\n direction: {},\n target: {},\n } as VPortInternal,\n )\n}\n\nconst dimStyleHandler = (tuples: DXFTuple[]): DimStyleInternal => {\n return tuples.reduce(\n (dimStyle, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 2:\n dimStyle.name = value\n break\n case 70:\n dimStyle.flags = value\n break\n case 3:\n dimStyle.dimPost = value\n break\n case 4:\n dimStyle.dimAPost = value\n break\n case 40:\n dimStyle.dimScale = Number.parseFloat(String(value))\n break\n case 41:\n dimStyle.dimAsz = Number.parseFloat(String(value))\n break\n case 42:\n dimStyle.dimExo = Number.parseFloat(String(value))\n break\n case 43:\n dimStyle.dimDli = Number.parseFloat(String(value))\n break\n case 44:\n dimStyle.dimExe = Number.parseFloat(String(value))\n break\n case 45:\n dimStyle.dimRnd = Number.parseFloat(String(value))\n break\n case 46:\n dimStyle.dimDle = Number.parseFloat(String(value))\n break\n case 47:\n dimStyle.dimTp = Number.parseFloat(String(value))\n break\n case 48:\n dimStyle.dimTm = Number.parseFloat(String(value))\n break\n case 140:\n dimStyle.dimTxt = Number.parseFloat(String(value))\n break\n case 141:\n dimStyle.dimCen = Number.parseFloat(String(value))\n break\n case 142:\n dimStyle.dimTsz = Number.parseFloat(String(value))\n break\n case 143:\n dimStyle.dimAltf = Number.parseFloat(String(value))\n break\n case 144:\n dimStyle.dimLfac = Number.parseFloat(String(value))\n break\n case 145:\n dimStyle.dimTvp = Number.parseFloat(String(value))\n break\n case 146:\n dimStyle.dimTfac = Number.parseFloat(String(value))\n break\n case 147:\n dimStyle.dimGap = Number.parseFloat(String(value))\n break\n case 148:\n dimStyle.dimAltRnd = Number.parseFloat(String(value))\n break\n case 71:\n dimStyle.dimTol = Number.parseInt(String(value))\n break\n case 72:\n dimStyle.dimLim = Number.parseInt(String(value))\n break\n case 73:\n dimStyle.dimTih = Number.parseInt(String(value))\n break\n case 74:\n dimStyle.dimToh = Number.parseInt(String(value))\n break\n case 75:\n dimStyle.dimSe1 = Number.parseInt(String(value))\n break\n case 76:\n dimStyle.dimSe2 = Number.parseInt(String(value))\n break\n case 77:\n dimStyle.dimTad = Number.parseInt(String(value))\n break\n case 78:\n dimStyle.dimZin = Number.parseInt(String(value))\n break\n case 79:\n dimStyle.dimAzin = Number.parseInt(String(value))\n break\n case 170:\n dimStyle.dimAlt = Number.parseInt(String(value))\n break\n case 171:\n dimStyle.dimAltd = Number.parseInt(String(value))\n break\n case 172:\n dimStyle.dimTofl = Number.parseInt(String(value))\n break\n case 173:\n dimStyle.dimSah = Number.parseInt(String(value))\n break\n case 174:\n dimStyle.dimTix = Number.parseInt(String(value))\n break\n case 175:\n dimStyle.dimSoxd = Number.parseInt(String(value))\n break\n case 176:\n dimStyle.dimClrd = Number.parseInt(String(value))\n break\n case 177:\n dimStyle.dimClre = Number.parseInt(String(value))\n break\n case 178:\n dimStyle.dimClrt = Number.parseInt(String(value))\n break\n case 179:\n dimStyle.dimAdec = Number.parseInt(String(value))\n break\n case 270:\n dimStyle.dimUnit = Number.parseInt(String(value))\n break\n case 271:\n dimStyle.dimDec = Number.parseInt(String(value))\n break\n case 272:\n dimStyle.dimTdec = Number.parseInt(String(value))\n break\n case 273:\n dimStyle.dimAltu = Number.parseInt(String(value))\n break\n case 274:\n dimStyle.dimAlttd = Number.parseInt(String(value))\n break\n case 275:\n dimStyle.dimAunit = Number.parseInt(String(value))\n break\n case 276:\n dimStyle.dimFrac = Number.parseInt(String(value))\n break\n case 277:\n dimStyle.dimLunit = Number.parseInt(String(value))\n break\n case 278:\n dimStyle.dimDsep = Number.parseInt(String(value))\n break\n case 279:\n dimStyle.dimTmove = Number.parseInt(String(value))\n break\n case 280:\n dimStyle.dimJust = Number.parseInt(String(value))\n break\n case 281:\n dimStyle.dimSd1 = Number.parseInt(String(value))\n break\n case 282:\n dimStyle.dimSd2 = Number.parseInt(String(value))\n break\n case 283:\n dimStyle.dimTolj = Number.parseInt(String(value))\n break\n case 284:\n dimStyle.dimTzin = Number.parseInt(String(value))\n break\n case 285:\n dimStyle.dimAltz = Number.parseInt(String(value))\n break\n case 286:\n dimStyle.dimAlttz = Number.parseInt(String(value))\n break\n case 287:\n dimStyle.dimFit = Number.parseInt(String(value))\n break\n case 288:\n dimStyle.dimUpt = Number.parseInt(String(value))\n break\n case 289:\n dimStyle.dimAtfit = Number.parseInt(String(value))\n break\n case 340:\n dimStyle.dimTxsty = value\n break\n case 341:\n dimStyle.dimLdrblk = value\n break\n case 342:\n dimStyle.dimBlk = value\n break\n case 343:\n dimStyle.dimBlk1 = value\n break\n case 344:\n dimStyle.dimBlk2 = value\n break\n case 371:\n dimStyle.dimLwd = Number.parseInt(String(value))\n break\n case 372:\n dimStyle.dimLwe = Number.parseInt(String(value))\n break\n default:\n }\n return dimStyle\n },\n { type: 'DIMSTYLE' } as DimStyleInternal,\n )\n}\n\nconst tableHandler = (\n tuples: DXFTuple[],\n tableType: string,\n handler: (tuples: DXFTuple[]) => LTypeInternal | LayerInternal | StyleInternal | VPortInternal | DimStyleInternal,\n): Record<string, any> => {\n const tableRowsTuples: DXFTuple[][] = []\n\n let tableRowTuples: DXFTuple[] | undefined\n for (const tuple of tuples) {\n const type = tuple[0]\n const value = tuple[1]\n if ((type === 0 || type === 2) && value === tableType) {\n tableRowTuples = []\n tableRowsTuples.push(tableRowTuples)\n } else if (tableRowTuples) {\n tableRowTuples.push(tuple)\n }\n }\n\n return tableRowsTuples.reduce((acc, rowTuples) => {\n const tableRow = handler(rowTuples)\n if (tableRow.name) {\n acc[String(tableRow.name)] = tableRow\n } else {\n logger.warn('table row without name:', tableRow)\n }\n return acc\n }, {} as Record<string, any>)\n}\n\nexport default function parseTables(tuples: DXFTuple[]) {\n const tableGroups: DXFTuple[][] = []\n let tableTuples: DXFTuple[] | undefined\n for (const tuple of tuples) {\n const value = tuple[1]\n if (value === 'TABLE') {\n tableTuples = []\n tableGroups.push(tableTuples)\n } else if (value === 'ENDTAB') {\n if (tableTuples) {\n tableGroups.push(tableTuples)\n }\n } else if (tableTuples) {\n tableTuples.push(tuple)\n }\n }\n\n let stylesTuples: DXFTuple[] = []\n let layersTuples: DXFTuple[] = []\n let vPortTuples: DXFTuple[] = []\n let ltypeTuples: DXFTuple[] = []\n let dimStyleTuples: DXFTuple[] = []\n for (const group of tableGroups) {\n if (group[0]?.[1] === 'STYLE') {\n stylesTuples = group\n } else if (group[0]?.[1] === 'LTYPE') {\n ltypeTuples = group\n } else if (group[0]?.[1] === 'LAYER') {\n layersTuples = group\n } else if (group[0]?.[1] === 'VPORT') {\n vPortTuples = group\n } else if (group[0]?.[1] === 'DIMSTYLE') {\n dimStyleTuples = group\n }\n }\n\n return {\n layers: tableHandler(layersTuples, 'LAYER', layerHandler),\n styles: tableHandler(stylesTuples, 'STYLE', styleHandler),\n vports: tableHandler(vPortTuples, 'VPORT', vPortHandler),\n ltypes: tableHandler(ltypeTuples, 'LTYPE', ltypeHandler),\n dimStyles: tableHandler(dimStyleTuples, 'DIMSTYLE', dimStyleHandler),\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["logger"]
7
+ }