@mlightcad/data-model 1.11.2 → 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 (388) 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 +71 -8
  48. package/lib/database/AcDbDatabase.d.ts.map +1 -1
  49. package/lib/database/AcDbDatabase.js +381 -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 +174 -0
  267. package/lib/entity/AcDbViewport.d.ts.map +1 -1
  268. package/lib/entity/AcDbViewport.js +890 -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 +8 -6
  303. package/lib/index.d.ts.map +1 -1
  304. package/lib/index.js +8 -4
  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/AcDbPreviewIcon.d.ts +11 -0
  313. package/lib/misc/AcDbPreviewIcon.d.ts.map +1 -1
  314. package/lib/misc/AcDbPreviewIcon.js +39 -3
  315. package/lib/misc/AcDbPreviewIcon.js.map +1 -1
  316. package/lib/misc/index.d.ts +2 -2
  317. package/lib/misc/index.d.ts.map +1 -1
  318. package/lib/misc/index.js +2 -2
  319. package/lib/misc/index.js.map +1 -1
  320. package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts +6 -5
  321. package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts.map +1 -1
  322. package/lib/misc/proxyGraphic/AcDbProxyGraphic.js +9 -36
  323. package/lib/misc/proxyGraphic/AcDbProxyGraphic.js.map +1 -1
  324. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts +12 -0
  325. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts.map +1 -1
  326. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js +54 -0
  327. package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js.map +1 -1
  328. package/lib/misc/proxyGraphic/index.d.ts +1 -1
  329. package/lib/misc/proxyGraphic/index.d.ts.map +1 -1
  330. package/lib/misc/proxyGraphic/index.js +1 -1
  331. package/lib/misc/proxyGraphic/index.js.map +1 -1
  332. package/lib/object/AcDbDictionary.d.ts +7 -0
  333. package/lib/object/AcDbDictionary.d.ts.map +1 -1
  334. package/lib/object/AcDbDictionary.js +35 -0
  335. package/lib/object/AcDbDictionary.js.map +1 -1
  336. package/lib/object/AcDbFilter.d.ts +95 -0
  337. package/lib/object/AcDbFilter.d.ts.map +1 -1
  338. package/lib/object/AcDbFilter.js +256 -1
  339. package/lib/object/AcDbFilter.js.map +1 -1
  340. package/lib/object/AcDbGroup.d.ts +26 -0
  341. package/lib/object/AcDbGroup.d.ts.map +1 -0
  342. package/lib/object/AcDbGroup.js +171 -0
  343. package/lib/object/AcDbGroup.js.map +1 -0
  344. package/lib/object/AcDbIndex.d.ts +1 -0
  345. package/lib/object/AcDbIndex.d.ts.map +1 -1
  346. package/lib/object/AcDbIndex.js +23 -0
  347. package/lib/object/AcDbIndex.js.map +1 -1
  348. package/lib/object/AcDbLayerFilter.d.ts +1 -0
  349. package/lib/object/AcDbLayerFilter.d.ts.map +1 -1
  350. package/lib/object/AcDbLayerFilter.js +21 -0
  351. package/lib/object/AcDbLayerFilter.js.map +1 -1
  352. package/lib/object/AcDbLayerIndex.d.ts +1 -0
  353. package/lib/object/AcDbLayerIndex.d.ts.map +1 -1
  354. package/lib/object/AcDbLayerIndex.js +38 -0
  355. package/lib/object/AcDbLayerIndex.js.map +1 -1
  356. package/lib/object/AcDbMLeaderStyle.d.ts +1 -0
  357. package/lib/object/AcDbMLeaderStyle.d.ts.map +1 -1
  358. package/lib/object/AcDbMLeaderStyle.js +158 -1
  359. package/lib/object/AcDbMLeaderStyle.js.map +1 -1
  360. package/lib/object/AcDbMlineStyle.d.ts +2 -0
  361. package/lib/object/AcDbMlineStyle.d.ts.map +1 -1
  362. package/lib/object/AcDbMlineStyle.js +88 -0
  363. package/lib/object/AcDbMlineStyle.js.map +1 -1
  364. package/lib/object/AcDbRasterImageDef.d.ts +49 -0
  365. package/lib/object/AcDbRasterImageDef.d.ts.map +1 -1
  366. package/lib/object/AcDbRasterImageDef.js +136 -2
  367. package/lib/object/AcDbRasterImageDef.js.map +1 -1
  368. package/lib/object/AcDbSortentsTable.d.ts +14 -0
  369. package/lib/object/AcDbSortentsTable.d.ts.map +1 -0
  370. package/lib/object/AcDbSortentsTable.js +122 -0
  371. package/lib/object/AcDbSortentsTable.js.map +1 -0
  372. package/lib/object/AcDbXrecord.d.ts +8 -0
  373. package/lib/object/AcDbXrecord.d.ts.map +1 -1
  374. package/lib/object/AcDbXrecord.js +43 -2
  375. package/lib/object/AcDbXrecord.js.map +1 -1
  376. package/lib/object/index.d.ts +2 -0
  377. package/lib/object/index.d.ts.map +1 -1
  378. package/lib/object/index.js +2 -0
  379. package/lib/object/index.js.map +1 -1
  380. package/lib/object/layout/AcDbLayout.d.ts +60 -1
  381. package/lib/object/layout/AcDbLayout.d.ts.map +1 -1
  382. package/lib/object/layout/AcDbLayout.js +237 -1
  383. package/lib/object/layout/AcDbLayout.js.map +1 -1
  384. package/lib/object/layout/AcDbPlotSettings.d.ts +11 -0
  385. package/lib/object/layout/AcDbPlotSettings.d.ts.map +1 -1
  386. package/lib/object/layout/AcDbPlotSettings.js +143 -0
  387. package/lib/object/layout/AcDbPlotSettings.js.map +1 -1
  388. 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;
@@ -1257,6 +1346,29 @@ var AcDbDatabase = /** @class */ (function (_super) {
1257
1346
  _this._dwgname = nextValue;
1258
1347
  });
1259
1348
  };
1349
+ Object.defineProperty(AcDbDatabase.prototype, "thumbnailImage", {
1350
+ /**
1351
+ * Gets or sets the drawing thumbnail preview image.
1352
+ *
1353
+ * Corresponds to AutoCAD .NET `Database.ThumbnailBitmap`, DXF
1354
+ * `THUMBNAILIMAGE` section (group codes 90/310), and the DWG file preview.
1355
+ * Stored as raw image bytes (typically BMP/DIB or PNG).
1356
+ *
1357
+ * @returns Thumbnail image bytes, or `undefined` when none exist.
1358
+ */
1359
+ get: function () {
1360
+ return this._thumbnailImage;
1361
+ },
1362
+ set: function (value) {
1363
+ if (!value || value.length === 0) {
1364
+ this._thumbnailImage = undefined;
1365
+ return;
1366
+ }
1367
+ this._thumbnailImage = value;
1368
+ },
1369
+ enumerable: false,
1370
+ configurable: true
1371
+ });
1260
1372
  /**
1261
1373
  * Returns whether entities on the given layer should be drawn under the
1262
1374
  * current {@link drawNoPlotLayers} setting.
@@ -1271,6 +1383,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
1271
1383
  var layer = this.tables.layerTable.getAt(layerName);
1272
1384
  return layer == null || layer.isPlottable;
1273
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
+ });
1274
1408
  Object.defineProperty(AcDbDatabase.prototype, "cecolor", {
1275
1409
  /**
1276
1410
  * Gets the color of new objects as they are created.
@@ -1517,6 +1651,22 @@ var AcDbDatabase = /** @class */ (function (_super) {
1517
1651
  enumerable: false,
1518
1652
  configurable: true
1519
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
+ });
1520
1670
  Object.defineProperty(AcDbDatabase.prototype, "angbase", {
1521
1671
  /**
1522
1672
  * The zero (0) base angle with respect to the current UCS in radians.
@@ -1778,7 +1928,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
1778
1928
  _b.label = 1;
1779
1929
  case 1:
1780
1930
  _b.trys.push([1, 3, , 4]);
1781
- return [4 /*yield*/, options.fontLoader.load(fonts_1)];
1931
+ return [4 /*yield*/, this.loadFontsWithProgress(options.fontLoader, fonts_1, percentage)];
1782
1932
  case 2:
1783
1933
  _b.sent();
1784
1934
  return [3 /*break*/, 4];
@@ -1805,6 +1955,49 @@ var AcDbDatabase = /** @class */ (function (_super) {
1805
1955
  });
1806
1956
  }); };
1807
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
+ };
1808
2001
  /**
1809
2002
  * Read AutoCAD DXF or DWG drawing specified by the URL into the database object.
1810
2003
  * The method automatically detects the file type based on the URL extension:
@@ -1921,36 +2114,44 @@ var AcDbDatabase = /** @class */ (function (_super) {
1921
2114
  });
1922
2115
  };
1923
2116
  /**
1924
- * Exports the current database into an ASCII DXF string.
2117
+ * Exports the current database into DXF (ASCII string or binary bytes).
1925
2118
  *
1926
2119
  * The `fileName` parameter is kept for ObjectARX API parity. In this web
1927
2120
  * implementation the method returns the DXF payload instead of writing the
1928
2121
  * filesystem directly.
1929
2122
  *
1930
- * This is the top-level DXF export entry point. It emits the sectioned
1931
- * structure in the canonical order: HEADER, TABLES, BLOCKS, ENTITIES,
1932
- * OBJECTS, and EOF.
1933
- *
1934
2123
  * @param _fileName - Kept for ObjectARX parity. Ignored in this implementation.
1935
2124
  * @param precision - Numeric precision used by the DXF filer.
1936
2125
  * @param version - Target DXF/DWG version name or value.
1937
- * @param _saveThumbnailImage - Kept for ObjectARX parity. Ignored here.
1938
- * @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'`.
1939
2129
  */
1940
- AcDbDatabase.prototype.dxfOut = function (_fileName, precision, version, _saveThumbnailImage) {
2130
+ AcDbDatabase.prototype.dxfOut = function (_fileName, precision, version, optionsOrThumbnail) {
2131
+ var _a, _b;
1941
2132
  if (precision === void 0) { precision = 16; }
1942
2133
  if (version === void 0) { version = this.version.name; }
1943
- if (_saveThumbnailImage === void 0) { _saveThumbnailImage = false; }
2134
+ if (optionsOrThumbnail === void 0) { optionsOrThumbnail = false; }
1944
2135
  this.ensureDatabaseDefaults();
1945
2136
  if (this._layerFilters.root.getNestedFilters().length > 0 &&
1946
2137
  !this.tables.layerTable.extensionDictionary) {
1947
2138
  this.tables.layerTable.extensionDictionary = this.generateHandle();
1948
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
+ };
1949
2149
  var outVersion = version instanceof AcDbDwgVersion ? version : new AcDbDwgVersion(version);
1950
2150
  var filer = new AcDbDxfFiler({
1951
2151
  database: this,
1952
2152
  precision: precision,
1953
- version: outVersion
2153
+ version: outVersion,
2154
+ outputFormat: options.format
1954
2155
  });
1955
2156
  this.writeDxfHeaderSection(filer);
1956
2157
  this.writeDxfClassesSection(filer);
@@ -1958,8 +2159,9 @@ var AcDbDatabase = /** @class */ (function (_super) {
1958
2159
  this.writeDxfBlocksSection(filer);
1959
2160
  this.writeDxfEntitiesSection(filer);
1960
2161
  this.writeDxfObjectsSection(filer);
2162
+ this.writeDxfThumbnailImageSection(filer, options.saveThumbnailImage);
1961
2163
  filer.writeStart('EOF');
1962
- return filer.toString();
2164
+ return options.format === 'binary' ? filer.toBinary() : filer.toString();
1963
2165
  };
1964
2166
  /**
1965
2167
  * Triggers xxxAppended events with data in the database to redraw the associated viewer.
@@ -2274,7 +2476,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2274
2476
  filer.writeString(1, (_b = (_a = filer.version) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : this.version.name);
2275
2477
  filer.writeString(9, '$HANDSEED');
2276
2478
  filer.writeString(5, filer.nextHandle.toString(16).toUpperCase());
2277
- if (filer.version != null && filer.version.value >= 27) {
2479
+ if (filer.capabilities.supportsUtf8CodePage) {
2278
2480
  filer.writeString(9, '$DWGCODEPAGE');
2279
2481
  filer.writeString(3, 'UTF-8');
2280
2482
  }
@@ -2290,13 +2492,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
2290
2492
  filer.writeInt16(70, this.measurement);
2291
2493
  filer.writeString(9, '$LTSCALE');
2292
2494
  filer.writeDouble(40, this.ltscale);
2293
- filer.writeString(9, '$LWDISPLAY');
2294
- 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);
2295
2511
  filer.writeString(9, '$CLAYER');
2296
2512
  filer.writeString(8, this.clayer);
2297
2513
  filer.writeString(9, '$CELTYPE');
2298
2514
  filer.writeString(6, this.celtype);
2299
- if (!this.cetransparency.isInvalid) {
2515
+ if (filer.capabilities.supportsTransparency &&
2516
+ !this.cetransparency.isInvalid) {
2300
2517
  filer.writeString(9, '$CETRANSPARENCY');
2301
2518
  filer.writeTransparency(this.cetransparency);
2302
2519
  }
@@ -2316,12 +2533,15 @@ var AcDbDatabase = /** @class */ (function (_super) {
2316
2533
  }
2317
2534
  filer.writeString(9, '$HPLAYER');
2318
2535
  filer.writeString(8, this.hplayer);
2319
- if (!this.hptransparency.isInvalid) {
2536
+ if (filer.capabilities.supportsTransparency &&
2537
+ !this.hptransparency.isInvalid) {
2320
2538
  filer.writeString(9, '$HPTRANSPARENCY');
2321
2539
  filer.writeTransparency(this.hptransparency);
2322
2540
  }
2323
2541
  filer.writeString(9, '$TEXTSTYLE');
2324
2542
  filer.writeString(7, this.textstyle);
2543
+ filer.writeString(9, '$DIMSTYLE');
2544
+ filer.writeString(2, this.dimstyle);
2325
2545
  filer.writeString(9, '$ANGBASE');
2326
2546
  filer.writeAngle(50, this.angbase);
2327
2547
  filer.writeString(9, '$ANGDIR');
@@ -2354,7 +2574,8 @@ var AcDbDatabase = /** @class */ (function (_super) {
2354
2574
  */
2355
2575
  AcDbDatabase.prototype.writeDxfClassesSection = function (filer) {
2356
2576
  var e_10, _a;
2357
- if (this._classes.length === 0) {
2577
+ if (!filer.capabilities.supportsClassesSection ||
2578
+ this._classes.length === 0) {
2358
2579
  return;
2359
2580
  }
2360
2581
  filer.startSection('CLASSES');
@@ -2390,12 +2611,13 @@ var AcDbDatabase = /** @class */ (function (_super) {
2390
2611
  filer.startSection('TABLES');
2391
2612
  this.writeDxfTable(filer, 'VPORT', this.tables.viewportTable, this.tables.viewportTable.newIterator(), 'VPORT');
2392
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');
2393
2615
  this.writeDxfTable(filer, 'LTYPE', this.tables.linetypeTable, this.tables.linetypeTable.newIterator(), 'LTYPE');
2394
2616
  this.writeDxfTable(filer, 'LAYER', this.tables.layerTable, this.tables.layerTable.newIterator(), 'LAYER');
2395
2617
  this.writeDxfTable(filer, 'STYLE', this.tables.textStyleTable, this.tables.textStyleTable.newIterator(true), 'STYLE');
2396
2618
  this.writeDxfTable(filer, 'APPID', this.tables.appIdTable, this.tables.appIdTable.newIterator(), 'APPID');
2397
2619
  this.writeDxfTable(filer, 'DIMSTYLE', this.tables.dimStyleTable, this.tables.dimStyleTable.newIterator(), 'DIMSTYLE');
2398
- if (version.value >= 19) {
2620
+ if (version.capabilities.supportsBlockRecordTable) {
2399
2621
  this.writeDxfTable(filer, 'BLOCK_RECORD', this.tables.blockTable, this.tables.blockTable.newIterator(), 'BLOCK_RECORD');
2400
2622
  }
2401
2623
  filer.endSection();
@@ -2482,14 +2704,17 @@ var AcDbDatabase = /** @class */ (function (_super) {
2482
2704
  * @param filer - DXF output writer.
2483
2705
  */
2484
2706
  AcDbDatabase.prototype.writeDxfObjectsSection = function (filer) {
2485
- 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
+ }
2486
2711
  filer.startSection('OBJECTS');
2487
2712
  var rootDict = this.objects.dictionary;
2488
2713
  rootDict.ownerId = '0';
2489
2714
  var writeDictionary = function (dict) {
2490
2715
  // Dictionary entries (3/350 pairs) are embedded in the DICTIONARY object.
2491
2716
  filer.writeStart('DICTIONARY');
2492
- dict.dxfOut(filer);
2717
+ dict.dxfOut(filer, true);
2493
2718
  };
2494
2719
  var ensureRootEntry = function (key, dict) {
2495
2720
  if (rootDict.getAt(key) !== dict) {
@@ -2502,6 +2727,18 @@ var AcDbDatabase = /** @class */ (function (_super) {
2502
2727
  }
2503
2728
  };
2504
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
+ }
2505
2742
  if (this.objects.mleaderStyle.numEntries > 0) {
2506
2743
  ensureRootEntry('ACAD_MLEADERSTYLE', this.objects.mleaderStyle);
2507
2744
  }
@@ -2528,6 +2765,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2528
2765
  }
2529
2766
  writeDictionary(rootDict);
2530
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
+ }
2531
2774
  if (this.objects.mleaderStyle.numEntries > 0) {
2532
2775
  writeDictionary(this.objects.mleaderStyle);
2533
2776
  }
@@ -2541,103 +2784,133 @@ var AcDbDatabase = /** @class */ (function (_super) {
2541
2784
  writeDictionary(this.objects.xrecord);
2542
2785
  }
2543
2786
  try {
2544
- for (var _h = __values(this.objects.layout.entries()), _j = _h.next(); !_j.done; _j = _h.next()) {
2545
- 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];
2546
2789
  filer.writeStart('LAYOUT');
2547
- layout.dxfOut(filer);
2790
+ layout.dxfOut(filer, true);
2548
2791
  }
2549
2792
  }
2550
2793
  catch (e_15_1) { e_15 = { error: e_15_1 }; }
2551
2794
  finally {
2552
2795
  try {
2553
- if (_j && !_j.done && (_a = _h.return)) _a.call(_h);
2796
+ if (_l && !_l.done && (_a = _k.return)) _a.call(_k);
2554
2797
  }
2555
2798
  finally { if (e_15) throw e_15.error; }
2556
2799
  }
2557
2800
  try {
2558
- for (var _l = __values(this.objects.imageDefinition.entries()), _m = _l.next(); !_m.done; _m = _l.next()) {
2559
- var _o = __read(_m.value, 2), _ = _o[0], imageDef = _o[1];
2560
- filer.writeStart('IMAGEDEF');
2561
- 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);
2562
2807
  }
2563
2808
  }
2564
2809
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
2565
2810
  finally {
2566
2811
  try {
2567
- if (_m && !_m.done && (_b = _l.return)) _b.call(_l);
2812
+ if (_p && !_p.done && (_b = _o.return)) _b.call(_o);
2568
2813
  }
2569
2814
  finally { if (e_16) throw e_16.error; }
2570
2815
  }
2571
2816
  try {
2572
- for (var _p = __values(this.objects.layerFilter.entries()), _q = _p.next(); !_q.done; _q = _p.next()) {
2573
- var _r = __read(_q.value, 2), _ = _r[0], layerFilter = _r[1];
2574
- filer.writeStart('LAYER_FILTER');
2575
- 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);
2576
2821
  }
2577
2822
  }
2578
2823
  catch (e_17_1) { e_17 = { error: e_17_1 }; }
2579
2824
  finally {
2580
2825
  try {
2581
- if (_q && !_q.done && (_c = _p.return)) _c.call(_p);
2826
+ if (_s && !_s.done && (_c = _r.return)) _c.call(_r);
2582
2827
  }
2583
2828
  finally { if (e_17) throw e_17.error; }
2584
2829
  }
2585
2830
  try {
2586
- for (var _s = __values(this.objects.layerIndex.entries()), _t = _s.next(); !_t.done; _t = _s.next()) {
2587
- var _u = __read(_t.value, 2), _ = _u[0], layerIndex = _u[1];
2588
- filer.writeStart('LAYER_INDEX');
2589
- 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);
2590
2835
  }
2591
2836
  }
2592
2837
  catch (e_18_1) { e_18 = { error: e_18_1 }; }
2593
2838
  finally {
2594
2839
  try {
2595
- if (_t && !_t.done && (_d = _s.return)) _d.call(_s);
2840
+ if (_v && !_v.done && (_d = _u.return)) _d.call(_u);
2596
2841
  }
2597
2842
  finally { if (e_18) throw e_18.error; }
2598
2843
  }
2599
2844
  try {
2600
- for (var _v = __values(this.objects.mleaderStyle.entries()), _w = _v.next(); !_w.done; _w = _v.next()) {
2601
- var _x = __read(_w.value, 2), _ = _x[0], mleaderStyle = _x[1];
2602
- filer.writeStart('MLEADERSTYLE');
2603
- 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);
2604
2849
  }
2605
2850
  }
2606
2851
  catch (e_19_1) { e_19 = { error: e_19_1 }; }
2607
2852
  finally {
2608
2853
  try {
2609
- if (_w && !_w.done && (_e = _v.return)) _e.call(_v);
2854
+ if (_y && !_y.done && (_e = _x.return)) _e.call(_x);
2610
2855
  }
2611
2856
  finally { if (e_19) throw e_19.error; }
2612
2857
  }
2613
2858
  try {
2614
- for (var _y = __values(this.objects.mlineStyle.entries()), _z = _y.next(); !_z.done; _z = _y.next()) {
2615
- var _0 = __read(_z.value, 2), _ = _0[0], mlineStyle = _0[1];
2616
- filer.writeStart('MLINESTYLE');
2617
- 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);
2618
2863
  }
2619
2864
  }
2620
2865
  catch (e_20_1) { e_20 = { error: e_20_1 }; }
2621
2866
  finally {
2622
2867
  try {
2623
- if (_z && !_z.done && (_f = _y.return)) _f.call(_y);
2868
+ if (_1 && !_1.done && (_f = _0.return)) _f.call(_0);
2624
2869
  }
2625
2870
  finally { if (e_20) throw e_20.error; }
2626
2871
  }
2627
2872
  try {
2628
- for (var _1 = __values(this.objects.xrecord.entries()), _2 = _1.next(); !_2.done; _2 = _1.next()) {
2629
- var _3 = __read(_2.value, 2), _ = _3[0], xrecord = _3[1];
2630
- filer.writeStart('XRECORD');
2631
- 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);
2632
2877
  }
2633
2878
  }
2634
2879
  catch (e_21_1) { e_21 = { error: e_21_1 }; }
2635
2880
  finally {
2636
2881
  try {
2637
- if (_2 && !_2.done && (_g = _1.return)) _g.call(_1);
2882
+ if (_4 && !_4.done && (_g = _3.return)) _g.call(_3);
2638
2883
  }
2639
2884
  finally { if (e_21) throw e_21.error; }
2640
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
+ }
2641
2914
  this.writeAcLyLayerFilterObjects(filer);
2642
2915
  filer.endSection();
2643
2916
  };
@@ -2649,7 +2922,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2649
2922
  * @param filer - DXF output writer.
2650
2923
  */
2651
2924
  AcDbDatabase.prototype.writeAcLyLayerFilterObjects = function (filer) {
2652
- 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;
2653
2926
  var _this = this;
2654
2927
  var _f;
2655
2928
  var serialized = acdbSerializeLayerFilterTree(this._layerFilters);
@@ -2666,7 +2939,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2666
2939
  var rootAclyEntries = [];
2667
2940
  var rootAcadEntries = [];
2668
2941
  var emit = function (node, parentAclyHandle, addToLegacy) {
2669
- var e_27, _a;
2942
+ var e_29, _a;
2670
2943
  var xHandle = _this.generateHandle();
2671
2944
  var extensionDictionaryId;
2672
2945
  if (node.children.length > 0) {
@@ -2682,12 +2955,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2682
2955
  });
2683
2956
  }
2684
2957
  }
2685
- catch (e_27_1) { e_27 = { error: e_27_1 }; }
2958
+ catch (e_29_1) { e_29 = { error: e_29_1 }; }
2686
2959
  finally {
2687
2960
  try {
2688
2961
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2689
2962
  }
2690
- finally { if (e_27) throw e_27.error; }
2963
+ finally { if (e_29) throw e_29.error; }
2691
2964
  }
2692
2965
  dicts.push({
2693
2966
  handle: extHandle,
@@ -2721,12 +2994,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2721
2994
  });
2722
2995
  }
2723
2996
  }
2724
- catch (e_22_1) { e_22 = { error: e_22_1 }; }
2997
+ catch (e_24_1) { e_24 = { error: e_24_1 }; }
2725
2998
  finally {
2726
2999
  try {
2727
3000
  if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
2728
3001
  }
2729
- finally { if (e_22) throw e_22.error; }
3002
+ finally { if (e_24) throw e_24.error; }
2730
3003
  }
2731
3004
  var layerExtEntries = new Map();
2732
3005
  var existingLayerExt = this.getObjectById(layerExtHandle);
@@ -2737,12 +3010,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2737
3010
  layerExtEntries.set(key, value.objectId);
2738
3011
  }
2739
3012
  }
2740
- catch (e_23_1) { e_23 = { error: e_23_1 }; }
3013
+ catch (e_25_1) { e_25 = { error: e_25_1 }; }
2741
3014
  finally {
2742
3015
  try {
2743
3016
  if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
2744
3017
  }
2745
- finally { if (e_23) throw e_23.error; }
3018
+ finally { if (e_25) throw e_25.error; }
2746
3019
  }
2747
3020
  }
2748
3021
  layerExtEntries.set(ACLY_DICTIONARY_NAME, aclyHandle);
@@ -2773,27 +3046,27 @@ var AcDbDatabase = /** @class */ (function (_super) {
2773
3046
  filer.writeInt16(280, 1);
2774
3047
  filer.writeInt16(281, 1);
2775
3048
  try {
2776
- 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()) {
2777
3050
  var entry = _o.value;
2778
3051
  filer.writeString(3, entry.name);
2779
3052
  filer.writeObjectId(350, entry.id);
2780
3053
  }
2781
3054
  }
2782
- catch (e_25_1) { e_25 = { error: e_25_1 }; }
3055
+ catch (e_27_1) { e_27 = { error: e_27_1 }; }
2783
3056
  finally {
2784
3057
  try {
2785
3058
  if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
2786
3059
  }
2787
- finally { if (e_25) throw e_25.error; }
3060
+ finally { if (e_27) throw e_27.error; }
2788
3061
  }
2789
3062
  }
2790
3063
  }
2791
- catch (e_24_1) { e_24 = { error: e_24_1 }; }
3064
+ catch (e_26_1) { e_26 = { error: e_26_1 }; }
2792
3065
  finally {
2793
3066
  try {
2794
3067
  if (dicts_1_1 && !dicts_1_1.done && (_c = dicts_1.return)) _c.call(dicts_1);
2795
3068
  }
2796
- finally { if (e_24) throw e_24.error; }
3069
+ finally { if (e_26) throw e_26.error; }
2797
3070
  }
2798
3071
  try {
2799
3072
  for (var xrecs_1 = __values(xrecs), xrecs_1_1 = xrecs_1.next(); !xrecs_1_1.done; xrecs_1_1 = xrecs_1.next()) {
@@ -2809,12 +3082,12 @@ var AcDbDatabase = /** @class */ (function (_super) {
2809
3082
  xrecord.dxfOut(filer);
2810
3083
  }
2811
3084
  }
2812
- catch (e_26_1) { e_26 = { error: e_26_1 }; }
3085
+ catch (e_28_1) { e_28 = { error: e_28_1 }; }
2813
3086
  finally {
2814
3087
  try {
2815
3088
  if (xrecs_1_1 && !xrecs_1_1.done && (_e = xrecs_1.return)) _e.call(xrecs_1);
2816
3089
  }
2817
- finally { if (e_26) throw e_26.error; }
3090
+ finally { if (e_28) throw e_28.error; }
2818
3091
  }
2819
3092
  };
2820
3093
  /**
@@ -2827,7 +3100,7 @@ var AcDbDatabase = /** @class */ (function (_super) {
2827
3100
  * @param recordType - DXF record type name for each table record.
2828
3101
  */
2829
3102
  AcDbDatabase.prototype.writeDxfTable = function (filer, tableName, table, records, recordType) {
2830
- var e_28, _a;
3103
+ var e_30, _a;
2831
3104
  var items = __spreadArray([], __read(records), false);
2832
3105
  filer.startTable(tableName);
2833
3106
  table.dxfOut(filer);
@@ -2840,15 +3113,15 @@ var AcDbDatabase = /** @class */ (function (_super) {
2840
3113
  continue;
2841
3114
  }
2842
3115
  filer.writeStart(recordType);
2843
- record.dxfOut(filer);
3116
+ record.dxfOut(filer, true);
2844
3117
  }
2845
3118
  }
2846
- catch (e_28_1) { e_28 = { error: e_28_1 }; }
3119
+ catch (e_30_1) { e_30 = { error: e_30_1 }; }
2847
3120
  finally {
2848
3121
  try {
2849
3122
  if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
2850
3123
  }
2851
- finally { if (e_28) throw e_28.error; }
3124
+ finally { if (e_30) throw e_30.error; }
2852
3125
  }
2853
3126
  filer.endTable();
2854
3127
  };
@@ -2863,8 +3136,36 @@ var AcDbDatabase = /** @class */ (function (_super) {
2863
3136
  * @param entity - Entity to serialize.
2864
3137
  */
2865
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
+ }
2866
3145
  filer.writeStart(entity.dxfTypeName);
2867
- 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();
2868
3169
  };
2869
3170
  /**
2870
3171
  * Clears all data from the database.
@@ -2885,15 +3186,19 @@ var AcDbDatabase = /** @class */ (function (_super) {
2885
3186
  this._tables.dimStyleTable.removeAll();
2886
3187
  this._tables.linetypeTable.removeAll();
2887
3188
  this._tables.textStyleTable.removeAll();
3189
+ this._tables.ucsTable.removeAll();
2888
3190
  this._tables.viewTable.removeAll();
2889
3191
  this._tables.layerTable.removeAll();
2890
3192
  this._tables.viewportTable.removeAll();
3193
+ this._tables.appIdTable.removeAll();
2891
3194
  this._objects.layout.removeAll();
3195
+ this._objects.group.removeAll();
2892
3196
  this._objects.imageDefinition.removeAll();
2893
3197
  this._objects.layerFilter.removeAll();
2894
3198
  this._objects.layerIndex.removeAll();
2895
3199
  this._objects.mleaderStyle.removeAll();
2896
3200
  this._objects.mlineStyle.removeAll();
3201
+ this._objects.sortentsTable.removeAll();
2897
3202
  this._objects.xrecord.removeAll();
2898
3203
  this._layerFilters = new AcLyLayerFilterTree();
2899
3204
  this._currentSpace = undefined;