@mlightcad/data-model 1.3.3 → 1.3.4

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 (328) hide show
  1. package/dist/data-model.cjs +5 -0
  2. package/dist/data-model.js +25523 -0
  3. package/dist/dxf-parser-worker.js +1715 -0
  4. package/lib/base/AcDbHostApplicationServices.d.ts +96 -0
  5. package/lib/base/AcDbHostApplicationServices.d.ts.map +1 -0
  6. package/lib/base/AcDbHostApplicationServices.js +118 -0
  7. package/lib/base/AcDbHostApplicationServices.js.map +1 -0
  8. package/lib/base/AcDbObject.d.ts +205 -0
  9. package/lib/base/AcDbObject.d.ts.map +1 -0
  10. package/lib/base/AcDbObject.js +236 -0
  11. package/lib/base/AcDbObject.js.map +1 -0
  12. package/lib/base/index.d.ts +3 -0
  13. package/lib/base/index.d.ts.map +1 -0
  14. package/lib/base/index.js +3 -0
  15. package/lib/base/index.js.map +1 -0
  16. package/lib/converter/AcDbBatchProcessing.d.ts +146 -0
  17. package/lib/converter/AcDbBatchProcessing.d.ts.map +1 -0
  18. package/lib/converter/AcDbBatchProcessing.js +272 -0
  19. package/lib/converter/AcDbBatchProcessing.js.map +1 -0
  20. package/lib/converter/AcDbDxfConverter.d.ts +272 -0
  21. package/lib/converter/AcDbDxfConverter.d.ts.map +1 -0
  22. package/lib/converter/AcDbDxfConverter.js +874 -0
  23. package/lib/converter/AcDbDxfConverter.js.map +1 -0
  24. package/lib/converter/AcDbDxfParser.d.ts +23 -0
  25. package/lib/converter/AcDbDxfParser.d.ts.map +1 -0
  26. package/lib/converter/AcDbDxfParser.js +85 -0
  27. package/lib/converter/AcDbDxfParser.js.map +1 -0
  28. package/lib/converter/AcDbEntitiyConverter.d.ts +159 -0
  29. package/lib/converter/AcDbEntitiyConverter.d.ts.map +1 -0
  30. package/lib/converter/AcDbEntitiyConverter.js +659 -0
  31. package/lib/converter/AcDbEntitiyConverter.js.map +1 -0
  32. package/lib/converter/AcDbObjectConverter.d.ts +61 -0
  33. package/lib/converter/AcDbObjectConverter.d.ts.map +1 -0
  34. package/lib/converter/AcDbObjectConverter.js +91 -0
  35. package/lib/converter/AcDbObjectConverter.js.map +1 -0
  36. package/lib/converter/AcDbRegenerator.d.ts +101 -0
  37. package/lib/converter/AcDbRegenerator.d.ts.map +1 -0
  38. package/lib/converter/AcDbRegenerator.js +334 -0
  39. package/lib/converter/AcDbRegenerator.js.map +1 -0
  40. package/lib/converter/index.d.ts +5 -0
  41. package/lib/converter/index.d.ts.map +1 -0
  42. package/lib/converter/index.js +5 -0
  43. package/lib/converter/index.js.map +1 -0
  44. package/lib/converter/worker/AcDbBaseWorker.d.ts +36 -0
  45. package/lib/converter/worker/AcDbBaseWorker.d.ts.map +1 -0
  46. package/lib/converter/worker/AcDbBaseWorker.js +93 -0
  47. package/lib/converter/worker/AcDbBaseWorker.js.map +1 -0
  48. package/lib/converter/worker/AcDbDxfParserWorker.d.ts +11 -0
  49. package/lib/converter/worker/AcDbDxfParserWorker.d.ts.map +1 -0
  50. package/lib/converter/worker/AcDbDxfParserWorker.js +75 -0
  51. package/lib/converter/worker/AcDbDxfParserWorker.js.map +1 -0
  52. package/lib/converter/worker/AcDbWorkerManager.d.ts +107 -0
  53. package/lib/converter/worker/AcDbWorkerManager.d.ts.map +1 -0
  54. package/lib/converter/worker/AcDbWorkerManager.js +360 -0
  55. package/lib/converter/worker/AcDbWorkerManager.js.map +1 -0
  56. package/lib/converter/worker/index.d.ts +3 -0
  57. package/lib/converter/worker/index.d.ts.map +1 -0
  58. package/lib/converter/worker/index.js +3 -0
  59. package/lib/converter/worker/index.js.map +1 -0
  60. package/lib/database/AcDbBlockTable.d.ts +56 -0
  61. package/lib/database/AcDbBlockTable.d.ts.map +1 -0
  62. package/lib/database/AcDbBlockTable.js +98 -0
  63. package/lib/database/AcDbBlockTable.js.map +1 -0
  64. package/lib/database/AcDbBlockTableRecord.d.ts +185 -0
  65. package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -0
  66. package/lib/database/AcDbBlockTableRecord.js +261 -0
  67. package/lib/database/AcDbBlockTableRecord.js.map +1 -0
  68. package/lib/database/AcDbDatabase.d.ts +563 -0
  69. package/lib/database/AcDbDatabase.d.ts.map +1 -0
  70. package/lib/database/AcDbDatabase.js +842 -0
  71. package/lib/database/AcDbDatabase.js.map +1 -0
  72. package/lib/database/AcDbDatabaseConverter.d.ts +292 -0
  73. package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -0
  74. package/lib/database/AcDbDatabaseConverter.js +448 -0
  75. package/lib/database/AcDbDatabaseConverter.js.map +1 -0
  76. package/lib/database/AcDbDatabaseConverterManager.d.ts +141 -0
  77. package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -0
  78. package/lib/database/AcDbDatabaseConverterManager.js +173 -0
  79. package/lib/database/AcDbDatabaseConverterManager.js.map +1 -0
  80. package/lib/database/AcDbDimStyleTable.d.ts +31 -0
  81. package/lib/database/AcDbDimStyleTable.d.ts.map +1 -0
  82. package/lib/database/AcDbDimStyleTable.js +49 -0
  83. package/lib/database/AcDbDimStyleTable.js.map +1 -0
  84. package/lib/database/AcDbDimStyleTableRecord.d.ts +797 -0
  85. package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -0
  86. package/lib/database/AcDbDimStyleTableRecord.js +1294 -0
  87. package/lib/database/AcDbDimStyleTableRecord.js.map +1 -0
  88. package/lib/database/AcDbDwgVersion.d.ts +32 -0
  89. package/lib/database/AcDbDwgVersion.d.ts.map +1 -0
  90. package/lib/database/AcDbDwgVersion.js +126 -0
  91. package/lib/database/AcDbDwgVersion.js.map +1 -0
  92. package/lib/database/AcDbLayerTable.d.ts +51 -0
  93. package/lib/database/AcDbLayerTable.d.ts.map +1 -0
  94. package/lib/database/AcDbLayerTable.js +92 -0
  95. package/lib/database/AcDbLayerTable.js.map +1 -0
  96. package/lib/database/AcDbLayerTableRecord.d.ts +278 -0
  97. package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -0
  98. package/lib/database/AcDbLayerTableRecord.js +397 -0
  99. package/lib/database/AcDbLayerTableRecord.js.map +1 -0
  100. package/lib/database/AcDbLinetypeTable.d.ts +30 -0
  101. package/lib/database/AcDbLinetypeTable.d.ts.map +1 -0
  102. package/lib/database/AcDbLinetypeTable.js +48 -0
  103. package/lib/database/AcDbLinetypeTable.js.map +1 -0
  104. package/lib/database/AcDbLinetypeTableRecord.d.ts +79 -0
  105. package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -0
  106. package/lib/database/AcDbLinetypeTableRecord.js +129 -0
  107. package/lib/database/AcDbLinetypeTableRecord.js.map +1 -0
  108. package/lib/database/AcDbSymbolTable.d.ts +199 -0
  109. package/lib/database/AcDbSymbolTable.d.ts.map +1 -0
  110. package/lib/database/AcDbSymbolTable.js +264 -0
  111. package/lib/database/AcDbSymbolTable.js.map +1 -0
  112. package/lib/database/AcDbSymbolTableRecord.d.ts +61 -0
  113. package/lib/database/AcDbSymbolTableRecord.d.ts.map +1 -0
  114. package/lib/database/AcDbSymbolTableRecord.js +82 -0
  115. package/lib/database/AcDbSymbolTableRecord.js.map +1 -0
  116. package/lib/database/AcDbTextStyleTable.d.ts +48 -0
  117. package/lib/database/AcDbTextStyleTable.d.ts.map +1 -0
  118. package/lib/database/AcDbTextStyleTable.js +112 -0
  119. package/lib/database/AcDbTextStyleTable.js.map +1 -0
  120. package/lib/database/AcDbTextStyleTableRecord.d.ts +179 -0
  121. package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -0
  122. package/lib/database/AcDbTextStyleTableRecord.js +276 -0
  123. package/lib/database/AcDbTextStyleTableRecord.js.map +1 -0
  124. package/lib/database/AcDbViewportTable.d.ts +31 -0
  125. package/lib/database/AcDbViewportTable.d.ts.map +1 -0
  126. package/lib/database/AcDbViewportTable.js +49 -0
  127. package/lib/database/AcDbViewportTable.js.map +1 -0
  128. package/lib/database/AcDbViewportTableRecord.d.ts +154 -0
  129. package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -0
  130. package/lib/database/AcDbViewportTableRecord.js +318 -0
  131. package/lib/database/AcDbViewportTableRecord.js.map +1 -0
  132. package/lib/database/index.d.ts +19 -0
  133. package/lib/database/index.d.ts.map +1 -0
  134. package/lib/database/index.js +19 -0
  135. package/lib/database/index.js.map +1 -0
  136. package/lib/entity/AcDbArc.d.ts +254 -0
  137. package/lib/entity/AcDbArc.d.ts.map +1 -0
  138. package/lib/entity/AcDbArc.js +340 -0
  139. package/lib/entity/AcDbArc.js.map +1 -0
  140. package/lib/entity/AcDbBlockReference.d.ts +190 -0
  141. package/lib/entity/AcDbBlockReference.d.ts.map +1 -0
  142. package/lib/entity/AcDbBlockReference.js +302 -0
  143. package/lib/entity/AcDbBlockReference.js.map +1 -0
  144. package/lib/entity/AcDbCircle.d.ts +186 -0
  145. package/lib/entity/AcDbCircle.d.ts.map +1 -0
  146. package/lib/entity/AcDbCircle.js +249 -0
  147. package/lib/entity/AcDbCircle.js.map +1 -0
  148. package/lib/entity/AcDbCurve.d.ts +42 -0
  149. package/lib/entity/AcDbCurve.d.ts.map +1 -0
  150. package/lib/entity/AcDbCurve.js +44 -0
  151. package/lib/entity/AcDbCurve.js.map +1 -0
  152. package/lib/entity/AcDbEllipse.d.ts +207 -0
  153. package/lib/entity/AcDbEllipse.d.ts.map +1 -0
  154. package/lib/entity/AcDbEllipse.js +272 -0
  155. package/lib/entity/AcDbEllipse.js.map +1 -0
  156. package/lib/entity/AcDbEntity.d.ts +385 -0
  157. package/lib/entity/AcDbEntity.d.ts.map +1 -0
  158. package/lib/entity/AcDbEntity.js +561 -0
  159. package/lib/entity/AcDbEntity.js.map +1 -0
  160. package/lib/entity/AcDbFace.d.ts +151 -0
  161. package/lib/entity/AcDbFace.d.ts.map +1 -0
  162. package/lib/entity/AcDbFace.js +224 -0
  163. package/lib/entity/AcDbFace.js.map +1 -0
  164. package/lib/entity/AcDbHatch.d.ts +174 -0
  165. package/lib/entity/AcDbHatch.d.ts.map +1 -0
  166. package/lib/entity/AcDbHatch.js +250 -0
  167. package/lib/entity/AcDbHatch.js.map +1 -0
  168. package/lib/entity/AcDbLeader.d.ts +243 -0
  169. package/lib/entity/AcDbLeader.d.ts.map +1 -0
  170. package/lib/entity/AcDbLeader.js +358 -0
  171. package/lib/entity/AcDbLeader.js.map +1 -0
  172. package/lib/entity/AcDbLine.d.ts +198 -0
  173. package/lib/entity/AcDbLine.d.ts.map +1 -0
  174. package/lib/entity/AcDbLine.js +300 -0
  175. package/lib/entity/AcDbLine.js.map +1 -0
  176. package/lib/entity/AcDbMText.d.ts +248 -0
  177. package/lib/entity/AcDbMText.d.ts.map +1 -0
  178. package/lib/entity/AcDbMText.js +414 -0
  179. package/lib/entity/AcDbMText.js.map +1 -0
  180. package/lib/entity/AcDbPoint.d.ts +113 -0
  181. package/lib/entity/AcDbPoint.d.ts.map +1 -0
  182. package/lib/entity/AcDbPoint.js +155 -0
  183. package/lib/entity/AcDbPoint.js.map +1 -0
  184. package/lib/entity/AcDbPolyline.d.ts +221 -0
  185. package/lib/entity/AcDbPolyline.d.ts.map +1 -0
  186. package/lib/entity/AcDbPolyline.js +301 -0
  187. package/lib/entity/AcDbPolyline.js.map +1 -0
  188. package/lib/entity/AcDbRasterImage.d.ts +216 -0
  189. package/lib/entity/AcDbRasterImage.d.ts.map +1 -0
  190. package/lib/entity/AcDbRasterImage.js +451 -0
  191. package/lib/entity/AcDbRasterImage.js.map +1 -0
  192. package/lib/entity/AcDbRay.d.ts +150 -0
  193. package/lib/entity/AcDbRay.d.ts.map +1 -0
  194. package/lib/entity/AcDbRay.js +208 -0
  195. package/lib/entity/AcDbRay.js.map +1 -0
  196. package/lib/entity/AcDbSpline.d.ts +135 -0
  197. package/lib/entity/AcDbSpline.d.ts.map +1 -0
  198. package/lib/entity/AcDbSpline.js +142 -0
  199. package/lib/entity/AcDbSpline.js.map +1 -0
  200. package/lib/entity/AcDbTable.d.ts +260 -0
  201. package/lib/entity/AcDbTable.d.ts.map +1 -0
  202. package/lib/entity/AcDbTable.js +452 -0
  203. package/lib/entity/AcDbTable.js.map +1 -0
  204. package/lib/entity/AcDbText.d.ts +388 -0
  205. package/lib/entity/AcDbText.d.ts.map +1 -0
  206. package/lib/entity/AcDbText.js +523 -0
  207. package/lib/entity/AcDbText.js.map +1 -0
  208. package/lib/entity/AcDbTrace.d.ts +193 -0
  209. package/lib/entity/AcDbTrace.d.ts.map +1 -0
  210. package/lib/entity/AcDbTrace.js +271 -0
  211. package/lib/entity/AcDbTrace.js.map +1 -0
  212. package/lib/entity/AcDbViewport.d.ts +173 -0
  213. package/lib/entity/AcDbViewport.d.ts.map +1 -0
  214. package/lib/entity/AcDbViewport.js +295 -0
  215. package/lib/entity/AcDbViewport.js.map +1 -0
  216. package/lib/entity/AcDbWipeout.d.ts +39 -0
  217. package/lib/entity/AcDbWipeout.d.ts.map +1 -0
  218. package/lib/entity/AcDbWipeout.js +70 -0
  219. package/lib/entity/AcDbWipeout.js.map +1 -0
  220. package/lib/entity/AcDbXline.d.ts +151 -0
  221. package/lib/entity/AcDbXline.d.ts.map +1 -0
  222. package/lib/entity/AcDbXline.js +209 -0
  223. package/lib/entity/AcDbXline.js.map +1 -0
  224. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts +92 -0
  225. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts.map +1 -0
  226. package/lib/entity/dimension/AcDb3PointAngularDimension.js +157 -0
  227. package/lib/entity/dimension/AcDb3PointAngularDimension.js.map +1 -0
  228. package/lib/entity/dimension/AcDbAlignedDimension.d.ts +220 -0
  229. package/lib/entity/dimension/AcDbAlignedDimension.d.ts.map +1 -0
  230. package/lib/entity/dimension/AcDbAlignedDimension.js +341 -0
  231. package/lib/entity/dimension/AcDbAlignedDimension.js.map +1 -0
  232. package/lib/entity/dimension/AcDbArcDimension.d.ts +94 -0
  233. package/lib/entity/dimension/AcDbArcDimension.d.ts.map +1 -0
  234. package/lib/entity/dimension/AcDbArcDimension.js +159 -0
  235. package/lib/entity/dimension/AcDbArcDimension.js.map +1 -0
  236. package/lib/entity/dimension/AcDbDiametricDimension.d.ts +145 -0
  237. package/lib/entity/dimension/AcDbDiametricDimension.d.ts.map +1 -0
  238. package/lib/entity/dimension/AcDbDiametricDimension.js +275 -0
  239. package/lib/entity/dimension/AcDbDiametricDimension.js.map +1 -0
  240. package/lib/entity/dimension/AcDbDimension.d.ts +257 -0
  241. package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -0
  242. package/lib/entity/dimension/AcDbDimension.js +466 -0
  243. package/lib/entity/dimension/AcDbDimension.js.map +1 -0
  244. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts +78 -0
  245. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -0
  246. package/lib/entity/dimension/AcDbOrdinateDimension.js +133 -0
  247. package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -0
  248. package/lib/entity/dimension/AcDbRadialDimension.d.ts +214 -0
  249. package/lib/entity/dimension/AcDbRadialDimension.d.ts.map +1 -0
  250. package/lib/entity/dimension/AcDbRadialDimension.js +288 -0
  251. package/lib/entity/dimension/AcDbRadialDimension.js.map +1 -0
  252. package/lib/entity/dimension/index.d.ts +8 -0
  253. package/lib/entity/dimension/index.d.ts.map +1 -0
  254. package/lib/entity/dimension/index.js +8 -0
  255. package/lib/entity/dimension/index.js.map +1 -0
  256. package/lib/entity/index.d.ts +24 -0
  257. package/lib/entity/index.d.ts.map +1 -0
  258. package/lib/entity/index.js +24 -0
  259. package/lib/entity/index.js.map +1 -0
  260. package/lib/index.d.ts +10 -0
  261. package/lib/index.d.ts.map +1 -0
  262. package/lib/index.js +10 -0
  263. package/lib/index.js.map +1 -0
  264. package/lib/misc/AcDbAngleUnits.d.ts +20 -0
  265. package/lib/misc/AcDbAngleUnits.d.ts.map +1 -0
  266. package/lib/misc/AcDbAngleUnits.js +21 -0
  267. package/lib/misc/AcDbAngleUnits.js.map +1 -0
  268. package/lib/misc/AcDbCodePage.d.ts +50 -0
  269. package/lib/misc/AcDbCodePage.d.ts.map +1 -0
  270. package/lib/misc/AcDbCodePage.js +100 -0
  271. package/lib/misc/AcDbCodePage.js.map +1 -0
  272. package/lib/misc/AcDbConstants.d.ts +24 -0
  273. package/lib/misc/AcDbConstants.d.ts.map +1 -0
  274. package/lib/misc/AcDbConstants.js +24 -0
  275. package/lib/misc/AcDbConstants.js.map +1 -0
  276. package/lib/misc/AcDbDimArrowType.d.ts +89 -0
  277. package/lib/misc/AcDbDimArrowType.d.ts.map +1 -0
  278. package/lib/misc/AcDbDimArrowType.js +90 -0
  279. package/lib/misc/AcDbDimArrowType.js.map +1 -0
  280. package/lib/misc/AcDbObjectIterator.d.ts +64 -0
  281. package/lib/misc/AcDbObjectIterator.d.ts.map +1 -0
  282. package/lib/misc/AcDbObjectIterator.js +84 -0
  283. package/lib/misc/AcDbObjectIterator.js.map +1 -0
  284. package/lib/misc/AcDbOsnapMode.d.ts +51 -0
  285. package/lib/misc/AcDbOsnapMode.d.ts.map +1 -0
  286. package/lib/misc/AcDbOsnapMode.js +52 -0
  287. package/lib/misc/AcDbOsnapMode.js.map +1 -0
  288. package/lib/misc/AcDbRenderingCache.d.ts +141 -0
  289. package/lib/misc/AcDbRenderingCache.d.ts.map +1 -0
  290. package/lib/misc/AcDbRenderingCache.js +239 -0
  291. package/lib/misc/AcDbRenderingCache.js.map +1 -0
  292. package/lib/misc/AcDbUnitsValue.d.ts +101 -0
  293. package/lib/misc/AcDbUnitsValue.d.ts.map +1 -0
  294. package/lib/misc/AcDbUnitsValue.js +121 -0
  295. package/lib/misc/AcDbUnitsValue.js.map +1 -0
  296. package/lib/misc/index.d.ts +9 -0
  297. package/lib/misc/index.d.ts.map +1 -0
  298. package/lib/misc/index.js +9 -0
  299. package/lib/misc/index.js.map +1 -0
  300. package/lib/object/AcDbDictionary.d.ts +178 -0
  301. package/lib/object/AcDbDictionary.d.ts.map +1 -0
  302. package/lib/object/AcDbDictionary.js +264 -0
  303. package/lib/object/AcDbDictionary.js.map +1 -0
  304. package/lib/object/AcDbRasterImageDef.d.ts +54 -0
  305. package/lib/object/AcDbRasterImageDef.d.ts.map +1 -0
  306. package/lib/object/AcDbRasterImageDef.js +82 -0
  307. package/lib/object/AcDbRasterImageDef.js.map +1 -0
  308. package/lib/object/index.d.ts +4 -0
  309. package/lib/object/index.d.ts.map +1 -0
  310. package/lib/object/index.js +4 -0
  311. package/lib/object/index.js.map +1 -0
  312. package/lib/object/layout/AcDbLayout.d.ts +190 -0
  313. package/lib/object/layout/AcDbLayout.d.ts.map +1 -0
  314. package/lib/object/layout/AcDbLayout.js +253 -0
  315. package/lib/object/layout/AcDbLayout.js.map +1 -0
  316. package/lib/object/layout/AcDbLayoutDictionary.d.ts +47 -0
  317. package/lib/object/layout/AcDbLayoutDictionary.d.ts.map +1 -0
  318. package/lib/object/layout/AcDbLayoutDictionary.js +122 -0
  319. package/lib/object/layout/AcDbLayoutDictionary.js.map +1 -0
  320. package/lib/object/layout/AcDbLayoutManager.d.ts +188 -0
  321. package/lib/object/layout/AcDbLayoutManager.d.ts.map +1 -0
  322. package/lib/object/layout/AcDbLayoutManager.js +245 -0
  323. package/lib/object/layout/AcDbLayoutManager.js.map +1 -0
  324. package/lib/object/layout/index.d.ts +4 -0
  325. package/lib/object/layout/index.d.ts.map +1 -0
  326. package/lib/object/layout/index.js +4 -0
  327. package/lib/object/layout/index.js.map +1 -0
  328. package/package.json +4 -4
@@ -0,0 +1,146 @@
1
+ type AcDbChunkProcessingCallback = (start: number, end: number) => Promise<void>;
2
+ /**
3
+ * Class used to break up work into smaller chunks that are executed asynchronously.
4
+ *
5
+ * This is often referred to as "batch processing" or "cooperative multitasking," where the
6
+ * time-consuming task is broken into smaller pieces and executed in small intervals to allow
7
+ * the UI to remain responsive.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const batchProcessor = new AcDbBatchProcessing(1000, 10, 50);
12
+ * await batchProcessor.processChunk(async (start, end) => {
13
+ * // Process items from start to end
14
+ * for (let i = start; i < end; i++) {
15
+ * // Process item i
16
+ * }
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class AcDbBatchProcessing {
21
+ /** Total number of items to process */
22
+ private _count;
23
+ /** Number of chunks to process */
24
+ private _numerOfChunk;
25
+ /** Number of items in one chunk */
26
+ private _chunkSize;
27
+ /** Minimum number of items in one chunk */
28
+ private _minimumChunkSize;
29
+ /**
30
+ * Creates a new AcDbBatchProcessing instance.
31
+ *
32
+ * @param count - The total number of items to process
33
+ * @param numerOfChunk - The number of chunks to process
34
+ * @param minimumChunkSize - The minimum number of items in one chunk. If it is greater
35
+ * than the total number of items to process, the total number is used.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const batchProcessor = new AcDbBatchProcessing(1000, 10, 50);
40
+ * ```
41
+ */
42
+ constructor(count: number, numerOfChunk: number, minimumChunkSize: number);
43
+ /**
44
+ * Gets the total number of items to process.
45
+ *
46
+ * @returns The total number of items to process
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const totalItems = batchProcessor.count;
51
+ * ```
52
+ */
53
+ get count(): number;
54
+ /**
55
+ * Gets the number of chunks to process.
56
+ *
57
+ * @returns The number of chunks to process
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const numberOfChunks = batchProcessor.numerOfChunk;
62
+ * ```
63
+ */
64
+ get numerOfChunk(): number;
65
+ /**
66
+ * Gets the minimum number of items in one chunk.
67
+ *
68
+ * @returns The minimum number of items in one chunk
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const minChunkSize = batchProcessor.minimumChunkSize;
73
+ * ```
74
+ */
75
+ get minimumChunkSize(): number;
76
+ /**
77
+ * Sets the minimum number of items in one chunk.
78
+ *
79
+ * @param value - The new minimum chunk size
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * batchProcessor.minimumChunkSize = 100;
84
+ * ```
85
+ */
86
+ set minimumChunkSize(value: number);
87
+ /**
88
+ * Gets the number of items in one chunk.
89
+ *
90
+ * @returns The number of items in one chunk
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const chunkSize = batchProcessor.chunkSize;
95
+ * ```
96
+ */
97
+ get chunkSize(): number;
98
+ /**
99
+ * Calculates the chunk size based on the total count, number of chunks, and minimum chunk size.
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * batchProcessor.calculateChunkSize();
104
+ * ```
105
+ */
106
+ private calculateChunkSize;
107
+ /**
108
+ * Schedules a task to be executed asynchronously.
109
+ *
110
+ * This method uses requestAnimationFrame in browser environments or setTimeout
111
+ * in Node.js environments to schedule the task.
112
+ *
113
+ * @param callback - The callback function to schedule
114
+ * @returns Promise that resolves when the task completes
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * await batchProcessor.scheduleTask(async () => {
119
+ * // Task to be executed asynchronously
120
+ * });
121
+ * ```
122
+ */
123
+ private scheduleTask;
124
+ /**
125
+ * Processes items in chunks using the provided callback function.
126
+ *
127
+ * This method breaks up the work into chunks and processes each chunk
128
+ * asynchronously, allowing the UI to remain responsive.
129
+ *
130
+ * @param callback - The callback function to execute for each chunk
131
+ * @returns Promise that resolves when all chunks have been processed
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * await batchProcessor.processChunk(async (start, end) => {
136
+ * for (let i = start; i < end; i++) {
137
+ * // Process item i
138
+ * await processItem(i);
139
+ * }
140
+ * });
141
+ * ```
142
+ */
143
+ processChunk(callback: AcDbChunkProcessingCallback): Promise<void>;
144
+ }
145
+ export {};
146
+ //# sourceMappingURL=AcDbBatchProcessing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbBatchProcessing.d.ts","sourceRoot":"","sources":["../../src/converter/AcDbBatchProcessing.ts"],"names":[],"mappings":"AACA,KAAK,2BAA2B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAmB;IAC9B,uCAAuC;IACvC,OAAO,CAAC,MAAM,CAAQ;IACtB,kCAAkC;IAClC,OAAO,CAAC,aAAa,CAAQ;IAC7B,mCAAmC;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,2CAA2C;IAC3C,OAAO,CAAC,iBAAiB,CAAa;IAEtC;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;IAOzE;;;;;;;;;OASG;IACH,IAAI,KAAK,WAER;IAED;;;;;;;;;OASG;IACH,IAAI,YAAY,WAEf;IAED;;;;;;;;;OASG;IACH,IAAI,gBAAgB,IAcQ,MAAM,CAZjC;IAED;;;;;;;;;OASG;IACH,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAGjC;IAED;;;;;;;;;OASG;IACH,IAAI,SAAS,WAEZ;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;;;;;;;;;;;;OAkBG;IACU,YAAY,CAAC,QAAQ,EAAE,2BAA2B;CAqBhE"}
@@ -0,0 +1,272 @@
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
+ /**
38
+ * Class used to break up work into smaller chunks that are executed asynchronously.
39
+ *
40
+ * This is often referred to as "batch processing" or "cooperative multitasking," where the
41
+ * time-consuming task is broken into smaller pieces and executed in small intervals to allow
42
+ * the UI to remain responsive.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const batchProcessor = new AcDbBatchProcessing(1000, 10, 50);
47
+ * await batchProcessor.processChunk(async (start, end) => {
48
+ * // Process items from start to end
49
+ * for (let i = start; i < end; i++) {
50
+ * // Process item i
51
+ * }
52
+ * });
53
+ * ```
54
+ */
55
+ var AcDbBatchProcessing = /** @class */ (function () {
56
+ /**
57
+ * Creates a new AcDbBatchProcessing instance.
58
+ *
59
+ * @param count - The total number of items to process
60
+ * @param numerOfChunk - The number of chunks to process
61
+ * @param minimumChunkSize - The minimum number of items in one chunk. If it is greater
62
+ * than the total number of items to process, the total number is used.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const batchProcessor = new AcDbBatchProcessing(1000, 10, 50);
67
+ * ```
68
+ */
69
+ function AcDbBatchProcessing(count, numerOfChunk, minimumChunkSize) {
70
+ /** Number of items in one chunk */
71
+ this._chunkSize = -1;
72
+ /** Minimum number of items in one chunk */
73
+ this._minimumChunkSize = 50;
74
+ this._count = count;
75
+ this._numerOfChunk = numerOfChunk < 1 ? 1 : numerOfChunk;
76
+ this._minimumChunkSize = minimumChunkSize;
77
+ this.calculateChunkSize();
78
+ }
79
+ Object.defineProperty(AcDbBatchProcessing.prototype, "count", {
80
+ /**
81
+ * Gets the total number of items to process.
82
+ *
83
+ * @returns The total number of items to process
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * const totalItems = batchProcessor.count;
88
+ * ```
89
+ */
90
+ get: function () {
91
+ return this._count;
92
+ },
93
+ enumerable: false,
94
+ configurable: true
95
+ });
96
+ Object.defineProperty(AcDbBatchProcessing.prototype, "numerOfChunk", {
97
+ /**
98
+ * Gets the number of chunks to process.
99
+ *
100
+ * @returns The number of chunks to process
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const numberOfChunks = batchProcessor.numerOfChunk;
105
+ * ```
106
+ */
107
+ get: function () {
108
+ return this._numerOfChunk;
109
+ },
110
+ enumerable: false,
111
+ configurable: true
112
+ });
113
+ Object.defineProperty(AcDbBatchProcessing.prototype, "minimumChunkSize", {
114
+ /**
115
+ * Gets the minimum number of items in one chunk.
116
+ *
117
+ * @returns The minimum number of items in one chunk
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * const minChunkSize = batchProcessor.minimumChunkSize;
122
+ * ```
123
+ */
124
+ get: function () {
125
+ return this._minimumChunkSize;
126
+ },
127
+ /**
128
+ * Sets the minimum number of items in one chunk.
129
+ *
130
+ * @param value - The new minimum chunk size
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * batchProcessor.minimumChunkSize = 100;
135
+ * ```
136
+ */
137
+ set: function (value) {
138
+ this._minimumChunkSize = value;
139
+ this.calculateChunkSize();
140
+ },
141
+ enumerable: false,
142
+ configurable: true
143
+ });
144
+ Object.defineProperty(AcDbBatchProcessing.prototype, "chunkSize", {
145
+ /**
146
+ * Gets the number of items in one chunk.
147
+ *
148
+ * @returns The number of items in one chunk
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const chunkSize = batchProcessor.chunkSize;
153
+ * ```
154
+ */
155
+ get: function () {
156
+ return this._chunkSize;
157
+ },
158
+ enumerable: false,
159
+ configurable: true
160
+ });
161
+ /**
162
+ * Calculates the chunk size based on the total count, number of chunks, and minimum chunk size.
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * batchProcessor.calculateChunkSize();
167
+ * ```
168
+ */
169
+ AcDbBatchProcessing.prototype.calculateChunkSize = function () {
170
+ var demicalChunkSize = this._count / this._numerOfChunk;
171
+ if (demicalChunkSize < this._minimumChunkSize) {
172
+ demicalChunkSize = Math.min(this._minimumChunkSize, this._count);
173
+ }
174
+ this._chunkSize =
175
+ demicalChunkSize < 1 ? this._count : Math.floor(demicalChunkSize);
176
+ };
177
+ /**
178
+ * Schedules a task to be executed asynchronously.
179
+ *
180
+ * This method uses requestAnimationFrame in browser environments or setTimeout
181
+ * in Node.js environments to schedule the task.
182
+ *
183
+ * @param callback - The callback function to schedule
184
+ * @returns Promise that resolves when the task completes
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * await batchProcessor.scheduleTask(async () => {
189
+ * // Task to be executed asynchronously
190
+ * });
191
+ * ```
192
+ */
193
+ AcDbBatchProcessing.prototype.scheduleTask = function (callback) {
194
+ return new Promise(function (resolve, reject) {
195
+ var executeCallback = function () {
196
+ // Execute the callback and handle the result
197
+ Promise.resolve(callback()).then(resolve).catch(reject);
198
+ };
199
+ if (typeof window !== 'undefined' &&
200
+ typeof window.requestAnimationFrame === 'function') {
201
+ // Browser environment with requestAnimationFrame
202
+ window.requestAnimationFrame(executeCallback);
203
+ }
204
+ else {
205
+ // Node.js or fallback to setTimeout
206
+ setTimeout(executeCallback, 0);
207
+ }
208
+ });
209
+ };
210
+ /**
211
+ * Processes items in chunks using the provided callback function.
212
+ *
213
+ * This method breaks up the work into chunks and processes each chunk
214
+ * asynchronously, allowing the UI to remain responsive.
215
+ *
216
+ * @param callback - The callback function to execute for each chunk
217
+ * @returns Promise that resolves when all chunks have been processed
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * await batchProcessor.processChunk(async (start, end) => {
222
+ * for (let i = start; i < end; i++) {
223
+ * // Process item i
224
+ * await processItem(i);
225
+ * }
226
+ * });
227
+ * ```
228
+ */
229
+ AcDbBatchProcessing.prototype.processChunk = function (callback) {
230
+ return __awaiter(this, void 0, void 0, function () {
231
+ var currentIndex, processNextChunk;
232
+ var _this = this;
233
+ return __generator(this, function (_a) {
234
+ switch (_a.label) {
235
+ case 0:
236
+ currentIndex = 0;
237
+ processNextChunk = function () { return __awaiter(_this, void 0, void 0, function () {
238
+ var start, end;
239
+ return __generator(this, function (_a) {
240
+ switch (_a.label) {
241
+ case 0:
242
+ start = currentIndex;
243
+ end = Math.min(currentIndex + this._chunkSize, this._count);
244
+ // Call the provided callback with the chunk's range
245
+ return [4 /*yield*/, callback(start, end)];
246
+ case 1:
247
+ // Call the provided callback with the chunk's range
248
+ _a.sent();
249
+ currentIndex = end;
250
+ if (!(currentIndex < this._count)) return [3 /*break*/, 3];
251
+ return [4 /*yield*/, this.scheduleTask(processNextChunk)]; // Schedule the next chunk to be processed asynchronously
252
+ case 2:
253
+ _a.sent(); // Schedule the next chunk to be processed asynchronously
254
+ _a.label = 3;
255
+ case 3: return [2 /*return*/];
256
+ }
257
+ });
258
+ }); };
259
+ // Start processing the first chunk and wait for all chunks to complete
260
+ return [4 /*yield*/, processNextChunk()];
261
+ case 1:
262
+ // Start processing the first chunk and wait for all chunks to complete
263
+ _a.sent();
264
+ return [2 /*return*/];
265
+ }
266
+ });
267
+ });
268
+ };
269
+ return AcDbBatchProcessing;
270
+ }());
271
+ export { AcDbBatchProcessing };
272
+ //# sourceMappingURL=AcDbBatchProcessing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbBatchProcessing.js","sourceRoot":"","sources":["../../src/converter/AcDbBatchProcessing.ts"],"names":[],"mappings":"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"}