@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
@@ -0,0 +1,1093 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __read = (this && this.__read) || function (o, n) {
38
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39
+ if (!m) return o;
40
+ var i = m.call(o), r, ar = [], e;
41
+ try {
42
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43
+ }
44
+ catch (error) { e = { error: error }; }
45
+ finally {
46
+ try {
47
+ if (r && !r.done && (m = i["return"])) m.call(i);
48
+ }
49
+ finally { if (e) throw e.error; }
50
+ }
51
+ return ar;
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
62
+ var __values = (this && this.__values) || function(o) {
63
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
64
+ if (m) return m.call(o);
65
+ if (o && typeof o.length === "number") return {
66
+ next: function () {
67
+ if (o && i >= o.length) o = void 0;
68
+ return { value: o && o[i++], done: !o };
69
+ }
70
+ };
71
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
72
+ };
73
+ import { ACCM_DEFAULT_UI_YIELD_BUDGET_MS, AcCmUiYieldGate, accmYieldToUi } from '@mlightcad/common';
74
+ import { AcGePoint3d } from '@mlightcad/geometry-engine';
75
+ import { AcDbFontNameCollector } from '../converter/AcDbFontNameCollector';
76
+ import { AcDbBlockTableRecord, AcDbBlockTableRecordFlag } from '../database/AcDbBlockTableRecord';
77
+ import { AcDbDimStyleTableRecord } from '../database/AcDbDimStyleTableRecord';
78
+ import { AcDbLayerTableRecord } from '../database/AcDbLayerTableRecord';
79
+ import { AcDbLinetypeTableRecord } from '../database/AcDbLinetypeTableRecord';
80
+ import { AcDbRegAppTableRecord } from '../database/AcDbRegAppTableRecord';
81
+ import { AcDbTextStyleTableRecord } from '../database/AcDbTextStyleTableRecord';
82
+ import { AcDbUcsTableRecord } from '../database/AcDbUcsTableRecord';
83
+ import { AcDbViewportTableRecord } from '../database/AcDbViewportTableRecord';
84
+ import { AcDbViewTableRecord } from '../database/AcDbViewTableRecord';
85
+ import { AcDb3dSolid } from '../entity/AcDb3dSolid';
86
+ import { AcDbAttribute } from '../entity/AcDbAttribute';
87
+ import { AcDbBlockReference } from '../entity/AcDbBlockReference';
88
+ import { AcDbMText } from '../entity/AcDbMText';
89
+ import { acdbCombineDxfBinaryChunks } from '../misc/proxyGraphic';
90
+ import { acdbDxfInAcdsData, acdbNormalizeDxfHandle } from './AcDbDxfAcdsDataReader';
91
+ import { acdbDxfInEntity } from './AcDbDxfEntityFactory';
92
+ import { acdbDxfInHeader } from './AcDbDxfHeaderReader';
93
+ import { AcDbDxfObjectsReader } from './AcDbDxfObjectsReader';
94
+ /**
95
+ * Single-pass streaming DXF document reader.
96
+ *
97
+ * Walks HEADER → CLASSES → TABLES → BLOCKS → ENTITIES → OBJECTS in file
98
+ * order and writes directly into {@link AcDbDatabase}. Does not buffer the
99
+ * whole file as tag groups.
100
+ */
101
+ var AcDbDxfDocumentReader = /** @class */ (function () {
102
+ function AcDbDxfDocumentReader(_db, _options) {
103
+ if (_options === void 0) { _options = {}; }
104
+ var _a;
105
+ this._db = _db;
106
+ this._options = _options;
107
+ this._unknownEntityCount = 0;
108
+ this._unknownObjectCount = 0;
109
+ this._fonts = new Set();
110
+ /** ATTRIB entities waiting for their owning INSERT (keyed by INSERT objectId). */
111
+ this._attributeMap = new Map();
112
+ this._yieldGate = new AcCmUiYieldGate((_a = this._options.yieldBudgetMs) !== null && _a !== void 0 ? _a : ACCM_DEFAULT_UI_YIELD_BUDGET_MS);
113
+ }
114
+ Object.defineProperty(AcDbDxfDocumentReader.prototype, "unknownEntityCount", {
115
+ get: function () {
116
+ return this._unknownEntityCount;
117
+ },
118
+ enumerable: false,
119
+ configurable: true
120
+ });
121
+ Object.defineProperty(AcDbDxfDocumentReader.prototype, "unknownObjectCount", {
122
+ get: function () {
123
+ return this._unknownObjectCount;
124
+ },
125
+ enumerable: false,
126
+ configurable: true
127
+ });
128
+ Object.defineProperty(AcDbDxfDocumentReader.prototype, "fonts", {
129
+ get: function () {
130
+ return __spreadArray([], __read(this._fonts), false);
131
+ },
132
+ enumerable: false,
133
+ configurable: true
134
+ });
135
+ AcDbDxfDocumentReader.prototype.read = function (filer) {
136
+ return __awaiter(this, void 0, void 0, function () {
137
+ var item, name_1, sectionName;
138
+ return __generator(this, function (_a) {
139
+ switch (_a.label) {
140
+ case 0:
141
+ this._unknownEntityCount = 0;
142
+ this._unknownObjectCount = 0;
143
+ this._fonts.clear();
144
+ this._attributeMap.clear();
145
+ filer.database = this._db;
146
+ _a.label = 1;
147
+ case 1:
148
+ if (!!filer.atEof) return [3 /*break*/, 4];
149
+ item = filer.readItem();
150
+ if (!item)
151
+ return [3 /*break*/, 4];
152
+ if (Number(item.code) !== 0)
153
+ return [3 /*break*/, 1];
154
+ name_1 = String(item.value).toUpperCase();
155
+ if (name_1 === 'EOF')
156
+ return [3 /*break*/, 4];
157
+ if (!(name_1 === 'SECTION')) return [3 /*break*/, 3];
158
+ sectionName = this.readSectionName(filer);
159
+ return [4 /*yield*/, this.readSection(filer, sectionName)];
160
+ case 2:
161
+ _a.sent();
162
+ return [3 /*break*/, 1];
163
+ case 3: return [3 /*break*/, 1];
164
+ case 4:
165
+ this.flushRemainingAttributes();
166
+ return [2 /*return*/, {
167
+ unknownEntityCount: this._unknownEntityCount,
168
+ unknownObjectCount: this._unknownObjectCount,
169
+ fonts: this.fonts
170
+ }];
171
+ }
172
+ });
173
+ });
174
+ };
175
+ AcDbDxfDocumentReader.prototype.readSectionName = function (filer) {
176
+ var item = filer.readItem();
177
+ if (item && Number(item.code) === 2) {
178
+ return String(item.value).toUpperCase();
179
+ }
180
+ if (item)
181
+ filer.pushBackItem(item);
182
+ return '';
183
+ };
184
+ AcDbDxfDocumentReader.prototype.readSection = function (filer, section) {
185
+ return __awaiter(this, void 0, void 0, function () {
186
+ var _a, objectsReader;
187
+ return __generator(this, function (_b) {
188
+ switch (_b.label) {
189
+ case 0:
190
+ _a = section;
191
+ switch (_a) {
192
+ case 'HEADER': return [3 /*break*/, 1];
193
+ case 'CLASSES': return [3 /*break*/, 3];
194
+ case 'TABLES': return [3 /*break*/, 5];
195
+ case 'BLOCKS': return [3 /*break*/, 7];
196
+ case 'ENTITIES': return [3 /*break*/, 10];
197
+ case 'OBJECTS': return [3 /*break*/, 13];
198
+ case 'ACDSDATA': return [3 /*break*/, 15];
199
+ case 'THUMBNAILIMAGE': return [3 /*break*/, 17];
200
+ }
201
+ return [3 /*break*/, 19];
202
+ case 1:
203
+ acdbDxfInHeader(filer, this._db);
204
+ return [4 /*yield*/, this.reportParseProgress(filer)];
205
+ case 2:
206
+ _b.sent();
207
+ return [3 /*break*/, 21];
208
+ case 3:
209
+ this.readClassesSection(filer);
210
+ return [4 /*yield*/, this.reportParseProgress(filer)];
211
+ case 4:
212
+ _b.sent();
213
+ return [3 /*break*/, 21];
214
+ case 5:
215
+ this.readTablesSection(filer);
216
+ return [4 /*yield*/, this.reportParseProgress(filer)];
217
+ case 6:
218
+ _b.sent();
219
+ return [3 /*break*/, 21];
220
+ case 7: return [4 /*yield*/, this.readBlocksSection(filer)];
221
+ case 8:
222
+ _b.sent();
223
+ return [4 /*yield*/, this.reportParseProgress(filer)];
224
+ case 9:
225
+ _b.sent();
226
+ return [3 /*break*/, 21];
227
+ case 10: return [4 /*yield*/, this.readEntitiesSection(filer)];
228
+ case 11:
229
+ _b.sent();
230
+ return [4 /*yield*/, this.reportParseProgress(filer)];
231
+ case 12:
232
+ _b.sent();
233
+ return [3 /*break*/, 21];
234
+ case 13:
235
+ {
236
+ objectsReader = new AcDbDxfObjectsReader(this._db);
237
+ objectsReader.read(filer);
238
+ this._unknownObjectCount += objectsReader.unknownObjectCount;
239
+ }
240
+ return [4 /*yield*/, this.reportParseProgress(filer)];
241
+ case 14:
242
+ _b.sent();
243
+ return [3 /*break*/, 21];
244
+ case 15:
245
+ this.applyAcdsDataToSolids(acdbDxfInAcdsData(filer));
246
+ return [4 /*yield*/, this.reportParseProgress(filer)];
247
+ case 16:
248
+ _b.sent();
249
+ return [3 /*break*/, 21];
250
+ case 17:
251
+ this.readThumbnailImageSection(filer);
252
+ return [4 /*yield*/, this.reportParseProgress(filer)];
253
+ case 18:
254
+ _b.sent();
255
+ return [3 /*break*/, 21];
256
+ case 19:
257
+ this.skipUntilEndSec(filer);
258
+ return [4 /*yield*/, this.reportParseProgress(filer)];
259
+ case 20:
260
+ _b.sent();
261
+ return [3 /*break*/, 21];
262
+ case 21: return [2 /*return*/];
263
+ }
264
+ });
265
+ });
266
+ };
267
+ /**
268
+ * Attaches ACDSDATA `ASM_Data` SAB payloads to matching {@link AcDb3dSolid}
269
+ * entities (keyed by entity handle / group 5).
270
+ *
271
+ * Modern DXF files often store 3DSOLID geometry only in ACDSDATA rather than
272
+ * inline encrypted SAT groups 1/3 — without this step solids render empty.
273
+ */
274
+ AcDbDxfDocumentReader.prototype.applyAcdsDataToSolids = function (section) {
275
+ var e_1, _a, e_2, _b, e_3, _c;
276
+ var ownerHandles = Object.keys(section.byOwnerHandle);
277
+ if (ownerHandles.length === 0)
278
+ return;
279
+ // Build a handle → solid map once (handles may differ in case from DXF).
280
+ var solidsByHandle = new Map();
281
+ try {
282
+ for (var _d = __values(this._db.tables.blockTable.newIterator()), _e = _d.next(); !_e.done; _e = _d.next()) {
283
+ var btr = _e.value;
284
+ try {
285
+ for (var _f = (e_2 = void 0, __values(btr.newIterator())), _g = _f.next(); !_g.done; _g = _f.next()) {
286
+ var entity = _g.value;
287
+ if (entity instanceof AcDb3dSolid) {
288
+ solidsByHandle.set(acdbNormalizeDxfHandle(entity.objectId), entity);
289
+ }
290
+ }
291
+ }
292
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
293
+ finally {
294
+ try {
295
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
296
+ }
297
+ finally { if (e_2) throw e_2.error; }
298
+ }
299
+ }
300
+ }
301
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
302
+ finally {
303
+ try {
304
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
305
+ }
306
+ finally { if (e_1) throw e_1.error; }
307
+ }
308
+ try {
309
+ for (var ownerHandles_1 = __values(ownerHandles), ownerHandles_1_1 = ownerHandles_1.next(); !ownerHandles_1_1.done; ownerHandles_1_1 = ownerHandles_1.next()) {
310
+ var ownerHandle = ownerHandles_1_1.value;
311
+ var sabBytes = section.byOwnerHandle[ownerHandle];
312
+ if (!sabBytes)
313
+ continue;
314
+ var solid = solidsByHandle.get(acdbNormalizeDxfHandle(ownerHandle));
315
+ if (solid) {
316
+ solid.setSabBytes(sabBytes);
317
+ }
318
+ }
319
+ }
320
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
321
+ finally {
322
+ try {
323
+ if (ownerHandles_1_1 && !ownerHandles_1_1.done && (_c = ownerHandles_1.return)) _c.call(ownerHandles_1);
324
+ }
325
+ finally { if (e_3) throw e_3.error; }
326
+ }
327
+ };
328
+ AcDbDxfDocumentReader.prototype.readThumbnailImageSection = function (filer) {
329
+ var expectedLength = 0;
330
+ var dataChunks = [];
331
+ while (!filer.atEof) {
332
+ var item = filer.readItem();
333
+ if (!item)
334
+ break;
335
+ if (Number(item.code) === 0) {
336
+ var name_2 = String(item.value).toUpperCase();
337
+ if (name_2 === 'ENDSEC')
338
+ break;
339
+ // Unexpected — push back and stop
340
+ filer.pushBackItem(item);
341
+ break;
342
+ }
343
+ if (Number(item.code) === 90) {
344
+ expectedLength = Number(item.value) || 0;
345
+ }
346
+ else if (Number(item.code) === 310) {
347
+ // ASCII readers may leave hex as string; typed binary pairs yield Uint8Array.
348
+ if (item.value instanceof Uint8Array) {
349
+ dataChunks.push(item.value);
350
+ }
351
+ else {
352
+ dataChunks.push(String(item.value));
353
+ }
354
+ }
355
+ }
356
+ if (dataChunks.length === 0)
357
+ return;
358
+ var bytes = acdbCombineDxfBinaryChunks(dataChunks);
359
+ if (!bytes || bytes.length === 0)
360
+ return;
361
+ this._db.thumbnailImage =
362
+ expectedLength > 0 && bytes.length > expectedLength
363
+ ? bytes.subarray(0, expectedLength)
364
+ : bytes;
365
+ };
366
+ AcDbDxfDocumentReader.prototype.readClassesSection = function (filer) {
367
+ var classes = [];
368
+ while (!filer.atEof) {
369
+ var item = filer.peekItem();
370
+ if (!item)
371
+ break;
372
+ if (Number(item.code) !== 0) {
373
+ filer.readItem();
374
+ continue;
375
+ }
376
+ var name_3 = String(item.value).toUpperCase();
377
+ if (name_3 === 'ENDSEC') {
378
+ filer.readItem();
379
+ break;
380
+ }
381
+ if (name_3 === 'CLASS') {
382
+ filer.readItem();
383
+ var dxfClass = this.readClassRecord(filer);
384
+ if (dxfClass.name || dxfClass.cppClassName) {
385
+ classes.push(dxfClass);
386
+ }
387
+ continue;
388
+ }
389
+ filer.readItem();
390
+ filer.skipToEndOfObject();
391
+ }
392
+ if (classes.length > 0) {
393
+ this._db.classes = classes;
394
+ }
395
+ };
396
+ AcDbDxfDocumentReader.prototype.readClassRecord = function (filer) {
397
+ var result = {
398
+ name: '',
399
+ cppClassName: '',
400
+ appName: '',
401
+ proxyFlag: 0,
402
+ instanceCount: 0,
403
+ wasProxy: false,
404
+ isEntity: false
405
+ };
406
+ while (!filer.atEndOfObject && !filer.atEof) {
407
+ var item = filer.readItem();
408
+ if (!item)
409
+ break;
410
+ var code = Number(item.code);
411
+ switch (code) {
412
+ case 1:
413
+ result.name = String(item.value);
414
+ break;
415
+ case 2:
416
+ result.cppClassName = String(item.value);
417
+ break;
418
+ case 3:
419
+ result.appName = String(item.value);
420
+ break;
421
+ case 90:
422
+ result.proxyFlag = Number(item.value);
423
+ break;
424
+ case 91:
425
+ result.instanceCount = Number(item.value);
426
+ break;
427
+ case 280:
428
+ result.wasProxy = Number(item.value) !== 0;
429
+ break;
430
+ case 281:
431
+ result.isEntity = Number(item.value) !== 0;
432
+ break;
433
+ default:
434
+ // Tolerate unknown CLASS fields without ending early on soft codes.
435
+ break;
436
+ }
437
+ }
438
+ return result;
439
+ };
440
+ AcDbDxfDocumentReader.prototype.readTablesSection = function (filer) {
441
+ while (!filer.atEof) {
442
+ var item = filer.peekItem();
443
+ if (!item)
444
+ break;
445
+ if (Number(item.code) !== 0) {
446
+ filer.readItem();
447
+ continue;
448
+ }
449
+ var name_4 = String(item.value).toUpperCase();
450
+ if (name_4 === 'ENDSEC') {
451
+ filer.readItem();
452
+ break;
453
+ }
454
+ if (name_4 === 'TABLE') {
455
+ filer.readItem();
456
+ var tableName = this.readTableName(filer);
457
+ this.readTable(filer, tableName);
458
+ continue;
459
+ }
460
+ // Unexpected — skip object
461
+ filer.readItem();
462
+ filer.skipToEndOfObject();
463
+ }
464
+ this._db.ensureTextStyleDefaults();
465
+ };
466
+ AcDbDxfDocumentReader.prototype.readTableName = function (filer) {
467
+ while (!filer.atEof) {
468
+ var item = filer.peekItem();
469
+ if (!item)
470
+ return '';
471
+ var code = Number(item.code);
472
+ if (code === 0)
473
+ return '';
474
+ filer.readItem();
475
+ if (code === 2)
476
+ return String(item.value).toUpperCase();
477
+ }
478
+ return '';
479
+ };
480
+ AcDbDxfDocumentReader.prototype.readTable = function (filer, tableName) {
481
+ var _this = this;
482
+ switch (tableName) {
483
+ case 'LAYER':
484
+ this.readNamedTable(filer, 'LAYER', function () { return new AcDbLayerTableRecord(); }, function (r) {
485
+ if (r.name)
486
+ _this._db.tables.layerTable.add(r);
487
+ });
488
+ break;
489
+ case 'LTYPE':
490
+ this.readNamedTable(filer, 'LTYPE', function () { return new AcDbLinetypeTableRecord(); }, function (r) {
491
+ if (r.name)
492
+ _this._db.tables.linetypeTable.add(r);
493
+ });
494
+ break;
495
+ case 'STYLE':
496
+ this.readNamedTable(filer, 'STYLE', function () { return new AcDbTextStyleTableRecord(); }, function (r) {
497
+ // Shape-file STYLE entries often have an empty name.
498
+ _this._db.tables.textStyleTable.add(r);
499
+ _this.collectFontFromStyleRecord(r);
500
+ });
501
+ break;
502
+ case 'DIMSTYLE':
503
+ this.readNamedTable(filer, 'DIMSTYLE', function () { return new AcDbDimStyleTableRecord(); }, function (r) {
504
+ if (r.name)
505
+ _this._db.tables.dimStyleTable.add(r);
506
+ });
507
+ break;
508
+ case 'VPORT':
509
+ this.readNamedTable(filer, 'VPORT', function () { return new AcDbViewportTableRecord(); }, function (r) {
510
+ if (r.name)
511
+ _this._db.tables.viewportTable.add(r);
512
+ });
513
+ break;
514
+ case 'APPID':
515
+ this.readNamedTable(filer, 'APPID', function () { return new AcDbRegAppTableRecord(); }, function (r) {
516
+ if (r.name)
517
+ _this._db.tables.appIdTable.add(r);
518
+ });
519
+ break;
520
+ case 'VIEW':
521
+ this.readNamedTable(filer, 'VIEW', function () { return new AcDbViewTableRecord(); }, function (r) {
522
+ if (r.name)
523
+ _this._db.tables.viewTable.add(r);
524
+ });
525
+ break;
526
+ case 'UCS':
527
+ this.readNamedTable(filer, 'UCS', function () { return new AcDbUcsTableRecord(); }, function (r) {
528
+ if (r.name)
529
+ _this._db.tables.ucsTable.add(r);
530
+ });
531
+ break;
532
+ case 'BLOCK_RECORD':
533
+ this.readBlockRecordTable(filer);
534
+ break;
535
+ default:
536
+ this.skipUntilEndTab(filer);
537
+ break;
538
+ }
539
+ };
540
+ AcDbDxfDocumentReader.prototype.readNamedTable = function (filer, recordType, create, add) {
541
+ while (!filer.atEof) {
542
+ var item = filer.peekItem();
543
+ if (!item)
544
+ break;
545
+ if (Number(item.code) !== 0) {
546
+ filer.readItem();
547
+ continue;
548
+ }
549
+ var name_5 = String(item.value).toUpperCase();
550
+ if (name_5 === 'ENDTAB') {
551
+ filer.readItem();
552
+ break;
553
+ }
554
+ if (name_5 === 'ENDSEC') {
555
+ break;
556
+ }
557
+ if (name_5 === recordType) {
558
+ filer.readItem();
559
+ var record = create();
560
+ record.dxfIn(filer);
561
+ add(record);
562
+ continue;
563
+ }
564
+ filer.readItem();
565
+ filer.skipToEndOfObject();
566
+ }
567
+ };
568
+ AcDbDxfDocumentReader.prototype.readBlockRecordTable = function (filer) {
569
+ var cleared = false;
570
+ while (!filer.atEof) {
571
+ var item = filer.peekItem();
572
+ if (!item)
573
+ break;
574
+ if (Number(item.code) !== 0) {
575
+ filer.readItem();
576
+ continue;
577
+ }
578
+ var name_6 = String(item.value).toUpperCase();
579
+ if (name_6 === 'ENDTAB') {
580
+ filer.readItem();
581
+ break;
582
+ }
583
+ if (name_6 === 'ENDSEC') {
584
+ break;
585
+ }
586
+ if (name_6 === 'BLOCK_RECORD') {
587
+ filer.readItem();
588
+ if (!cleared) {
589
+ this._db.tables.blockTable.removeAll();
590
+ cleared = true;
591
+ }
592
+ var record = new AcDbBlockTableRecord();
593
+ record.dxfIn(filer);
594
+ if (record.name) {
595
+ this._db.tables.blockTable.add(record);
596
+ }
597
+ continue;
598
+ }
599
+ filer.readItem();
600
+ filer.skipToEndOfObject();
601
+ }
602
+ };
603
+ AcDbDxfDocumentReader.prototype.skipUntilEndTab = function (filer) {
604
+ while (!filer.atEof) {
605
+ var item = filer.readItem();
606
+ if (!item)
607
+ break;
608
+ if (Number(item.code) === 0 &&
609
+ String(item.value).toUpperCase() === 'ENDTAB') {
610
+ break;
611
+ }
612
+ }
613
+ };
614
+ AcDbDxfDocumentReader.prototype.readBlocksSection = function (filer) {
615
+ return __awaiter(this, void 0, void 0, function () {
616
+ var batchSize, sinceYield, item, name_7, yielded;
617
+ var _a;
618
+ return __generator(this, function (_b) {
619
+ switch (_b.label) {
620
+ case 0:
621
+ batchSize = Math.max(1, (_a = this._options.entityBatchSize) !== null && _a !== void 0 ? _a : 200);
622
+ sinceYield = 0;
623
+ _b.label = 1;
624
+ case 1:
625
+ if (!!filer.atEof) return [3 /*break*/, 4];
626
+ item = filer.peekItem();
627
+ if (!item)
628
+ return [3 /*break*/, 4];
629
+ if (Number(item.code) !== 0) {
630
+ filer.readItem();
631
+ return [3 /*break*/, 1];
632
+ }
633
+ name_7 = String(item.value).toUpperCase();
634
+ if (name_7 === 'ENDSEC') {
635
+ filer.readItem();
636
+ return [3 /*break*/, 4];
637
+ }
638
+ if (!(name_7 === 'BLOCK')) return [3 /*break*/, 3];
639
+ filer.readItem();
640
+ return [4 /*yield*/, this.readBlockDefinition(filer, batchSize, sinceYield)];
641
+ case 2:
642
+ yielded = _b.sent();
643
+ sinceYield = yielded;
644
+ return [3 /*break*/, 1];
645
+ case 3:
646
+ filer.readItem();
647
+ filer.skipToEndOfObject();
648
+ return [3 /*break*/, 1];
649
+ case 4: return [2 /*return*/];
650
+ }
651
+ });
652
+ });
653
+ };
654
+ /**
655
+ * Reads one BLOCK … ENDBLK definition: sync BTR metadata, then stream entities.
656
+ * @returns Updated sinceYield counter for batching.
657
+ */
658
+ AcDbDxfDocumentReader.prototype.readBlockDefinition = function (filer, batchSize, sinceYield) {
659
+ return __awaiter(this, void 0, void 0, function () {
660
+ var header, btr, item, typeName, entity;
661
+ return __generator(this, function (_a) {
662
+ switch (_a.label) {
663
+ case 0:
664
+ header = this.readBlockBeginFields(filer);
665
+ btr = this.ensureBlockTableRecord(header);
666
+ _a.label = 1;
667
+ case 1:
668
+ if (!!filer.atEof) return [3 /*break*/, 7];
669
+ item = filer.peekItem();
670
+ if (!item)
671
+ return [3 /*break*/, 7];
672
+ if (Number(item.code) !== 0) {
673
+ filer.readItem();
674
+ return [3 /*break*/, 1];
675
+ }
676
+ typeName = String(item.value).toUpperCase();
677
+ if (typeName === 'ENDBLK') {
678
+ filer.readItem();
679
+ filer.skipToEndOfObject();
680
+ return [3 /*break*/, 7];
681
+ }
682
+ if (typeName === 'ENDSEC') {
683
+ return [3 /*break*/, 7];
684
+ }
685
+ filer.readItem();
686
+ if (!this.consumeSeqend(filer, typeName)) return [3 /*break*/, 4];
687
+ sinceYield += 1;
688
+ if (!(sinceYield >= batchSize)) return [3 /*break*/, 3];
689
+ sinceYield = 0;
690
+ return [4 /*yield*/, this.yieldAndReportProgress(filer)];
691
+ case 2:
692
+ _a.sent();
693
+ _a.label = 3;
694
+ case 3: return [3 /*break*/, 1];
695
+ case 4:
696
+ entity = acdbDxfInEntity(filer, typeName);
697
+ if (entity) {
698
+ // Model/paper geometry lives in ENTITIES; skip space BTRs here to
699
+ // avoid duplicating entities that also appear with group 67 / owner.
700
+ if (this.shouldAcceptBlockEntity(btr)) {
701
+ this.acceptEntity(entity, btr);
702
+ }
703
+ }
704
+ else {
705
+ this._unknownEntityCount += 1;
706
+ filer.skipToEndOfObject();
707
+ }
708
+ sinceYield += 1;
709
+ if (!(sinceYield >= batchSize)) return [3 /*break*/, 6];
710
+ sinceYield = 0;
711
+ return [4 /*yield*/, this.yieldAndReportProgress(filer)];
712
+ case 5:
713
+ _a.sent();
714
+ _a.label = 6;
715
+ case 6: return [3 /*break*/, 1];
716
+ case 7: return [2 /*return*/, sinceYield];
717
+ }
718
+ });
719
+ });
720
+ };
721
+ /**
722
+ * Block definitions may own entities; *Model_Space / *Paper_Space contents
723
+ * are streamed from the ENTITIES section in modern DXF.
724
+ */
725
+ AcDbDxfDocumentReader.prototype.shouldAcceptBlockEntity = function (btr) {
726
+ return !btr.isModelSapce && !btr.isPaperSapce;
727
+ };
728
+ /** Consume a SEQEND object after its `(0, SEQEND)` pair was already read. */
729
+ AcDbDxfDocumentReader.prototype.consumeSeqend = function (filer, typeName) {
730
+ if (typeName !== 'SEQEND')
731
+ return false;
732
+ filer.skipToEndOfObject();
733
+ return true;
734
+ };
735
+ AcDbDxfDocumentReader.prototype.readBlockBeginFields = function (filer) {
736
+ var origin = new AcGePoint3d();
737
+ var name = '';
738
+ var flags = 0;
739
+ var pathName = '';
740
+ var objectId;
741
+ var ownerId;
742
+ while (!filer.atEndOfObject && !filer.atEof && !filer.atExtendedData) {
743
+ var item = filer.readItem();
744
+ if (!item)
745
+ break;
746
+ var code = Number(item.code);
747
+ if (code === 100) {
748
+ // Consume AcDbEntity / AcDbBlockBegin markers; continue fields after.
749
+ continue;
750
+ }
751
+ var n = Number(item.value);
752
+ switch (code) {
753
+ case 5:
754
+ objectId = String(item.value);
755
+ break;
756
+ case 330:
757
+ ownerId = String(item.value);
758
+ break;
759
+ case 2:
760
+ case 3:
761
+ if (!name)
762
+ name = String(item.value);
763
+ break;
764
+ case 70:
765
+ flags = n;
766
+ break;
767
+ case 10:
768
+ origin.x = n;
769
+ break;
770
+ case 20:
771
+ origin.y = n;
772
+ break;
773
+ case 30:
774
+ origin.z = n;
775
+ break;
776
+ case 1:
777
+ pathName = String(item.value);
778
+ break;
779
+ case 8:
780
+ case 67:
781
+ case 410:
782
+ // Entity common fields on BLOCK — ignore for BTR metadata.
783
+ break;
784
+ default:
785
+ // Unknown BLOCK begin field — keep scanning until end of object.
786
+ break;
787
+ }
788
+ }
789
+ return { name: name, flags: flags, origin: origin, pathName: pathName, objectId: objectId, ownerId: ownerId };
790
+ };
791
+ AcDbDxfDocumentReader.prototype.ensureBlockTableRecord = function (header) {
792
+ var btr = header.name
793
+ ? this._db.tables.blockTable.getAt(header.name)
794
+ : undefined;
795
+ if (!btr) {
796
+ btr = new AcDbBlockTableRecord();
797
+ btr.name = header.name || '*UNKNOWN';
798
+ if (header.objectId) {
799
+ btr.objectId = header.objectId;
800
+ }
801
+ this._db.tables.blockTable.add(btr);
802
+ }
803
+ btr.origin.copy(header.origin);
804
+ var flags = AcDbBlockTableRecord.sanitizeImportedFlags(header.flags);
805
+ if (header.pathName) {
806
+ btr.pathName = header.pathName;
807
+ if ((flags &
808
+ (AcDbBlockTableRecordFlag.Xref |
809
+ AcDbBlockTableRecordFlag.XrefOverlay)) ===
810
+ 0) {
811
+ flags = flags | AcDbBlockTableRecordFlag.Xref;
812
+ }
813
+ }
814
+ btr.flags = flags;
815
+ return btr;
816
+ };
817
+ AcDbDxfDocumentReader.prototype.readEntitiesSection = function (filer) {
818
+ return __awaiter(this, void 0, void 0, function () {
819
+ var batchSize, sinceYield, modelSpace, item, name_8, entity;
820
+ var _a;
821
+ return __generator(this, function (_b) {
822
+ switch (_b.label) {
823
+ case 0:
824
+ batchSize = Math.max(1, (_a = this._options.entityBatchSize) !== null && _a !== void 0 ? _a : 200);
825
+ sinceYield = 0;
826
+ modelSpace = this._db.tables.blockTable.modelSpace;
827
+ _b.label = 1;
828
+ case 1:
829
+ if (!!filer.atEof) return [3 /*break*/, 7];
830
+ item = filer.peekItem();
831
+ if (!item)
832
+ return [3 /*break*/, 7];
833
+ if (Number(item.code) !== 0) {
834
+ filer.readItem();
835
+ return [3 /*break*/, 1];
836
+ }
837
+ name_8 = String(item.value).toUpperCase();
838
+ if (name_8 === 'ENDSEC') {
839
+ filer.readItem();
840
+ return [3 /*break*/, 7];
841
+ }
842
+ filer.readItem();
843
+ if (!this.consumeSeqend(filer, name_8)) return [3 /*break*/, 4];
844
+ sinceYield += 1;
845
+ if (!(sinceYield >= batchSize)) return [3 /*break*/, 3];
846
+ sinceYield = 0;
847
+ return [4 /*yield*/, this.yieldAndReportProgress(filer)];
848
+ case 2:
849
+ _b.sent();
850
+ _b.label = 3;
851
+ case 3: return [3 /*break*/, 1];
852
+ case 4:
853
+ entity = acdbDxfInEntity(filer, name_8);
854
+ if (entity) {
855
+ this.acceptEntity(entity, this.resolveEntityOwner(entity, modelSpace));
856
+ }
857
+ else {
858
+ this._unknownEntityCount += 1;
859
+ filer.skipToEndOfObject();
860
+ }
861
+ sinceYield += 1;
862
+ if (!(sinceYield >= batchSize)) return [3 /*break*/, 6];
863
+ sinceYield = 0;
864
+ return [4 /*yield*/, this.yieldAndReportProgress(filer)];
865
+ case 5:
866
+ _b.sent();
867
+ _b.label = 6;
868
+ case 6: return [3 /*break*/, 1];
869
+ case 7: return [2 /*return*/];
870
+ }
871
+ });
872
+ });
873
+ };
874
+ /**
875
+ * Chooses model vs paper space BTR for an ENTITIES-section entity.
876
+ * Prefers ownerId (330) when it names a space BTR; falls back to DXF group 67.
877
+ */
878
+ AcDbDxfDocumentReader.prototype.resolveEntityOwner = function (entity, modelSpace) {
879
+ var ownerId = entity.getAttrWithoutException('ownerId');
880
+ if (ownerId) {
881
+ var owner = this._db.tables.blockTable.getIdAt(ownerId);
882
+ if (owner && (owner.isModelSapce || owner.isPaperSapce)) {
883
+ return owner;
884
+ }
885
+ }
886
+ if (entity.dxfPaperSpace) {
887
+ var paper = this._db.tables.blockTable.getAt(AcDbBlockTableRecord.PAPER_SPACE_NAME_PREFIX);
888
+ if (paper)
889
+ return paper;
890
+ }
891
+ return modelSpace;
892
+ };
893
+ /**
894
+ * Appends an entity (or links ATTRIB → INSERT) and collects font style names.
895
+ */
896
+ AcDbDxfDocumentReader.prototype.acceptEntity = function (entity, owner) {
897
+ var e_4, _a;
898
+ if (entity instanceof AcDbAttribute) {
899
+ this.collectFontFromEntity(entity);
900
+ this.linkOrDeferAttribute(entity, owner);
901
+ return;
902
+ }
903
+ owner.appendEntity(entity);
904
+ this.collectFontFromEntity(entity);
905
+ if (entity instanceof AcDbBlockReference) {
906
+ var pending_2 = this._attributeMap.get(entity.objectId);
907
+ if (pending_2 && pending_2.length > 0) {
908
+ try {
909
+ for (var pending_1 = __values(pending_2), pending_1_1 = pending_1.next(); !pending_1_1.done; pending_1_1 = pending_1.next()) {
910
+ var attrib = pending_1_1.value;
911
+ entity.appendAttributes(attrib);
912
+ }
913
+ }
914
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
915
+ finally {
916
+ try {
917
+ if (pending_1_1 && !pending_1_1.done && (_a = pending_1.return)) _a.call(pending_1);
918
+ }
919
+ finally { if (e_4) throw e_4.error; }
920
+ }
921
+ this._attributeMap.delete(entity.objectId);
922
+ }
923
+ }
924
+ };
925
+ AcDbDxfDocumentReader.prototype.linkOrDeferAttribute = function (attrib, ownerBtr) {
926
+ var _a;
927
+ var insertId = attrib.getAttrWithoutException('ownerId');
928
+ if (!insertId || insertId === '0')
929
+ return;
930
+ var insert = (_a = ownerBtr.getIdAt(insertId)) !== null && _a !== void 0 ? _a : this._db.tables.blockTable.getEntityById(insertId);
931
+ if (insert instanceof AcDbBlockReference) {
932
+ insert.appendAttributes(attrib);
933
+ return;
934
+ }
935
+ var list = this._attributeMap.get(insertId);
936
+ if (!list) {
937
+ list = [];
938
+ this._attributeMap.set(insertId, list);
939
+ }
940
+ list.push(attrib);
941
+ };
942
+ AcDbDxfDocumentReader.prototype.flushRemainingAttributes = function () {
943
+ var e_5, _a, e_6, _b;
944
+ try {
945
+ for (var _c = __values(this._attributeMap), _d = _c.next(); !_d.done; _d = _c.next()) {
946
+ var _e = __read(_d.value, 2), insertId = _e[0], attribs = _e[1];
947
+ var insert = this._db.tables.blockTable.getEntityById(insertId);
948
+ if (insert instanceof AcDbBlockReference) {
949
+ try {
950
+ for (var attribs_1 = (e_6 = void 0, __values(attribs)), attribs_1_1 = attribs_1.next(); !attribs_1_1.done; attribs_1_1 = attribs_1.next()) {
951
+ var attrib = attribs_1_1.value;
952
+ insert.appendAttributes(attrib);
953
+ }
954
+ }
955
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
956
+ finally {
957
+ try {
958
+ if (attribs_1_1 && !attribs_1_1.done && (_b = attribs_1.return)) _b.call(attribs_1);
959
+ }
960
+ finally { if (e_6) throw e_6.error; }
961
+ }
962
+ }
963
+ }
964
+ }
965
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
966
+ finally {
967
+ try {
968
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
969
+ }
970
+ finally { if (e_5) throw e_5.error; }
971
+ }
972
+ this._attributeMap.clear();
973
+ };
974
+ /**
975
+ * Collects fonts used by the drawing. The converter emits a single FONT
976
+ * stage after parse so loaders run before entityAppended is flushed.
977
+ */
978
+ AcDbDxfDocumentReader.prototype.collectFontFromStyleRecord = function (record) {
979
+ if (record.fileName) {
980
+ var normalized = AcDbFontNameCollector.normalizeFontFileName(record.fileName);
981
+ if (normalized)
982
+ this._fonts.add(normalized);
983
+ else
984
+ this._fonts.add(record.fileName);
985
+ }
986
+ var extended = record.textStyle.extendedFont;
987
+ if (extended) {
988
+ var normalized = AcDbFontNameCollector.normalizeFontFileName(extended);
989
+ if (normalized)
990
+ this._fonts.add(normalized);
991
+ }
992
+ var bigFont = record.bigFontFileName;
993
+ if (bigFont) {
994
+ var normalized = AcDbFontNameCollector.normalizeFontFileName(bigFont);
995
+ if (normalized)
996
+ this._fonts.add(normalized);
997
+ }
998
+ };
999
+ AcDbDxfDocumentReader.prototype.collectFontFromEntity = function (entity) {
1000
+ var e_7, _a;
1001
+ var _this = this;
1002
+ var addResolvedStyle = function (styleName) {
1003
+ if (!styleName)
1004
+ return;
1005
+ var record = _this._db.tables.textStyleTable.resolveAt(styleName);
1006
+ if (record) {
1007
+ _this.collectFontFromStyleRecord(record);
1008
+ return;
1009
+ }
1010
+ // Fall back to the raw name only when the style table has no match.
1011
+ _this._fonts.add(styleName);
1012
+ };
1013
+ addResolvedStyle(typeof entity.styleName === 'string' ? entity.styleName : undefined);
1014
+ addResolvedStyle(typeof entity.textStyleName === 'string'
1015
+ ? entity.textStyleName
1016
+ : undefined);
1017
+ // MLEADER stores text style as a handle (340/343).
1018
+ if (typeof entity.textStyleId === 'string' && entity.textStyleId) {
1019
+ var record = this._db.tables.textStyleTable.getIdAt(entity.textStyleId);
1020
+ if (record)
1021
+ this.collectFontFromStyleRecord(record);
1022
+ }
1023
+ if (entity instanceof AcDbMText && entity.contents) {
1024
+ try {
1025
+ for (var _b = __values(AcDbFontNameCollector.collectInlineMTextFonts(entity.contents)), _c = _b.next(); !_c.done; _c = _b.next()) {
1026
+ var font = _c.value;
1027
+ this._fonts.add(font);
1028
+ }
1029
+ }
1030
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
1031
+ finally {
1032
+ try {
1033
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1034
+ }
1035
+ finally { if (e_7) throw e_7.error; }
1036
+ }
1037
+ }
1038
+ };
1039
+ AcDbDxfDocumentReader.prototype.skipUntilEndSec = function (filer) {
1040
+ while (!filer.atEof) {
1041
+ var item = filer.readItem();
1042
+ if (!item)
1043
+ break;
1044
+ if (Number(item.code) === 0 &&
1045
+ String(item.value).toUpperCase() === 'ENDSEC') {
1046
+ break;
1047
+ }
1048
+ }
1049
+ };
1050
+ AcDbDxfDocumentReader.prototype.reportParseProgress = function (filer) {
1051
+ return __awaiter(this, void 0, void 0, function () {
1052
+ var _a, onProgress, totalBytes, ratio;
1053
+ return __generator(this, function (_b) {
1054
+ switch (_b.label) {
1055
+ case 0:
1056
+ _a = this._options, onProgress = _a.onProgress, totalBytes = _a.totalBytes;
1057
+ if (!onProgress || !totalBytes || totalBytes <= 0)
1058
+ return [2 /*return*/];
1059
+ ratio = Math.min(1, Math.max(0, filer.position().byteOffset / totalBytes));
1060
+ return [4 /*yield*/, onProgress(ratio)];
1061
+ case 1:
1062
+ _b.sent();
1063
+ return [2 /*return*/];
1064
+ }
1065
+ });
1066
+ });
1067
+ };
1068
+ AcDbDxfDocumentReader.prototype.yieldAndReportProgress = function (filer) {
1069
+ return __awaiter(this, void 0, void 0, function () {
1070
+ return __generator(this, function (_a) {
1071
+ switch (_a.label) {
1072
+ case 0: return [4 /*yield*/, this.reportParseProgress(filer)
1073
+ // Progress may fire every batch; UI yield is time-budgeted so large DXFs
1074
+ // are not dominated by per-batch requestAnimationFrame waits.
1075
+ ];
1076
+ case 1:
1077
+ _a.sent();
1078
+ // Progress may fire every batch; UI yield is time-budgeted so large DXFs
1079
+ // are not dominated by per-batch requestAnimationFrame waits.
1080
+ return [4 /*yield*/, this._yieldGate.maybeYield(accmYieldToUi)];
1081
+ case 2:
1082
+ // Progress may fire every batch; UI yield is time-budgeted so large DXFs
1083
+ // are not dominated by per-batch requestAnimationFrame waits.
1084
+ _a.sent();
1085
+ return [2 /*return*/];
1086
+ }
1087
+ });
1088
+ });
1089
+ };
1090
+ return AcDbDxfDocumentReader;
1091
+ }());
1092
+ export { AcDbDxfDocumentReader };
1093
+ //# sourceMappingURL=AcDbDxfDocumentReader.js.map