@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,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/attdef.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\nimport { assign as assignMTEXT } from './mtext'\nimport { assign as assignTEXT } from './text'\n\n\nexport const TYPE = 'ATTDEF'\n\nexport const process = (tuples: DXFTuple[]): any => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n assign(entity, type, value)\n\n return entity\n },\n {\n type: TYPE,\n subclassMarker: 'AcDbText',\n thickness: 0,\n scaleX: 1,\n mtext: {},\n text: {},\n },\n )\n}\n\nexport const assign = (entity: any, type: number, value: string | number): void => {\n switch (type) {\n case 100: {\n entity.subclassMarker = value\n break\n }\n case 1:\n switch (entity.subclassMarker) {\n case 'AcDbText':\n assignTEXT(entity.text, type, value)\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 2:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n entity.tag = value\n break\n case 'AcDbXrecord':\n entity.attdefFlag = value\n break\n }\n break\n case 3:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n entity.prompt = value\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 7:\n case 41:\n case 50:\n case 71:\n case 72:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n assignTEXT(entity.text, type, value)\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 10:\n switch (entity.subclassMarker) {\n case 'AcDbText':\n assignTEXT(entity.text, type, value)\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n case 'AcDbXrecord':\n entity.x = value\n break\n }\n break\n case 20:\n switch (entity.subclassMarker) {\n case 'AcDbText':\n assignTEXT(entity.text, type, value)\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n case 'AcDbXrecord':\n entity.y = value\n break\n }\n break\n case 30:\n switch (entity.subclassMarker) {\n case 'AcDbText':\n assignTEXT(entity.text, type, value)\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n case 'AcDbXrecord':\n entity.z = value\n break\n }\n break\n case 11:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n entity.x2 = value\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 21:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n entity.y2 = value\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 31:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n entity.z2 = value\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 39:\n assignTEXT(entity.text, type, value)\n break\n case 40:\n switch (entity.subclassMarker) {\n case 'AcDbText':\n assignTEXT(entity.text, type, value)\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n case 'AcDbXrecord':\n entity.annotationScale = value\n break\n }\n break\n case 42:\n case 43:\n case 44:\n case 45:\n assignMTEXT(entity.mtext, type, value)\n break\n case 46:\n entity.mtext.annotationHeight = value\n break\n case 48:\n case 49:\n assignMTEXT(entity.mtext, type, value)\n break\n case 51:\n assignTEXT(entity.text, type, value)\n break\n case 63:\n assignMTEXT(entity.mtext, type, value)\n break\n case 70:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n entity.attributeFlags = value\n break\n case 'AcDbXrecord':\n if (entity.mTextFlag === undefined)\n entity.mTextFlag = value\n else if (entity.isReallyLocked === undefined)\n entity.isReallyLocked = value\n else entity.secondaryAttdefCount = value\n break\n }\n break\n case 73:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n entity.fieldLength = value\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 74:\n assignTEXT(entity.text, 73, value)\n break\n case 75:\n case 76:\n case 78:\n case 79:\n assignMTEXT(entity.mtext, type, value)\n break\n case 90:\n assignMTEXT(entity.mtext, type, value)\n break\n case 210:\n case 220:\n case 230:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n assignTEXT(entity.mtext, type, value)\n break\n case 'AcDbMText':\n assignMTEXT(entity.mtext, type, value)\n break\n }\n break\n case 280:\n switch (entity.subclassMarker) {\n case 'AcDbAttributeDefinition':\n case 'AcDbAttribute':\n entity.lock = value\n break\n case 'AcDbXrecord':\n entity.clone = true\n break\n }\n break\n case 340:\n entity.attdefHandle = value\n break\n case 420:\n case 421:\n case 422:\n case 423:\n case 424:\n case 425:\n case 426:\n case 427:\n case 428:\n case 429:\n case 430:\n case 431:\n case 432:\n case 433:\n case 434:\n case 435:\n case 436:\n case 437:\n case 438:\n case 439:\n case 441:\n assignMTEXT(entity.mtext, type, value)\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n}\n\nexport default { TYPE, process, assign }\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,52 @@
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 attrib_exports = {};
20
+ __export(attrib_exports, {
21
+ TYPE: () => TYPE,
22
+ default: () => attrib_default,
23
+ process: () => process
24
+ });
25
+ module.exports = __toCommonJS(attrib_exports);
26
+ var import_attdef = require("./attdef");
27
+ const TYPE = "ATTRIB";
28
+ const process = (tuples) => {
29
+ return tuples.reduce(
30
+ (entity, tuple) => {
31
+ const type = tuple[0];
32
+ const value = tuple[1];
33
+ (0, import_attdef.assign)(entity, type, value);
34
+ return entity;
35
+ },
36
+ {
37
+ type: TYPE,
38
+ subclassMarker: "AcDbText",
39
+ thickness: 0,
40
+ scaleX: 1,
41
+ mtext: {},
42
+ text: {}
43
+ }
44
+ );
45
+ };
46
+ var attrib_default = { TYPE, process };
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ TYPE,
50
+ process
51
+ });
52
+ //# sourceMappingURL=attrib.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/attrib.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport { assign } from './attdef'\n\nexport const TYPE = 'ATTRIB'\n\n\nexport const process = (tuples: DXFTuple[]): any => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n assign(entity, type, value)\n\n return entity\n },\n {\n type: TYPE,\n subclassMarker: 'AcDbText',\n thickness: 0,\n scaleX: 1,\n mtext: {},\n text: {},\n },\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAuB;AAEhB,MAAM,OAAO;AAGb,MAAM,UAAU,CAAC,WAA4B;AAClD,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,gCAAO,QAAQ,MAAM,KAAK;AAE1B,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO,CAAC;AAAA,MACR,MAAM,CAAC;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,27 @@
1
+ import { assign } from "./attdef";
2
+ const TYPE = "ATTRIB";
3
+ const process = (tuples) => {
4
+ return tuples.reduce(
5
+ (entity, tuple) => {
6
+ const type = tuple[0];
7
+ const value = tuple[1];
8
+ assign(entity, type, value);
9
+ return entity;
10
+ },
11
+ {
12
+ type: TYPE,
13
+ subclassMarker: "AcDbText",
14
+ thickness: 0,
15
+ scaleX: 1,
16
+ mtext: {},
17
+ text: {}
18
+ }
19
+ );
20
+ };
21
+ var attrib_default = { TYPE, process };
22
+ export {
23
+ TYPE,
24
+ attrib_default as default,
25
+ process
26
+ };
27
+ //# sourceMappingURL=attrib.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/attrib.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport { assign } from './attdef'\n\nexport const TYPE = 'ATTRIB'\n\n\nexport const process = (tuples: DXFTuple[]): any => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n assign(entity, type, value)\n\n return entity\n },\n {\n type: TYPE,\n subclassMarker: 'AcDbText',\n thickness: 0,\n scaleX: 1,\n mtext: {},\n text: {},\n },\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "AAEA,SAAS,cAAc;AAEhB,MAAM,OAAO;AAGb,MAAM,UAAU,CAAC,WAA4B;AAClD,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,aAAO,QAAQ,MAAM,KAAK;AAE1B,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB;AAAA,MAChB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO,CAAC;AAAA,MACR,MAAM,CAAC;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,73 @@
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 circle_exports = {};
30
+ __export(circle_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => circle_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(circle_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "CIRCLE";
38
+ const process = (tuples) => {
39
+ return tuples.reduce(
40
+ (entity, tuple) => {
41
+ const type = tuple[0];
42
+ const value = tuple[1];
43
+ switch (type) {
44
+ case 10:
45
+ entity.x = value;
46
+ break;
47
+ case 20:
48
+ entity.y = value;
49
+ break;
50
+ case 30:
51
+ entity.z = value;
52
+ break;
53
+ case 40:
54
+ entity.r = value;
55
+ break;
56
+ default:
57
+ Object.assign(entity, (0, import_common.default)(type, value));
58
+ break;
59
+ }
60
+ return entity;
61
+ },
62
+ {
63
+ type: TYPE
64
+ }
65
+ );
66
+ };
67
+ var circle_default = { TYPE, process };
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ TYPE,
71
+ process
72
+ });
73
+ //# sourceMappingURL=circle.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/circle.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'CIRCLE'\n\n\ninterface CircleEntity {\n type: typeof TYPE\n x?: number\n y?: number\n z?: number\n r?: number\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): CircleEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 10:\n entity.x = value as number\n break\n case 20:\n entity.y = value as number\n break\n case 30:\n entity.z = value as number\n break\n case 40:\n entity.r = value as number\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n } as CircleEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAYb,MAAM,UAAU,CAAC,WAAqC;AAC3D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AACrB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": ["common"]
7
+ }
@@ -0,0 +1,38 @@
1
+ import common from "./common";
2
+ const TYPE = "CIRCLE";
3
+ const process = (tuples) => {
4
+ return tuples.reduce(
5
+ (entity, tuple) => {
6
+ const type = tuple[0];
7
+ const value = tuple[1];
8
+ switch (type) {
9
+ case 10:
10
+ entity.x = value;
11
+ break;
12
+ case 20:
13
+ entity.y = value;
14
+ break;
15
+ case 30:
16
+ entity.z = value;
17
+ break;
18
+ case 40:
19
+ entity.r = value;
20
+ break;
21
+ default:
22
+ Object.assign(entity, common(type, value));
23
+ break;
24
+ }
25
+ return entity;
26
+ },
27
+ {
28
+ type: TYPE
29
+ }
30
+ );
31
+ };
32
+ var circle_default = { TYPE, process };
33
+ export {
34
+ TYPE,
35
+ circle_default as default,
36
+ process
37
+ };
38
+ //# sourceMappingURL=circle.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/circle.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'CIRCLE'\n\n\ninterface CircleEntity {\n type: typeof TYPE\n x?: number\n y?: number\n z?: number\n r?: number\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): CircleEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 10:\n entity.x = value as number\n break\n case 20:\n entity.y = value as number\n break\n case 30:\n entity.z = value as number\n break\n case 40:\n entity.r = value as number\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n } as CircleEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "AAEA,OAAO,YAAY;AAEZ,MAAM,OAAO;AAYb,MAAM,UAAU,CAAC,WAAqC;AAC3D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AACrB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF,KAAK;AACH,iBAAO,IAAI;AACX;AAAA,QACF;AACE,iBAAO,OAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,83 @@
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 common_exports = {};
20
+ __export(common_exports, {
21
+ default: () => parseCommonEntityProperties
22
+ });
23
+ module.exports = __toCommonJS(common_exports);
24
+ function parseCommonEntityProperties(type, value) {
25
+ switch (type) {
26
+ case 5: {
27
+ return {
28
+ handle: value
29
+ };
30
+ }
31
+ case 6:
32
+ return {
33
+ lineTypeName: value
34
+ };
35
+ case 8:
36
+ return {
37
+ layer: value
38
+ };
39
+ case 48:
40
+ return {
41
+ lineTypeScale: value
42
+ };
43
+ case 60:
44
+ return {
45
+ visible: value === 0
46
+ };
47
+ case 62:
48
+ return {
49
+ colorNumber: value
50
+ };
51
+ case 67:
52
+ return value === 0 ? {} : {
53
+ paperSpace: value
54
+ };
55
+ case 68:
56
+ return {
57
+ viewportOn: value
58
+ };
59
+ case 69:
60
+ return {
61
+ viewport: value
62
+ };
63
+ case 210:
64
+ return {
65
+ extrusionX: value
66
+ };
67
+ case 220:
68
+ return {
69
+ extrusionY: value
70
+ };
71
+ case 230:
72
+ return {
73
+ extrusionZ: value
74
+ };
75
+ case 410:
76
+ return {
77
+ layout: value
78
+ };
79
+ default:
80
+ return {};
81
+ }
82
+ }
83
+ //# sourceMappingURL=common.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/common.ts"],
4
+ "sourcesContent": ["import type { CommonEntityProperties } from '../../types/handler-internal'\n\nexport default function parseCommonEntityProperties(\n type: number,\n value: string | number\n): CommonEntityProperties {\n switch (type) {\n case 5: {\n return {\n handle: value as string,\n }\n }\n case 6:\n // Linetype name (present if not BYLAYER).\n // The special name BYBLOCK indicates a\n // floating linetype. (optional)\n return {\n lineTypeName: value as string,\n }\n case 8:\n return {\n layer: value as string,\n }\n case 48:\n // Linetype scale (optional)\n return {\n lineTypeScale: value as number,\n }\n case 60:\n // Object visibility (optional): 0 = visible, 1 = invisible.\n return {\n visible: value === 0,\n }\n case 62:\n // Color number (present if not BYLAYER).\n // Zero indicates the BYBLOCK (floating) color.\n // 256 indicates BYLAYER.\n // A negative value indicates that the layer is turned off. (optional)\n return {\n colorNumber: value as number,\n }\n case 67:\n // Paper space or sheet.\n // Absent or zero indicates entity is in model space. 1 indicates entity is in paper space (optional)\n return value === 0\n ? {}\n : {\n paperSpace: value as number,\n }\n case 68:\n // Identifies whether viewport is on but fully off screen, is not active, or is off\n return {\n viewportOn: value as number,\n }\n case 69:\n // Viewport identification number\n return {\n viewport: value as number,\n }\n case 210:\n return {\n extrusionX: value as number,\n }\n case 220:\n return {\n extrusionY: value as number,\n }\n case 230:\n return {\n extrusionZ: value as number,\n }\n case 410:\n return {\n layout: value as string,\n }\n default:\n return {}\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEe,SAAR,4BACL,MACA,OACwB;AACxB,UAAQ,MAAM;AAAA,IACZ,KAAK,GAAG;AACN,aAAO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,KAAK;AAIH,aAAO;AAAA,QACL,cAAc;AAAA,MAChB;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,MACT;AAAA,IACF,KAAK;AAEH,aAAO;AAAA,QACL,eAAe;AAAA,MACjB;AAAA,IACF,KAAK;AAEH,aAAO;AAAA,QACL,SAAS,UAAU;AAAA,MACrB;AAAA,IACF,KAAK;AAKH,aAAO;AAAA,QACL,aAAa;AAAA,MACf;AAAA,IACF,KAAK;AAGH,aAAO,UAAU,IACb,CAAC,IACD;AAAA,QACE,YAAY;AAAA,MACd;AAAA,IACN,KAAK;AAEH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AAEH,aAAO;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IACF;AACE,aAAO,CAAC;AAAA,EACZ;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,63 @@
1
+ function parseCommonEntityProperties(type, value) {
2
+ switch (type) {
3
+ case 5: {
4
+ return {
5
+ handle: value
6
+ };
7
+ }
8
+ case 6:
9
+ return {
10
+ lineTypeName: value
11
+ };
12
+ case 8:
13
+ return {
14
+ layer: value
15
+ };
16
+ case 48:
17
+ return {
18
+ lineTypeScale: value
19
+ };
20
+ case 60:
21
+ return {
22
+ visible: value === 0
23
+ };
24
+ case 62:
25
+ return {
26
+ colorNumber: value
27
+ };
28
+ case 67:
29
+ return value === 0 ? {} : {
30
+ paperSpace: value
31
+ };
32
+ case 68:
33
+ return {
34
+ viewportOn: value
35
+ };
36
+ case 69:
37
+ return {
38
+ viewport: value
39
+ };
40
+ case 210:
41
+ return {
42
+ extrusionX: value
43
+ };
44
+ case 220:
45
+ return {
46
+ extrusionY: value
47
+ };
48
+ case 230:
49
+ return {
50
+ extrusionZ: value
51
+ };
52
+ case 410:
53
+ return {
54
+ layout: value
55
+ };
56
+ default:
57
+ return {};
58
+ }
59
+ }
60
+ export {
61
+ parseCommonEntityProperties as default
62
+ };
63
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/common.ts"],
4
+ "sourcesContent": ["import type { CommonEntityProperties } from '../../types/handler-internal'\n\nexport default function parseCommonEntityProperties(\n type: number,\n value: string | number\n): CommonEntityProperties {\n switch (type) {\n case 5: {\n return {\n handle: value as string,\n }\n }\n case 6:\n // Linetype name (present if not BYLAYER).\n // The special name BYBLOCK indicates a\n // floating linetype. (optional)\n return {\n lineTypeName: value as string,\n }\n case 8:\n return {\n layer: value as string,\n }\n case 48:\n // Linetype scale (optional)\n return {\n lineTypeScale: value as number,\n }\n case 60:\n // Object visibility (optional): 0 = visible, 1 = invisible.\n return {\n visible: value === 0,\n }\n case 62:\n // Color number (present if not BYLAYER).\n // Zero indicates the BYBLOCK (floating) color.\n // 256 indicates BYLAYER.\n // A negative value indicates that the layer is turned off. (optional)\n return {\n colorNumber: value as number,\n }\n case 67:\n // Paper space or sheet.\n // Absent or zero indicates entity is in model space. 1 indicates entity is in paper space (optional)\n return value === 0\n ? {}\n : {\n paperSpace: value as number,\n }\n case 68:\n // Identifies whether viewport is on but fully off screen, is not active, or is off\n return {\n viewportOn: value as number,\n }\n case 69:\n // Viewport identification number\n return {\n viewport: value as number,\n }\n case 210:\n return {\n extrusionX: value as number,\n }\n case 220:\n return {\n extrusionY: value as number,\n }\n case 230:\n return {\n extrusionZ: value as number,\n }\n case 410:\n return {\n layout: value as string,\n }\n default:\n return {}\n }\n}\n"],
5
+ "mappings": "AAEe,SAAR,4BACL,MACA,OACwB;AACxB,UAAQ,MAAM;AAAA,IACZ,KAAK,GAAG;AACN,aAAO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,KAAK;AAIH,aAAO;AAAA,QACL,cAAc;AAAA,MAChB;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,OAAO;AAAA,MACT;AAAA,IACF,KAAK;AAEH,aAAO;AAAA,QACL,eAAe;AAAA,MACjB;AAAA,IACF,KAAK;AAEH,aAAO;AAAA,QACL,SAAS,UAAU;AAAA,MACrB;AAAA,IACF,KAAK;AAKH,aAAO;AAAA,QACL,aAAa;AAAA,MACf;AAAA,IACF,KAAK;AAGH,aAAO,UAAU,IACb,CAAC,IACD;AAAA,QACE,YAAY;AAAA,MACd;AAAA,IACN,KAAK;AAEH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AAEH,aAAO;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,YAAY;AAAA,MACd;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IACF;AACE,aAAO,CAAC;AAAA,EACZ;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,203 @@
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 dimension_exports = {};
30
+ __export(dimension_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => dimension_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(dimension_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "DIMENSION";
38
+ const process = (tuples) => {
39
+ return tuples.reduce(
40
+ (entity, tuple) => {
41
+ const type = tuple[0];
42
+ const value = tuple[1];
43
+ switch (type) {
44
+ case 1:
45
+ entity.text = value;
46
+ break;
47
+ case 2:
48
+ entity.block = value;
49
+ break;
50
+ case 3:
51
+ entity.styleName = value;
52
+ break;
53
+ case 10:
54
+ entity.start.x = value;
55
+ break;
56
+ case 20:
57
+ entity.start.y = value;
58
+ break;
59
+ case 30:
60
+ entity.start.z = value;
61
+ break;
62
+ case 11:
63
+ entity.textMidpoint.x = value;
64
+ break;
65
+ case 21:
66
+ entity.textMidpoint.y = value;
67
+ break;
68
+ case 31:
69
+ entity.textMidpoint.z = value;
70
+ break;
71
+ case 13:
72
+ entity.measureStart.x = value;
73
+ break;
74
+ case 23:
75
+ entity.measureStart.y = value;
76
+ break;
77
+ case 33:
78
+ entity.measureStart.z = value;
79
+ break;
80
+ case 14:
81
+ entity.measureEnd.x = value;
82
+ break;
83
+ case 24:
84
+ entity.measureEnd.y = value;
85
+ break;
86
+ case 34:
87
+ entity.measureEnd.z = value;
88
+ break;
89
+ case 50:
90
+ entity.rotation = value;
91
+ break;
92
+ case 51:
93
+ entity.horizonRotation = value;
94
+ break;
95
+ case 52:
96
+ entity.extensionRotation = value;
97
+ break;
98
+ case 53:
99
+ entity.textRotation = value;
100
+ break;
101
+ case 70: {
102
+ const dimType = parseBitCombinationsFromValue(value);
103
+ if (dimType.ordinateType) {
104
+ entity.ordinateType = true;
105
+ }
106
+ if (dimType.uniqueBlockReference) {
107
+ entity.uniqueBlockReference = true;
108
+ }
109
+ if (dimType.userDefinedLocation) {
110
+ entity.userDefinedLocation = true;
111
+ }
112
+ entity.dimensionType = dimType.dimensionType;
113
+ break;
114
+ }
115
+ case 71:
116
+ entity.attachementPoint = value;
117
+ break;
118
+ case 210:
119
+ entity.extrudeDirection = entity.extrudeDirection || {
120
+ x: 0,
121
+ y: 0,
122
+ z: 0
123
+ };
124
+ entity.extrudeDirection.x = value;
125
+ break;
126
+ case 220:
127
+ entity.extrudeDirection = entity.extrudeDirection || {
128
+ x: 0,
129
+ y: 0,
130
+ z: 0
131
+ };
132
+ entity.extrudeDirection.y = value;
133
+ break;
134
+ case 230:
135
+ entity.extrudeDirection = entity.extrudeDirection || {
136
+ x: 0,
137
+ y: 0,
138
+ z: 0
139
+ };
140
+ entity.extrudeDirection.z = value;
141
+ break;
142
+ default:
143
+ Object.assign(entity, (0, import_common.default)(type, value));
144
+ break;
145
+ }
146
+ return entity;
147
+ },
148
+ {
149
+ type: TYPE,
150
+ start: { x: 0, y: 0, z: 0 },
151
+ measureStart: { x: 0, y: 0, z: 0 },
152
+ measureEnd: { x: 0, y: 0, z: 0 },
153
+ textMidpoint: { x: 0, y: 0, z: 0 },
154
+ attachementPoint: 1,
155
+ dimensionType: 0
156
+ }
157
+ );
158
+ };
159
+ function parseBitCombinationsFromValue(value) {
160
+ let uniqueBlockReference = false;
161
+ let ordinateType = false;
162
+ let userDefinedLocation = false;
163
+ if (value > 6) {
164
+ const alt1 = value - 32;
165
+ const alt2 = value - 64;
166
+ const alt3 = value - 32 - 64;
167
+ const alt4 = value - 32 - 128;
168
+ const alt5 = value - 32 - 64 - 128;
169
+ if (alt1 >= 0 && alt1 <= 6) {
170
+ uniqueBlockReference = true;
171
+ value = alt1;
172
+ } else if (alt2 >= 0 && alt2 <= 6) {
173
+ ordinateType = true;
174
+ value = alt2;
175
+ } else if (alt3 >= 0 && alt3 <= 6) {
176
+ uniqueBlockReference = true;
177
+ ordinateType = true;
178
+ value = alt3;
179
+ } else if (alt4 >= 0 && alt4 <= 6) {
180
+ uniqueBlockReference = true;
181
+ userDefinedLocation = true;
182
+ value = alt4;
183
+ } else if (alt5 >= 0 && alt5 <= 6) {
184
+ uniqueBlockReference = true;
185
+ ordinateType = true;
186
+ userDefinedLocation = true;
187
+ value = alt5;
188
+ }
189
+ }
190
+ return {
191
+ dimensionType: value,
192
+ uniqueBlockReference,
193
+ ordinateType,
194
+ userDefinedLocation
195
+ };
196
+ }
197
+ var dimension_default = { TYPE, process };
198
+ // Annotate the CommonJS export names for ESM import in node:
199
+ 0 && (module.exports = {
200
+ TYPE,
201
+ process
202
+ });
203
+ //# sourceMappingURL=dimension.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/dimension.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'DIMENSION'\n\n\ninterface Point3D {\n x: number\n y: number\n z: number\n}\n\ninterface DimensionEntity {\n type: typeof TYPE\n block?: string\n start: Point3D\n textMidpoint: Point3D\n measureStart: Point3D\n measureEnd: Point3D\n rotation?: number\n horizonRotation?: number\n extensionRotation?: number\n textRotation?: number\n ordinateType?: boolean\n uniqueBlockReference?: boolean\n userDefinedLocation?: boolean\n dimensionType: number\n attachementPoint: number\n extrudeDirection?: Point3D\n [key: string]: unknown\n}\n\ninterface BitCombinationsResult {\n dimensionType: number\n uniqueBlockReference: boolean\n ordinateType: boolean\n userDefinedLocation: boolean\n}\n\nexport const process = (tuples: DXFTuple[]): DimensionEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 1:\n entity.text = value as string\n break\n case 2:\n entity.block = value as string\n break\n case 3:\n entity.styleName = value as string\n break\n case 10:\n entity.start.x = value as number\n break\n case 20:\n entity.start.y = value as number\n break\n case 30:\n entity.start.z = value as number\n break\n case 11:\n entity.textMidpoint.x = value as number\n break\n case 21:\n entity.textMidpoint.y = value as number\n break\n case 31:\n entity.textMidpoint.z = value as number\n break\n case 13:\n entity.measureStart.x = value as number\n break\n case 23:\n entity.measureStart.y = value as number\n break\n case 33:\n entity.measureStart.z = value as number\n break\n case 14:\n entity.measureEnd.x = value as number\n break\n case 24:\n entity.measureEnd.y = value as number\n break\n case 34:\n entity.measureEnd.z = value as number\n break\n case 50:\n entity.rotation = value as number\n break\n case 51:\n entity.horizonRotation = value as number\n break\n case 52:\n entity.extensionRotation = value as number\n break\n case 53:\n entity.textRotation = value as number\n break\n case 70: {\n const dimType = parseBitCombinationsFromValue(value as number)\n if (dimType.ordinateType) {\n entity.ordinateType = true\n }\n if (dimType.uniqueBlockReference) {\n entity.uniqueBlockReference = true\n }\n if (dimType.userDefinedLocation) {\n entity.userDefinedLocation = true\n }\n entity.dimensionType = dimType.dimensionType\n break\n }\n case 71:\n entity.attachementPoint = value as number\n break\n case 210:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.x = value as number\n break\n case 220:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.y = value as number\n break\n case 230:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.z = value as number\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n start: { x: 0, y: 0, z: 0 },\n measureStart: { x: 0, y: 0, z: 0 },\n measureEnd: { x: 0, y: 0, z: 0 },\n textMidpoint: { x: 0, y: 0, z: 0 },\n attachementPoint: 1,\n dimensionType: 0,\n } as DimensionEntity,\n )\n}\n\n/**\n * From DXF Reference for DIMENSION\n * Values 0-6 are integer values that represent the dimension type. Values 32, 64, and 128\n * are bit values, which are added to the integer values (value 32 is always set in R13 and\n * later releases)\n * 0 = Rotated, horizontal, or vertical; 1 = Aligned\n * 2 = Angular; 3 = Diameter; 4 = Radius\n * 5 = Angular 3 point; 6 = Ordinate\n * 32 = Indicates that the block reference (group code 2) is referenced by this dimension only\n * 64 = Ordinate type. This is a bit value (bit 7) used only with integer value 6. If set, ordinate is X-type; if not set, ordinate is Y-type\n * 128 = This is a bit value (bit 8) added to the other group 70 values if the dimension text has been positioned at a user-defined location rather than at the default location\n */\nfunction parseBitCombinationsFromValue(value: number): BitCombinationsResult {\n let uniqueBlockReference = false\n let ordinateType = false\n let userDefinedLocation = false\n\n // ToDo: Solve in some more clever way??\n if (value > 6) {\n const alt1 = value - 32\n const alt2 = value - 64\n const alt3 = value - 32 - 64\n const alt4 = value - 32 - 128\n const alt5 = value - 32 - 64 - 128\n\n if (alt1 >= 0 && alt1 <= 6) {\n uniqueBlockReference = true\n value = alt1\n } else if (alt2 >= 0 && alt2 <= 6) {\n ordinateType = true\n value = alt2\n } else if (alt3 >= 0 && alt3 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n value = alt3\n } else if (alt4 >= 0 && alt4 <= 6) {\n uniqueBlockReference = true\n userDefinedLocation = true\n value = alt4\n } else if (alt5 >= 0 && alt5 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n userDefinedLocation = true\n value = alt5\n }\n }\n return {\n dimensionType: value,\n uniqueBlockReference,\n ordinateType,\n userDefinedLocation,\n }\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "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",
6
+ "names": ["common"]
7
+ }