@linkiez/dxf-renew 7.1.0 → 7.2.3

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 (398) hide show
  1. package/.eslintrc.json +1 -16
  2. package/.yarn/install-state.gz +0 -0
  3. package/ARCHITECTURE.md +163 -0
  4. package/CHANGELOG.md +34 -0
  5. package/README.md +72 -10
  6. package/{PLAN.md → ROADMAP.md} +227 -35
  7. package/build.mjs +28 -0
  8. package/dist/dxf.js +1090 -344
  9. package/docs/FIXTURE_VALIDATION_EZDXF.md +1 -1
  10. package/lib/Helper.cjs +4 -0
  11. package/lib/Helper.cjs.map +3 -3
  12. package/lib/Helper.d.ts +19 -0
  13. package/lib/Helper.d.ts.map +1 -0
  14. package/lib/Helper.js +4 -0
  15. package/lib/Helper.js.map +2 -2
  16. package/lib/applyTransforms.d.ts +12 -0
  17. package/lib/applyTransforms.d.ts.map +1 -0
  18. package/lib/cli.cjs +1 -2
  19. package/lib/cli.cjs.map +1 -1
  20. package/lib/cli.d.ts +3 -0
  21. package/lib/cli.d.ts.map +1 -0
  22. package/lib/config.d.ts +4 -0
  23. package/lib/config.d.ts.map +1 -0
  24. package/lib/constants.d.ts +3 -0
  25. package/lib/constants.d.ts.map +1 -0
  26. package/lib/denormalise.d.ts +3 -0
  27. package/lib/denormalise.d.ts.map +1 -0
  28. package/lib/dimensionToSVG.d.ts +18 -0
  29. package/lib/dimensionToSVG.d.ts.map +1 -0
  30. package/lib/entityToPolyline.cjs +95 -0
  31. package/lib/entityToPolyline.cjs.map +3 -3
  32. package/lib/entityToPolyline.d.ts +48 -0
  33. package/lib/entityToPolyline.d.ts.map +1 -0
  34. package/lib/entityToPolyline.js +95 -0
  35. package/lib/entityToPolyline.js.map +2 -2
  36. package/lib/getRGBForEntity.d.ts +5 -0
  37. package/lib/getRGBForEntity.d.ts.map +1 -0
  38. package/lib/groupEntitiesByLayer.d.ts +3 -0
  39. package/lib/groupEntitiesByLayer.d.ts.map +1 -0
  40. package/lib/handlers/blocks.d.ts +3 -0
  41. package/lib/handlers/blocks.d.ts.map +1 -0
  42. package/lib/handlers/entities.cjs +22 -2
  43. package/lib/handlers/entities.cjs.map +3 -3
  44. package/lib/handlers/entities.d.ts +4 -0
  45. package/lib/handlers/entities.d.ts.map +1 -0
  46. package/lib/handlers/entities.js +22 -2
  47. package/lib/handlers/entities.js.map +2 -2
  48. package/lib/handlers/entity/arc.d.ts +20 -0
  49. package/lib/handlers/entity/arc.d.ts.map +1 -0
  50. package/lib/handlers/entity/attdef.d.ts +11 -0
  51. package/lib/handlers/entity/attdef.d.ts.map +1 -0
  52. package/lib/handlers/entity/attrib.d.ts +9 -0
  53. package/lib/handlers/entity/attrib.d.ts.map +1 -0
  54. package/lib/handlers/entity/circle.d.ts +17 -0
  55. package/lib/handlers/entity/circle.d.ts.map +1 -0
  56. package/lib/handlers/entity/common.d.ts +3 -0
  57. package/lib/handlers/entity/common.d.ts.map +1 -0
  58. package/lib/handlers/entity/dgnUnderlay.d.ts +33 -0
  59. package/lib/handlers/entity/dgnUnderlay.d.ts.map +1 -0
  60. package/lib/handlers/entity/dimension.d.ts +35 -0
  61. package/lib/handlers/entity/dimension.d.ts.map +1 -0
  62. package/lib/handlers/entity/dwfUnderlay.d.ts +33 -0
  63. package/lib/handlers/entity/dwfUnderlay.d.ts.map +1 -0
  64. package/lib/handlers/entity/ellipse.d.ts +10 -0
  65. package/lib/handlers/entity/ellipse.d.ts.map +1 -0
  66. package/lib/handlers/entity/hatch.d.ts +9 -0
  67. package/lib/handlers/entity/hatch.d.ts.map +1 -0
  68. package/lib/handlers/entity/image.d.ts +26 -0
  69. package/lib/handlers/entity/image.d.ts.map +1 -0
  70. package/lib/handlers/entity/insert.d.ts +10 -0
  71. package/lib/handlers/entity/insert.d.ts.map +1 -0
  72. package/lib/handlers/entity/leader.d.ts +48 -0
  73. package/lib/handlers/entity/leader.d.ts.map +1 -0
  74. package/lib/handlers/entity/line.d.ts +16 -0
  75. package/lib/handlers/entity/line.d.ts.map +1 -0
  76. package/lib/handlers/entity/lwpolyline.d.ts +10 -0
  77. package/lib/handlers/entity/lwpolyline.d.ts.map +1 -0
  78. package/lib/handlers/entity/mleader.cjs +69 -0
  79. package/lib/handlers/entity/mleader.cjs.map +7 -0
  80. package/lib/handlers/entity/mleader.d.ts +15 -0
  81. package/lib/handlers/entity/mleader.d.ts.map +1 -0
  82. package/lib/handlers/entity/mleader.js +34 -0
  83. package/lib/handlers/entity/mleader.js.map +7 -0
  84. package/lib/handlers/entity/mline.cjs +91 -0
  85. package/lib/handlers/entity/mline.cjs.map +7 -0
  86. package/lib/handlers/entity/mline.d.ts +17 -0
  87. package/lib/handlers/entity/mline.d.ts.map +1 -0
  88. package/lib/handlers/entity/mline.js +56 -0
  89. package/lib/handlers/entity/mline.js.map +7 -0
  90. package/lib/handlers/entity/mtext.d.ts +62 -0
  91. package/lib/handlers/entity/mtext.d.ts.map +1 -0
  92. package/lib/handlers/entity/ole2Frame.d.ts +9 -0
  93. package/lib/handlers/entity/ole2Frame.d.ts.map +1 -0
  94. package/lib/handlers/entity/oleframe.cjs +98 -0
  95. package/lib/handlers/entity/oleframe.cjs.map +7 -0
  96. package/lib/handlers/entity/oleframe.d.ts +9 -0
  97. package/lib/handlers/entity/oleframe.d.ts.map +1 -0
  98. package/lib/handlers/entity/oleframe.js +63 -0
  99. package/lib/handlers/entity/oleframe.js.map +7 -0
  100. package/lib/handlers/entity/pdfUnderlay.d.ts +33 -0
  101. package/lib/handlers/entity/pdfUnderlay.d.ts.map +1 -0
  102. package/lib/handlers/entity/point.d.ts +17 -0
  103. package/lib/handlers/entity/point.d.ts.map +1 -0
  104. package/lib/handlers/entity/polyline.d.ts +21 -0
  105. package/lib/handlers/entity/polyline.d.ts.map +1 -0
  106. package/lib/handlers/entity/ray.cjs +81 -0
  107. package/lib/handlers/entity/ray.cjs.map +7 -0
  108. package/lib/handlers/entity/ray.d.ts +15 -0
  109. package/lib/handlers/entity/ray.d.ts.map +1 -0
  110. package/lib/handlers/entity/ray.js +46 -0
  111. package/lib/handlers/entity/ray.js.map +7 -0
  112. package/lib/handlers/entity/region.cjs +67 -0
  113. package/lib/handlers/entity/region.cjs.map +7 -0
  114. package/lib/handlers/entity/region.d.ts +14 -0
  115. package/lib/handlers/entity/region.d.ts.map +1 -0
  116. package/lib/handlers/entity/region.js +32 -0
  117. package/lib/handlers/entity/region.js.map +7 -0
  118. package/lib/handlers/entity/shape.cjs +95 -0
  119. package/lib/handlers/entity/shape.cjs.map +7 -0
  120. package/lib/handlers/entity/shape.d.ts +22 -0
  121. package/lib/handlers/entity/shape.d.ts.map +1 -0
  122. package/lib/handlers/entity/shape.js +60 -0
  123. package/lib/handlers/entity/shape.js.map +7 -0
  124. package/lib/handlers/entity/solid.d.ts +15 -0
  125. package/lib/handlers/entity/solid.d.ts.map +1 -0
  126. package/lib/handlers/entity/spline.d.ts +30 -0
  127. package/lib/handlers/entity/spline.d.ts.map +1 -0
  128. package/lib/handlers/entity/table.cjs +71 -0
  129. package/lib/handlers/entity/table.cjs.map +7 -0
  130. package/lib/handlers/entity/table.d.ts +16 -0
  131. package/lib/handlers/entity/table.d.ts.map +1 -0
  132. package/lib/handlers/entity/table.js +36 -0
  133. package/lib/handlers/entity/table.js.map +7 -0
  134. package/lib/handlers/entity/text.d.ts +31 -0
  135. package/lib/handlers/entity/text.d.ts.map +1 -0
  136. package/lib/handlers/entity/threeDFace.d.ts +14 -0
  137. package/lib/handlers/entity/threeDFace.d.ts.map +1 -0
  138. package/lib/handlers/entity/tolerance.d.ts +25 -0
  139. package/lib/handlers/entity/tolerance.d.ts.map +1 -0
  140. package/lib/handlers/entity/trace.cjs +101 -0
  141. package/lib/handlers/entity/trace.cjs.map +7 -0
  142. package/lib/handlers/entity/trace.d.ts +15 -0
  143. package/lib/handlers/entity/trace.d.ts.map +1 -0
  144. package/lib/handlers/entity/trace.js +66 -0
  145. package/lib/handlers/entity/trace.js.map +7 -0
  146. package/lib/handlers/entity/vertex.d.ts +10 -0
  147. package/lib/handlers/entity/vertex.d.ts.map +1 -0
  148. package/lib/handlers/entity/viewport.d.ts +9 -0
  149. package/lib/handlers/entity/viewport.d.ts.map +1 -0
  150. package/lib/handlers/entity/wipeout.cjs +122 -0
  151. package/lib/handlers/entity/wipeout.cjs.map +7 -0
  152. package/lib/handlers/entity/wipeout.d.ts +28 -0
  153. package/lib/handlers/entity/wipeout.d.ts.map +1 -0
  154. package/lib/handlers/entity/wipeout.js +87 -0
  155. package/lib/handlers/entity/wipeout.js.map +7 -0
  156. package/lib/handlers/entity/xline.cjs +81 -0
  157. package/lib/handlers/entity/xline.cjs.map +7 -0
  158. package/lib/handlers/entity/xline.d.ts +15 -0
  159. package/lib/handlers/entity/xline.d.ts.map +1 -0
  160. package/lib/handlers/entity/xline.js +46 -0
  161. package/lib/handlers/entity/xline.js.map +7 -0
  162. package/lib/handlers/header.d.ts +3 -0
  163. package/lib/handlers/header.d.ts.map +1 -0
  164. package/lib/handlers/objects.cjs +43 -1
  165. package/lib/handlers/objects.cjs.map +2 -2
  166. package/lib/handlers/objects.d.ts +3 -0
  167. package/lib/handlers/objects.d.ts.map +1 -0
  168. package/lib/handlers/objects.js +43 -1
  169. package/lib/handlers/objects.js.map +2 -2
  170. package/lib/handlers/tables.cjs +96 -17
  171. package/lib/handlers/tables.cjs.map +2 -2
  172. package/lib/handlers/tables.d.ts +13 -0
  173. package/lib/handlers/tables.d.ts.map +1 -0
  174. package/lib/handlers/tables.js +96 -17
  175. package/lib/handlers/tables.js.map +2 -2
  176. package/lib/index.cjs +5 -2
  177. package/lib/index.cjs.map +3 -3
  178. package/lib/index.d.ts +10 -0
  179. package/lib/index.d.ts.map +1 -0
  180. package/lib/index.js +18 -16
  181. package/lib/index.js.map +3 -3
  182. package/lib/parseString.d.ts +3 -0
  183. package/lib/parseString.d.ts.map +1 -0
  184. package/lib/toJson.cjs +29 -0
  185. package/lib/toJson.cjs.map +7 -0
  186. package/lib/toJson.d.ts +3 -0
  187. package/lib/toJson.d.ts.map +1 -0
  188. package/lib/toJson.js +9 -0
  189. package/lib/toJson.js.map +7 -0
  190. package/lib/toPolylines.d.ts +4 -0
  191. package/lib/toPolylines.d.ts.map +1 -0
  192. package/lib/toSVG.cjs +34 -3
  193. package/lib/toSVG.cjs.map +2 -2
  194. package/lib/toSVG.d.ts +7 -0
  195. package/lib/toSVG.d.ts.map +1 -0
  196. package/lib/toSVG.js +34 -3
  197. package/lib/toSVG.js.map +2 -2
  198. package/lib/types/arc-entity.d.ts +8 -0
  199. package/lib/types/arc-entity.d.ts.map +1 -0
  200. package/lib/types/base-entity.d.ts +22 -0
  201. package/lib/types/base-entity.d.ts.map +1 -0
  202. package/lib/types/circle-entity.d.ts +6 -0
  203. package/lib/types/circle-entity.d.ts.map +1 -0
  204. package/lib/types/common.d.ts +30 -0
  205. package/lib/types/common.d.ts.map +1 -0
  206. package/lib/types/dimension-entity.d.ts +31 -0
  207. package/lib/types/dimension-entity.d.ts.map +1 -0
  208. package/lib/types/dxf.d.ts +55 -0
  209. package/lib/types/dxf.d.ts.map +1 -0
  210. package/lib/types/ellipse-entity.d.ts +11 -0
  211. package/lib/types/ellipse-entity.d.ts.map +1 -0
  212. package/lib/types/entity.cjs.map +1 -1
  213. package/lib/types/entity.d.ts +30 -0
  214. package/lib/types/entity.d.ts.map +1 -0
  215. package/lib/types/handler-internal.d.ts +44 -0
  216. package/lib/types/handler-internal.d.ts.map +1 -0
  217. package/lib/types/handler.d.ts +8 -0
  218. package/lib/types/handler.d.ts.map +1 -0
  219. package/lib/types/hatch-entity.d.ts +116 -0
  220. package/lib/types/hatch-entity.d.ts.map +1 -0
  221. package/lib/types/helper.cjs.map +1 -1
  222. package/lib/types/helper.d.ts +11 -0
  223. package/lib/types/helper.d.ts.map +1 -0
  224. package/lib/types/image-entity.d.ts +25 -0
  225. package/lib/types/image-entity.d.ts.map +1 -0
  226. package/lib/types/index.cjs +20 -0
  227. package/lib/types/index.cjs.map +2 -2
  228. package/lib/types/index.d.ts +43 -0
  229. package/lib/types/index.d.ts.map +1 -0
  230. package/lib/types/index.js +10 -0
  231. package/lib/types/index.js.map +2 -2
  232. package/lib/types/insert-entity.d.ts +16 -0
  233. package/lib/types/insert-entity.d.ts.map +1 -0
  234. package/lib/types/layer-groups.d.ts +6 -0
  235. package/lib/types/layer-groups.d.ts.map +1 -0
  236. package/lib/types/leader-entity.d.ts +28 -0
  237. package/lib/types/leader-entity.d.ts.map +1 -0
  238. package/lib/types/line-entity.d.ts +8 -0
  239. package/lib/types/line-entity.d.ts.map +1 -0
  240. package/lib/types/mleader-entity.cjs +17 -0
  241. package/lib/types/mleader-entity.cjs.map +7 -0
  242. package/lib/types/mleader-entity.d.ts +7 -0
  243. package/lib/types/mleader-entity.d.ts.map +1 -0
  244. package/lib/types/mleader-entity.js +1 -0
  245. package/lib/types/mleader-entity.js.map +7 -0
  246. package/lib/types/mline-entity.cjs +17 -0
  247. package/lib/types/mline-entity.cjs.map +7 -0
  248. package/lib/types/mline-entity.d.ts +10 -0
  249. package/lib/types/mline-entity.d.ts.map +1 -0
  250. package/lib/types/mline-entity.js +1 -0
  251. package/lib/types/mline-entity.js.map +7 -0
  252. package/lib/types/mtext-entity.d.ts +33 -0
  253. package/lib/types/mtext-entity.d.ts.map +1 -0
  254. package/lib/types/ole2frame-entity.d.ts +33 -0
  255. package/lib/types/ole2frame-entity.d.ts.map +1 -0
  256. package/lib/types/oleframe-entity.cjs +17 -0
  257. package/lib/types/oleframe-entity.cjs.map +7 -0
  258. package/lib/types/oleframe-entity.d.ts +33 -0
  259. package/lib/types/oleframe-entity.d.ts.map +1 -0
  260. package/lib/types/oleframe-entity.js +1 -0
  261. package/lib/types/oleframe-entity.js.map +7 -0
  262. package/lib/types/options.cjs.map +1 -1
  263. package/lib/types/options.d.ts +57 -0
  264. package/lib/types/options.d.ts.map +1 -0
  265. package/lib/types/point-entity.d.ts +5 -0
  266. package/lib/types/point-entity.d.ts.map +1 -0
  267. package/lib/types/polyline-entity.d.ts +17 -0
  268. package/lib/types/polyline-entity.d.ts.map +1 -0
  269. package/lib/types/polylines.d.ts +18 -0
  270. package/lib/types/polylines.d.ts.map +1 -0
  271. package/lib/types/ray-entity.cjs +17 -0
  272. package/lib/types/ray-entity.cjs.map +7 -0
  273. package/lib/types/ray-entity.d.ts +10 -0
  274. package/lib/types/ray-entity.d.ts.map +1 -0
  275. package/lib/types/ray-entity.js +1 -0
  276. package/lib/types/ray-entity.js.map +7 -0
  277. package/lib/types/region-entity.cjs +17 -0
  278. package/lib/types/region-entity.cjs.map +7 -0
  279. package/lib/types/region-entity.d.ts +10 -0
  280. package/lib/types/region-entity.d.ts.map +1 -0
  281. package/lib/types/region-entity.js +1 -0
  282. package/lib/types/region-entity.js.map +7 -0
  283. package/lib/types/shape-entity.cjs +17 -0
  284. package/lib/types/shape-entity.cjs.map +7 -0
  285. package/lib/types/shape-entity.d.ts +17 -0
  286. package/lib/types/shape-entity.d.ts.map +1 -0
  287. package/lib/types/shape-entity.js +1 -0
  288. package/lib/types/shape-entity.js.map +7 -0
  289. package/lib/types/solid-entity.d.ts +7 -0
  290. package/lib/types/solid-entity.d.ts.map +1 -0
  291. package/lib/types/spline-entity.d.ts +10 -0
  292. package/lib/types/spline-entity.d.ts.map +1 -0
  293. package/lib/types/svg.d.ts +27 -0
  294. package/lib/types/svg.d.ts.map +1 -0
  295. package/lib/types/table-entity.cjs +17 -0
  296. package/lib/types/table-entity.cjs.map +7 -0
  297. package/lib/types/table-entity.d.ts +12 -0
  298. package/lib/types/table-entity.d.ts.map +1 -0
  299. package/lib/types/table-entity.js +1 -0
  300. package/lib/types/table-entity.js.map +7 -0
  301. package/lib/types/tables.cjs.map +1 -1
  302. package/lib/types/tables.d.ts +549 -0
  303. package/lib/types/tables.d.ts.map +1 -0
  304. package/lib/types/text-entity.d.ts +21 -0
  305. package/lib/types/text-entity.d.ts.map +1 -0
  306. package/lib/types/tolerance-entity.d.ts +14 -0
  307. package/lib/types/tolerance-entity.d.ts.map +1 -0
  308. package/lib/types/trace-entity.cjs +17 -0
  309. package/lib/types/trace-entity.cjs.map +7 -0
  310. package/lib/types/trace-entity.d.ts +10 -0
  311. package/lib/types/trace-entity.d.ts.map +1 -0
  312. package/lib/types/trace-entity.js +1 -0
  313. package/lib/types/trace-entity.js.map +7 -0
  314. package/lib/types/underlay-entity.d.ts +26 -0
  315. package/lib/types/underlay-entity.d.ts.map +1 -0
  316. package/lib/types/util-types.d.ts +22 -0
  317. package/lib/types/util-types.d.ts.map +1 -0
  318. package/lib/types/viewport-entity.d.ts +79 -0
  319. package/lib/types/viewport-entity.d.ts.map +1 -0
  320. package/lib/types/wipeout-entity.cjs +17 -0
  321. package/lib/types/wipeout-entity.cjs.map +7 -0
  322. package/lib/types/wipeout-entity.d.ts +18 -0
  323. package/lib/types/wipeout-entity.d.ts.map +1 -0
  324. package/lib/types/wipeout-entity.js +1 -0
  325. package/lib/types/wipeout-entity.js.map +7 -0
  326. package/lib/types/xline-entity.cjs +17 -0
  327. package/lib/types/xline-entity.cjs.map +7 -0
  328. package/lib/types/xline-entity.d.ts +10 -0
  329. package/lib/types/xline-entity.d.ts.map +1 -0
  330. package/lib/types/xline-entity.js +1 -0
  331. package/lib/types/xline-entity.js.map +7 -0
  332. package/lib/types.d.ts +2 -0
  333. package/lib/types.d.ts.map +1 -0
  334. package/lib/util/bSpline.d.ts +8 -0
  335. package/lib/util/bSpline.d.ts.map +1 -0
  336. package/lib/util/colors.d.ts +5 -0
  337. package/lib/util/colors.d.ts.map +1 -0
  338. package/lib/util/createArcForLWPolyline.d.ts +9 -0
  339. package/lib/util/createArcForLWPolyline.d.ts.map +1 -0
  340. package/lib/util/dxfColorToRGB.d.ts +22 -0
  341. package/lib/util/dxfColorToRGB.d.ts.map +1 -0
  342. package/lib/util/escapeXmlText.d.ts +2 -0
  343. package/lib/util/escapeXmlText.d.ts.map +1 -0
  344. package/lib/util/insertKnot.d.ts +9 -0
  345. package/lib/util/insertKnot.d.ts.map +1 -0
  346. package/lib/util/logger.d.ts +10 -0
  347. package/lib/util/logger.d.ts.map +1 -0
  348. package/lib/util/rgbToColorAttribute.d.ts +7 -0
  349. package/lib/util/rgbToColorAttribute.d.ts.map +1 -0
  350. package/lib/util/rotate.d.ts +9 -0
  351. package/lib/util/rotate.d.ts.map +1 -0
  352. package/lib/util/round10.d.ts +2 -0
  353. package/lib/util/round10.d.ts.map +1 -0
  354. package/lib/util/toPiecewiseBezier.d.ts +18 -0
  355. package/lib/util/toPiecewiseBezier.d.ts.map +1 -0
  356. package/lib/util/transformBoundingBoxAndElement.d.ts +9 -0
  357. package/lib/util/transformBoundingBoxAndElement.d.ts.map +1 -0
  358. package/package.json +5 -19
  359. package/src/Helper.ts +6 -1
  360. package/src/entityToPolyline.ts +124 -2
  361. package/src/handlers/entities.ts +21 -1
  362. package/src/handlers/entity/mleader.ts +46 -0
  363. package/src/handlers/entity/mline.ts +74 -0
  364. package/src/handlers/entity/oleframe.ts +62 -0
  365. package/src/handlers/entity/ray.ts +52 -0
  366. package/src/handlers/entity/region.ts +42 -0
  367. package/src/handlers/entity/shape.ts +73 -0
  368. package/src/handlers/entity/table.ts +49 -0
  369. package/src/handlers/entity/trace.ts +72 -0
  370. package/src/handlers/entity/wipeout.ts +114 -0
  371. package/src/handlers/entity/xline.ts +52 -0
  372. package/src/handlers/objects.ts +64 -8
  373. package/src/handlers/tables.ts +134 -21
  374. package/src/index.ts +9 -18
  375. package/src/toJson.ts +8 -0
  376. package/src/toSVG.ts +45 -3
  377. package/src/types/entity.ts +20 -0
  378. package/src/types/helper.ts +2 -1
  379. package/src/types/index.ts +10 -0
  380. package/src/types/mleader-entity.ts +8 -0
  381. package/src/types/mline-entity.ts +12 -0
  382. package/src/types/oleframe-entity.ts +40 -0
  383. package/src/types/options.ts +7 -0
  384. package/src/types/ray-entity.ts +12 -0
  385. package/src/types/region-entity.ts +11 -0
  386. package/src/types/shape-entity.ts +19 -0
  387. package/src/types/table-entity.ts +14 -0
  388. package/src/types/tables.ts +76 -0
  389. package/src/types/trace-entity.ts +14 -0
  390. package/src/types/wipeout-entity.ts +20 -0
  391. package/src/types/xline-entity.ts +12 -0
  392. package/docs/DIMENSION_SUMMARY.md +0 -254
  393. package/docs/DXF_VERSION_SUPPORT.md +0 -45
  394. package/docs/ENTITY_SVG_ROADMAP.md +0 -96
  395. package/docs/IMPLEMENTED-2D-ENTITIES.md +0 -54
  396. package/docs/README.md +0 -22
  397. package/docs/SVG_RENDERING_INTEGRATION_TESTS.md +0 -119
  398. package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.md +0 -241
@@ -0,0 +1,26 @@
1
+ import type { DXFTuple, PartialPoint3D } from '../../types';
2
+ export declare const TYPE = "IMAGE";
3
+ interface ImageEntity {
4
+ type: typeof TYPE;
5
+ insertionPoint: PartialPoint3D;
6
+ uVector: PartialPoint3D;
7
+ vVector: PartialPoint3D;
8
+ pixelSizeX: number;
9
+ pixelSizeY: number;
10
+ imageDefHandle?: string;
11
+ imageDefReactorHandle?: string;
12
+ displayProperties?: number;
13
+ clippingState?: number;
14
+ brightness?: number;
15
+ contrast?: number;
16
+ fade?: number;
17
+ classVersion?: number;
18
+ [key: string]: unknown;
19
+ }
20
+ export declare const process: (tuples: DXFTuple[]) => ImageEntity;
21
+ declare const _default: {
22
+ TYPE: string;
23
+ process: (tuples: DXFTuple[]) => ImageEntity;
24
+ };
25
+ export default _default;
26
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAI3D,eAAO,MAAM,IAAI,UAAU,CAAA;AAE3B,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,IAAI,CAAA;IAEjB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,EAAE,cAAc,CAAA;IACvB,OAAO,EAAE,cAAc,CAAA;IAEvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAElB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,WAsF5C,CAAA;;;sBAtF+B,QAAQ,EAAE,KAAG,WAAW;;AAwFxD,wBAAgC"}
@@ -0,0 +1,10 @@
1
+ import type { DXFTuple } from '../../types/dxf';
2
+ import type { InsertEntity } from '../../types';
3
+ export declare const TYPE = "INSERT";
4
+ export declare const process: (tuples: DXFTuple[]) => InsertEntity;
5
+ declare const _default: {
6
+ TYPE: string;
7
+ process: (tuples: DXFTuple[]) => InsertEntity;
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=insert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAI/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,eAAO,MAAM,IAAI,WAAW,CAAA;AAG5B,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,YA6D5C,CAAA;;;sBA7D+B,QAAQ,EAAE,KAAG,YAAY;;AA+DzD,wBAAgC"}
@@ -0,0 +1,48 @@
1
+ import type { DXFTuple } from '../../types';
2
+ export declare const TYPE = "LEADER";
3
+ interface LeaderEntity {
4
+ type: typeof TYPE;
5
+ vertices: Array<{
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ }>;
10
+ dimensionStyleName?: string;
11
+ arrowheadFlag?: number;
12
+ pathType?: number;
13
+ creationFlag?: number;
14
+ hooklineDirectionFlag?: number;
15
+ hooklineFlag?: number;
16
+ textHeight?: number;
17
+ textWidth?: number;
18
+ color?: number;
19
+ annotationHandle?: string;
20
+ normal?: {
21
+ x: number;
22
+ y: number;
23
+ z: number;
24
+ };
25
+ horizontalDirection?: {
26
+ x: number;
27
+ y: number;
28
+ z: number;
29
+ };
30
+ blockOffset?: {
31
+ x: number;
32
+ y: number;
33
+ z: number;
34
+ };
35
+ annotationOffset?: {
36
+ x: number;
37
+ y: number;
38
+ z: number;
39
+ };
40
+ [key: string]: unknown;
41
+ }
42
+ export declare const process: (tuples: DXFTuple[]) => LeaderEntity;
43
+ declare const _default: {
44
+ TYPE: string;
45
+ process: (tuples: DXFTuple[]) => LeaderEntity;
46
+ };
47
+ export default _default;
48
+ //# sourceMappingURL=leader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leader.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/leader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,eAAO,MAAM,IAAI,WAAW,CAAA;AAE5B,UAAU,YAAY;IACpB,IAAI,EAAE,OAAO,IAAI,CAAA;IACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAEpD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,mBAAmB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzD,WAAW,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,gBAAgB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAEtD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAUD,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,YAiH5C,CAAA;;;sBAjH+B,QAAQ,EAAE,KAAG,YAAY;;AAmHzD,wBAAgC"}
@@ -0,0 +1,16 @@
1
+ import type { DXFTuple, PartialPoint3D } from '../../types';
2
+ export declare const TYPE = "LINE";
3
+ interface LineEntity {
4
+ type: typeof TYPE;
5
+ start: PartialPoint3D;
6
+ end: PartialPoint3D;
7
+ thickness?: number;
8
+ [key: string]: unknown;
9
+ }
10
+ export declare const process: (tuples: DXFTuple[]) => LineEntity;
11
+ declare const _default: {
12
+ TYPE: string;
13
+ process: (tuples: DXFTuple[]) => LineEntity;
14
+ };
15
+ export default _default;
16
+ //# sourceMappingURL=line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/line.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAI3D,eAAO,MAAM,IAAI,SAAS,CAAA;AAE1B,UAAU,UAAU;IAClB,IAAI,EAAE,OAAO,IAAI,CAAA;IACjB,KAAK,EAAE,cAAc,CAAA;IACrB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,UAuC5C,CAAA;;;sBAvC+B,QAAQ,EAAE,KAAG,UAAU;;AAyCvD,wBAAgC"}
@@ -0,0 +1,10 @@
1
+ import type { DXFTuple } from '../../types/dxf';
2
+ import type { PolylineEntity } from '../../types';
3
+ export declare const TYPE = "LWPOLYLINE";
4
+ export declare const process: (tuples: DXFTuple[]) => PolylineEntity;
5
+ declare const _default: {
6
+ TYPE: string;
7
+ process: (tuples: DXFTuple[]) => PolylineEntity;
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=lwpolyline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lwpolyline.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/lwpolyline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAI/C,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,aAAa,CAAA;AAE1D,eAAO,MAAM,IAAI,eAAe,CAAA;AAOhC,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,cAsC5C,CAAA;;;sBAtC+B,QAAQ,EAAE,KAAG,cAAc;;AAwC3D,wBAAgC"}
@@ -0,0 +1,69 @@
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 mleader_exports = {};
30
+ __export(mleader_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => mleader_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(mleader_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "MLEADER";
38
+ const process = (tuples) => {
39
+ return tuples.reduce(
40
+ (entity, tuple) => {
41
+ const code = tuple[0];
42
+ const value = tuple[1];
43
+ switch (code) {
44
+ // Style name
45
+ case 2:
46
+ entity.styleName = String(value);
47
+ break;
48
+ // Text string (simplified). MLEADER text can also be stored in more complex structures.
49
+ case 1:
50
+ entity.text = String(value);
51
+ break;
52
+ default:
53
+ Object.assign(entity, (0, import_common.default)(code, value));
54
+ break;
55
+ }
56
+ return entity;
57
+ },
58
+ {
59
+ type: TYPE
60
+ }
61
+ );
62
+ };
63
+ var mleader_default = { TYPE, process };
64
+ // Annotate the CommonJS export names for ESM import in node:
65
+ 0 && (module.exports = {
66
+ TYPE,
67
+ process
68
+ });
69
+ //# sourceMappingURL=mleader.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/mleader.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'MLEADER'\n\ninterface MLeaderEntity {\n type: typeof TYPE\n\n styleName?: string\n text?: string\n\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): MLeaderEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const code = tuple[0]\n const value = tuple[1]\n\n switch (code) {\n // Style name\n case 2:\n entity.styleName = String(value)\n break\n\n // Text string (simplified). MLEADER text can also be stored in more complex structures.\n case 1:\n entity.text = String(value)\n break\n\n default:\n Object.assign(entity, common(code, value))\n break\n }\n\n return entity\n },\n {\n type: TYPE,\n } as MLeaderEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAWb,MAAM,UAAU,CAAC,WAAsC;AAC5D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA;AAAA,QAEZ,KAAK;AACH,iBAAO,YAAY,OAAO,KAAK;AAC/B;AAAA;AAAA,QAGF,KAAK;AACH,iBAAO,OAAO,OAAO,KAAK;AAC1B;AAAA,QAEF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,kBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": ["common"]
7
+ }
@@ -0,0 +1,15 @@
1
+ import type { DXFTuple } from '../../types';
2
+ export declare const TYPE = "MLEADER";
3
+ interface MLeaderEntity {
4
+ type: typeof TYPE;
5
+ styleName?: string;
6
+ text?: string;
7
+ [key: string]: unknown;
8
+ }
9
+ export declare const process: (tuples: DXFTuple[]) => MLeaderEntity;
10
+ declare const _default: {
11
+ TYPE: string;
12
+ process: (tuples: DXFTuple[]) => MLeaderEntity;
13
+ };
14
+ export default _default;
15
+ //# sourceMappingURL=mleader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mleader.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/mleader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,eAAO,MAAM,IAAI,YAAY,CAAA;AAE7B,UAAU,aAAa;IACrB,IAAI,EAAE,OAAO,IAAI,CAAA;IAEjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,aA4B5C,CAAA;;;sBA5B+B,QAAQ,EAAE,KAAG,aAAa;;AA8B1D,wBAAgC"}
@@ -0,0 +1,34 @@
1
+ import common from "./common";
2
+ const TYPE = "MLEADER";
3
+ const process = (tuples) => {
4
+ return tuples.reduce(
5
+ (entity, tuple) => {
6
+ const code = tuple[0];
7
+ const value = tuple[1];
8
+ switch (code) {
9
+ // Style name
10
+ case 2:
11
+ entity.styleName = String(value);
12
+ break;
13
+ // Text string (simplified). MLEADER text can also be stored in more complex structures.
14
+ case 1:
15
+ entity.text = String(value);
16
+ break;
17
+ default:
18
+ Object.assign(entity, common(code, value));
19
+ break;
20
+ }
21
+ return entity;
22
+ },
23
+ {
24
+ type: TYPE
25
+ }
26
+ );
27
+ };
28
+ var mleader_default = { TYPE, process };
29
+ export {
30
+ TYPE,
31
+ mleader_default as default,
32
+ process
33
+ };
34
+ //# sourceMappingURL=mleader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/mleader.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'MLEADER'\n\ninterface MLeaderEntity {\n type: typeof TYPE\n\n styleName?: string\n text?: string\n\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): MLeaderEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const code = tuple[0]\n const value = tuple[1]\n\n switch (code) {\n // Style name\n case 2:\n entity.styleName = String(value)\n break\n\n // Text string (simplified). MLEADER text can also be stored in more complex structures.\n case 1:\n entity.text = String(value)\n break\n\n default:\n Object.assign(entity, common(code, value))\n break\n }\n\n return entity\n },\n {\n type: TYPE,\n } as MLeaderEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "AAEA,OAAO,YAAY;AAEZ,MAAM,OAAO;AAWb,MAAM,UAAU,CAAC,WAAsC;AAC5D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA;AAAA,QAEZ,KAAK;AACH,iBAAO,YAAY,OAAO,KAAK;AAC/B;AAAA;AAAA,QAGF,KAAK;AACH,iBAAO,OAAO,OAAO,KAAK;AAC1B;AAAA,QAEF;AACE,iBAAO,OAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,kBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,91 @@
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 mline_exports = {};
30
+ __export(mline_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => mline_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(mline_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "MLINE";
38
+ function ensurePoint3(entity, key) {
39
+ entity[key] ?? (entity[key] = {});
40
+ return entity[key];
41
+ }
42
+ const process = (tuples) => {
43
+ return tuples.reduce(
44
+ (entity, tuple) => {
45
+ const code = tuple[0];
46
+ const value = tuple[1];
47
+ switch (code) {
48
+ // Start point
49
+ case 10:
50
+ ensurePoint3(entity, "startPoint").x = value;
51
+ break;
52
+ case 20:
53
+ ensurePoint3(entity, "startPoint").y = value;
54
+ break;
55
+ case 30:
56
+ ensurePoint3(entity, "startPoint").z = value;
57
+ break;
58
+ // End point
59
+ case 11:
60
+ ensurePoint3(entity, "endPoint").x = value;
61
+ break;
62
+ case 21:
63
+ ensurePoint3(entity, "endPoint").y = value;
64
+ break;
65
+ case 31:
66
+ ensurePoint3(entity, "endPoint").z = value;
67
+ break;
68
+ case 71:
69
+ entity.vertexCount = value;
70
+ break;
71
+ case 2:
72
+ entity.styleName = String(value);
73
+ break;
74
+ default:
75
+ Object.assign(entity, (0, import_common.default)(code, value));
76
+ break;
77
+ }
78
+ return entity;
79
+ },
80
+ {
81
+ type: TYPE
82
+ }
83
+ );
84
+ };
85
+ var mline_default = { TYPE, process };
86
+ // Annotate the CommonJS export names for ESM import in node:
87
+ 0 && (module.exports = {
88
+ TYPE,
89
+ process
90
+ });
91
+ //# sourceMappingURL=mline.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/mline.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, PartialPoint3D } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'MLINE'\n\ninterface MLineEntity {\n type: typeof TYPE\n\n startPoint?: PartialPoint3D\n endPoint?: PartialPoint3D\n\n vertexCount?: number\n styleName?: string\n\n [key: string]: unknown\n}\n\nfunction ensurePoint3(entity: MLineEntity, key: 'startPoint' | 'endPoint'): PartialPoint3D {\n entity[key] ??= {}\n return entity[key]\n}\n\nexport const process = (tuples: DXFTuple[]): MLineEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const code = tuple[0]\n const value = tuple[1]\n\n switch (code) {\n // Start point\n case 10:\n ensurePoint3(entity, 'startPoint').x = value as number\n break\n case 20:\n ensurePoint3(entity, 'startPoint').y = value as number\n break\n case 30:\n ensurePoint3(entity, 'startPoint').z = value as number\n break\n\n // End point\n case 11:\n ensurePoint3(entity, 'endPoint').x = value as number\n break\n case 21:\n ensurePoint3(entity, 'endPoint').y = value as number\n break\n case 31:\n ensurePoint3(entity, 'endPoint').z = value as number\n break\n\n case 71:\n entity.vertexCount = value as number\n break\n\n case 2:\n entity.styleName = String(value)\n break\n\n default:\n Object.assign(entity, common(code, value))\n break\n }\n\n return entity\n },\n {\n type: TYPE,\n } as MLineEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAcpB,SAAS,aAAa,QAAqB,KAAgD;AACzF,gCAAgB,CAAC;AACjB,SAAO,OAAO,GAAG;AACnB;AAEO,MAAM,UAAU,CAAC,WAAoC;AAC1D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA;AAAA,QAEZ,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA;AAAA,QAGF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QAEF,KAAK;AACH,iBAAO,cAAc;AACrB;AAAA,QAEF,KAAK;AACH,iBAAO,YAAY,OAAO,KAAK;AAC/B;AAAA,QAEF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": ["common"]
7
+ }
@@ -0,0 +1,17 @@
1
+ import type { DXFTuple, PartialPoint3D } from '../../types';
2
+ export declare const TYPE = "MLINE";
3
+ interface MLineEntity {
4
+ type: typeof TYPE;
5
+ startPoint?: PartialPoint3D;
6
+ endPoint?: PartialPoint3D;
7
+ vertexCount?: number;
8
+ styleName?: string;
9
+ [key: string]: unknown;
10
+ }
11
+ export declare const process: (tuples: DXFTuple[]) => MLineEntity;
12
+ declare const _default: {
13
+ TYPE: string;
14
+ process: (tuples: DXFTuple[]) => MLineEntity;
15
+ };
16
+ export default _default;
17
+ //# sourceMappingURL=mline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mline.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/mline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAI3D,eAAO,MAAM,IAAI,UAAU,CAAA;AAE3B,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,IAAI,CAAA;IAEjB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAA;IAEzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAOD,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,WAgD5C,CAAA;;;sBAhD+B,QAAQ,EAAE,KAAG,WAAW;;AAkDxD,wBAAgC"}
@@ -0,0 +1,56 @@
1
+ import common from "./common";
2
+ const TYPE = "MLINE";
3
+ function ensurePoint3(entity, key) {
4
+ entity[key] ?? (entity[key] = {});
5
+ return entity[key];
6
+ }
7
+ const process = (tuples) => {
8
+ return tuples.reduce(
9
+ (entity, tuple) => {
10
+ const code = tuple[0];
11
+ const value = tuple[1];
12
+ switch (code) {
13
+ // Start point
14
+ case 10:
15
+ ensurePoint3(entity, "startPoint").x = value;
16
+ break;
17
+ case 20:
18
+ ensurePoint3(entity, "startPoint").y = value;
19
+ break;
20
+ case 30:
21
+ ensurePoint3(entity, "startPoint").z = value;
22
+ break;
23
+ // End point
24
+ case 11:
25
+ ensurePoint3(entity, "endPoint").x = value;
26
+ break;
27
+ case 21:
28
+ ensurePoint3(entity, "endPoint").y = value;
29
+ break;
30
+ case 31:
31
+ ensurePoint3(entity, "endPoint").z = value;
32
+ break;
33
+ case 71:
34
+ entity.vertexCount = value;
35
+ break;
36
+ case 2:
37
+ entity.styleName = String(value);
38
+ break;
39
+ default:
40
+ Object.assign(entity, common(code, value));
41
+ break;
42
+ }
43
+ return entity;
44
+ },
45
+ {
46
+ type: TYPE
47
+ }
48
+ );
49
+ };
50
+ var mline_default = { TYPE, process };
51
+ export {
52
+ TYPE,
53
+ mline_default as default,
54
+ process
55
+ };
56
+ //# sourceMappingURL=mline.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/mline.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, PartialPoint3D } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'MLINE'\n\ninterface MLineEntity {\n type: typeof TYPE\n\n startPoint?: PartialPoint3D\n endPoint?: PartialPoint3D\n\n vertexCount?: number\n styleName?: string\n\n [key: string]: unknown\n}\n\nfunction ensurePoint3(entity: MLineEntity, key: 'startPoint' | 'endPoint'): PartialPoint3D {\n entity[key] ??= {}\n return entity[key]\n}\n\nexport const process = (tuples: DXFTuple[]): MLineEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const code = tuple[0]\n const value = tuple[1]\n\n switch (code) {\n // Start point\n case 10:\n ensurePoint3(entity, 'startPoint').x = value as number\n break\n case 20:\n ensurePoint3(entity, 'startPoint').y = value as number\n break\n case 30:\n ensurePoint3(entity, 'startPoint').z = value as number\n break\n\n // End point\n case 11:\n ensurePoint3(entity, 'endPoint').x = value as number\n break\n case 21:\n ensurePoint3(entity, 'endPoint').y = value as number\n break\n case 31:\n ensurePoint3(entity, 'endPoint').z = value as number\n break\n\n case 71:\n entity.vertexCount = value as number\n break\n\n case 2:\n entity.styleName = String(value)\n break\n\n default:\n Object.assign(entity, common(code, value))\n break\n }\n\n return entity\n },\n {\n type: TYPE,\n } as MLineEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "AAEA,OAAO,YAAY;AAEZ,MAAM,OAAO;AAcpB,SAAS,aAAa,QAAqB,KAAgD;AACzF,gCAAgB,CAAC;AACjB,SAAO,OAAO,GAAG;AACnB;AAEO,MAAM,UAAU,CAAC,WAAoC;AAC1D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA;AAAA,QAEZ,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA;AAAA,QAGF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QAEF,KAAK;AACH,iBAAO,cAAc;AACrB;AAAA,QAEF,KAAK;AACH,iBAAO,YAAY,OAAO,KAAK;AAC/B;AAAA,QAEF;AACE,iBAAO,OAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,62 @@
1
+ import type { DXFTuple } from '../../types/dxf';
2
+ export declare const TYPE = "MTEXT";
3
+ interface MTextEntity {
4
+ type: typeof TYPE;
5
+ string: string;
6
+ x?: number;
7
+ y?: number;
8
+ z?: number;
9
+ nominalTextHeight?: number;
10
+ refRectangleWidth?: number;
11
+ attachmentPoint?: number;
12
+ drawingDirection?: number;
13
+ styleName?: string;
14
+ xAxisX?: number;
15
+ xAxisY?: number;
16
+ xAxisZ?: number;
17
+ horizontalWidth?: number;
18
+ verticalHeight?: number;
19
+ lineSpacingStyle?: number;
20
+ lineSpacingFactor?: number;
21
+ backgroundFill?: number;
22
+ bgColorRGB0?: number;
23
+ bgColorRGB1?: number;
24
+ bgColorRGB2?: number;
25
+ bgColorRGB3?: number;
26
+ bgColorRGB4?: number;
27
+ bgColorRGB5?: number;
28
+ bgColorRGB6?: number;
29
+ bgColorRGB7?: number;
30
+ bgColorRGB8?: number;
31
+ bgColorRGB9?: number;
32
+ bgColorName0?: number;
33
+ bgColorName1?: number;
34
+ bgColorName2?: number;
35
+ bgColorName3?: number;
36
+ bgColorName4?: number;
37
+ bgColorName5?: number;
38
+ bgColorName6?: number;
39
+ bgColorName7?: number;
40
+ bgColorName8?: number;
41
+ bgColorName9?: number;
42
+ fillBoxStyle?: number;
43
+ bgFillColor?: number;
44
+ bgFillTransparency?: number;
45
+ columnType?: number;
46
+ columnCount?: number;
47
+ columnFlowReversed?: number;
48
+ columnAutoheight?: number;
49
+ columnWidth?: number;
50
+ columnGutter?: number;
51
+ columnHeights?: number;
52
+ [key: string]: unknown;
53
+ }
54
+ export declare const process: (tuples: DXFTuple[]) => MTextEntity;
55
+ export declare const assign: (entity: MTextEntity, type: number, value: string | number) => MTextEntity;
56
+ declare const _default: {
57
+ TYPE: string;
58
+ process: (tuples: DXFTuple[]) => MTextEntity;
59
+ assign: (entity: MTextEntity, type: number, value: string | number) => MTextEntity;
60
+ };
61
+ export default _default;
62
+ //# sourceMappingURL=mtext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mtext.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/mtext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAI/C,eAAO,MAAM,IAAI,UAAU,CAAA;AAO3B,UAAU,WAAW;IACnB,IAAI,EAAE,OAAO,IAAI,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAmDD,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,WAe5C,CAAA;AAED,eAAO,MAAM,MAAM,GACjB,QAAQ,WAAW,EACnB,MAAM,MAAM,EACZ,OAAO,MAAM,GAAG,MAAM,KACrB,WAcF,CAAA;;;sBAnC+B,QAAQ,EAAE,KAAG,WAAW;qBAkB9C,WAAW,QACb,MAAM,SACL,MAAM,GAAG,MAAM,KACrB,WAAW;;AAgBd,wBAAwC"}
@@ -0,0 +1,9 @@
1
+ import type { DXFTuple, Ole2FrameEntity } from '../../types';
2
+ export declare const TYPE = "OLE2FRAME";
3
+ export declare const process: (tuples: DXFTuple[]) => Ole2FrameEntity;
4
+ declare const _default: {
5
+ TYPE: string;
6
+ process: (tuples: DXFTuple[]) => Ole2FrameEntity;
7
+ };
8
+ export default _default;
9
+ //# sourceMappingURL=ole2Frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ole2Frame.d.ts","sourceRoot":"","sources":["../../../src/handlers/entity/ole2Frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI5D,eAAO,MAAM,IAAI,cAAc,CAAA;AAE/B,eAAO,MAAM,OAAO,GAAI,QAAQ,QAAQ,EAAE,KAAG,eAuD5C,CAAA;;;sBAvD+B,QAAQ,EAAE,KAAG,eAAe;;AAyD5D,wBAAgC"}
@@ -0,0 +1,98 @@
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 oleframe_exports = {};
30
+ __export(oleframe_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => oleframe_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(oleframe_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "OLEFRAME";
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 70:
45
+ entity.version = value;
46
+ break;
47
+ case 3:
48
+ entity.name = value;
49
+ break;
50
+ case 10:
51
+ entity.upperLeftX = value;
52
+ break;
53
+ case 20:
54
+ entity.upperLeftY = value;
55
+ break;
56
+ case 30:
57
+ entity.upperLeftZ = value;
58
+ break;
59
+ case 11:
60
+ entity.lowerRightX = value;
61
+ break;
62
+ case 21:
63
+ entity.lowerRightY = value;
64
+ break;
65
+ case 31:
66
+ entity.lowerRightZ = value;
67
+ break;
68
+ case 71:
69
+ entity.objectType = value;
70
+ break;
71
+ case 72:
72
+ entity.tile = value;
73
+ break;
74
+ case 90:
75
+ entity.length = value;
76
+ break;
77
+ case 310:
78
+ entity.data += String(value);
79
+ break;
80
+ default:
81
+ Object.assign(entity, (0, import_common.default)(type, value));
82
+ break;
83
+ }
84
+ return entity;
85
+ },
86
+ {
87
+ type: TYPE,
88
+ data: ""
89
+ }
90
+ );
91
+ };
92
+ var oleframe_default = { TYPE, process };
93
+ // Annotate the CommonJS export names for ESM import in node:
94
+ 0 && (module.exports = {
95
+ TYPE,
96
+ process
97
+ });
98
+ //# sourceMappingURL=oleframe.cjs.map