@mlightcad/data-model 1.11.3 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) 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 +48 -0
  32. package/lib/base/AcDbObject.d.ts.map +1 -1
  33. package/lib/base/AcDbObject.js +166 -17
  34. package/lib/base/AcDbObject.js.map +1 -1
  35. package/lib/base/index.d.ts +10 -3
  36. package/lib/base/index.d.ts.map +1 -1
  37. package/lib/base/index.js +5 -2
  38. package/lib/base/index.js.map +1 -1
  39. package/lib/converter/AcDbBatchProcessing.d.ts +2 -2
  40. package/lib/converter/AcDbBatchProcessing.d.ts.map +1 -1
  41. package/lib/converter/AcDbBatchProcessing.js +15 -16
  42. package/lib/converter/AcDbBatchProcessing.js.map +1 -1
  43. package/lib/converter/AcDbFontNameCollector.d.ts +4 -0
  44. package/lib/converter/AcDbFontNameCollector.d.ts.map +1 -1
  45. package/lib/converter/AcDbFontNameCollector.js +6 -0
  46. package/lib/converter/AcDbFontNameCollector.js.map +1 -1
  47. package/lib/database/AcDbBlockTableRecord.d.ts +18 -2
  48. package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
  49. package/lib/database/AcDbBlockTableRecord.js +67 -2
  50. package/lib/database/AcDbBlockTableRecord.js.map +1 -1
  51. package/lib/database/AcDbDatabase.d.ts +55 -8
  52. package/lib/database/AcDbDatabase.d.ts.map +1 -1
  53. package/lib/database/AcDbDatabase.js +385 -87
  54. package/lib/database/AcDbDatabase.js.map +1 -1
  55. package/lib/database/AcDbDatabaseConverterManager.d.ts +10 -0
  56. package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -1
  57. package/lib/database/AcDbDatabaseConverterManager.js +12 -0
  58. package/lib/database/AcDbDatabaseConverterManager.js.map +1 -1
  59. package/lib/database/AcDbDimStyleTableRecord.d.ts +9 -0
  60. package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -1
  61. package/lib/database/AcDbDimStyleTableRecord.js +277 -0
  62. package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
  63. package/lib/database/AcDbDwgVersion.d.ts +37 -0
  64. package/lib/database/AcDbDwgVersion.d.ts.map +1 -1
  65. package/lib/database/AcDbDwgVersion.js +31 -6
  66. package/lib/database/AcDbDwgVersion.js.map +1 -1
  67. package/lib/database/AcDbLayerTableRecord.d.ts +1 -0
  68. package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -1
  69. package/lib/database/AcDbLayerTableRecord.js +52 -1
  70. package/lib/database/AcDbLayerTableRecord.js.map +1 -1
  71. package/lib/database/AcDbLinetypeTableRecord.d.ts +1 -0
  72. package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -1
  73. package/lib/database/AcDbLinetypeTableRecord.js +60 -0
  74. package/lib/database/AcDbLinetypeTableRecord.js.map +1 -1
  75. package/lib/database/AcDbRegAppTableRecord.d.ts +1 -0
  76. package/lib/database/AcDbRegAppTableRecord.d.ts.map +1 -1
  77. package/lib/database/AcDbRegAppTableRecord.js +26 -0
  78. package/lib/database/AcDbRegAppTableRecord.js.map +1 -1
  79. package/lib/database/AcDbSysVarManager.d.ts.map +1 -1
  80. package/lib/database/AcDbSysVarManager.js +11 -0
  81. package/lib/database/AcDbSysVarManager.js.map +1 -1
  82. package/lib/database/AcDbSystemVariables.d.ts +9 -1
  83. package/lib/database/AcDbSystemVariables.d.ts.map +1 -1
  84. package/lib/database/AcDbSystemVariables.js +8 -0
  85. package/lib/database/AcDbSystemVariables.js.map +1 -1
  86. package/lib/database/AcDbTextStyleTableRecord.d.ts +9 -0
  87. package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -1
  88. package/lib/database/AcDbTextStyleTableRecord.js +101 -0
  89. package/lib/database/AcDbTextStyleTableRecord.js.map +1 -1
  90. package/lib/database/AcDbUcsTable.d.ts +15 -0
  91. package/lib/database/AcDbUcsTable.d.ts.map +1 -0
  92. package/lib/database/AcDbUcsTable.js +33 -0
  93. package/lib/database/AcDbUcsTable.js.map +1 -0
  94. package/lib/database/AcDbUcsTableRecord.d.ts +75 -0
  95. package/lib/database/AcDbUcsTableRecord.d.ts.map +1 -0
  96. package/lib/database/AcDbUcsTableRecord.js +240 -0
  97. package/lib/database/AcDbUcsTableRecord.js.map +1 -0
  98. package/lib/database/AcDbViewTableRecord.d.ts +9 -0
  99. package/lib/database/AcDbViewTableRecord.d.ts.map +1 -1
  100. package/lib/database/AcDbViewTableRecord.js +148 -0
  101. package/lib/database/AcDbViewTableRecord.js.map +1 -1
  102. package/lib/database/AcDbViewportTableRecord.d.ts +8 -0
  103. package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -1
  104. package/lib/database/AcDbViewportTableRecord.js +253 -1
  105. package/lib/database/AcDbViewportTableRecord.js.map +1 -1
  106. package/lib/database/index.d.ts +4 -1
  107. package/lib/database/index.d.ts.map +1 -1
  108. package/lib/database/index.js +2 -0
  109. package/lib/database/index.js.map +1 -1
  110. package/lib/dxf/AcDbDxfAcdsDataReader.d.ts +25 -0
  111. package/lib/dxf/AcDbDxfAcdsDataReader.d.ts.map +1 -0
  112. package/lib/dxf/AcDbDxfAcdsDataReader.js +98 -0
  113. package/lib/dxf/AcDbDxfAcdsDataReader.js.map +1 -0
  114. package/lib/dxf/AcDbDxfDimensionAssembler.d.ts +10 -0
  115. package/lib/dxf/AcDbDxfDimensionAssembler.d.ts.map +1 -0
  116. package/lib/dxf/AcDbDxfDimensionAssembler.js +149 -0
  117. package/lib/dxf/AcDbDxfDimensionAssembler.js.map +1 -0
  118. package/lib/dxf/AcDbDxfDocumentReader.d.ts +105 -0
  119. package/lib/dxf/AcDbDxfDocumentReader.d.ts.map +1 -0
  120. package/lib/dxf/AcDbDxfDocumentReader.js +1093 -0
  121. package/lib/dxf/AcDbDxfDocumentReader.js.map +1 -0
  122. package/lib/dxf/AcDbDxfEntityFactory.d.ts +14 -0
  123. package/lib/dxf/AcDbDxfEntityFactory.d.ts.map +1 -0
  124. package/lib/dxf/AcDbDxfEntityFactory.js +147 -0
  125. package/lib/dxf/AcDbDxfEntityFactory.js.map +1 -0
  126. package/lib/dxf/AcDbDxfHeaderReader.d.ts +9 -0
  127. package/lib/dxf/AcDbDxfHeaderReader.d.ts.map +1 -0
  128. package/lib/dxf/AcDbDxfHeaderReader.js +248 -0
  129. package/lib/dxf/AcDbDxfHeaderReader.js.map +1 -0
  130. package/lib/dxf/AcDbDxfObjectsReader.d.ts +38 -0
  131. package/lib/dxf/AcDbDxfObjectsReader.d.ts.map +1 -0
  132. package/lib/dxf/AcDbDxfObjectsReader.js +533 -0
  133. package/lib/dxf/AcDbDxfObjectsReader.js.map +1 -0
  134. package/lib/dxf/AcDbDxfPairArrayReader.d.ts +27 -0
  135. package/lib/dxf/AcDbDxfPairArrayReader.d.ts.map +1 -0
  136. package/lib/dxf/AcDbDxfPairArrayReader.js +69 -0
  137. package/lib/dxf/AcDbDxfPairArrayReader.js.map +1 -0
  138. package/lib/dxf/AcDbDxfPolylineAssembler.d.ts +11 -0
  139. package/lib/dxf/AcDbDxfPolylineAssembler.d.ts.map +1 -0
  140. package/lib/dxf/AcDbDxfPolylineAssembler.js +318 -0
  141. package/lib/dxf/AcDbDxfPolylineAssembler.js.map +1 -0
  142. package/lib/dxf/AcDbDxfVersionCaps.d.ts +8 -0
  143. package/lib/dxf/AcDbDxfVersionCaps.d.ts.map +1 -0
  144. package/lib/dxf/AcDbDxfVersionCaps.js +18 -0
  145. package/lib/dxf/AcDbDxfVersionCaps.js.map +1 -0
  146. package/lib/dxf/AcDbNativeDxfConverter.d.ts +31 -0
  147. package/lib/dxf/AcDbNativeDxfConverter.d.ts.map +1 -0
  148. package/lib/dxf/AcDbNativeDxfConverter.js +257 -0
  149. package/lib/dxf/AcDbNativeDxfConverter.js.map +1 -0
  150. package/lib/dxf/index.d.ts +12 -0
  151. package/lib/dxf/index.d.ts.map +1 -0
  152. package/lib/dxf/index.js +9 -0
  153. package/lib/dxf/index.js.map +1 -0
  154. package/lib/entity/AcDb3dSolid.d.ts +43 -0
  155. package/lib/entity/AcDb3dSolid.d.ts.map +1 -1
  156. package/lib/entity/AcDb3dSolid.js +154 -16
  157. package/lib/entity/AcDb3dSolid.js.map +1 -1
  158. package/lib/entity/AcDbArc.d.ts +9 -0
  159. package/lib/entity/AcDbArc.d.ts.map +1 -1
  160. package/lib/entity/AcDbArc.js +107 -3
  161. package/lib/entity/AcDbArc.js.map +1 -1
  162. package/lib/entity/AcDbAttribute.d.ts +1 -0
  163. package/lib/entity/AcDbAttribute.d.ts.map +1 -1
  164. package/lib/entity/AcDbAttribute.js +44 -0
  165. package/lib/entity/AcDbAttribute.js.map +1 -1
  166. package/lib/entity/AcDbAttributeDefinition.d.ts +1 -0
  167. package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
  168. package/lib/entity/AcDbAttributeDefinition.js +47 -0
  169. package/lib/entity/AcDbAttributeDefinition.js.map +1 -1
  170. package/lib/entity/AcDbBlockReference.d.ts +26 -0
  171. package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
  172. package/lib/entity/AcDbBlockReference.js +185 -5
  173. package/lib/entity/AcDbBlockReference.js.map +1 -1
  174. package/lib/entity/AcDbCircle.d.ts +9 -0
  175. package/lib/entity/AcDbCircle.d.ts.map +1 -1
  176. package/lib/entity/AcDbCircle.js +73 -1
  177. package/lib/entity/AcDbCircle.js.map +1 -1
  178. package/lib/entity/AcDbEllipse.d.ts +2 -0
  179. package/lib/entity/AcDbEllipse.d.ts.map +1 -1
  180. package/lib/entity/AcDbEllipse.js +71 -0
  181. package/lib/entity/AcDbEllipse.js.map +1 -1
  182. package/lib/entity/AcDbEntity.d.ts +12 -0
  183. package/lib/entity/AcDbEntity.d.ts.map +1 -1
  184. package/lib/entity/AcDbEntity.js +97 -17
  185. package/lib/entity/AcDbEntity.js.map +1 -1
  186. package/lib/entity/AcDbFace.d.ts +1 -0
  187. package/lib/entity/AcDbFace.d.ts.map +1 -1
  188. package/lib/entity/AcDbFace.js +49 -1
  189. package/lib/entity/AcDbFace.js.map +1 -1
  190. package/lib/entity/AcDbFcf.d.ts +1 -0
  191. package/lib/entity/AcDbFcf.d.ts.map +1 -1
  192. package/lib/entity/AcDbFcf.js +71 -0
  193. package/lib/entity/AcDbFcf.js.map +1 -1
  194. package/lib/entity/AcDbHatch.d.ts +17 -0
  195. package/lib/entity/AcDbHatch.d.ts.map +1 -1
  196. package/lib/entity/AcDbHatch.js +629 -4
  197. package/lib/entity/AcDbHatch.js.map +1 -1
  198. package/lib/entity/AcDbLeader.d.ts +1 -0
  199. package/lib/entity/AcDbLeader.d.ts.map +1 -1
  200. package/lib/entity/AcDbLeader.js +135 -0
  201. package/lib/entity/AcDbLeader.js.map +1 -1
  202. package/lib/entity/AcDbLine.d.ts +16 -1
  203. package/lib/entity/AcDbLine.d.ts.map +1 -1
  204. package/lib/entity/AcDbLine.js +102 -3
  205. package/lib/entity/AcDbLine.js.map +1 -1
  206. package/lib/entity/AcDbMLeader.d.ts +22 -0
  207. package/lib/entity/AcDbMLeader.d.ts.map +1 -1
  208. package/lib/entity/AcDbMLeader.js +871 -11
  209. package/lib/entity/AcDbMLeader.js.map +1 -1
  210. package/lib/entity/AcDbMLine.d.ts +1 -0
  211. package/lib/entity/AcDbMLine.d.ts.map +1 -1
  212. package/lib/entity/AcDbMLine.js +168 -0
  213. package/lib/entity/AcDbMLine.js.map +1 -1
  214. package/lib/entity/AcDbMText.d.ts +46 -1
  215. package/lib/entity/AcDbMText.d.ts.map +1 -1
  216. package/lib/entity/AcDbMText.js +278 -4
  217. package/lib/entity/AcDbMText.js.map +1 -1
  218. package/lib/entity/AcDbOle2Frame.d.ts +12 -0
  219. package/lib/entity/AcDbOle2Frame.d.ts.map +1 -1
  220. package/lib/entity/AcDbOle2Frame.js +103 -1
  221. package/lib/entity/AcDbOle2Frame.js.map +1 -1
  222. package/lib/entity/AcDbOleFrame.d.ts +1 -0
  223. package/lib/entity/AcDbOleFrame.d.ts.map +1 -1
  224. package/lib/entity/AcDbOleFrame.js +44 -1
  225. package/lib/entity/AcDbOleFrame.js.map +1 -1
  226. package/lib/entity/AcDbPoint.d.ts +27 -1
  227. package/lib/entity/AcDbPoint.d.ts.map +1 -1
  228. package/lib/entity/AcDbPoint.js +113 -2
  229. package/lib/entity/AcDbPoint.js.map +1 -1
  230. package/lib/entity/AcDbPolyline.d.ts +22 -1
  231. package/lib/entity/AcDbPolyline.d.ts.map +1 -1
  232. package/lib/entity/AcDbPolyline.js +195 -1
  233. package/lib/entity/AcDbPolyline.js.map +1 -1
  234. package/lib/entity/AcDbProxyEntity.d.ts +4 -2
  235. package/lib/entity/AcDbProxyEntity.d.ts.map +1 -1
  236. package/lib/entity/AcDbProxyEntity.js +55 -3
  237. package/lib/entity/AcDbProxyEntity.js.map +1 -1
  238. package/lib/entity/AcDbRasterImage.d.ts +16 -0
  239. package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
  240. package/lib/entity/AcDbRasterImage.js +156 -0
  241. package/lib/entity/AcDbRasterImage.js.map +1 -1
  242. package/lib/entity/AcDbRay.d.ts +1 -0
  243. package/lib/entity/AcDbRay.d.ts.map +1 -1
  244. package/lib/entity/AcDbRay.js +42 -0
  245. package/lib/entity/AcDbRay.js.map +1 -1
  246. package/lib/entity/AcDbShape.d.ts +1 -0
  247. package/lib/entity/AcDbShape.d.ts.map +1 -1
  248. package/lib/entity/AcDbShape.js +76 -1
  249. package/lib/entity/AcDbShape.js.map +1 -1
  250. package/lib/entity/AcDbSpline.d.ts +23 -1
  251. package/lib/entity/AcDbSpline.d.ts.map +1 -1
  252. package/lib/entity/AcDbSpline.js +226 -1
  253. package/lib/entity/AcDbSpline.js.map +1 -1
  254. package/lib/entity/AcDbTable.d.ts +5 -0
  255. package/lib/entity/AcDbTable.d.ts.map +1 -1
  256. package/lib/entity/AcDbTable.js +265 -1
  257. package/lib/entity/AcDbTable.js.map +1 -1
  258. package/lib/entity/AcDbText.d.ts +25 -1
  259. package/lib/entity/AcDbText.d.ts.map +1 -1
  260. package/lib/entity/AcDbText.js +175 -1
  261. package/lib/entity/AcDbText.js.map +1 -1
  262. package/lib/entity/AcDbTextExtentsHelpers.d.ts +2 -2
  263. package/lib/entity/AcDbTextExtentsHelpers.js +3 -3
  264. package/lib/entity/AcDbTextExtentsHelpers.js.map +1 -1
  265. package/lib/entity/AcDbTrace.d.ts +9 -1
  266. package/lib/entity/AcDbTrace.d.ts.map +1 -1
  267. package/lib/entity/AcDbTrace.js +84 -5
  268. package/lib/entity/AcDbTrace.js.map +1 -1
  269. package/lib/entity/AcDbViewport.d.ts +156 -0
  270. package/lib/entity/AcDbViewport.d.ts.map +1 -1
  271. package/lib/entity/AcDbViewport.js +852 -1
  272. package/lib/entity/AcDbViewport.js.map +1 -1
  273. package/lib/entity/AcDbXline.d.ts +1 -0
  274. package/lib/entity/AcDbXline.d.ts.map +1 -1
  275. package/lib/entity/AcDbXline.js +42 -0
  276. package/lib/entity/AcDbXline.js.map +1 -1
  277. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts +1 -0
  278. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts.map +1 -1
  279. package/lib/entity/dimension/AcDb3PointAngularDimension.js +163 -0
  280. package/lib/entity/dimension/AcDb3PointAngularDimension.js.map +1 -1
  281. package/lib/entity/dimension/AcDbAlignedDimension.d.ts +2 -0
  282. package/lib/entity/dimension/AcDbAlignedDimension.d.ts.map +1 -1
  283. package/lib/entity/dimension/AcDbAlignedDimension.js +109 -2
  284. package/lib/entity/dimension/AcDbAlignedDimension.js.map +1 -1
  285. package/lib/entity/dimension/AcDbArcDimension.d.ts +1 -0
  286. package/lib/entity/dimension/AcDbArcDimension.d.ts.map +1 -1
  287. package/lib/entity/dimension/AcDbArcDimension.js +68 -0
  288. package/lib/entity/dimension/AcDbArcDimension.js.map +1 -1
  289. package/lib/entity/dimension/AcDbDiametricDimension.d.ts +1 -0
  290. package/lib/entity/dimension/AcDbDiametricDimension.d.ts.map +1 -1
  291. package/lib/entity/dimension/AcDbDiametricDimension.js +77 -0
  292. package/lib/entity/dimension/AcDbDiametricDimension.js.map +1 -1
  293. package/lib/entity/dimension/AcDbDimension.d.ts +50 -1
  294. package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -1
  295. package/lib/entity/dimension/AcDbDimension.js +176 -5
  296. package/lib/entity/dimension/AcDbDimension.js.map +1 -1
  297. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts +1 -0
  298. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -1
  299. package/lib/entity/dimension/AcDbOrdinateDimension.js +46 -0
  300. package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -1
  301. package/lib/entity/dimension/AcDbRadialDimension.d.ts +1 -0
  302. package/lib/entity/dimension/AcDbRadialDimension.d.ts.map +1 -1
  303. package/lib/entity/dimension/AcDbRadialDimension.js +69 -0
  304. package/lib/entity/dimension/AcDbRadialDimension.js.map +1 -1
  305. package/lib/index.d.ts +7 -6
  306. package/lib/index.d.ts.map +1 -1
  307. package/lib/index.js +5 -4
  308. package/lib/index.js.map +1 -1
  309. package/lib/ly/AcLyLayerFilterIO.d.ts.map +1 -1
  310. package/lib/ly/AcLyLayerFilterIO.js +5 -0
  311. package/lib/ly/AcLyLayerFilterIO.js.map +1 -1
  312. package/lib/misc/AcDbMemoryEstimator.d.ts.map +1 -1
  313. package/lib/misc/AcDbMemoryEstimator.js +3 -0
  314. package/lib/misc/AcDbMemoryEstimator.js.map +1 -1
  315. package/lib/misc/AcDbOle2FrameGeometry.d.ts +49 -0
  316. package/lib/misc/AcDbOle2FrameGeometry.d.ts.map +1 -0
  317. package/lib/misc/AcDbOle2FrameGeometry.js +66 -0
  318. package/lib/misc/AcDbOle2FrameGeometry.js.map +1 -0
  319. package/lib/misc/AcDbRenderingCache.d.ts +159 -8
  320. package/lib/misc/AcDbRenderingCache.d.ts.map +1 -1
  321. package/lib/misc/AcDbRenderingCache.js +460 -70
  322. package/lib/misc/AcDbRenderingCache.js.map +1 -1
  323. package/lib/misc/index.d.ts +4 -1
  324. package/lib/misc/index.d.ts.map +1 -1
  325. package/lib/misc/index.js +2 -1
  326. package/lib/misc/index.js.map +1 -1
  327. package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts +6 -5
  328. package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts.map +1 -1
  329. package/lib/misc/proxyGraphic/AcDbProxyGraphic.js +9 -36
  330. package/lib/misc/proxyGraphic/AcDbProxyGraphic.js.map +1 -1
  331. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts +12 -0
  332. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts.map +1 -1
  333. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js +54 -0
  334. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js.map +1 -1
  335. package/lib/misc/proxyGraphic/index.d.ts +1 -1
  336. package/lib/misc/proxyGraphic/index.d.ts.map +1 -1
  337. package/lib/misc/proxyGraphic/index.js +1 -1
  338. package/lib/misc/proxyGraphic/index.js.map +1 -1
  339. package/lib/object/AcDbDictionary.d.ts +7 -0
  340. package/lib/object/AcDbDictionary.d.ts.map +1 -1
  341. package/lib/object/AcDbDictionary.js +35 -0
  342. package/lib/object/AcDbDictionary.js.map +1 -1
  343. package/lib/object/AcDbFilter.d.ts +95 -0
  344. package/lib/object/AcDbFilter.d.ts.map +1 -1
  345. package/lib/object/AcDbFilter.js +256 -1
  346. package/lib/object/AcDbFilter.js.map +1 -1
  347. package/lib/object/AcDbGroup.d.ts +26 -0
  348. package/lib/object/AcDbGroup.d.ts.map +1 -0
  349. package/lib/object/AcDbGroup.js +171 -0
  350. package/lib/object/AcDbGroup.js.map +1 -0
  351. package/lib/object/AcDbIndex.d.ts +1 -0
  352. package/lib/object/AcDbIndex.d.ts.map +1 -1
  353. package/lib/object/AcDbIndex.js +23 -0
  354. package/lib/object/AcDbIndex.js.map +1 -1
  355. package/lib/object/AcDbLayerFilter.d.ts +1 -0
  356. package/lib/object/AcDbLayerFilter.d.ts.map +1 -1
  357. package/lib/object/AcDbLayerFilter.js +21 -0
  358. package/lib/object/AcDbLayerFilter.js.map +1 -1
  359. package/lib/object/AcDbLayerIndex.d.ts +1 -0
  360. package/lib/object/AcDbLayerIndex.d.ts.map +1 -1
  361. package/lib/object/AcDbLayerIndex.js +38 -0
  362. package/lib/object/AcDbLayerIndex.js.map +1 -1
  363. package/lib/object/AcDbMLeaderStyle.d.ts +1 -0
  364. package/lib/object/AcDbMLeaderStyle.d.ts.map +1 -1
  365. package/lib/object/AcDbMLeaderStyle.js +158 -1
  366. package/lib/object/AcDbMLeaderStyle.js.map +1 -1
  367. package/lib/object/AcDbMlineStyle.d.ts +2 -0
  368. package/lib/object/AcDbMlineStyle.d.ts.map +1 -1
  369. package/lib/object/AcDbMlineStyle.js +88 -0
  370. package/lib/object/AcDbMlineStyle.js.map +1 -1
  371. package/lib/object/AcDbRasterImageDef.d.ts +49 -0
  372. package/lib/object/AcDbRasterImageDef.d.ts.map +1 -1
  373. package/lib/object/AcDbRasterImageDef.js +136 -2
  374. package/lib/object/AcDbRasterImageDef.js.map +1 -1
  375. package/lib/object/AcDbSortentsTable.d.ts +14 -0
  376. package/lib/object/AcDbSortentsTable.d.ts.map +1 -0
  377. package/lib/object/AcDbSortentsTable.js +122 -0
  378. package/lib/object/AcDbSortentsTable.js.map +1 -0
  379. package/lib/object/AcDbXrecord.d.ts +8 -0
  380. package/lib/object/AcDbXrecord.d.ts.map +1 -1
  381. package/lib/object/AcDbXrecord.js +43 -2
  382. package/lib/object/AcDbXrecord.js.map +1 -1
  383. package/lib/object/index.d.ts +2 -0
  384. package/lib/object/index.d.ts.map +1 -1
  385. package/lib/object/index.js +2 -0
  386. package/lib/object/index.js.map +1 -1
  387. package/lib/object/layout/AcDbLayout.d.ts +60 -1
  388. package/lib/object/layout/AcDbLayout.d.ts.map +1 -1
  389. package/lib/object/layout/AcDbLayout.js +237 -1
  390. package/lib/object/layout/AcDbLayout.js.map +1 -1
  391. package/lib/object/layout/AcDbPlotSettings.d.ts +11 -0
  392. package/lib/object/layout/AcDbPlotSettings.d.ts.map +1 -1
  393. package/lib/object/layout/AcDbPlotSettings.js +143 -0
  394. package/lib/object/layout/AcDbPlotSettings.js.map +1 -1
  395. package/package.json +4 -4
@@ -99,10 +99,11 @@ var __values = (this && this.__values) || function(o) {
99
99
  /* eslint-disable simple-import-sort/imports */
100
100
  import { AcCmColor, AcCmColorMethod, AcCmEventManager, AcCmTransparency } from '@mlightcad/common';
101
101
  import { AcDbDxfFiler } from '../base/AcDbDxfFiler';
102
- import { AcDbObject, TEMP_OBJECT_ID_PREFIX } from '../base/AcDbObject';
102
+ import { AcDbObject, TEMP_OBJECT_ID_PREFIX, acdbAssignWorkingDatabase } 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.
@@ -1744,6 +1871,11 @@ var AcDbDatabase = /** @class */ (function (_super) {
1744
1871
  if (options === null || options === void 0 ? void 0 : options.fileName) {
1745
1872
  this.setDwgName(options.fileName);
1746
1873
  }
1874
+ // Ensure this database is the host working database for the duration of
1875
+ // conversion. Converters (including peer packages such as dxf-json-converter)
1876
+ // assign real handles on unbound objects; some entity getters still fall
1877
+ // back to the working database before append/add binds them.
1878
+ acdbAssignWorkingDatabase(this);
1747
1879
  _b.label = 1;
1748
1880
  case 1:
1749
1881
  _b.trys.push([1, 3, , 4]);
@@ -1783,25 +1915,17 @@ var AcDbDatabase = /** @class */ (function (_super) {
1783
1915
  stage: (_a = openError.stage) !== null && _a !== void 0 ? _a : stage
1784
1916
  };
1785
1917
  }
1786
- this.events.openProgress.dispatch({
1787
- database: this,
1788
- percentage: percentage,
1789
- stage: 'CONVERSION',
1790
- subStage: stage,
1791
- subStageStatus: stageStatus,
1792
- data: progressData
1793
- });
1794
1918
  if (!(options &&
1795
1919
  options.fontLoader &&
1796
1920
  stage == 'FONT' &&
1797
- stageStatus == 'END')) return [3 /*break*/, 4];
1921
+ stageStatus == 'END')) return [3 /*break*/, 5];
1798
1922
  fonts_1 = data
1799
1923
  ? data
1800
1924
  : this.tables.textStyleTable.fonts;
1801
1925
  _b.label = 1;
1802
1926
  case 1:
1803
1927
  _b.trys.push([1, 3, , 4]);
1804
- return [4 /*yield*/, options.fontLoader.load(fonts_1)];
1928
+ return [4 /*yield*/, this.loadFontsWithProgress(options.fontLoader, fonts_1, percentage)];
1805
1929
  case 2:
1806
1930
  _b.sent();
1807
1931
  return [3 /*break*/, 4];
@@ -1823,11 +1947,73 @@ var AcDbDatabase = /** @class */ (function (_super) {
1823
1947
  data: { fonts: fonts_1, error: message, code: 'font_load_failed' }
1824
1948
  });
1825
1949
  return [3 /*break*/, 4];
1826
- case 4: return [2 /*return*/];
1950
+ case 4:
1951
+ this.events.openProgress.dispatch({
1952
+ database: this,
1953
+ percentage: percentage,
1954
+ stage: 'CONVERSION',
1955
+ subStage: stage,
1956
+ subStageStatus: 'END',
1957
+ data: fonts_1
1958
+ });
1959
+ return [2 /*return*/];
1960
+ case 5:
1961
+ this.events.openProgress.dispatch({
1962
+ database: this,
1963
+ percentage: percentage,
1964
+ stage: 'CONVERSION',
1965
+ subStage: stage,
1966
+ subStageStatus: stageStatus,
1967
+ data: progressData
1968
+ });
1969
+ return [2 /*return*/];
1827
1970
  }
1828
1971
  });
1829
1972
  }); };
1830
1973
  };
1974
+ /**
1975
+ * Loads fonts while emitting FONT IN-PROGRESS so the open-file bar keeps
1976
+ * moving during multi-font downloads (native DXF parses on the main thread
1977
+ * and previously appeared stuck at the FONT stage).
1978
+ */
1979
+ AcDbDatabase.prototype.loadFontsWithProgress = function (fontLoader, fonts, basePercentage) {
1980
+ return __awaiter(this, void 0, void 0, function () {
1981
+ var span, i, pct;
1982
+ return __generator(this, function (_a) {
1983
+ switch (_a.label) {
1984
+ case 0:
1985
+ if (!(fonts.length <= 1)) return [3 /*break*/, 2];
1986
+ return [4 /*yield*/, fontLoader.load(fonts)];
1987
+ case 1:
1988
+ _a.sent();
1989
+ return [2 /*return*/];
1990
+ case 2:
1991
+ span = Math.max(1, Math.min(5, 19 - basePercentage));
1992
+ i = 0;
1993
+ _a.label = 3;
1994
+ case 3:
1995
+ if (!(i < fonts.length)) return [3 /*break*/, 6];
1996
+ return [4 /*yield*/, fontLoader.load([fonts[i]])];
1997
+ case 4:
1998
+ _a.sent();
1999
+ pct = Math.min(19, basePercentage + Math.round(((i + 1) / fonts.length) * span));
2000
+ this.events.openProgress.dispatch({
2001
+ database: this,
2002
+ percentage: pct,
2003
+ stage: 'CONVERSION',
2004
+ subStage: 'FONT',
2005
+ subStageStatus: 'IN-PROGRESS',
2006
+ data: fonts
2007
+ });
2008
+ _a.label = 5;
2009
+ case 5:
2010
+ i++;
2011
+ return [3 /*break*/, 3];
2012
+ case 6: return [2 /*return*/];
2013
+ }
2014
+ });
2015
+ });
2016
+ };
1831
2017
  /**
1832
2018
  * Read AutoCAD DXF or DWG drawing specified by the URL into the database object.
1833
2019
  * The method automatically detects the file type based on the URL extension:
@@ -1944,36 +2130,44 @@ var AcDbDatabase = /** @class */ (function (_super) {
1944
2130
  });
1945
2131
  };
1946
2132
  /**
1947
- * Exports the current database into an ASCII DXF string.
2133
+ * Exports the current database into DXF (ASCII string or binary bytes).
1948
2134
  *
1949
2135
  * The `fileName` parameter is kept for ObjectARX API parity. In this web
1950
2136
  * implementation the method returns the DXF payload instead of writing the
1951
2137
  * filesystem directly.
1952
2138
  *
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
2139
  * @param _fileName - Kept for ObjectARX parity. Ignored in this implementation.
1958
2140
  * @param precision - Numeric precision used by the DXF filer.
1959
2141
  * @param version - Target DXF/DWG version name or value.
1960
- * @param _saveThumbnailImage - Kept for ObjectARX parity. Ignored here.
1961
- * @returns The serialized DXF contents.
2142
+ * @param optionsOrThumbnail - Legacy boolean thumbnail flag, or options with
2143
+ * `saveThumbnailImage` and `format: 'ascii' | 'binary'`.
2144
+ * @returns ASCII DXF string, or `Uint8Array` when format is `'binary'`.
1962
2145
  */
1963
- AcDbDatabase.prototype.dxfOut = function (_fileName, precision, version, _saveThumbnailImage) {
2146
+ AcDbDatabase.prototype.dxfOut = function (_fileName, precision, version, optionsOrThumbnail) {
2147
+ var _a, _b;
1964
2148
  if (precision === void 0) { precision = 16; }
1965
2149
  if (version === void 0) { version = this.version.name; }
1966
- if (_saveThumbnailImage === void 0) { _saveThumbnailImage = false; }
2150
+ if (optionsOrThumbnail === void 0) { optionsOrThumbnail = false; }
1967
2151
  this.ensureDatabaseDefaults();
1968
2152
  if (this._layerFilters.root.getNestedFilters().length > 0 &&
1969
2153
  !this.tables.layerTable.extensionDictionary) {
1970
2154
  this.tables.layerTable.extensionDictionary = this.generateHandle();
1971
2155
  }
2156
+ var options = typeof optionsOrThumbnail === 'boolean'
2157
+ ? {
2158
+ saveThumbnailImage: optionsOrThumbnail,
2159
+ format: 'ascii'
2160
+ }
2161
+ : {
2162
+ saveThumbnailImage: (_a = optionsOrThumbnail.saveThumbnailImage) !== null && _a !== void 0 ? _a : false,
2163
+ format: (_b = optionsOrThumbnail.format) !== null && _b !== void 0 ? _b : 'ascii'
2164
+ };
1972
2165
  var outVersion = version instanceof AcDbDwgVersion ? version : new AcDbDwgVersion(version);
1973
2166
  var filer = new AcDbDxfFiler({
1974
2167
  database: this,
1975
2168
  precision: precision,
1976
- version: outVersion
2169
+ version: outVersion,
2170
+ outputFormat: options.format
1977
2171
  });
1978
2172
  this.writeDxfHeaderSection(filer);
1979
2173
  this.writeDxfClassesSection(filer);
@@ -1981,8 +2175,9 @@ var AcDbDatabase = /** @class */ (function (_super) {
1981
2175
  this.writeDxfBlocksSection(filer);
1982
2176
  this.writeDxfEntitiesSection(filer);
1983
2177
  this.writeDxfObjectsSection(filer);
2178
+ this.writeDxfThumbnailImageSection(filer, options.saveThumbnailImage);
1984
2179
  filer.writeStart('EOF');
1985
- return filer.toString();
2180
+ return options.format === 'binary' ? filer.toBinary() : filer.toString();
1986
2181
  };
1987
2182
  /**
1988
2183
  * Triggers xxxAppended events with data in the database to redraw the associated viewer.
@@ -2297,7 +2492,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2297
2492
  filer.writeString(1, (_b = (_a = filer.version) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : this.version.name);
2298
2493
  filer.writeString(9, '$HANDSEED');
2299
2494
  filer.writeString(5, filer.nextHandle.toString(16).toUpperCase());
2300
- if (filer.version != null && filer.version.value >= 27) {
2495
+ if (filer.capabilities.supportsUtf8CodePage) {
2301
2496
  filer.writeString(9, '$DWGCODEPAGE');
2302
2497
  filer.writeString(3, 'UTF-8');
2303
2498
  }
@@ -2313,13 +2508,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
2313
2508
  filer.writeInt16(70, this.measurement);
2314
2509
  filer.writeString(9, '$LTSCALE');
2315
2510
  filer.writeDouble(40, this.ltscale);
2316
- filer.writeString(9, '$LWDISPLAY');
2317
- filer.writeInt16(70, this.lwdisplay ? 1 : 0);
2511
+ if (filer.capabilities.supportsLineWeight) {
2512
+ filer.writeString(9, '$LWDISPLAY');
2513
+ filer.writeInt16(70, this.lwdisplay ? 1 : 0);
2514
+ }
2515
+ filer.writeString(9, '$CELTSCALE');
2516
+ filer.writeDouble(40, this.celtscale);
2517
+ if (filer.capabilities.supportsLineWeight) {
2518
+ filer.writeString(9, '$CELWEIGHT');
2519
+ filer.writeLineWeight(370, this.celweight);
2520
+ }
2521
+ filer.writeString(9, '$CECOLOR');
2522
+ filer.writeCmColor(this.cecolor);
2523
+ filer.writeString(9, '$TILEMODE');
2524
+ filer.writeInt16(70, this.tilemode ? 1 : 0);
2525
+ filer.writeString(9, '$PSLTSCALE');
2526
+ filer.writeInt16(70, this.psltscale ? 1 : 0);
2318
2527
  filer.writeString(9, '$CLAYER');
2319
2528
  filer.writeString(8, this.clayer);
2320
2529
  filer.writeString(9, '$CELTYPE');
2321
2530
  filer.writeString(6, this.celtype);
2322
- if (!this.cetransparency.isInvalid) {
2531
+ if (filer.capabilities.supportsTransparency &&
2532
+ !this.cetransparency.isInvalid) {
2323
2533
  filer.writeString(9, '$CETRANSPARENCY');
2324
2534
  filer.writeTransparency(this.cetransparency);
2325
2535
  }
@@ -2339,12 +2549,15 @@ var AcDbDatabase = /** @class */ (function (_super) {
2339
2549
  }
2340
2550
  filer.writeString(9, '$HPLAYER');
2341
2551
  filer.writeString(8, this.hplayer);
2342
- if (!this.hptransparency.isInvalid) {
2552
+ if (filer.capabilities.supportsTransparency &&
2553
+ !this.hptransparency.isInvalid) {
2343
2554
  filer.writeString(9, '$HPTRANSPARENCY');
2344
2555
  filer.writeTransparency(this.hptransparency);
2345
2556
  }
2346
2557
  filer.writeString(9, '$TEXTSTYLE');
2347
2558
  filer.writeString(7, this.textstyle);
2559
+ filer.writeString(9, '$DIMSTYLE');
2560
+ filer.writeString(2, this.dimstyle);
2348
2561
  filer.writeString(9, '$ANGBASE');
2349
2562
  filer.writeAngle(50, this.angbase);
2350
2563
  filer.writeString(9, '$ANGDIR');
@@ -2377,7 +2590,8 @@ var AcDbDatabase = /** @class */ (function (_super) {
2377
2590
  */
2378
2591
  AcDbDatabase.prototype.writeDxfClassesSection = function (filer) {
2379
2592
  var e_10, _a;
2380
- if (this._classes.length === 0) {
2593
+ if (!filer.capabilities.supportsClassesSection ||
2594
+ this._classes.length === 0) {
2381
2595
  return;
2382
2596
  }
2383
2597
  filer.startSection('CLASSES');
@@ -2413,12 +2627,13 @@ var AcDbDatabase = /** @class */ (function (_super) {
2413
2627
  filer.startSection('TABLES');
2414
2628
  this.writeDxfTable(filer, 'VPORT', this.tables.viewportTable, this.tables.viewportTable.newIterator(), 'VPORT');
2415
2629
  this.writeDxfTable(filer, 'VIEW', this.tables.viewTable, this.tables.viewTable.newIterator(), 'VIEW');
2630
+ this.writeDxfTable(filer, 'UCS', this.tables.ucsTable, this.tables.ucsTable.newIterator(), 'UCS');
2416
2631
  this.writeDxfTable(filer, 'LTYPE', this.tables.linetypeTable, this.tables.linetypeTable.newIterator(), 'LTYPE');
2417
2632
  this.writeDxfTable(filer, 'LAYER', this.tables.layerTable, this.tables.layerTable.newIterator(), 'LAYER');
2418
2633
  this.writeDxfTable(filer, 'STYLE', this.tables.textStyleTable, this.tables.textStyleTable.newIterator(true), 'STYLE');
2419
2634
  this.writeDxfTable(filer, 'APPID', this.tables.appIdTable, this.tables.appIdTable.newIterator(), 'APPID');
2420
2635
  this.writeDxfTable(filer, 'DIMSTYLE', this.tables.dimStyleTable, this.tables.dimStyleTable.newIterator(), 'DIMSTYLE');
2421
- if (version.value >= 19) {
2636
+ if (version.capabilities.supportsBlockRecordTable) {
2422
2637
  this.writeDxfTable(filer, 'BLOCK_RECORD', this.tables.blockTable, this.tables.blockTable.newIterator(), 'BLOCK_RECORD');
2423
2638
  }
2424
2639
  filer.endSection();
@@ -2505,14 +2720,17 @@ var AcDbDatabase = /** @class */ (function (_super) {
2505
2720
  * @param filer - DXF output writer.
2506
2721
  */
2507
2722
  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;
2723
+ 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;
2724
+ if (!filer.capabilities.supportsObjectsSection) {
2725
+ return;
2726
+ }
2509
2727
  filer.startSection('OBJECTS');
2510
2728
  var rootDict = this.objects.dictionary;
2511
2729
  rootDict.ownerId = '0';
2512
2730
  var writeDictionary = function (dict) {
2513
2731
  // Dictionary entries (3/350 pairs) are embedded in the DICTIONARY object.
2514
2732
  filer.writeStart('DICTIONARY');
2515
- dict.dxfOut(filer);
2733
+ dict.dxfOut(filer, true);
2516
2734
  };
2517
2735
  var ensureRootEntry = function (key, dict) {
2518
2736
  if (rootDict.getAt(key) !== dict) {
@@ -2525,6 +2743,18 @@ var AcDbDatabase = /** @class */ (function (_super) {
2525
2743
  }
2526
2744
  };
2527
2745
  ensureRootEntry('ACAD_LAYOUT', this.objects.layout);
2746
+ if (this.objects.group.numEntries > 0) {
2747
+ ensureRootEntry('ACAD_GROUP', this.objects.group);
2748
+ }
2749
+ else {
2750
+ dropRootEntry('ACAD_GROUP');
2751
+ }
2752
+ if (this.objects.sortentsTable.numEntries > 0) {
2753
+ ensureRootEntry('ACAD_SORTENTS', this.objects.sortentsTable);
2754
+ }
2755
+ else {
2756
+ dropRootEntry('ACAD_SORTENTS');
2757
+ }
2528
2758
  if (this.objects.mleaderStyle.numEntries > 0) {
2529
2759
  ensureRootEntry('ACAD_MLEADERSTYLE', this.objects.mleaderStyle);
2530
2760
  }
@@ -2551,6 +2781,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2551
2781
  }
2552
2782
  writeDictionary(rootDict);
2553
2783
  writeDictionary(this.objects.layout);
2784
+ if (this.objects.group.numEntries > 0) {
2785
+ writeDictionary(this.objects.group);
2786
+ }
2787
+ if (this.objects.sortentsTable.numEntries > 0) {
2788
+ writeDictionary(this.objects.sortentsTable);
2789
+ }
2554
2790
  if (this.objects.mleaderStyle.numEntries > 0) {
2555
2791
  writeDictionary(this.objects.mleaderStyle);
2556
2792
  }
@@ -2564,103 +2800,133 @@ var AcDbDatabase = /** @class */ (function (_super) {
2564
2800
  writeDictionary(this.objects.xrecord);
2565
2801
  }
2566
2802
  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];
2803
+ for (var _k = __values(this.objects.layout.entries()), _l = _k.next(); !_l.done; _l = _k.next()) {
2804
+ var _m = __read(_l.value, 2), _ = _m[0], layout = _m[1];
2569
2805
  filer.writeStart('LAYOUT');
2570
- layout.dxfOut(filer);
2806
+ layout.dxfOut(filer, true);
2571
2807
  }
2572
2808
  }
2573
2809
  catch (e_15_1) { e_15 = { error: e_15_1 }; }
2574
2810
  finally {
2575
2811
  try {
2576
- if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
2812
+ if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
2577
2813
  }
2578
2814
  finally { if (e_15) throw e_15.error; }
2579
2815
  }
2580
2816
  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);
2817
+ for (var _o = __values(this.objects.group.entries()), _p = _o.next(); !_p.done; _p = _o.next()) {
2818
+ var _q = __read(_p.value, 2), key = _q[0], group = _q[1];
2819
+ if (!group.name)
2820
+ group.name = key;
2821
+ filer.writeStart('GROUP');
2822
+ group.dxfOut(filer, true);
2585
2823
  }
2586
2824
  }
2587
2825
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
2588
2826
  finally {
2589
2827
  try {
2590
- if (_m && !_m.done && (_b = _l.return)) _b.call(_l);
2828
+ if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
2591
2829
  }
2592
2830
  finally { if (e_16) throw e_16.error; }
2593
2831
  }
2594
2832
  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);
2833
+ for (var _r = __values(this.objects.sortentsTable.entries()), _s = _r.next(); !_s.done; _s = _r.next()) {
2834
+ var _t = __read(_s.value, 2), _ = _t[0], sortents = _t[1];
2835
+ filer.writeStart('SORTENTSTABLE');
2836
+ sortents.dxfOut(filer, true);
2599
2837
  }
2600
2838
  }
2601
2839
  catch (e_17_1) { e_17 = { error: e_17_1 }; }
2602
2840
  finally {
2603
2841
  try {
2604
- if (_q && !_q.done && (_c = _p.return)) _c.call(_p);
2842
+ if (_s && !_s.done && (_c = _r.return)) _c.call(_r);
2605
2843
  }
2606
2844
  finally { if (e_17) throw e_17.error; }
2607
2845
  }
2608
2846
  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);
2847
+ for (var _u = __values(this.objects.imageDefinition.entries()), _v = _u.next(); !_v.done; _v = _u.next()) {
2848
+ var _w = __read(_v.value, 2), _ = _w[0], imageDef = _w[1];
2849
+ filer.writeStart('IMAGEDEF');
2850
+ imageDef.dxfOut(filer, true);
2613
2851
  }
2614
2852
  }
2615
2853
  catch (e_18_1) { e_18 = { error: e_18_1 }; }
2616
2854
  finally {
2617
2855
  try {
2618
- if (_t && !_t.done && (_d = _s.return)) _d.call(_s);
2856
+ if (_v && !_v.done && (_d = _u.return)) _d.call(_u);
2619
2857
  }
2620
2858
  finally { if (e_18) throw e_18.error; }
2621
2859
  }
2622
2860
  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);
2861
+ for (var _x = __values(this.objects.layerFilter.entries()), _y = _x.next(); !_y.done; _y = _x.next()) {
2862
+ var _z = __read(_y.value, 2), _ = _z[0], layerFilter = _z[1];
2863
+ filer.writeStart('LAYER_FILTER');
2864
+ layerFilter.dxfOut(filer, true);
2627
2865
  }
2628
2866
  }
2629
2867
  catch (e_19_1) { e_19 = { error: e_19_1 }; }
2630
2868
  finally {
2631
2869
  try {
2632
- if (_w && !_w.done && (_e = _v.return)) _e.call(_v);
2870
+ if (_y && !_y.done && (_e = _x.return)) _e.call(_x);
2633
2871
  }
2634
2872
  finally { if (e_19) throw e_19.error; }
2635
2873
  }
2636
2874
  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);
2875
+ for (var _0 = __values(this.objects.layerIndex.entries()), _1 = _0.next(); !_1.done; _1 = _0.next()) {
2876
+ var _2 = __read(_1.value, 2), _ = _2[0], layerIndex = _2[1];
2877
+ filer.writeStart('LAYER_INDEX');
2878
+ layerIndex.dxfOut(filer, true);
2641
2879
  }
2642
2880
  }
2643
2881
  catch (e_20_1) { e_20 = { error: e_20_1 }; }
2644
2882
  finally {
2645
2883
  try {
2646
- if (_z && !_z.done && (_f = _y.return)) _f.call(_y);
2884
+ if (_1 && !_1.done && (_f = _0.return)) _f.call(_0);
2647
2885
  }
2648
2886
  finally { if (e_20) throw e_20.error; }
2649
2887
  }
2650
2888
  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);
2889
+ for (var _3 = __values(this.objects.mleaderStyle.entries()), _4 = _3.next(); !_4.done; _4 = _3.next()) {
2890
+ var _5 = __read(_4.value, 2), _ = _5[0], mleaderStyle = _5[1];
2891
+ filer.writeStart('MLEADERSTYLE');
2892
+ mleaderStyle.dxfOut(filer, true);
2655
2893
  }
2656
2894
  }
2657
2895
  catch (e_21_1) { e_21 = { error: e_21_1 }; }
2658
2896
  finally {
2659
2897
  try {
2660
- if (_2 && !_2.done && (_g = _1.return)) _g.call(_1);
2898
+ if (_4 && !_4.done && (_g = _3.return)) _g.call(_3);
2661
2899
  }
2662
2900
  finally { if (e_21) throw e_21.error; }
2663
2901
  }
2902
+ try {
2903
+ for (var _6 = __values(this.objects.mlineStyle.entries()), _7 = _6.next(); !_7.done; _7 = _6.next()) {
2904
+ var _8 = __read(_7.value, 2), _ = _8[0], mlineStyle = _8[1];
2905
+ filer.writeStart('MLINESTYLE');
2906
+ mlineStyle.dxfOut(filer, true);
2907
+ }
2908
+ }
2909
+ catch (e_22_1) { e_22 = { error: e_22_1 }; }
2910
+ finally {
2911
+ try {
2912
+ if (_7 && !_7.done && (_h = _6.return)) _h.call(_6);
2913
+ }
2914
+ finally { if (e_22) throw e_22.error; }
2915
+ }
2916
+ try {
2917
+ for (var _9 = __values(this.objects.xrecord.entries()), _10 = _9.next(); !_10.done; _10 = _9.next()) {
2918
+ var _11 = __read(_10.value, 2), _ = _11[0], xrecord = _11[1];
2919
+ filer.writeStart('XRECORD');
2920
+ xrecord.dxfOut(filer, true);
2921
+ }
2922
+ }
2923
+ catch (e_23_1) { e_23 = { error: e_23_1 }; }
2924
+ finally {
2925
+ try {
2926
+ if (_10 && !_10.done && (_j = _9.return)) _j.call(_9);
2927
+ }
2928
+ finally { if (e_23) throw e_23.error; }
2929
+ }
2664
2930
  this.writeAcLyLayerFilterObjects(filer);
2665
2931
  filer.endSection();
2666
2932
  };
@@ -2672,7 +2938,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2672
2938
  * @param filer - DXF output writer.
2673
2939
  */
2674
2940
  AcDbDatabase.prototype.writeAcLyLayerFilterObjects = function (filer) {
2675
- var e_22, _a, e_23, _b, e_24, _c, e_25, _d, e_26, _e;
2941
+ var e_24, _a, e_25, _b, e_26, _c, e_27, _d, e_28, _e;
2676
2942
  var _this = this;
2677
2943
  var _f;
2678
2944
  var serialized = acdbSerializeLayerFilterTree(this._layerFilters);
@@ -2689,7 +2955,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2689
2955
  var rootAclyEntries = [];
2690
2956
  var rootAcadEntries = [];
2691
2957
  var emit = function (node, parentAclyHandle, addToLegacy) {
2692
- var e_27, _a;
2958
+ var e_29, _a;
2693
2959
  var xHandle = _this.generateHandle();
2694
2960
  var extensionDictionaryId;
2695
2961
  if (node.children.length > 0) {
@@ -2705,12 +2971,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2705
2971
  });
2706
2972
  }
2707
2973
  }
2708
- catch (e_27_1) { e_27 = { error: e_27_1 }; }
2974
+ catch (e_29_1) { e_29 = { error: e_29_1 }; }
2709
2975
  finally {
2710
2976
  try {
2711
2977
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2712
2978
  }
2713
- finally { if (e_27) throw e_27.error; }
2979
+ finally { if (e_29) throw e_29.error; }
2714
2980
  }
2715
2981
  dicts.push({
2716
2982
  handle: extHandle,
@@ -2744,12 +3010,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2744
3010
  });
2745
3011
  }
2746
3012
  }
2747
- catch (e_22_1) { e_22 = { error: e_22_1 }; }
3013
+ catch (e_24_1) { e_24 = { error: e_24_1 }; }
2748
3014
  finally {
2749
3015
  try {
2750
3016
  if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
2751
3017
  }
2752
- finally { if (e_22) throw e_22.error; }
3018
+ finally { if (e_24) throw e_24.error; }
2753
3019
  }
2754
3020
  var layerExtEntries = new Map();
2755
3021
  var existingLayerExt = this.getObjectById(layerExtHandle);
@@ -2760,12 +3026,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2760
3026
  layerExtEntries.set(key, value.objectId);
2761
3027
  }
2762
3028
  }
2763
- catch (e_23_1) { e_23 = { error: e_23_1 }; }
3029
+ catch (e_25_1) { e_25 = { error: e_25_1 }; }
2764
3030
  finally {
2765
3031
  try {
2766
3032
  if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
2767
3033
  }
2768
- finally { if (e_23) throw e_23.error; }
3034
+ finally { if (e_25) throw e_25.error; }
2769
3035
  }
2770
3036
  }
2771
3037
  layerExtEntries.set(ACLY_DICTIONARY_NAME, aclyHandle);
@@ -2796,27 +3062,27 @@ var AcDbDatabase = /** @class */ (function (_super) {
2796
3062
  filer.writeInt16(280, 1);
2797
3063
  filer.writeInt16(281, 1);
2798
3064
  try {
2799
- for (var _m = (e_25 = void 0, __values(dict.entries)), _o = _m.next(); !_o.done; _o = _m.next()) {
3065
+ for (var _m = (e_27 = void 0, __values(dict.entries)), _o = _m.next(); !_o.done; _o = _m.next()) {
2800
3066
  var entry = _o.value;
2801
3067
  filer.writeString(3, entry.name);
2802
3068
  filer.writeObjectId(350, entry.id);
2803
3069
  }
2804
3070
  }
2805
- catch (e_25_1) { e_25 = { error: e_25_1 }; }
3071
+ catch (e_27_1) { e_27 = { error: e_27_1 }; }
2806
3072
  finally {
2807
3073
  try {
2808
3074
  if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
2809
3075
  }
2810
- finally { if (e_25) throw e_25.error; }
3076
+ finally { if (e_27) throw e_27.error; }
2811
3077
  }
2812
3078
  }
2813
3079
  }
2814
- catch (e_24_1) { e_24 = { error: e_24_1 }; }
3080
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
2815
3081
  finally {
2816
3082
  try {
2817
3083
  if (dicts_1_1 && !dicts_1_1.done && (_c = dicts_1.return)) _c.call(dicts_1);
2818
3084
  }
2819
- finally { if (e_24) throw e_24.error; }
3085
+ finally { if (e_26) throw e_26.error; }
2820
3086
  }
2821
3087
  try {
2822
3088
  for (var xrecs_1 = __values(xrecs), xrecs_1_1 = xrecs_1.next(); !xrecs_1_1.done; xrecs_1_1 = xrecs_1.next()) {
@@ -2832,12 +3098,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2832
3098
  xrecord.dxfOut(filer);
2833
3099
  }
2834
3100
  }
2835
- catch (e_26_1) { e_26 = { error: e_26_1 }; }
3101
+ catch (e_28_1) { e_28 = { error: e_28_1 }; }
2836
3102
  finally {
2837
3103
  try {
2838
3104
  if (xrecs_1_1 && !xrecs_1_1.done && (_e = xrecs_1.return)) _e.call(xrecs_1);
2839
3105
  }
2840
- finally { if (e_26) throw e_26.error; }
3106
+ finally { if (e_28) throw e_28.error; }
2841
3107
  }
2842
3108
  };
2843
3109
  /**
@@ -2850,7 +3116,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2850
3116
  * @param recordType - DXF record type name for each table record.
2851
3117
  */
2852
3118
  AcDbDatabase.prototype.writeDxfTable = function (filer, tableName, table, records, recordType) {
2853
- var e_28, _a;
3119
+ var e_30, _a;
2854
3120
  var items = __spreadArray([], __read(records), false);
2855
3121
  filer.startTable(tableName);
2856
3122
  table.dxfOut(filer);
@@ -2863,15 +3129,15 @@ var AcDbDatabase = /** @class */ (function (_super) {
2863
3129
  continue;
2864
3130
  }
2865
3131
  filer.writeStart(recordType);
2866
- record.dxfOut(filer);
3132
+ record.dxfOut(filer, true);
2867
3133
  }
2868
3134
  }
2869
- catch (e_28_1) { e_28 = { error: e_28_1 }; }
3135
+ catch (e_30_1) { e_30 = { error: e_30_1 }; }
2870
3136
  finally {
2871
3137
  try {
2872
3138
  if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
2873
3139
  }
2874
- finally { if (e_28) throw e_28.error; }
3140
+ finally { if (e_30) throw e_30.error; }
2875
3141
  }
2876
3142
  filer.endTable();
2877
3143
  };
@@ -2886,8 +3152,36 @@ var AcDbDatabase = /** @class */ (function (_super) {
2886
3152
  * @param entity - Entity to serialize.
2887
3153
  */
2888
3154
  AcDbDatabase.prototype.writeDxfEntity = function (filer, entity) {
3155
+ if (entity instanceof AcDbPolyline &&
3156
+ !filer.capabilities.supportsLwPolyline) {
3157
+ filer.writeStart('POLYLINE');
3158
+ entity.dxfOutAs2dPolyline(filer, true);
3159
+ return;
3160
+ }
2889
3161
  filer.writeStart(entity.dxfTypeName);
2890
- entity.dxfOut(filer);
3162
+ entity.dxfOut(filer, true);
3163
+ };
3164
+ /**
3165
+ * Writes THUMBNAILIMAGE when preview bytes are present and export requested.
3166
+ */
3167
+ AcDbDatabase.prototype.writeDxfThumbnailImageSection = function (filer, saveThumbnailImage) {
3168
+ if (saveThumbnailImage === void 0) { saveThumbnailImage = false; }
3169
+ var bytes = this._thumbnailImage;
3170
+ if (!saveThumbnailImage || !bytes || bytes.length === 0) {
3171
+ return;
3172
+ }
3173
+ if (!filer.capabilities.supportsObjectsSection) {
3174
+ // Thumbnail section is post-R12; skip for AC1009.
3175
+ return;
3176
+ }
3177
+ var chunkSize = 127;
3178
+ filer.startSection('THUMBNAILIMAGE');
3179
+ filer.writeInt32(90, bytes.length);
3180
+ for (var offset = 0; offset < bytes.length; offset += chunkSize) {
3181
+ var chunk = bytes.subarray(offset, offset + chunkSize);
3182
+ filer.writeString(310, acdbBytesToHexString(chunk));
3183
+ }
3184
+ filer.endSection();
2891
3185
  };
2892
3186
  /**
2893
3187
  * Clears all data from the database.
@@ -2908,15 +3202,19 @@ var AcDbDatabase = /** @class */ (function (_super) {
2908
3202
  this._tables.dimStyleTable.removeAll();
2909
3203
  this._tables.linetypeTable.removeAll();
2910
3204
  this._tables.textStyleTable.removeAll();
3205
+ this._tables.ucsTable.removeAll();
2911
3206
  this._tables.viewTable.removeAll();
2912
3207
  this._tables.layerTable.removeAll();
2913
3208
  this._tables.viewportTable.removeAll();
3209
+ this._tables.appIdTable.removeAll();
2914
3210
  this._objects.layout.removeAll();
3211
+ this._objects.group.removeAll();
2915
3212
  this._objects.imageDefinition.removeAll();
2916
3213
  this._objects.layerFilter.removeAll();
2917
3214
  this._objects.layerIndex.removeAll();
2918
3215
  this._objects.mleaderStyle.removeAll();
2919
3216
  this._objects.mlineStyle.removeAll();
3217
+ this._objects.sortentsTable.removeAll();
2920
3218
  this._objects.xrecord.removeAll();
2921
3219
  this._layerFilters = new AcLyLayerFilterTree();
2922
3220
  this._currentSpace = undefined;