@mlightcad/data-model 1.11.3 → 1.12.0

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 (384) hide show
  1. package/README.md +19 -12
  2. package/dist/data-model.cjs +15 -12
  3. package/lib/acis/AcDbAcisDecrypt.d.ts +51 -0
  4. package/lib/acis/AcDbAcisDecrypt.d.ts.map +1 -0
  5. package/lib/acis/AcDbAcisDecrypt.js +98 -0
  6. package/lib/acis/AcDbAcisDecrypt.js.map +1 -0
  7. package/lib/acis/index.d.ts +1 -0
  8. package/lib/acis/index.d.ts.map +1 -1
  9. package/lib/acis/index.js +1 -0
  10. package/lib/acis/index.js.map +1 -1
  11. package/lib/base/AcDbDxfFiler.d.ts +140 -4
  12. package/lib/base/AcDbDxfFiler.d.ts.map +1 -1
  13. package/lib/base/AcDbDxfFiler.js +690 -9
  14. package/lib/base/AcDbDxfFiler.js.map +1 -1
  15. package/lib/base/AcDbDxfGroupCodeTypes.d.ts +12 -0
  16. package/lib/base/AcDbDxfGroupCodeTypes.d.ts.map +1 -0
  17. package/lib/base/AcDbDxfGroupCodeTypes.js +96 -0
  18. package/lib/base/AcDbDxfGroupCodeTypes.js.map +1 -0
  19. package/lib/base/AcDbDxfPair.d.ts +38 -0
  20. package/lib/base/AcDbDxfPair.d.ts.map +1 -0
  21. package/lib/base/AcDbDxfPair.js +2 -0
  22. package/lib/base/AcDbDxfPair.js.map +1 -0
  23. package/lib/base/AcDbDxfPairReader.d.ts +65 -0
  24. package/lib/base/AcDbDxfPairReader.d.ts.map +1 -0
  25. package/lib/base/AcDbDxfPairReader.js +539 -0
  26. package/lib/base/AcDbDxfPairReader.js.map +1 -0
  27. package/lib/base/AcDbDxfStringChunks.d.ts +41 -0
  28. package/lib/base/AcDbDxfStringChunks.d.ts.map +1 -0
  29. package/lib/base/AcDbDxfStringChunks.js +121 -0
  30. package/lib/base/AcDbDxfStringChunks.js.map +1 -0
  31. package/lib/base/AcDbObject.d.ts +40 -0
  32. package/lib/base/AcDbObject.d.ts.map +1 -1
  33. package/lib/base/AcDbObject.js +144 -14
  34. package/lib/base/AcDbObject.js.map +1 -1
  35. package/lib/base/index.d.ts +9 -2
  36. package/lib/base/index.d.ts.map +1 -1
  37. package/lib/base/index.js +4 -1
  38. package/lib/base/index.js.map +1 -1
  39. package/lib/converter/AcDbFontNameCollector.d.ts +4 -0
  40. package/lib/converter/AcDbFontNameCollector.d.ts.map +1 -1
  41. package/lib/converter/AcDbFontNameCollector.js +6 -0
  42. package/lib/converter/AcDbFontNameCollector.js.map +1 -1
  43. package/lib/database/AcDbBlockTableRecord.d.ts +18 -2
  44. package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
  45. package/lib/database/AcDbBlockTableRecord.js +67 -2
  46. package/lib/database/AcDbBlockTableRecord.js.map +1 -1
  47. package/lib/database/AcDbDatabase.d.ts +55 -8
  48. package/lib/database/AcDbDatabase.d.ts.map +1 -1
  49. package/lib/database/AcDbDatabase.js +358 -76
  50. package/lib/database/AcDbDatabase.js.map +1 -1
  51. package/lib/database/AcDbDatabaseConverterManager.d.ts +5 -0
  52. package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -1
  53. package/lib/database/AcDbDatabaseConverterManager.js +5 -0
  54. package/lib/database/AcDbDatabaseConverterManager.js.map +1 -1
  55. package/lib/database/AcDbDimStyleTableRecord.d.ts +9 -0
  56. package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -1
  57. package/lib/database/AcDbDimStyleTableRecord.js +277 -0
  58. package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
  59. package/lib/database/AcDbDwgVersion.d.ts +37 -0
  60. package/lib/database/AcDbDwgVersion.d.ts.map +1 -1
  61. package/lib/database/AcDbDwgVersion.js +31 -6
  62. package/lib/database/AcDbDwgVersion.js.map +1 -1
  63. package/lib/database/AcDbLayerTableRecord.d.ts +1 -0
  64. package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -1
  65. package/lib/database/AcDbLayerTableRecord.js +52 -1
  66. package/lib/database/AcDbLayerTableRecord.js.map +1 -1
  67. package/lib/database/AcDbLinetypeTableRecord.d.ts +1 -0
  68. package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -1
  69. package/lib/database/AcDbLinetypeTableRecord.js +60 -0
  70. package/lib/database/AcDbLinetypeTableRecord.js.map +1 -1
  71. package/lib/database/AcDbRegAppTableRecord.d.ts +1 -0
  72. package/lib/database/AcDbRegAppTableRecord.d.ts.map +1 -1
  73. package/lib/database/AcDbRegAppTableRecord.js +26 -0
  74. package/lib/database/AcDbRegAppTableRecord.js.map +1 -1
  75. package/lib/database/AcDbSystemVariables.d.ts +3 -1
  76. package/lib/database/AcDbSystemVariables.d.ts.map +1 -1
  77. package/lib/database/AcDbSystemVariables.js +2 -0
  78. package/lib/database/AcDbSystemVariables.js.map +1 -1
  79. package/lib/database/AcDbTextStyleTableRecord.d.ts +9 -0
  80. package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -1
  81. package/lib/database/AcDbTextStyleTableRecord.js +101 -0
  82. package/lib/database/AcDbTextStyleTableRecord.js.map +1 -1
  83. package/lib/database/AcDbUcsTable.d.ts +15 -0
  84. package/lib/database/AcDbUcsTable.d.ts.map +1 -0
  85. package/lib/database/AcDbUcsTable.js +33 -0
  86. package/lib/database/AcDbUcsTable.js.map +1 -0
  87. package/lib/database/AcDbUcsTableRecord.d.ts +75 -0
  88. package/lib/database/AcDbUcsTableRecord.d.ts.map +1 -0
  89. package/lib/database/AcDbUcsTableRecord.js +240 -0
  90. package/lib/database/AcDbUcsTableRecord.js.map +1 -0
  91. package/lib/database/AcDbViewTableRecord.d.ts +9 -0
  92. package/lib/database/AcDbViewTableRecord.d.ts.map +1 -1
  93. package/lib/database/AcDbViewTableRecord.js +148 -0
  94. package/lib/database/AcDbViewTableRecord.js.map +1 -1
  95. package/lib/database/AcDbViewportTableRecord.d.ts +8 -0
  96. package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -1
  97. package/lib/database/AcDbViewportTableRecord.js +253 -1
  98. package/lib/database/AcDbViewportTableRecord.js.map +1 -1
  99. package/lib/database/index.d.ts +4 -1
  100. package/lib/database/index.d.ts.map +1 -1
  101. package/lib/database/index.js +2 -0
  102. package/lib/database/index.js.map +1 -1
  103. package/lib/dxf/AcDbDxfAcdsDataReader.d.ts +25 -0
  104. package/lib/dxf/AcDbDxfAcdsDataReader.d.ts.map +1 -0
  105. package/lib/dxf/AcDbDxfAcdsDataReader.js +98 -0
  106. package/lib/dxf/AcDbDxfAcdsDataReader.js.map +1 -0
  107. package/lib/dxf/AcDbDxfDimensionAssembler.d.ts +10 -0
  108. package/lib/dxf/AcDbDxfDimensionAssembler.d.ts.map +1 -0
  109. package/lib/dxf/AcDbDxfDimensionAssembler.js +149 -0
  110. package/lib/dxf/AcDbDxfDimensionAssembler.js.map +1 -0
  111. package/lib/dxf/AcDbDxfDocumentReader.d.ts +101 -0
  112. package/lib/dxf/AcDbDxfDocumentReader.d.ts.map +1 -0
  113. package/lib/dxf/AcDbDxfDocumentReader.js +1100 -0
  114. package/lib/dxf/AcDbDxfDocumentReader.js.map +1 -0
  115. package/lib/dxf/AcDbDxfEntityFactory.d.ts +14 -0
  116. package/lib/dxf/AcDbDxfEntityFactory.d.ts.map +1 -0
  117. package/lib/dxf/AcDbDxfEntityFactory.js +147 -0
  118. package/lib/dxf/AcDbDxfEntityFactory.js.map +1 -0
  119. package/lib/dxf/AcDbDxfHeaderReader.d.ts +9 -0
  120. package/lib/dxf/AcDbDxfHeaderReader.d.ts.map +1 -0
  121. package/lib/dxf/AcDbDxfHeaderReader.js +248 -0
  122. package/lib/dxf/AcDbDxfHeaderReader.js.map +1 -0
  123. package/lib/dxf/AcDbDxfObjectsReader.d.ts +38 -0
  124. package/lib/dxf/AcDbDxfObjectsReader.d.ts.map +1 -0
  125. package/lib/dxf/AcDbDxfObjectsReader.js +533 -0
  126. package/lib/dxf/AcDbDxfObjectsReader.js.map +1 -0
  127. package/lib/dxf/AcDbDxfPairArrayReader.d.ts +27 -0
  128. package/lib/dxf/AcDbDxfPairArrayReader.d.ts.map +1 -0
  129. package/lib/dxf/AcDbDxfPairArrayReader.js +69 -0
  130. package/lib/dxf/AcDbDxfPairArrayReader.js.map +1 -0
  131. package/lib/dxf/AcDbDxfPolylineAssembler.d.ts +11 -0
  132. package/lib/dxf/AcDbDxfPolylineAssembler.d.ts.map +1 -0
  133. package/lib/dxf/AcDbDxfPolylineAssembler.js +318 -0
  134. package/lib/dxf/AcDbDxfPolylineAssembler.js.map +1 -0
  135. package/lib/dxf/AcDbDxfVersionCaps.d.ts +8 -0
  136. package/lib/dxf/AcDbDxfVersionCaps.d.ts.map +1 -0
  137. package/lib/dxf/AcDbDxfVersionCaps.js +18 -0
  138. package/lib/dxf/AcDbDxfVersionCaps.js.map +1 -0
  139. package/lib/dxf/AcDbNativeDxfConverter.d.ts +30 -0
  140. package/lib/dxf/AcDbNativeDxfConverter.d.ts.map +1 -0
  141. package/lib/dxf/AcDbNativeDxfConverter.js +266 -0
  142. package/lib/dxf/AcDbNativeDxfConverter.js.map +1 -0
  143. package/lib/dxf/index.d.ts +12 -0
  144. package/lib/dxf/index.d.ts.map +1 -0
  145. package/lib/dxf/index.js +9 -0
  146. package/lib/dxf/index.js.map +1 -0
  147. package/lib/dxf/registerNativeDxfConverter.d.ts +2 -0
  148. package/lib/dxf/registerNativeDxfConverter.d.ts.map +1 -0
  149. package/lib/dxf/registerNativeDxfConverter.js +12 -0
  150. package/lib/dxf/registerNativeDxfConverter.js.map +1 -0
  151. package/lib/entity/AcDb3dSolid.d.ts +43 -0
  152. package/lib/entity/AcDb3dSolid.d.ts.map +1 -1
  153. package/lib/entity/AcDb3dSolid.js +154 -16
  154. package/lib/entity/AcDb3dSolid.js.map +1 -1
  155. package/lib/entity/AcDbArc.d.ts +9 -0
  156. package/lib/entity/AcDbArc.d.ts.map +1 -1
  157. package/lib/entity/AcDbArc.js +107 -3
  158. package/lib/entity/AcDbArc.js.map +1 -1
  159. package/lib/entity/AcDbAttribute.d.ts +1 -0
  160. package/lib/entity/AcDbAttribute.d.ts.map +1 -1
  161. package/lib/entity/AcDbAttribute.js +44 -0
  162. package/lib/entity/AcDbAttribute.js.map +1 -1
  163. package/lib/entity/AcDbAttributeDefinition.d.ts +1 -0
  164. package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
  165. package/lib/entity/AcDbAttributeDefinition.js +47 -0
  166. package/lib/entity/AcDbAttributeDefinition.js.map +1 -1
  167. package/lib/entity/AcDbBlockReference.d.ts +26 -0
  168. package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
  169. package/lib/entity/AcDbBlockReference.js +185 -5
  170. package/lib/entity/AcDbBlockReference.js.map +1 -1
  171. package/lib/entity/AcDbCircle.d.ts +9 -0
  172. package/lib/entity/AcDbCircle.d.ts.map +1 -1
  173. package/lib/entity/AcDbCircle.js +73 -1
  174. package/lib/entity/AcDbCircle.js.map +1 -1
  175. package/lib/entity/AcDbEllipse.d.ts +2 -0
  176. package/lib/entity/AcDbEllipse.d.ts.map +1 -1
  177. package/lib/entity/AcDbEllipse.js +71 -0
  178. package/lib/entity/AcDbEllipse.js.map +1 -1
  179. package/lib/entity/AcDbEntity.d.ts +12 -0
  180. package/lib/entity/AcDbEntity.d.ts.map +1 -1
  181. package/lib/entity/AcDbEntity.js +91 -1
  182. package/lib/entity/AcDbEntity.js.map +1 -1
  183. package/lib/entity/AcDbFace.d.ts +1 -0
  184. package/lib/entity/AcDbFace.d.ts.map +1 -1
  185. package/lib/entity/AcDbFace.js +49 -1
  186. package/lib/entity/AcDbFace.js.map +1 -1
  187. package/lib/entity/AcDbFcf.d.ts +1 -0
  188. package/lib/entity/AcDbFcf.d.ts.map +1 -1
  189. package/lib/entity/AcDbFcf.js +71 -0
  190. package/lib/entity/AcDbFcf.js.map +1 -1
  191. package/lib/entity/AcDbHatch.d.ts +17 -0
  192. package/lib/entity/AcDbHatch.d.ts.map +1 -1
  193. package/lib/entity/AcDbHatch.js +629 -4
  194. package/lib/entity/AcDbHatch.js.map +1 -1
  195. package/lib/entity/AcDbLeader.d.ts +1 -0
  196. package/lib/entity/AcDbLeader.d.ts.map +1 -1
  197. package/lib/entity/AcDbLeader.js +135 -0
  198. package/lib/entity/AcDbLeader.js.map +1 -1
  199. package/lib/entity/AcDbLine.d.ts +16 -1
  200. package/lib/entity/AcDbLine.d.ts.map +1 -1
  201. package/lib/entity/AcDbLine.js +102 -3
  202. package/lib/entity/AcDbLine.js.map +1 -1
  203. package/lib/entity/AcDbMLeader.d.ts +22 -0
  204. package/lib/entity/AcDbMLeader.d.ts.map +1 -1
  205. package/lib/entity/AcDbMLeader.js +871 -11
  206. package/lib/entity/AcDbMLeader.js.map +1 -1
  207. package/lib/entity/AcDbMLine.d.ts +1 -0
  208. package/lib/entity/AcDbMLine.d.ts.map +1 -1
  209. package/lib/entity/AcDbMLine.js +168 -0
  210. package/lib/entity/AcDbMLine.js.map +1 -1
  211. package/lib/entity/AcDbMText.d.ts +46 -1
  212. package/lib/entity/AcDbMText.d.ts.map +1 -1
  213. package/lib/entity/AcDbMText.js +278 -4
  214. package/lib/entity/AcDbMText.js.map +1 -1
  215. package/lib/entity/AcDbOle2Frame.d.ts +1 -0
  216. package/lib/entity/AcDbOle2Frame.d.ts.map +1 -1
  217. package/lib/entity/AcDbOle2Frame.js +83 -1
  218. package/lib/entity/AcDbOle2Frame.js.map +1 -1
  219. package/lib/entity/AcDbOleFrame.d.ts +1 -0
  220. package/lib/entity/AcDbOleFrame.d.ts.map +1 -1
  221. package/lib/entity/AcDbOleFrame.js +44 -1
  222. package/lib/entity/AcDbOleFrame.js.map +1 -1
  223. package/lib/entity/AcDbPoint.d.ts +27 -1
  224. package/lib/entity/AcDbPoint.d.ts.map +1 -1
  225. package/lib/entity/AcDbPoint.js +113 -2
  226. package/lib/entity/AcDbPoint.js.map +1 -1
  227. package/lib/entity/AcDbPolyline.d.ts +22 -1
  228. package/lib/entity/AcDbPolyline.d.ts.map +1 -1
  229. package/lib/entity/AcDbPolyline.js +195 -1
  230. package/lib/entity/AcDbPolyline.js.map +1 -1
  231. package/lib/entity/AcDbProxyEntity.d.ts +4 -2
  232. package/lib/entity/AcDbProxyEntity.d.ts.map +1 -1
  233. package/lib/entity/AcDbProxyEntity.js +55 -3
  234. package/lib/entity/AcDbProxyEntity.js.map +1 -1
  235. package/lib/entity/AcDbRasterImage.d.ts +16 -0
  236. package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
  237. package/lib/entity/AcDbRasterImage.js +156 -0
  238. package/lib/entity/AcDbRasterImage.js.map +1 -1
  239. package/lib/entity/AcDbRay.d.ts +1 -0
  240. package/lib/entity/AcDbRay.d.ts.map +1 -1
  241. package/lib/entity/AcDbRay.js +42 -0
  242. package/lib/entity/AcDbRay.js.map +1 -1
  243. package/lib/entity/AcDbShape.d.ts +1 -0
  244. package/lib/entity/AcDbShape.d.ts.map +1 -1
  245. package/lib/entity/AcDbShape.js +76 -1
  246. package/lib/entity/AcDbShape.js.map +1 -1
  247. package/lib/entity/AcDbSpline.d.ts +23 -1
  248. package/lib/entity/AcDbSpline.d.ts.map +1 -1
  249. package/lib/entity/AcDbSpline.js +226 -1
  250. package/lib/entity/AcDbSpline.js.map +1 -1
  251. package/lib/entity/AcDbTable.d.ts +5 -0
  252. package/lib/entity/AcDbTable.d.ts.map +1 -1
  253. package/lib/entity/AcDbTable.js +265 -1
  254. package/lib/entity/AcDbTable.js.map +1 -1
  255. package/lib/entity/AcDbText.d.ts +25 -1
  256. package/lib/entity/AcDbText.d.ts.map +1 -1
  257. package/lib/entity/AcDbText.js +175 -1
  258. package/lib/entity/AcDbText.js.map +1 -1
  259. package/lib/entity/AcDbTextExtentsHelpers.d.ts +2 -2
  260. package/lib/entity/AcDbTextExtentsHelpers.js +3 -3
  261. package/lib/entity/AcDbTextExtentsHelpers.js.map +1 -1
  262. package/lib/entity/AcDbTrace.d.ts +9 -1
  263. package/lib/entity/AcDbTrace.d.ts.map +1 -1
  264. package/lib/entity/AcDbTrace.js +84 -5
  265. package/lib/entity/AcDbTrace.js.map +1 -1
  266. package/lib/entity/AcDbViewport.d.ts +156 -0
  267. package/lib/entity/AcDbViewport.d.ts.map +1 -1
  268. package/lib/entity/AcDbViewport.js +852 -1
  269. package/lib/entity/AcDbViewport.js.map +1 -1
  270. package/lib/entity/AcDbXline.d.ts +1 -0
  271. package/lib/entity/AcDbXline.d.ts.map +1 -1
  272. package/lib/entity/AcDbXline.js +42 -0
  273. package/lib/entity/AcDbXline.js.map +1 -1
  274. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts +1 -0
  275. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts.map +1 -1
  276. package/lib/entity/dimension/AcDb3PointAngularDimension.js +163 -0
  277. package/lib/entity/dimension/AcDb3PointAngularDimension.js.map +1 -1
  278. package/lib/entity/dimension/AcDbAlignedDimension.d.ts +2 -0
  279. package/lib/entity/dimension/AcDbAlignedDimension.d.ts.map +1 -1
  280. package/lib/entity/dimension/AcDbAlignedDimension.js +109 -2
  281. package/lib/entity/dimension/AcDbAlignedDimension.js.map +1 -1
  282. package/lib/entity/dimension/AcDbArcDimension.d.ts +1 -0
  283. package/lib/entity/dimension/AcDbArcDimension.d.ts.map +1 -1
  284. package/lib/entity/dimension/AcDbArcDimension.js +68 -0
  285. package/lib/entity/dimension/AcDbArcDimension.js.map +1 -1
  286. package/lib/entity/dimension/AcDbDiametricDimension.d.ts +1 -0
  287. package/lib/entity/dimension/AcDbDiametricDimension.d.ts.map +1 -1
  288. package/lib/entity/dimension/AcDbDiametricDimension.js +77 -0
  289. package/lib/entity/dimension/AcDbDiametricDimension.js.map +1 -1
  290. package/lib/entity/dimension/AcDbDimension.d.ts +50 -1
  291. package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -1
  292. package/lib/entity/dimension/AcDbDimension.js +176 -5
  293. package/lib/entity/dimension/AcDbDimension.js.map +1 -1
  294. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts +1 -0
  295. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -1
  296. package/lib/entity/dimension/AcDbOrdinateDimension.js +46 -0
  297. package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -1
  298. package/lib/entity/dimension/AcDbRadialDimension.d.ts +1 -0
  299. package/lib/entity/dimension/AcDbRadialDimension.d.ts.map +1 -1
  300. package/lib/entity/dimension/AcDbRadialDimension.js +69 -0
  301. package/lib/entity/dimension/AcDbRadialDimension.js.map +1 -1
  302. package/lib/index.d.ts +7 -5
  303. package/lib/index.d.ts.map +1 -1
  304. package/lib/index.js +7 -3
  305. package/lib/index.js.map +1 -1
  306. package/lib/ly/AcLyLayerFilterIO.d.ts.map +1 -1
  307. package/lib/ly/AcLyLayerFilterIO.js +5 -0
  308. package/lib/ly/AcLyLayerFilterIO.js.map +1 -1
  309. package/lib/misc/AcDbMemoryEstimator.d.ts.map +1 -1
  310. package/lib/misc/AcDbMemoryEstimator.js +3 -0
  311. package/lib/misc/AcDbMemoryEstimator.js.map +1 -1
  312. package/lib/misc/index.d.ts +1 -1
  313. package/lib/misc/index.d.ts.map +1 -1
  314. package/lib/misc/index.js +1 -1
  315. package/lib/misc/index.js.map +1 -1
  316. package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts +6 -5
  317. package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts.map +1 -1
  318. package/lib/misc/proxyGraphic/AcDbProxyGraphic.js +9 -36
  319. package/lib/misc/proxyGraphic/AcDbProxyGraphic.js.map +1 -1
  320. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts +12 -0
  321. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts.map +1 -1
  322. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js +54 -0
  323. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js.map +1 -1
  324. package/lib/misc/proxyGraphic/index.d.ts +1 -1
  325. package/lib/misc/proxyGraphic/index.d.ts.map +1 -1
  326. package/lib/misc/proxyGraphic/index.js +1 -1
  327. package/lib/misc/proxyGraphic/index.js.map +1 -1
  328. package/lib/object/AcDbDictionary.d.ts +7 -0
  329. package/lib/object/AcDbDictionary.d.ts.map +1 -1
  330. package/lib/object/AcDbDictionary.js +35 -0
  331. package/lib/object/AcDbDictionary.js.map +1 -1
  332. package/lib/object/AcDbFilter.d.ts +95 -0
  333. package/lib/object/AcDbFilter.d.ts.map +1 -1
  334. package/lib/object/AcDbFilter.js +256 -1
  335. package/lib/object/AcDbFilter.js.map +1 -1
  336. package/lib/object/AcDbGroup.d.ts +26 -0
  337. package/lib/object/AcDbGroup.d.ts.map +1 -0
  338. package/lib/object/AcDbGroup.js +171 -0
  339. package/lib/object/AcDbGroup.js.map +1 -0
  340. package/lib/object/AcDbIndex.d.ts +1 -0
  341. package/lib/object/AcDbIndex.d.ts.map +1 -1
  342. package/lib/object/AcDbIndex.js +23 -0
  343. package/lib/object/AcDbIndex.js.map +1 -1
  344. package/lib/object/AcDbLayerFilter.d.ts +1 -0
  345. package/lib/object/AcDbLayerFilter.d.ts.map +1 -1
  346. package/lib/object/AcDbLayerFilter.js +21 -0
  347. package/lib/object/AcDbLayerFilter.js.map +1 -1
  348. package/lib/object/AcDbLayerIndex.d.ts +1 -0
  349. package/lib/object/AcDbLayerIndex.d.ts.map +1 -1
  350. package/lib/object/AcDbLayerIndex.js +38 -0
  351. package/lib/object/AcDbLayerIndex.js.map +1 -1
  352. package/lib/object/AcDbMLeaderStyle.d.ts +1 -0
  353. package/lib/object/AcDbMLeaderStyle.d.ts.map +1 -1
  354. package/lib/object/AcDbMLeaderStyle.js +158 -1
  355. package/lib/object/AcDbMLeaderStyle.js.map +1 -1
  356. package/lib/object/AcDbMlineStyle.d.ts +2 -0
  357. package/lib/object/AcDbMlineStyle.d.ts.map +1 -1
  358. package/lib/object/AcDbMlineStyle.js +88 -0
  359. package/lib/object/AcDbMlineStyle.js.map +1 -1
  360. package/lib/object/AcDbRasterImageDef.d.ts +49 -0
  361. package/lib/object/AcDbRasterImageDef.d.ts.map +1 -1
  362. package/lib/object/AcDbRasterImageDef.js +136 -2
  363. package/lib/object/AcDbRasterImageDef.js.map +1 -1
  364. package/lib/object/AcDbSortentsTable.d.ts +14 -0
  365. package/lib/object/AcDbSortentsTable.d.ts.map +1 -0
  366. package/lib/object/AcDbSortentsTable.js +122 -0
  367. package/lib/object/AcDbSortentsTable.js.map +1 -0
  368. package/lib/object/AcDbXrecord.d.ts +8 -0
  369. package/lib/object/AcDbXrecord.d.ts.map +1 -1
  370. package/lib/object/AcDbXrecord.js +43 -2
  371. package/lib/object/AcDbXrecord.js.map +1 -1
  372. package/lib/object/index.d.ts +2 -0
  373. package/lib/object/index.d.ts.map +1 -1
  374. package/lib/object/index.js +2 -0
  375. package/lib/object/index.js.map +1 -1
  376. package/lib/object/layout/AcDbLayout.d.ts +60 -1
  377. package/lib/object/layout/AcDbLayout.d.ts.map +1 -1
  378. package/lib/object/layout/AcDbLayout.js +237 -1
  379. package/lib/object/layout/AcDbLayout.js.map +1 -1
  380. package/lib/object/layout/AcDbPlotSettings.d.ts +11 -0
  381. package/lib/object/layout/AcDbPlotSettings.d.ts.map +1 -1
  382. package/lib/object/layout/AcDbPlotSettings.js +143 -0
  383. package/lib/object/layout/AcDbPlotSettings.js.map +1 -1
  384. package/package.json +6 -5
@@ -103,6 +103,7 @@ import { AcDbObject, TEMP_OBJECT_ID_PREFIX } from '../base/AcDbObject';
103
103
  import { AcDbOpenMode } from '../base/AcDbOpenMode';
104
104
  import { AcDbRegenerator } from '../converter/AcDbRegenerator';
105
105
  import { AcDbDatabaseConverterManager, AcDbFileType } from './AcDbDatabaseConverterManager';
106
+ import { AcDbPolyline } from '../entity/AcDbPolyline';
106
107
  import { ACAD_APPID, ACTIVE_VPORT_NAME, ByBlock, ByLayer, DEFAULT_MLEADER_STYLE, DEFAULT_MLINE_STYLE, DEFAULT_LINE_TYPE, DEFAULT_TEXT_STYLE, MLIGHTCAD_APPID } from '../misc/AcDbConstants';
107
108
  import { AcDbAngleUnits } from '../misc/AcDbAngleUnits';
108
109
  import { AcDbDataGenerator } from '../misc/AcDbDataGenerator';
@@ -115,6 +116,7 @@ import { AcDbMlineStyle } from '../object/AcDbMlineStyle';
115
116
  import { AcDbXrecord } from '../object/AcDbXrecord';
116
117
  import { AcLyLayerFilterTree } from '../ly/AcLyLayerFilterTree';
117
118
  import { ACAD_LAYERFILTERS_NAME, ACLY_DICTIONARY_NAME, acdbLayerGroupsToResultBuffer, acdbSerializeLayerFilterTree } from '../ly/AcLyLayerFilterIO';
119
+ import { acdbBytesToHexString } from '../misc/proxyGraphic';
118
120
  import { AcDbBlockTable } from './AcDbBlockTable';
119
121
  import { AcDbBlockTableRecord } from './AcDbBlockTableRecord';
120
122
  import { AcDbOpenDatabaseError } from './AcDbOpenDatabaseError';
@@ -126,6 +128,7 @@ import { AcDbLinetypeTable } from './AcDbLinetypeTable';
126
128
  import { AcDbLinetypeTableRecord } from './AcDbLinetypeTableRecord';
127
129
  import { AcDbTextStyleTable } from './AcDbTextStyleTable';
128
130
  import { AcDbTextStyleTableRecord } from './AcDbTextStyleTableRecord';
131
+ import { AcDbUcsTable } from './AcDbUcsTable';
129
132
  import { AcDbViewTable } from './AcDbViewTable';
130
133
  import { AcDbViewportTable } from './AcDbViewportTable';
131
134
  import { AcDbViewportTableRecord } from './AcDbViewportTableRecord';
@@ -228,6 +231,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
228
231
  _this._hplayer = '.';
229
232
  _this._hptransparency = new AcCmTransparency();
230
233
  _this._textstyle = DEFAULT_TEXT_STYLE;
234
+ _this._dimstyle = DEFAULT_TEXT_STYLE;
231
235
  _this._extents = new AcGeBox3d();
232
236
  // TODO: Default value is 1 (imperial) or 4 (metric)
233
237
  _this._insunits = AcDbUnitsValue.Millimeters;
@@ -235,6 +239,8 @@ var AcDbDatabase = /** @class */ (function (_super) {
235
239
  _this._measurement = 1;
236
240
  _this._ltscale = 1;
237
241
  _this._lwdisplay = false;
242
+ _this._tilemode = true;
243
+ _this._psltscale = true;
238
244
  _this._pdmode = 0;
239
245
  _this._pdsize = 0;
240
246
  _this._osmode = 0;
@@ -246,18 +252,21 @@ var AcDbDatabase = /** @class */ (function (_super) {
246
252
  dimStyleTable: new AcDbDimStyleTable(_this),
247
253
  linetypeTable: new AcDbLinetypeTable(_this),
248
254
  textStyleTable: new AcDbTextStyleTable(_this),
255
+ ucsTable: new AcDbUcsTable(_this),
249
256
  viewTable: new AcDbViewTable(_this),
250
257
  layerTable: new AcDbLayerTable(_this),
251
258
  viewportTable: new AcDbViewportTable(_this)
252
259
  };
253
260
  _this._objects = {
254
261
  dictionary: new AcDbDictionary(_this),
262
+ group: new AcDbDictionary(_this),
255
263
  imageDefinition: new AcDbDictionary(_this),
256
264
  layerFilter: new AcDbDictionary(_this),
257
265
  layerIndex: new AcDbDictionary(_this),
258
266
  layout: new AcDbLayoutDictionary(_this),
259
267
  mleaderStyle: new AcDbDictionary(_this),
260
268
  mlineStyle: new AcDbDictionary(_this),
269
+ sortentsTable: new AcDbDictionary(_this),
261
270
  xrecord: new AcDbDictionary(_this)
262
271
  };
263
272
  _this._layerFilters = new AcLyLayerFilterTree();
@@ -451,12 +460,14 @@ var AcDbDatabase = /** @class */ (function (_super) {
451
460
  AcDbDatabase.prototype.getRootDictionaries = function () {
452
461
  return [
453
462
  this.objects.dictionary,
463
+ this.objects.group,
454
464
  this.objects.imageDefinition,
455
465
  this.objects.layerFilter,
456
466
  this.objects.layerIndex,
457
467
  this.objects.layout,
458
468
  this.objects.mleaderStyle,
459
469
  this.objects.mlineStyle,
470
+ this.objects.sortentsTable,
460
471
  this.objects.xrecord
461
472
  ];
462
473
  };
@@ -480,6 +491,77 @@ var AcDbDatabase = /** @class */ (function (_super) {
480
491
  this.flushEventBatch();
481
492
  }
482
493
  };
494
+ /**
495
+ * Ends the outermost event batch, flushing `entityAppended` notifications in
496
+ * chunks so converters can report ENTITY progress while the viewer adds/renders.
497
+ *
498
+ * Nested batches still require matching {@link endEventBatch} /
499
+ * {@link endEventBatchChunked} calls; only the outermost close flushes.
500
+ *
501
+ * @param chunkSize - Max entities per `entityAppended` dispatch
502
+ * @param onChunk - Called after each chunk with `(flushed, total)`
503
+ */
504
+ AcDbDatabase.prototype.endEventBatchChunked = function (chunkSize, onChunk) {
505
+ return __awaiter(this, void 0, void 0, function () {
506
+ var appended, total, size, flushed, i, end, chunk;
507
+ return __generator(this, function (_a) {
508
+ switch (_a.label) {
509
+ case 0:
510
+ if (this._eventBatchDepth <= 0) {
511
+ return [2 /*return*/];
512
+ }
513
+ this._eventBatchDepth--;
514
+ if (this._eventBatchDepth !== 0) {
515
+ return [2 /*return*/];
516
+ }
517
+ this.transactionManager.flushPendingEntityModifiedEvents();
518
+ this.transactionManager.flushPendingLayerModifiedEvents();
519
+ appended = this._pendingEntityAppended;
520
+ this._pendingEntityAppended = [];
521
+ total = appended.length;
522
+ size = Math.max(1, chunkSize);
523
+ if (total === 0) {
524
+ this.flushEventBatchRemainder();
525
+ return [2 /*return*/];
526
+ }
527
+ flushed = 0;
528
+ _a.label = 1;
529
+ case 1:
530
+ _a.trys.push([1, , 6, 7]);
531
+ i = 0;
532
+ _a.label = 2;
533
+ case 2:
534
+ if (!(i < total)) return [3 /*break*/, 5];
535
+ end = Math.min(i + size, total);
536
+ chunk = appended.slice(i, end);
537
+ this.events.entityAppended.dispatch({
538
+ database: this,
539
+ entity: chunk
540
+ });
541
+ flushed = end;
542
+ if (!onChunk) return [3 /*break*/, 4];
543
+ return [4 /*yield*/, onChunk(end, total)];
544
+ case 3:
545
+ _a.sent();
546
+ _a.label = 4;
547
+ case 4:
548
+ i += size;
549
+ return [3 /*break*/, 2];
550
+ case 5: return [3 /*break*/, 7];
551
+ case 6:
552
+ if (flushed < total) {
553
+ this.events.entityAppended.dispatch({
554
+ database: this,
555
+ entity: appended.slice(flushed)
556
+ });
557
+ }
558
+ this.flushEventBatchRemainder();
559
+ return [7 /*endfinally*/];
560
+ case 7: return [2 /*return*/];
561
+ }
562
+ });
563
+ });
564
+ };
483
565
  /**
484
566
  * Returns true when database events are being batched.
485
567
  */
@@ -560,7 +642,6 @@ var AcDbDatabase = /** @class */ (function (_super) {
560
642
  * Appended and erased entities are dispatched in batch arrays where applicable.
561
643
  */
562
644
  AcDbDatabase.prototype.flushEventBatch = function () {
563
- var e_1, _a, e_2, _b;
564
645
  if (this._pendingEntityAppended.length > 0) {
565
646
  var appended = this._pendingEntityAppended;
566
647
  this._pendingEntityAppended = [];
@@ -569,6 +650,11 @@ var AcDbDatabase = /** @class */ (function (_super) {
569
650
  entity: appended
570
651
  });
571
652
  }
653
+ this.flushEventBatchRemainder();
654
+ };
655
+ /** Flushes non-append batch queues (erase / dictionary) after entity appends. */
656
+ AcDbDatabase.prototype.flushEventBatchRemainder = function () {
657
+ var e_1, _a, e_2, _b;
572
658
  if (this._pendingEntityErased.length > 0) {
573
659
  var erased = this._pendingEntityErased;
574
660
  this._pendingEntityErased = [];
@@ -757,6 +843,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
757
843
  this._tables.linetypeTable,
758
844
  this._tables.appIdTable,
759
845
  this._tables.textStyleTable,
846
+ this._tables.ucsTable,
760
847
  this._tables.viewTable,
761
848
  this._tables.viewportTable
762
849
  ]), _d = _c.next(); !_d.done; _d = _c.next()) {
@@ -774,12 +861,14 @@ var AcDbDatabase = /** @class */ (function (_super) {
774
861
  try {
775
862
  for (var _e = __values([
776
863
  this._objects.dictionary,
864
+ this._objects.group,
777
865
  this._objects.imageDefinition,
778
866
  this._objects.layerFilter,
779
867
  this._objects.layerIndex,
780
868
  this._objects.layout,
781
869
  this._objects.mleaderStyle,
782
870
  this._objects.mlineStyle,
871
+ this._objects.sortentsTable,
783
872
  this._objects.xrecord
784
873
  ]), _f = _e.next(); !_f.done; _f = _e.next()) {
785
874
  var dictionary = _f.value;
@@ -1294,6 +1383,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
1294
1383
  var layer = this.tables.layerTable.getAt(layerName);
1295
1384
  return layer == null || layer.isPlottable;
1296
1385
  };
1386
+ Object.defineProperty(AcDbDatabase.prototype, "tilemode", {
1387
+ /** TILEMODE: true = model space (1), false = paper space (0). */
1388
+ get: function () {
1389
+ return this._tilemode;
1390
+ },
1391
+ set: function (value) {
1392
+ this._tilemode = value;
1393
+ },
1394
+ enumerable: false,
1395
+ configurable: true
1396
+ });
1397
+ Object.defineProperty(AcDbDatabase.prototype, "psltscale", {
1398
+ /** PSLTSCALE: paper space linetype scaling. */
1399
+ get: function () {
1400
+ return this._psltscale;
1401
+ },
1402
+ set: function (value) {
1403
+ this._psltscale = value;
1404
+ },
1405
+ enumerable: false,
1406
+ configurable: true
1407
+ });
1297
1408
  Object.defineProperty(AcDbDatabase.prototype, "cecolor", {
1298
1409
  /**
1299
1410
  * Gets the color of new objects as they are created.
@@ -1540,6 +1651,22 @@ var AcDbDatabase = /** @class */ (function (_super) {
1540
1651
  enumerable: false,
1541
1652
  configurable: true
1542
1653
  });
1654
+ Object.defineProperty(AcDbDatabase.prototype, "dimstyle", {
1655
+ /**
1656
+ * The dimension style name for new dimension objects (`$DIMSTYLE`).
1657
+ */
1658
+ get: function () {
1659
+ return this._dimstyle;
1660
+ },
1661
+ set: function (value) {
1662
+ var _this = this;
1663
+ this.updateSysVar(AcDbSystemVariables.DIMSTYLE, this._dimstyle, value !== null && value !== void 0 ? value : DEFAULT_TEXT_STYLE, function (nextValue) {
1664
+ _this._dimstyle = nextValue;
1665
+ });
1666
+ },
1667
+ enumerable: false,
1668
+ configurable: true
1669
+ });
1543
1670
  Object.defineProperty(AcDbDatabase.prototype, "angbase", {
1544
1671
  /**
1545
1672
  * The zero (0) base angle with respect to the current UCS in radians.
@@ -1801,7 +1928,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
1801
1928
  _b.label = 1;
1802
1929
  case 1:
1803
1930
  _b.trys.push([1, 3, , 4]);
1804
- return [4 /*yield*/, options.fontLoader.load(fonts_1)];
1931
+ return [4 /*yield*/, this.loadFontsWithProgress(options.fontLoader, fonts_1, percentage)];
1805
1932
  case 2:
1806
1933
  _b.sent();
1807
1934
  return [3 /*break*/, 4];
@@ -1828,6 +1955,49 @@ var AcDbDatabase = /** @class */ (function (_super) {
1828
1955
  });
1829
1956
  }); };
1830
1957
  };
1958
+ /**
1959
+ * Loads fonts while emitting FONT IN-PROGRESS so the open-file bar keeps
1960
+ * moving during multi-font downloads (native DXF parses on the main thread
1961
+ * and previously appeared stuck at the FONT stage).
1962
+ */
1963
+ AcDbDatabase.prototype.loadFontsWithProgress = function (fontLoader, fonts, basePercentage) {
1964
+ return __awaiter(this, void 0, void 0, function () {
1965
+ var span, i, pct;
1966
+ return __generator(this, function (_a) {
1967
+ switch (_a.label) {
1968
+ case 0:
1969
+ if (!(fonts.length <= 1)) return [3 /*break*/, 2];
1970
+ return [4 /*yield*/, fontLoader.load(fonts)];
1971
+ case 1:
1972
+ _a.sent();
1973
+ return [2 /*return*/];
1974
+ case 2:
1975
+ span = Math.max(1, Math.min(5, 19 - basePercentage));
1976
+ i = 0;
1977
+ _a.label = 3;
1978
+ case 3:
1979
+ if (!(i < fonts.length)) return [3 /*break*/, 6];
1980
+ return [4 /*yield*/, fontLoader.load([fonts[i]])];
1981
+ case 4:
1982
+ _a.sent();
1983
+ pct = Math.min(19, basePercentage + Math.round(((i + 1) / fonts.length) * span));
1984
+ this.events.openProgress.dispatch({
1985
+ database: this,
1986
+ percentage: pct,
1987
+ stage: 'CONVERSION',
1988
+ subStage: 'FONT',
1989
+ subStageStatus: 'IN-PROGRESS',
1990
+ data: fonts
1991
+ });
1992
+ _a.label = 5;
1993
+ case 5:
1994
+ i++;
1995
+ return [3 /*break*/, 3];
1996
+ case 6: return [2 /*return*/];
1997
+ }
1998
+ });
1999
+ });
2000
+ };
1831
2001
  /**
1832
2002
  * Read AutoCAD DXF or DWG drawing specified by the URL into the database object.
1833
2003
  * The method automatically detects the file type based on the URL extension:
@@ -1944,36 +2114,44 @@ var AcDbDatabase = /** @class */ (function (_super) {
1944
2114
  });
1945
2115
  };
1946
2116
  /**
1947
- * Exports the current database into an ASCII DXF string.
2117
+ * Exports the current database into DXF (ASCII string or binary bytes).
1948
2118
  *
1949
2119
  * The `fileName` parameter is kept for ObjectARX API parity. In this web
1950
2120
  * implementation the method returns the DXF payload instead of writing the
1951
2121
  * filesystem directly.
1952
2122
  *
1953
- * This is the top-level DXF export entry point. It emits the sectioned
1954
- * structure in the canonical order: HEADER, TABLES, BLOCKS, ENTITIES,
1955
- * OBJECTS, and EOF.
1956
- *
1957
2123
  * @param _fileName - Kept for ObjectARX parity. Ignored in this implementation.
1958
2124
  * @param precision - Numeric precision used by the DXF filer.
1959
2125
  * @param version - Target DXF/DWG version name or value.
1960
- * @param _saveThumbnailImage - Kept for ObjectARX parity. Ignored here.
1961
- * @returns The serialized DXF contents.
2126
+ * @param optionsOrThumbnail - Legacy boolean thumbnail flag, or options with
2127
+ * `saveThumbnailImage` and `format: 'ascii' | 'binary'`.
2128
+ * @returns ASCII DXF string, or `Uint8Array` when format is `'binary'`.
1962
2129
  */
1963
- AcDbDatabase.prototype.dxfOut = function (_fileName, precision, version, _saveThumbnailImage) {
2130
+ AcDbDatabase.prototype.dxfOut = function (_fileName, precision, version, optionsOrThumbnail) {
2131
+ var _a, _b;
1964
2132
  if (precision === void 0) { precision = 16; }
1965
2133
  if (version === void 0) { version = this.version.name; }
1966
- if (_saveThumbnailImage === void 0) { _saveThumbnailImage = false; }
2134
+ if (optionsOrThumbnail === void 0) { optionsOrThumbnail = false; }
1967
2135
  this.ensureDatabaseDefaults();
1968
2136
  if (this._layerFilters.root.getNestedFilters().length > 0 &&
1969
2137
  !this.tables.layerTable.extensionDictionary) {
1970
2138
  this.tables.layerTable.extensionDictionary = this.generateHandle();
1971
2139
  }
2140
+ var options = typeof optionsOrThumbnail === 'boolean'
2141
+ ? {
2142
+ saveThumbnailImage: optionsOrThumbnail,
2143
+ format: 'ascii'
2144
+ }
2145
+ : {
2146
+ saveThumbnailImage: (_a = optionsOrThumbnail.saveThumbnailImage) !== null && _a !== void 0 ? _a : false,
2147
+ format: (_b = optionsOrThumbnail.format) !== null && _b !== void 0 ? _b : 'ascii'
2148
+ };
1972
2149
  var outVersion = version instanceof AcDbDwgVersion ? version : new AcDbDwgVersion(version);
1973
2150
  var filer = new AcDbDxfFiler({
1974
2151
  database: this,
1975
2152
  precision: precision,
1976
- version: outVersion
2153
+ version: outVersion,
2154
+ outputFormat: options.format
1977
2155
  });
1978
2156
  this.writeDxfHeaderSection(filer);
1979
2157
  this.writeDxfClassesSection(filer);
@@ -1981,8 +2159,9 @@ var AcDbDatabase = /** @class */ (function (_super) {
1981
2159
  this.writeDxfBlocksSection(filer);
1982
2160
  this.writeDxfEntitiesSection(filer);
1983
2161
  this.writeDxfObjectsSection(filer);
2162
+ this.writeDxfThumbnailImageSection(filer, options.saveThumbnailImage);
1984
2163
  filer.writeStart('EOF');
1985
- return filer.toString();
2164
+ return options.format === 'binary' ? filer.toBinary() : filer.toString();
1986
2165
  };
1987
2166
  /**
1988
2167
  * Triggers xxxAppended events with data in the database to redraw the associated viewer.
@@ -2297,7 +2476,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2297
2476
  filer.writeString(1, (_b = (_a = filer.version) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : this.version.name);
2298
2477
  filer.writeString(9, '$HANDSEED');
2299
2478
  filer.writeString(5, filer.nextHandle.toString(16).toUpperCase());
2300
- if (filer.version != null && filer.version.value >= 27) {
2479
+ if (filer.capabilities.supportsUtf8CodePage) {
2301
2480
  filer.writeString(9, '$DWGCODEPAGE');
2302
2481
  filer.writeString(3, 'UTF-8');
2303
2482
  }
@@ -2313,13 +2492,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
2313
2492
  filer.writeInt16(70, this.measurement);
2314
2493
  filer.writeString(9, '$LTSCALE');
2315
2494
  filer.writeDouble(40, this.ltscale);
2316
- filer.writeString(9, '$LWDISPLAY');
2317
- filer.writeInt16(70, this.lwdisplay ? 1 : 0);
2495
+ if (filer.capabilities.supportsLineWeight) {
2496
+ filer.writeString(9, '$LWDISPLAY');
2497
+ filer.writeInt16(70, this.lwdisplay ? 1 : 0);
2498
+ }
2499
+ filer.writeString(9, '$CELTSCALE');
2500
+ filer.writeDouble(40, this.celtscale);
2501
+ if (filer.capabilities.supportsLineWeight) {
2502
+ filer.writeString(9, '$CELWEIGHT');
2503
+ filer.writeLineWeight(370, this.celweight);
2504
+ }
2505
+ filer.writeString(9, '$CECOLOR');
2506
+ filer.writeCmColor(this.cecolor);
2507
+ filer.writeString(9, '$TILEMODE');
2508
+ filer.writeInt16(70, this.tilemode ? 1 : 0);
2509
+ filer.writeString(9, '$PSLTSCALE');
2510
+ filer.writeInt16(70, this.psltscale ? 1 : 0);
2318
2511
  filer.writeString(9, '$CLAYER');
2319
2512
  filer.writeString(8, this.clayer);
2320
2513
  filer.writeString(9, '$CELTYPE');
2321
2514
  filer.writeString(6, this.celtype);
2322
- if (!this.cetransparency.isInvalid) {
2515
+ if (filer.capabilities.supportsTransparency &&
2516
+ !this.cetransparency.isInvalid) {
2323
2517
  filer.writeString(9, '$CETRANSPARENCY');
2324
2518
  filer.writeTransparency(this.cetransparency);
2325
2519
  }
@@ -2339,12 +2533,15 @@ var AcDbDatabase = /** @class */ (function (_super) {
2339
2533
  }
2340
2534
  filer.writeString(9, '$HPLAYER');
2341
2535
  filer.writeString(8, this.hplayer);
2342
- if (!this.hptransparency.isInvalid) {
2536
+ if (filer.capabilities.supportsTransparency &&
2537
+ !this.hptransparency.isInvalid) {
2343
2538
  filer.writeString(9, '$HPTRANSPARENCY');
2344
2539
  filer.writeTransparency(this.hptransparency);
2345
2540
  }
2346
2541
  filer.writeString(9, '$TEXTSTYLE');
2347
2542
  filer.writeString(7, this.textstyle);
2543
+ filer.writeString(9, '$DIMSTYLE');
2544
+ filer.writeString(2, this.dimstyle);
2348
2545
  filer.writeString(9, '$ANGBASE');
2349
2546
  filer.writeAngle(50, this.angbase);
2350
2547
  filer.writeString(9, '$ANGDIR');
@@ -2377,7 +2574,8 @@ var AcDbDatabase = /** @class */ (function (_super) {
2377
2574
  */
2378
2575
  AcDbDatabase.prototype.writeDxfClassesSection = function (filer) {
2379
2576
  var e_10, _a;
2380
- if (this._classes.length === 0) {
2577
+ if (!filer.capabilities.supportsClassesSection ||
2578
+ this._classes.length === 0) {
2381
2579
  return;
2382
2580
  }
2383
2581
  filer.startSection('CLASSES');
@@ -2413,12 +2611,13 @@ var AcDbDatabase = /** @class */ (function (_super) {
2413
2611
  filer.startSection('TABLES');
2414
2612
  this.writeDxfTable(filer, 'VPORT', this.tables.viewportTable, this.tables.viewportTable.newIterator(), 'VPORT');
2415
2613
  this.writeDxfTable(filer, 'VIEW', this.tables.viewTable, this.tables.viewTable.newIterator(), 'VIEW');
2614
+ this.writeDxfTable(filer, 'UCS', this.tables.ucsTable, this.tables.ucsTable.newIterator(), 'UCS');
2416
2615
  this.writeDxfTable(filer, 'LTYPE', this.tables.linetypeTable, this.tables.linetypeTable.newIterator(), 'LTYPE');
2417
2616
  this.writeDxfTable(filer, 'LAYER', this.tables.layerTable, this.tables.layerTable.newIterator(), 'LAYER');
2418
2617
  this.writeDxfTable(filer, 'STYLE', this.tables.textStyleTable, this.tables.textStyleTable.newIterator(true), 'STYLE');
2419
2618
  this.writeDxfTable(filer, 'APPID', this.tables.appIdTable, this.tables.appIdTable.newIterator(), 'APPID');
2420
2619
  this.writeDxfTable(filer, 'DIMSTYLE', this.tables.dimStyleTable, this.tables.dimStyleTable.newIterator(), 'DIMSTYLE');
2421
- if (version.value >= 19) {
2620
+ if (version.capabilities.supportsBlockRecordTable) {
2422
2621
  this.writeDxfTable(filer, 'BLOCK_RECORD', this.tables.blockTable, this.tables.blockTable.newIterator(), 'BLOCK_RECORD');
2423
2622
  }
2424
2623
  filer.endSection();
@@ -2505,14 +2704,17 @@ var AcDbDatabase = /** @class */ (function (_super) {
2505
2704
  * @param filer - DXF output writer.
2506
2705
  */
2507
2706
  AcDbDatabase.prototype.writeDxfObjectsSection = function (filer) {
2508
- var e_15, _a, e_16, _b, e_17, _c, e_18, _d, e_19, _e, e_20, _f, e_21, _g;
2707
+ var e_15, _a, e_16, _b, e_17, _c, e_18, _d, e_19, _e, e_20, _f, e_21, _g, e_22, _h, e_23, _j;
2708
+ if (!filer.capabilities.supportsObjectsSection) {
2709
+ return;
2710
+ }
2509
2711
  filer.startSection('OBJECTS');
2510
2712
  var rootDict = this.objects.dictionary;
2511
2713
  rootDict.ownerId = '0';
2512
2714
  var writeDictionary = function (dict) {
2513
2715
  // Dictionary entries (3/350 pairs) are embedded in the DICTIONARY object.
2514
2716
  filer.writeStart('DICTIONARY');
2515
- dict.dxfOut(filer);
2717
+ dict.dxfOut(filer, true);
2516
2718
  };
2517
2719
  var ensureRootEntry = function (key, dict) {
2518
2720
  if (rootDict.getAt(key) !== dict) {
@@ -2525,6 +2727,18 @@ var AcDbDatabase = /** @class */ (function (_super) {
2525
2727
  }
2526
2728
  };
2527
2729
  ensureRootEntry('ACAD_LAYOUT', this.objects.layout);
2730
+ if (this.objects.group.numEntries > 0) {
2731
+ ensureRootEntry('ACAD_GROUP', this.objects.group);
2732
+ }
2733
+ else {
2734
+ dropRootEntry('ACAD_GROUP');
2735
+ }
2736
+ if (this.objects.sortentsTable.numEntries > 0) {
2737
+ ensureRootEntry('ACAD_SORTENTS', this.objects.sortentsTable);
2738
+ }
2739
+ else {
2740
+ dropRootEntry('ACAD_SORTENTS');
2741
+ }
2528
2742
  if (this.objects.mleaderStyle.numEntries > 0) {
2529
2743
  ensureRootEntry('ACAD_MLEADERSTYLE', this.objects.mleaderStyle);
2530
2744
  }
@@ -2551,6 +2765,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2551
2765
  }
2552
2766
  writeDictionary(rootDict);
2553
2767
  writeDictionary(this.objects.layout);
2768
+ if (this.objects.group.numEntries > 0) {
2769
+ writeDictionary(this.objects.group);
2770
+ }
2771
+ if (this.objects.sortentsTable.numEntries > 0) {
2772
+ writeDictionary(this.objects.sortentsTable);
2773
+ }
2554
2774
  if (this.objects.mleaderStyle.numEntries > 0) {
2555
2775
  writeDictionary(this.objects.mleaderStyle);
2556
2776
  }
@@ -2564,103 +2784,133 @@ var AcDbDatabase = /** @class */ (function (_super) {
2564
2784
  writeDictionary(this.objects.xrecord);
2565
2785
  }
2566
2786
  try {
2567
- for (var _h = __values(this.objects.layout.entries()), _j = _h.next(); !_j.done; _j = _h.next()) {
2568
- var _k = __read(_j.value, 2), _ = _k[0], layout = _k[1];
2787
+ for (var _k = __values(this.objects.layout.entries()), _l = _k.next(); !_l.done; _l = _k.next()) {
2788
+ var _m = __read(_l.value, 2), _ = _m[0], layout = _m[1];
2569
2789
  filer.writeStart('LAYOUT');
2570
- layout.dxfOut(filer);
2790
+ layout.dxfOut(filer, true);
2571
2791
  }
2572
2792
  }
2573
2793
  catch (e_15_1) { e_15 = { error: e_15_1 }; }
2574
2794
  finally {
2575
2795
  try {
2576
- if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
2796
+ if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
2577
2797
  }
2578
2798
  finally { if (e_15) throw e_15.error; }
2579
2799
  }
2580
2800
  try {
2581
- for (var _l = __values(this.objects.imageDefinition.entries()), _m = _l.next(); !_m.done; _m = _l.next()) {
2582
- var _o = __read(_m.value, 2), _ = _o[0], imageDef = _o[1];
2583
- filer.writeStart('IMAGEDEF');
2584
- imageDef.dxfOut(filer);
2801
+ for (var _o = __values(this.objects.group.entries()), _p = _o.next(); !_p.done; _p = _o.next()) {
2802
+ var _q = __read(_p.value, 2), key = _q[0], group = _q[1];
2803
+ if (!group.name)
2804
+ group.name = key;
2805
+ filer.writeStart('GROUP');
2806
+ group.dxfOut(filer, true);
2585
2807
  }
2586
2808
  }
2587
2809
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
2588
2810
  finally {
2589
2811
  try {
2590
- if (_m && !_m.done && (_b = _l.return)) _b.call(_l);
2812
+ if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
2591
2813
  }
2592
2814
  finally { if (e_16) throw e_16.error; }
2593
2815
  }
2594
2816
  try {
2595
- for (var _p = __values(this.objects.layerFilter.entries()), _q = _p.next(); !_q.done; _q = _p.next()) {
2596
- var _r = __read(_q.value, 2), _ = _r[0], layerFilter = _r[1];
2597
- filer.writeStart('LAYER_FILTER');
2598
- layerFilter.dxfOut(filer);
2817
+ for (var _r = __values(this.objects.sortentsTable.entries()), _s = _r.next(); !_s.done; _s = _r.next()) {
2818
+ var _t = __read(_s.value, 2), _ = _t[0], sortents = _t[1];
2819
+ filer.writeStart('SORTENTSTABLE');
2820
+ sortents.dxfOut(filer, true);
2599
2821
  }
2600
2822
  }
2601
2823
  catch (e_17_1) { e_17 = { error: e_17_1 }; }
2602
2824
  finally {
2603
2825
  try {
2604
- if (_q && !_q.done && (_c = _p.return)) _c.call(_p);
2826
+ if (_s && !_s.done && (_c = _r.return)) _c.call(_r);
2605
2827
  }
2606
2828
  finally { if (e_17) throw e_17.error; }
2607
2829
  }
2608
2830
  try {
2609
- for (var _s = __values(this.objects.layerIndex.entries()), _t = _s.next(); !_t.done; _t = _s.next()) {
2610
- var _u = __read(_t.value, 2), _ = _u[0], layerIndex = _u[1];
2611
- filer.writeStart('LAYER_INDEX');
2612
- layerIndex.dxfOut(filer);
2831
+ for (var _u = __values(this.objects.imageDefinition.entries()), _v = _u.next(); !_v.done; _v = _u.next()) {
2832
+ var _w = __read(_v.value, 2), _ = _w[0], imageDef = _w[1];
2833
+ filer.writeStart('IMAGEDEF');
2834
+ imageDef.dxfOut(filer, true);
2613
2835
  }
2614
2836
  }
2615
2837
  catch (e_18_1) { e_18 = { error: e_18_1 }; }
2616
2838
  finally {
2617
2839
  try {
2618
- if (_t && !_t.done && (_d = _s.return)) _d.call(_s);
2840
+ if (_v && !_v.done && (_d = _u.return)) _d.call(_u);
2619
2841
  }
2620
2842
  finally { if (e_18) throw e_18.error; }
2621
2843
  }
2622
2844
  try {
2623
- for (var _v = __values(this.objects.mleaderStyle.entries()), _w = _v.next(); !_w.done; _w = _v.next()) {
2624
- var _x = __read(_w.value, 2), _ = _x[0], mleaderStyle = _x[1];
2625
- filer.writeStart('MLEADERSTYLE');
2626
- mleaderStyle.dxfOut(filer);
2845
+ for (var _x = __values(this.objects.layerFilter.entries()), _y = _x.next(); !_y.done; _y = _x.next()) {
2846
+ var _z = __read(_y.value, 2), _ = _z[0], layerFilter = _z[1];
2847
+ filer.writeStart('LAYER_FILTER');
2848
+ layerFilter.dxfOut(filer, true);
2627
2849
  }
2628
2850
  }
2629
2851
  catch (e_19_1) { e_19 = { error: e_19_1 }; }
2630
2852
  finally {
2631
2853
  try {
2632
- if (_w && !_w.done && (_e = _v.return)) _e.call(_v);
2854
+ if (_y && !_y.done && (_e = _x.return)) _e.call(_x);
2633
2855
  }
2634
2856
  finally { if (e_19) throw e_19.error; }
2635
2857
  }
2636
2858
  try {
2637
- for (var _y = __values(this.objects.mlineStyle.entries()), _z = _y.next(); !_z.done; _z = _y.next()) {
2638
- var _0 = __read(_z.value, 2), _ = _0[0], mlineStyle = _0[1];
2639
- filer.writeStart('MLINESTYLE');
2640
- mlineStyle.dxfOut(filer);
2859
+ for (var _0 = __values(this.objects.layerIndex.entries()), _1 = _0.next(); !_1.done; _1 = _0.next()) {
2860
+ var _2 = __read(_1.value, 2), _ = _2[0], layerIndex = _2[1];
2861
+ filer.writeStart('LAYER_INDEX');
2862
+ layerIndex.dxfOut(filer, true);
2641
2863
  }
2642
2864
  }
2643
2865
  catch (e_20_1) { e_20 = { error: e_20_1 }; }
2644
2866
  finally {
2645
2867
  try {
2646
- if (_z && !_z.done && (_f = _y.return)) _f.call(_y);
2868
+ if (_1 && !_1.done && (_f = _0.return)) _f.call(_0);
2647
2869
  }
2648
2870
  finally { if (e_20) throw e_20.error; }
2649
2871
  }
2650
2872
  try {
2651
- for (var _1 = __values(this.objects.xrecord.entries()), _2 = _1.next(); !_2.done; _2 = _1.next()) {
2652
- var _3 = __read(_2.value, 2), _ = _3[0], xrecord = _3[1];
2653
- filer.writeStart('XRECORD');
2654
- xrecord.dxfOut(filer);
2873
+ for (var _3 = __values(this.objects.mleaderStyle.entries()), _4 = _3.next(); !_4.done; _4 = _3.next()) {
2874
+ var _5 = __read(_4.value, 2), _ = _5[0], mleaderStyle = _5[1];
2875
+ filer.writeStart('MLEADERSTYLE');
2876
+ mleaderStyle.dxfOut(filer, true);
2655
2877
  }
2656
2878
  }
2657
2879
  catch (e_21_1) { e_21 = { error: e_21_1 }; }
2658
2880
  finally {
2659
2881
  try {
2660
- if (_2 && !_2.done && (_g = _1.return)) _g.call(_1);
2882
+ if (_4 && !_4.done && (_g = _3.return)) _g.call(_3);
2661
2883
  }
2662
2884
  finally { if (e_21) throw e_21.error; }
2663
2885
  }
2886
+ try {
2887
+ for (var _6 = __values(this.objects.mlineStyle.entries()), _7 = _6.next(); !_7.done; _7 = _6.next()) {
2888
+ var _8 = __read(_7.value, 2), _ = _8[0], mlineStyle = _8[1];
2889
+ filer.writeStart('MLINESTYLE');
2890
+ mlineStyle.dxfOut(filer, true);
2891
+ }
2892
+ }
2893
+ catch (e_22_1) { e_22 = { error: e_22_1 }; }
2894
+ finally {
2895
+ try {
2896
+ if (_7 && !_7.done && (_h = _6.return)) _h.call(_6);
2897
+ }
2898
+ finally { if (e_22) throw e_22.error; }
2899
+ }
2900
+ try {
2901
+ for (var _9 = __values(this.objects.xrecord.entries()), _10 = _9.next(); !_10.done; _10 = _9.next()) {
2902
+ var _11 = __read(_10.value, 2), _ = _11[0], xrecord = _11[1];
2903
+ filer.writeStart('XRECORD');
2904
+ xrecord.dxfOut(filer, true);
2905
+ }
2906
+ }
2907
+ catch (e_23_1) { e_23 = { error: e_23_1 }; }
2908
+ finally {
2909
+ try {
2910
+ if (_10 && !_10.done && (_j = _9.return)) _j.call(_9);
2911
+ }
2912
+ finally { if (e_23) throw e_23.error; }
2913
+ }
2664
2914
  this.writeAcLyLayerFilterObjects(filer);
2665
2915
  filer.endSection();
2666
2916
  };
@@ -2672,7 +2922,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2672
2922
  * @param filer - DXF output writer.
2673
2923
  */
2674
2924
  AcDbDatabase.prototype.writeAcLyLayerFilterObjects = function (filer) {
2675
- var e_22, _a, e_23, _b, e_24, _c, e_25, _d, e_26, _e;
2925
+ var e_24, _a, e_25, _b, e_26, _c, e_27, _d, e_28, _e;
2676
2926
  var _this = this;
2677
2927
  var _f;
2678
2928
  var serialized = acdbSerializeLayerFilterTree(this._layerFilters);
@@ -2689,7 +2939,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2689
2939
  var rootAclyEntries = [];
2690
2940
  var rootAcadEntries = [];
2691
2941
  var emit = function (node, parentAclyHandle, addToLegacy) {
2692
- var e_27, _a;
2942
+ var e_29, _a;
2693
2943
  var xHandle = _this.generateHandle();
2694
2944
  var extensionDictionaryId;
2695
2945
  if (node.children.length > 0) {
@@ -2705,12 +2955,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2705
2955
  });
2706
2956
  }
2707
2957
  }
2708
- catch (e_27_1) { e_27 = { error: e_27_1 }; }
2958
+ catch (e_29_1) { e_29 = { error: e_29_1 }; }
2709
2959
  finally {
2710
2960
  try {
2711
2961
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2712
2962
  }
2713
- finally { if (e_27) throw e_27.error; }
2963
+ finally { if (e_29) throw e_29.error; }
2714
2964
  }
2715
2965
  dicts.push({
2716
2966
  handle: extHandle,
@@ -2744,12 +2994,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2744
2994
  });
2745
2995
  }
2746
2996
  }
2747
- catch (e_22_1) { e_22 = { error: e_22_1 }; }
2997
+ catch (e_24_1) { e_24 = { error: e_24_1 }; }
2748
2998
  finally {
2749
2999
  try {
2750
3000
  if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
2751
3001
  }
2752
- finally { if (e_22) throw e_22.error; }
3002
+ finally { if (e_24) throw e_24.error; }
2753
3003
  }
2754
3004
  var layerExtEntries = new Map();
2755
3005
  var existingLayerExt = this.getObjectById(layerExtHandle);
@@ -2760,12 +3010,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2760
3010
  layerExtEntries.set(key, value.objectId);
2761
3011
  }
2762
3012
  }
2763
- catch (e_23_1) { e_23 = { error: e_23_1 }; }
3013
+ catch (e_25_1) { e_25 = { error: e_25_1 }; }
2764
3014
  finally {
2765
3015
  try {
2766
3016
  if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
2767
3017
  }
2768
- finally { if (e_23) throw e_23.error; }
3018
+ finally { if (e_25) throw e_25.error; }
2769
3019
  }
2770
3020
  }
2771
3021
  layerExtEntries.set(ACLY_DICTIONARY_NAME, aclyHandle);
@@ -2796,27 +3046,27 @@ var AcDbDatabase = /** @class */ (function (_super) {
2796
3046
  filer.writeInt16(280, 1);
2797
3047
  filer.writeInt16(281, 1);
2798
3048
  try {
2799
- for (var _m = (e_25 = void 0, __values(dict.entries)), _o = _m.next(); !_o.done; _o = _m.next()) {
3049
+ for (var _m = (e_27 = void 0, __values(dict.entries)), _o = _m.next(); !_o.done; _o = _m.next()) {
2800
3050
  var entry = _o.value;
2801
3051
  filer.writeString(3, entry.name);
2802
3052
  filer.writeObjectId(350, entry.id);
2803
3053
  }
2804
3054
  }
2805
- catch (e_25_1) { e_25 = { error: e_25_1 }; }
3055
+ catch (e_27_1) { e_27 = { error: e_27_1 }; }
2806
3056
  finally {
2807
3057
  try {
2808
3058
  if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
2809
3059
  }
2810
- finally { if (e_25) throw e_25.error; }
3060
+ finally { if (e_27) throw e_27.error; }
2811
3061
  }
2812
3062
  }
2813
3063
  }
2814
- catch (e_24_1) { e_24 = { error: e_24_1 }; }
3064
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
2815
3065
  finally {
2816
3066
  try {
2817
3067
  if (dicts_1_1 && !dicts_1_1.done && (_c = dicts_1.return)) _c.call(dicts_1);
2818
3068
  }
2819
- finally { if (e_24) throw e_24.error; }
3069
+ finally { if (e_26) throw e_26.error; }
2820
3070
  }
2821
3071
  try {
2822
3072
  for (var xrecs_1 = __values(xrecs), xrecs_1_1 = xrecs_1.next(); !xrecs_1_1.done; xrecs_1_1 = xrecs_1.next()) {
@@ -2832,12 +3082,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2832
3082
  xrecord.dxfOut(filer);
2833
3083
  }
2834
3084
  }
2835
- catch (e_26_1) { e_26 = { error: e_26_1 }; }
3085
+ catch (e_28_1) { e_28 = { error: e_28_1 }; }
2836
3086
  finally {
2837
3087
  try {
2838
3088
  if (xrecs_1_1 && !xrecs_1_1.done && (_e = xrecs_1.return)) _e.call(xrecs_1);
2839
3089
  }
2840
- finally { if (e_26) throw e_26.error; }
3090
+ finally { if (e_28) throw e_28.error; }
2841
3091
  }
2842
3092
  };
2843
3093
  /**
@@ -2850,7 +3100,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2850
3100
  * @param recordType - DXF record type name for each table record.
2851
3101
  */
2852
3102
  AcDbDatabase.prototype.writeDxfTable = function (filer, tableName, table, records, recordType) {
2853
- var e_28, _a;
3103
+ var e_30, _a;
2854
3104
  var items = __spreadArray([], __read(records), false);
2855
3105
  filer.startTable(tableName);
2856
3106
  table.dxfOut(filer);
@@ -2863,15 +3113,15 @@ var AcDbDatabase = /** @class */ (function (_super) {
2863
3113
  continue;
2864
3114
  }
2865
3115
  filer.writeStart(recordType);
2866
- record.dxfOut(filer);
3116
+ record.dxfOut(filer, true);
2867
3117
  }
2868
3118
  }
2869
- catch (e_28_1) { e_28 = { error: e_28_1 }; }
3119
+ catch (e_30_1) { e_30 = { error: e_30_1 }; }
2870
3120
  finally {
2871
3121
  try {
2872
3122
  if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
2873
3123
  }
2874
- finally { if (e_28) throw e_28.error; }
3124
+ finally { if (e_30) throw e_30.error; }
2875
3125
  }
2876
3126
  filer.endTable();
2877
3127
  };
@@ -2886,8 +3136,36 @@ var AcDbDatabase = /** @class */ (function (_super) {
2886
3136
  * @param entity - Entity to serialize.
2887
3137
  */
2888
3138
  AcDbDatabase.prototype.writeDxfEntity = function (filer, entity) {
3139
+ if (entity instanceof AcDbPolyline &&
3140
+ !filer.capabilities.supportsLwPolyline) {
3141
+ filer.writeStart('POLYLINE');
3142
+ entity.dxfOutAs2dPolyline(filer, true);
3143
+ return;
3144
+ }
2889
3145
  filer.writeStart(entity.dxfTypeName);
2890
- entity.dxfOut(filer);
3146
+ entity.dxfOut(filer, true);
3147
+ };
3148
+ /**
3149
+ * Writes THUMBNAILIMAGE when preview bytes are present and export requested.
3150
+ */
3151
+ AcDbDatabase.prototype.writeDxfThumbnailImageSection = function (filer, saveThumbnailImage) {
3152
+ if (saveThumbnailImage === void 0) { saveThumbnailImage = false; }
3153
+ var bytes = this._thumbnailImage;
3154
+ if (!saveThumbnailImage || !bytes || bytes.length === 0) {
3155
+ return;
3156
+ }
3157
+ if (!filer.capabilities.supportsObjectsSection) {
3158
+ // Thumbnail section is post-R12; skip for AC1009.
3159
+ return;
3160
+ }
3161
+ var chunkSize = 127;
3162
+ filer.startSection('THUMBNAILIMAGE');
3163
+ filer.writeInt32(90, bytes.length);
3164
+ for (var offset = 0; offset < bytes.length; offset += chunkSize) {
3165
+ var chunk = bytes.subarray(offset, offset + chunkSize);
3166
+ filer.writeString(310, acdbBytesToHexString(chunk));
3167
+ }
3168
+ filer.endSection();
2891
3169
  };
2892
3170
  /**
2893
3171
  * Clears all data from the database.
@@ -2908,15 +3186,19 @@ var AcDbDatabase = /** @class */ (function (_super) {
2908
3186
  this._tables.dimStyleTable.removeAll();
2909
3187
  this._tables.linetypeTable.removeAll();
2910
3188
  this._tables.textStyleTable.removeAll();
3189
+ this._tables.ucsTable.removeAll();
2911
3190
  this._tables.viewTable.removeAll();
2912
3191
  this._tables.layerTable.removeAll();
2913
3192
  this._tables.viewportTable.removeAll();
3193
+ this._tables.appIdTable.removeAll();
2914
3194
  this._objects.layout.removeAll();
3195
+ this._objects.group.removeAll();
2915
3196
  this._objects.imageDefinition.removeAll();
2916
3197
  this._objects.layerFilter.removeAll();
2917
3198
  this._objects.layerIndex.removeAll();
2918
3199
  this._objects.mleaderStyle.removeAll();
2919
3200
  this._objects.mlineStyle.removeAll();
3201
+ this._objects.sortentsTable.removeAll();
2920
3202
  this._objects.xrecord.removeAll();
2921
3203
  this._layerFilters = new AcLyLayerFilterTree();
2922
3204
  this._currentSpace = undefined;