@mlightcad/data-model 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +116 -0
  3. package/dist/data-model.js +19887 -0
  4. package/dist/data-model.umd.cjs +5 -0
  5. package/lib/base/AcDbHostApplicationServices.d.ts +30 -0
  6. package/lib/base/AcDbHostApplicationServices.d.ts.map +1 -0
  7. package/lib/base/AcDbHostApplicationServices.js +54 -0
  8. package/lib/base/AcDbHostApplicationServices.js.map +1 -0
  9. package/lib/base/AcDbObject.d.ts +70 -0
  10. package/lib/base/AcDbObject.d.ts.map +1 -0
  11. package/lib/base/AcDbObject.js +113 -0
  12. package/lib/base/AcDbObject.js.map +1 -0
  13. package/lib/base/index.d.ts +3 -0
  14. package/lib/base/index.d.ts.map +1 -0
  15. package/lib/base/index.js +3 -0
  16. package/lib/base/index.js.map +1 -0
  17. package/lib/converter/AcDbBatchProcessing.d.ts +43 -0
  18. package/lib/converter/AcDbBatchProcessing.d.ts.map +1 -0
  19. package/lib/converter/AcDbBatchProcessing.js +165 -0
  20. package/lib/converter/AcDbBatchProcessing.js.map +1 -0
  21. package/lib/converter/AcDbDxfConverter.d.ts +39 -0
  22. package/lib/converter/AcDbDxfConverter.d.ts.map +1 -0
  23. package/lib/converter/AcDbDxfConverter.js +567 -0
  24. package/lib/converter/AcDbDxfConverter.js.map +1 -0
  25. package/lib/converter/AcDbDxfParseWorker.d.ts +2 -0
  26. package/lib/converter/AcDbDxfParseWorker.d.ts.map +1 -0
  27. package/lib/converter/AcDbDxfParseWorker.js +6 -0
  28. package/lib/converter/AcDbDxfParseWorker.js.map +1 -0
  29. package/lib/converter/AcDbEntitiyConverter.d.ts +36 -0
  30. package/lib/converter/AcDbEntitiyConverter.d.ts.map +1 -0
  31. package/lib/converter/AcDbEntitiyConverter.js +491 -0
  32. package/lib/converter/AcDbEntitiyConverter.js.map +1 -0
  33. package/lib/converter/AcDbObjectConverter.d.ts +9 -0
  34. package/lib/converter/AcDbObjectConverter.d.ts.map +1 -0
  35. package/lib/converter/AcDbObjectConverter.js +30 -0
  36. package/lib/converter/AcDbObjectConverter.js.map +1 -0
  37. package/lib/converter/index.d.ts +3 -0
  38. package/lib/converter/index.d.ts.map +1 -0
  39. package/lib/converter/index.js +3 -0
  40. package/lib/converter/index.js.map +1 -0
  41. package/lib/database/AcDbBlockTable.d.ts +15 -0
  42. package/lib/database/AcDbBlockTable.d.ts.map +1 -0
  43. package/lib/database/AcDbBlockTable.js +46 -0
  44. package/lib/database/AcDbBlockTable.js.map +1 -0
  45. package/lib/database/AcDbBlockTableRecord.d.ts +49 -0
  46. package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -0
  47. package/lib/database/AcDbBlockTableRecord.js +108 -0
  48. package/lib/database/AcDbBlockTableRecord.js.map +1 -0
  49. package/lib/database/AcDbDatabase.d.ts +211 -0
  50. package/lib/database/AcDbDatabase.d.ts.map +1 -0
  51. package/lib/database/AcDbDatabase.js +395 -0
  52. package/lib/database/AcDbDatabase.js.map +1 -0
  53. package/lib/database/AcDbDatabaseConverter.d.ts +120 -0
  54. package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -0
  55. package/lib/database/AcDbDatabaseConverter.js +376 -0
  56. package/lib/database/AcDbDatabaseConverter.js.map +1 -0
  57. package/lib/database/AcDbDatabaseConverterManager.d.ts +59 -0
  58. package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -0
  59. package/lib/database/AcDbDatabaseConverterManager.js +98 -0
  60. package/lib/database/AcDbDatabaseConverterManager.js.map +1 -0
  61. package/lib/database/AcDbDatabaseConverterRegister.d.ts +54 -0
  62. package/lib/database/AcDbDatabaseConverterRegister.d.ts.map +1 -0
  63. package/lib/database/AcDbDatabaseConverterRegister.js +84 -0
  64. package/lib/database/AcDbDatabaseConverterRegister.js.map +1 -0
  65. package/lib/database/AcDbDimStyleTable.d.ts +11 -0
  66. package/lib/database/AcDbDimStyleTable.d.ts.map +1 -0
  67. package/lib/database/AcDbDimStyleTable.js +29 -0
  68. package/lib/database/AcDbDimStyleTable.js.map +1 -0
  69. package/lib/database/AcDbDimStyleTableRecord.d.ts +682 -0
  70. package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -0
  71. package/lib/database/AcDbDimStyleTableRecord.js +1250 -0
  72. package/lib/database/AcDbDimStyleTableRecord.js.map +1 -0
  73. package/lib/database/AcDbLayerTable.d.ts +14 -0
  74. package/lib/database/AcDbLayerTable.d.ts.map +1 -0
  75. package/lib/database/AcDbLayerTable.js +55 -0
  76. package/lib/database/AcDbLayerTable.js.map +1 -0
  77. package/lib/database/AcDbLayerTableRecord.d.ts +98 -0
  78. package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -0
  79. package/lib/database/AcDbLayerTableRecord.js +235 -0
  80. package/lib/database/AcDbLayerTableRecord.js.map +1 -0
  81. package/lib/database/AcDbLinetypeTable.d.ts +11 -0
  82. package/lib/database/AcDbLinetypeTable.d.ts.map +1 -0
  83. package/lib/database/AcDbLinetypeTable.js +29 -0
  84. package/lib/database/AcDbLinetypeTable.js.map +1 -0
  85. package/lib/database/AcDbLinetypeTableRecord.d.ts +47 -0
  86. package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -0
  87. package/lib/database/AcDbLinetypeTableRecord.js +97 -0
  88. package/lib/database/AcDbLinetypeTableRecord.js.map +1 -0
  89. package/lib/database/AcDbSymbolTable.d.ts +74 -0
  90. package/lib/database/AcDbSymbolTable.d.ts.map +1 -0
  91. package/lib/database/AcDbSymbolTable.js +136 -0
  92. package/lib/database/AcDbSymbolTable.js.map +1 -0
  93. package/lib/database/AcDbSymbolTableRecord.d.ts +16 -0
  94. package/lib/database/AcDbSymbolTableRecord.d.ts.map +1 -0
  95. package/lib/database/AcDbSymbolTableRecord.js +44 -0
  96. package/lib/database/AcDbSymbolTableRecord.js.map +1 -0
  97. package/lib/database/AcDbTextStyleTable.d.ts +14 -0
  98. package/lib/database/AcDbTextStyleTable.d.ts.map +1 -0
  99. package/lib/database/AcDbTextStyleTable.js +78 -0
  100. package/lib/database/AcDbTextStyleTable.js.map +1 -0
  101. package/lib/database/AcDbTextStyleTableRecord.d.ts +67 -0
  102. package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -0
  103. package/lib/database/AcDbTextStyleTableRecord.js +166 -0
  104. package/lib/database/AcDbTextStyleTableRecord.js.map +1 -0
  105. package/lib/database/AcDbViewportTable.d.ts +11 -0
  106. package/lib/database/AcDbViewportTable.d.ts.map +1 -0
  107. package/lib/database/AcDbViewportTable.js +29 -0
  108. package/lib/database/AcDbViewportTable.js.map +1 -0
  109. package/lib/database/AcDbViewportTableRecord.d.ts +89 -0
  110. package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -0
  111. package/lib/database/AcDbViewportTableRecord.js +262 -0
  112. package/lib/database/AcDbViewportTableRecord.js.map +1 -0
  113. package/lib/database/index.d.ts +18 -0
  114. package/lib/database/index.d.ts.map +1 -0
  115. package/lib/database/index.js +18 -0
  116. package/lib/database/index.js.map +1 -0
  117. package/lib/entity/AcDbArc.d.ts +67 -0
  118. package/lib/entity/AcDbArc.d.ts.map +1 -0
  119. package/lib/entity/AcDbArc.js +154 -0
  120. package/lib/entity/AcDbArc.js.map +1 -0
  121. package/lib/entity/AcDbBlockReference.d.ts +54 -0
  122. package/lib/entity/AcDbBlockReference.d.ts.map +1 -0
  123. package/lib/entity/AcDbBlockReference.js +168 -0
  124. package/lib/entity/AcDbBlockReference.js.map +1 -0
  125. package/lib/entity/AcDbCircle.d.ts +51 -0
  126. package/lib/entity/AcDbCircle.d.ts.map +1 -0
  127. package/lib/entity/AcDbCircle.js +115 -0
  128. package/lib/entity/AcDbCircle.js.map +1 -0
  129. package/lib/entity/AcDbCurve.d.ts +9 -0
  130. package/lib/entity/AcDbCurve.d.ts.map +1 -0
  131. package/lib/entity/AcDbCurve.js +25 -0
  132. package/lib/entity/AcDbCurve.js.map +1 -0
  133. package/lib/entity/AcDbEllipse.d.ts +53 -0
  134. package/lib/entity/AcDbEllipse.d.ts.map +1 -0
  135. package/lib/entity/AcDbEllipse.js +119 -0
  136. package/lib/entity/AcDbEllipse.js.map +1 -0
  137. package/lib/entity/AcDbEntity.d.ts +103 -0
  138. package/lib/entity/AcDbEntity.d.ts.map +1 -0
  139. package/lib/entity/AcDbEntity.js +292 -0
  140. package/lib/entity/AcDbEntity.js.map +1 -0
  141. package/lib/entity/AcDbHatch.d.ts +116 -0
  142. package/lib/entity/AcDbHatch.d.ts.map +1 -0
  143. package/lib/entity/AcDbHatch.js +200 -0
  144. package/lib/entity/AcDbHatch.js.map +1 -0
  145. package/lib/entity/AcDbLeader.d.ts +94 -0
  146. package/lib/entity/AcDbLeader.d.ts.map +1 -0
  147. package/lib/entity/AcDbLeader.js +217 -0
  148. package/lib/entity/AcDbLeader.js.map +1 -0
  149. package/lib/entity/AcDbLine.d.ts +55 -0
  150. package/lib/entity/AcDbLine.d.ts.map +1 -0
  151. package/lib/entity/AcDbLine.js +158 -0
  152. package/lib/entity/AcDbLine.js.map +1 -0
  153. package/lib/entity/AcDbMText.d.ts +119 -0
  154. package/lib/entity/AcDbMText.d.ts.map +1 -0
  155. package/lib/entity/AcDbMText.js +300 -0
  156. package/lib/entity/AcDbMText.js.map +1 -0
  157. package/lib/entity/AcDbPoint.d.ts +32 -0
  158. package/lib/entity/AcDbPoint.d.ts.map +1 -0
  159. package/lib/entity/AcDbPoint.js +75 -0
  160. package/lib/entity/AcDbPoint.js.map +1 -0
  161. package/lib/entity/AcDbPolyline.d.ts +72 -0
  162. package/lib/entity/AcDbPolyline.d.ts.map +1 -0
  163. package/lib/entity/AcDbPolyline.js +154 -0
  164. package/lib/entity/AcDbPolyline.js.map +1 -0
  165. package/lib/entity/AcDbRasterImage.d.ts +163 -0
  166. package/lib/entity/AcDbRasterImage.d.ts.map +1 -0
  167. package/lib/entity/AcDbRasterImage.js +406 -0
  168. package/lib/entity/AcDbRasterImage.js.map +1 -0
  169. package/lib/entity/AcDbRay.d.ts +42 -0
  170. package/lib/entity/AcDbRay.d.ts.map +1 -0
  171. package/lib/entity/AcDbRay.js +102 -0
  172. package/lib/entity/AcDbRay.js.map +1 -0
  173. package/lib/entity/AcDbSpline.d.ts +37 -0
  174. package/lib/entity/AcDbSpline.d.ts.map +1 -0
  175. package/lib/entity/AcDbSpline.js +71 -0
  176. package/lib/entity/AcDbSpline.js.map +1 -0
  177. package/lib/entity/AcDbTable.d.ts +141 -0
  178. package/lib/entity/AcDbTable.d.ts.map +1 -0
  179. package/lib/entity/AcDbTable.js +358 -0
  180. package/lib/entity/AcDbTable.js.map +1 -0
  181. package/lib/entity/AcDbText.d.ts +110 -0
  182. package/lib/entity/AcDbText.d.ts.map +1 -0
  183. package/lib/entity/AcDbText.js +255 -0
  184. package/lib/entity/AcDbText.js.map +1 -0
  185. package/lib/entity/AcDbTrace.d.ts +64 -0
  186. package/lib/entity/AcDbTrace.d.ts.map +1 -0
  187. package/lib/entity/AcDbTrace.js +145 -0
  188. package/lib/entity/AcDbTrace.js.map +1 -0
  189. package/lib/entity/AcDbViewport.d.ts +58 -0
  190. package/lib/entity/AcDbViewport.d.ts.map +1 -0
  191. package/lib/entity/AcDbViewport.js +179 -0
  192. package/lib/entity/AcDbViewport.js.map +1 -0
  193. package/lib/entity/AcDbWipeout.d.ts +9 -0
  194. package/lib/entity/AcDbWipeout.d.ts.map +1 -0
  195. package/lib/entity/AcDbWipeout.js +40 -0
  196. package/lib/entity/AcDbWipeout.js.map +1 -0
  197. package/lib/entity/AcDbXline.d.ts +42 -0
  198. package/lib/entity/AcDbXline.d.ts.map +1 -0
  199. package/lib/entity/AcDbXline.js +102 -0
  200. package/lib/entity/AcDbXline.js.map +1 -0
  201. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts +46 -0
  202. package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts.map +1 -0
  203. package/lib/entity/dimension/AcDb3PointAngularDimension.js +111 -0
  204. package/lib/entity/dimension/AcDb3PointAngularDimension.js.map +1 -0
  205. package/lib/entity/dimension/AcDbAlignedDimension.d.ts +77 -0
  206. package/lib/entity/dimension/AcDbAlignedDimension.d.ts.map +1 -0
  207. package/lib/entity/dimension/AcDbAlignedDimension.js +203 -0
  208. package/lib/entity/dimension/AcDbAlignedDimension.js.map +1 -0
  209. package/lib/entity/dimension/AcDbArcDimension.d.ts +46 -0
  210. package/lib/entity/dimension/AcDbArcDimension.d.ts.map +1 -0
  211. package/lib/entity/dimension/AcDbArcDimension.js +111 -0
  212. package/lib/entity/dimension/AcDbArcDimension.js.map +1 -0
  213. package/lib/entity/dimension/AcDbDiametricDimension.d.ts +69 -0
  214. package/lib/entity/dimension/AcDbDiametricDimension.d.ts.map +1 -0
  215. package/lib/entity/dimension/AcDbDiametricDimension.js +199 -0
  216. package/lib/entity/dimension/AcDbDiametricDimension.js.map +1 -0
  217. package/lib/entity/dimension/AcDbDimension.d.ts +161 -0
  218. package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -0
  219. package/lib/entity/dimension/AcDbDimension.js +375 -0
  220. package/lib/entity/dimension/AcDbDimension.js.map +1 -0
  221. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts +44 -0
  222. package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -0
  223. package/lib/entity/dimension/AcDbOrdinateDimension.js +99 -0
  224. package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -0
  225. package/lib/entity/dimension/AcDbRadialDimension.d.ts +69 -0
  226. package/lib/entity/dimension/AcDbRadialDimension.d.ts.map +1 -0
  227. package/lib/entity/dimension/AcDbRadialDimension.js +148 -0
  228. package/lib/entity/dimension/AcDbRadialDimension.js.map +1 -0
  229. package/lib/entity/dimension/index.d.ts +8 -0
  230. package/lib/entity/dimension/index.d.ts.map +1 -0
  231. package/lib/entity/dimension/index.js +8 -0
  232. package/lib/entity/dimension/index.js.map +1 -0
  233. package/lib/entity/index.d.ts +23 -0
  234. package/lib/entity/index.d.ts.map +1 -0
  235. package/lib/entity/index.js +23 -0
  236. package/lib/entity/index.js.map +1 -0
  237. package/lib/index.d.ts +10 -0
  238. package/lib/index.d.ts.map +1 -0
  239. package/lib/index.js +10 -0
  240. package/lib/index.js.map +1 -0
  241. package/lib/misc/AcDbAngleUnits.d.ts +8 -0
  242. package/lib/misc/AcDbAngleUnits.d.ts.map +1 -0
  243. package/lib/misc/AcDbAngleUnits.js +9 -0
  244. package/lib/misc/AcDbAngleUnits.js.map +1 -0
  245. package/lib/misc/AcDbConstants.d.ts +4 -0
  246. package/lib/misc/AcDbConstants.d.ts.map +1 -0
  247. package/lib/misc/AcDbConstants.js +4 -0
  248. package/lib/misc/AcDbConstants.js.map +1 -0
  249. package/lib/misc/AcDbDimArrowType.d.ts +86 -0
  250. package/lib/misc/AcDbDimArrowType.d.ts.map +1 -0
  251. package/lib/misc/AcDbDimArrowType.js +87 -0
  252. package/lib/misc/AcDbDimArrowType.js.map +1 -0
  253. package/lib/misc/AcDbObjectIterator.d.ts +16 -0
  254. package/lib/misc/AcDbObjectIterator.d.ts.map +1 -0
  255. package/lib/misc/AcDbObjectIterator.js +28 -0
  256. package/lib/misc/AcDbObjectIterator.js.map +1 -0
  257. package/lib/misc/AcDbOsnapMode.d.ts +43 -0
  258. package/lib/misc/AcDbOsnapMode.d.ts.map +1 -0
  259. package/lib/misc/AcDbOsnapMode.js +44 -0
  260. package/lib/misc/AcDbOsnapMode.js.map +1 -0
  261. package/lib/misc/AcDbRenderingCache.d.ts +61 -0
  262. package/lib/misc/AcDbRenderingCache.d.ts.map +1 -0
  263. package/lib/misc/AcDbRenderingCache.js +154 -0
  264. package/lib/misc/AcDbRenderingCache.js.map +1 -0
  265. package/lib/misc/AcDbUnitsValue.d.ts +51 -0
  266. package/lib/misc/AcDbUnitsValue.d.ts.map +1 -0
  267. package/lib/misc/AcDbUnitsValue.js +71 -0
  268. package/lib/misc/AcDbUnitsValue.js.map +1 -0
  269. package/lib/misc/index.d.ts +8 -0
  270. package/lib/misc/index.d.ts.map +1 -0
  271. package/lib/misc/index.js +8 -0
  272. package/lib/misc/index.js.map +1 -0
  273. package/lib/object/AcDbDictionary.d.ts +80 -0
  274. package/lib/object/AcDbDictionary.d.ts.map +1 -0
  275. package/lib/object/AcDbDictionary.js +144 -0
  276. package/lib/object/AcDbDictionary.js.map +1 -0
  277. package/lib/object/AcDbRasterImageDef.d.ts +25 -0
  278. package/lib/object/AcDbRasterImageDef.d.ts.map +1 -0
  279. package/lib/object/AcDbRasterImageDef.js +54 -0
  280. package/lib/object/AcDbRasterImageDef.js.map +1 -0
  281. package/lib/object/index.d.ts +4 -0
  282. package/lib/object/index.d.ts.map +1 -0
  283. package/lib/object/index.js +4 -0
  284. package/lib/object/index.js.map +1 -0
  285. package/lib/object/layout/AcDbLayout.d.ts +51 -0
  286. package/lib/object/layout/AcDbLayout.d.ts.map +1 -0
  287. package/lib/object/layout/AcDbLayout.js +120 -0
  288. package/lib/object/layout/AcDbLayout.js.map +1 -0
  289. package/lib/object/layout/AcDbLayoutDictionary.d.ts +19 -0
  290. package/lib/object/layout/AcDbLayoutDictionary.d.ts.map +1 -0
  291. package/lib/object/layout/AcDbLayoutDictionary.js +94 -0
  292. package/lib/object/layout/AcDbLayoutDictionary.js.map +1 -0
  293. package/lib/object/layout/AcDbLayoutManager.d.ts +101 -0
  294. package/lib/object/layout/AcDbLayoutManager.d.ts.map +1 -0
  295. package/lib/object/layout/AcDbLayoutManager.js +154 -0
  296. package/lib/object/layout/AcDbLayoutManager.js.map +1 -0
  297. package/lib/object/layout/index.d.ts +4 -0
  298. package/lib/object/layout/index.d.ts.map +1 -0
  299. package/lib/object/layout/index.js +4 -0
  300. package/lib/object/layout/index.js.map +1 -0
  301. package/package.json +46 -0
@@ -0,0 +1,30 @@
1
+ import { AcDbDatabase } from '../database/AcDbDatabase';
2
+ import { AcDbLayoutManager } from '../object/layout/AcDbLayoutManager';
3
+ /**
4
+ * Return the singleton instance of the host application services
5
+ * @returns
6
+ */
7
+ export declare function acdbHostApplicationServices(): AcDbHostApplicationServices;
8
+ /**
9
+ * The AcDbHostApplicationServices class provides various services to host applications at runtime.
10
+ */
11
+ export declare class AcDbHostApplicationServices {
12
+ private _workingDatabase;
13
+ private _layoutManager;
14
+ static instance: AcDbHostApplicationServices;
15
+ private constructor();
16
+ /**
17
+ * Get the current working database.
18
+ */
19
+ get workingDatabase(): AcDbDatabase;
20
+ /**
21
+ * Set the working database.
22
+ * @param database Database to make the new working database
23
+ */
24
+ set workingDatabase(database: AcDbDatabase);
25
+ /**
26
+ * The one and only instance of the layout manager object.
27
+ */
28
+ get layoutManager(): AcDbLayoutManager;
29
+ }
30
+ //# sourceMappingURL=AcDbHostApplicationServices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbHostApplicationServices.d.ts","sourceRoot":"","sources":["../../src/base/AcDbHostApplicationServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE;;;GAGG;AACH,wBAAgB,2BAA2B,gCAE1C;AAED;;GAEG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAc,QAAQ,EAAE,2BAA2B,CAChB;IAEnC,OAAO;IAIP;;OAEG;IACH,IAAI,eAAe,IAAI,YAAY,CAQlC;IAED;;;OAGG;IACH,IAAI,eAAe,CAAC,QAAQ,EAAE,YAAY,EAEzC;IAED;;OAEG;IACH,IAAI,aAAa,sBAEhB;CACF"}
@@ -0,0 +1,54 @@
1
+ import { AcDbLayoutManager } from '../object/layout/AcDbLayoutManager';
2
+ /**
3
+ * Return the singleton instance of the host application services
4
+ * @returns
5
+ */
6
+ export function acdbHostApplicationServices() {
7
+ return AcDbHostApplicationServices.instance;
8
+ }
9
+ /**
10
+ * The AcDbHostApplicationServices class provides various services to host applications at runtime.
11
+ */
12
+ var AcDbHostApplicationServices = /** @class */ (function () {
13
+ function AcDbHostApplicationServices() {
14
+ this._workingDatabase = null;
15
+ // Do nothing
16
+ this._layoutManager = new AcDbLayoutManager();
17
+ }
18
+ Object.defineProperty(AcDbHostApplicationServices.prototype, "workingDatabase", {
19
+ /**
20
+ * Get the current working database.
21
+ */
22
+ get: function () {
23
+ if (this._workingDatabase == null) {
24
+ throw new Error('The current working database must be set before using it!');
25
+ }
26
+ else {
27
+ return this._workingDatabase;
28
+ }
29
+ },
30
+ /**
31
+ * Set the working database.
32
+ * @param database Database to make the new working database
33
+ */
34
+ set: function (database) {
35
+ this._workingDatabase = database;
36
+ },
37
+ enumerable: false,
38
+ configurable: true
39
+ });
40
+ Object.defineProperty(AcDbHostApplicationServices.prototype, "layoutManager", {
41
+ /**
42
+ * The one and only instance of the layout manager object.
43
+ */
44
+ get: function () {
45
+ return this._layoutManager;
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ AcDbHostApplicationServices.instance = new AcDbHostApplicationServices();
51
+ return AcDbHostApplicationServices;
52
+ }());
53
+ export { AcDbHostApplicationServices };
54
+ //# sourceMappingURL=AcDbHostApplicationServices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbHostApplicationServices.js","sourceRoot":"","sources":["../../src/base/AcDbHostApplicationServices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAEtE;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,2BAA2B,CAAC,QAAQ,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH;IAME;QALQ,qBAAgB,GAAwB,IAAI,CAAA;QAMlD,aAAa;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAiB,EAAE,CAAA;IAC/C,CAAC;IAID,sBAAI,wDAAe;QAHnB;;WAEG;aACH;YACE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,gBAAgB,CAAA;YAC9B,CAAC;QACH,CAAC;QAED;;;WAGG;aACH,UAAoB,QAAsB;YACxC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAA;QAClC,CAAC;;;OARA;IAaD,sBAAI,sDAAa;QAHjB;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,cAAc,CAAA;QAC5B,CAAC;;;OAAA;IAjCa,oCAAQ,GACpB,IAAI,2BAA2B,EAAE,AADb,CACa;IAiCrC,kCAAC;CAAA,AArCD,IAqCC;SArCY,2BAA2B"}
@@ -0,0 +1,70 @@
1
+ import { AcCmAttributes, AcCmObject, AcCmStringKey } from '@mlightcad/common';
2
+ import { AcDbDatabase } from '../database/AcDbDatabase';
3
+ export type AcDbObjectId = string;
4
+ export interface AcDbObjectAttrs extends AcCmAttributes {
5
+ objectId?: AcDbObjectId;
6
+ ownerId?: AcDbObjectId;
7
+ }
8
+ /**
9
+ * The base class for all objects that reside in drawing database.
10
+ */
11
+ export declare class AcDbObject<ATTRS extends AcDbObjectAttrs = AcDbObjectAttrs> {
12
+ private _database?;
13
+ private _attrs;
14
+ /**
15
+ * Default constructor.
16
+ * @param attrs Input attribute values of this object
17
+ * @param defaultAttrs Input default values of attributes of this object.
18
+ */
19
+ constructor(attrs?: Partial<ATTRS>, defaultAttrs?: Partial<ATTRS>);
20
+ /**
21
+ * Attributes of this object
22
+ */
23
+ get attrs(): AcCmObject<ATTRS>;
24
+ /**
25
+ * Get value of the specified attribute. One exception will be thrown if the specified attribute doesn't exist.
26
+ * @param attrName Input attribute name
27
+ * @returns Return value of the specified attribute
28
+ */
29
+ getAttr(attrName: AcCmStringKey<ATTRS>): ATTRS[AcCmStringKey<ATTRS>] & ({} | null);
30
+ /**
31
+ * Get value of the specified attribute. Return undefined if the specified attribute doesn't exist.
32
+ * @param attrName Input attribute name
33
+ * @returns Return value of the specified attribute. Return undefined if the specified attribute
34
+ * doesn't exist.
35
+ */
36
+ getAttrWithoutException(attrName: AcCmStringKey<ATTRS>): ATTRS[AcCmStringKey<ATTRS>] | undefined;
37
+ /**
38
+ * Set value of the attribute
39
+ * @param attrName Input attribute name
40
+ * @param val Input value of the attribute
41
+ */
42
+ setAttr<A extends AcCmStringKey<ATTRS>>(attrName: A, val?: ATTRS[A]): void;
43
+ /**
44
+ * Object id.
45
+ *
46
+ * AutoCAD uses 64-bit integer to represent handle. It exceeds the maximum integer value
47
+ * (Number.MAX_SAFE_INTEGER, 0x1F FFFF FFFF FFF) of JavaScript number. So string is used to represent
48
+ * the handle of one object.
49
+ */
50
+ get objectId(): AcDbObjectId;
51
+ set objectId(value: AcDbObjectId);
52
+ /**
53
+ * The object Id of the owner of the object.
54
+ */
55
+ get ownerId(): AcDbObjectId;
56
+ set ownerId(value: AcDbObjectId);
57
+ /**
58
+ * The database in which the object is resident. When one object isn't added into database, the database
59
+ * property of this object will be current working database. After it is added into database, it will be
60
+ * set automatically. So it means you should never set its value by your own.
61
+ */
62
+ get database(): AcDbDatabase;
63
+ set database(db: AcDbDatabase);
64
+ /**
65
+ * Closes the object. All changes made to the object since it was opened are committed to the database,
66
+ * and a "closed" notification is sent.
67
+ */
68
+ close(): void;
69
+ }
70
+ //# sourceMappingURL=AcDbObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbObject.d.ts","sourceRoot":"","sources":["../../src/base/AcDbObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAI7E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,UAAU,CAAC,KAAK,SAAS,eAAe,GAAG,eAAe;IACrE,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,MAAM,CAAmB;IAEjC;;;;OAIG;gBACS,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;IAMjE;;OAEG;IACH,IAAI,KAAK,sBAER;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;IAUtC;;;;;OAKG;IACH,uBAAuB,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;IAItD;;;;OAIG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAInE;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,YAAY,CAE3B;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,EAE/B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,YAAY,CAE1B;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,EAE9B;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAAI,YAAY,CAI3B;IACD,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,EAE5B;IAED;;;OAGG;IACH,KAAK;CACN"}
@@ -0,0 +1,113 @@
1
+ import { AcCmObject } from '@mlightcad/common';
2
+ import { defaults } from 'lodash-es';
3
+ import { uid } from 'uid';
4
+ import { acdbHostApplicationServices } from './AcDbHostApplicationServices';
5
+ /**
6
+ * The base class for all objects that reside in drawing database.
7
+ */
8
+ var AcDbObject = /** @class */ (function () {
9
+ /**
10
+ * Default constructor.
11
+ * @param attrs Input attribute values of this object
12
+ * @param defaultAttrs Input default values of attributes of this object.
13
+ */
14
+ function AcDbObject(attrs, defaultAttrs) {
15
+ attrs = attrs || {};
16
+ defaults(attrs, { objectId: uid() });
17
+ this._attrs = new AcCmObject(attrs, defaultAttrs);
18
+ }
19
+ Object.defineProperty(AcDbObject.prototype, "attrs", {
20
+ /**
21
+ * Attributes of this object
22
+ */
23
+ get: function () {
24
+ return this._attrs;
25
+ },
26
+ enumerable: false,
27
+ configurable: true
28
+ });
29
+ /**
30
+ * Get value of the specified attribute. One exception will be thrown if the specified attribute doesn't exist.
31
+ * @param attrName Input attribute name
32
+ * @returns Return value of the specified attribute
33
+ */
34
+ AcDbObject.prototype.getAttr = function (attrName) {
35
+ var value = this._attrs.get(attrName);
36
+ if (value === undefined) {
37
+ throw new Error("[AcDbObject] Attribute name '".concat(attrName, "' does't exist in this object!"));
38
+ }
39
+ return value;
40
+ };
41
+ /**
42
+ * Get value of the specified attribute. Return undefined if the specified attribute doesn't exist.
43
+ * @param attrName Input attribute name
44
+ * @returns Return value of the specified attribute. Return undefined if the specified attribute
45
+ * doesn't exist.
46
+ */
47
+ AcDbObject.prototype.getAttrWithoutException = function (attrName) {
48
+ return this._attrs.get(attrName);
49
+ };
50
+ /**
51
+ * Set value of the attribute
52
+ * @param attrName Input attribute name
53
+ * @param val Input value of the attribute
54
+ */
55
+ AcDbObject.prototype.setAttr = function (attrName, val) {
56
+ this._attrs.set(attrName, val);
57
+ };
58
+ Object.defineProperty(AcDbObject.prototype, "objectId", {
59
+ /**
60
+ * Object id.
61
+ *
62
+ * AutoCAD uses 64-bit integer to represent handle. It exceeds the maximum integer value
63
+ * (Number.MAX_SAFE_INTEGER, 0x1F FFFF FFFF FFF) of JavaScript number. So string is used to represent
64
+ * the handle of one object.
65
+ */
66
+ get: function () {
67
+ return this.getAttr('objectId');
68
+ },
69
+ set: function (value) {
70
+ this._attrs.set('objectId', value);
71
+ },
72
+ enumerable: false,
73
+ configurable: true
74
+ });
75
+ Object.defineProperty(AcDbObject.prototype, "ownerId", {
76
+ /**
77
+ * The object Id of the owner of the object.
78
+ */
79
+ get: function () {
80
+ return this.getAttr('ownerId');
81
+ },
82
+ set: function (value) {
83
+ this._attrs.set('ownerId', value);
84
+ },
85
+ enumerable: false,
86
+ configurable: true
87
+ });
88
+ Object.defineProperty(AcDbObject.prototype, "database", {
89
+ /**
90
+ * The database in which the object is resident. When one object isn't added into database, the database
91
+ * property of this object will be current working database. After it is added into database, it will be
92
+ * set automatically. So it means you should never set its value by your own.
93
+ */
94
+ get: function () {
95
+ return this._database
96
+ ? this._database
97
+ : acdbHostApplicationServices().workingDatabase;
98
+ },
99
+ set: function (db) {
100
+ this._database = db;
101
+ },
102
+ enumerable: false,
103
+ configurable: true
104
+ });
105
+ /**
106
+ * Closes the object. All changes made to the object since it was opened are committed to the database,
107
+ * and a "closed" notification is sent.
108
+ */
109
+ AcDbObject.prototype.close = function () { };
110
+ return AcDbObject;
111
+ }());
112
+ export { AcDbObject };
113
+ //# sourceMappingURL=AcDbObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbObject.js","sourceRoot":"","sources":["../../src/base/AcDbObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAiB,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAGzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAS3E;;GAEG;AACH;IAIE;;;;OAIG;IACH,oBAAY,KAAsB,EAAE,YAA6B;QAC/D,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;QACnB,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAQ,KAAK,EAAE,YAAY,CAAC,CAAA;IAC1D,CAAC;IAKD,sBAAI,6BAAK;QAHT;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;;;OAAA;IAED;;;;OAIG;IACH,4BAAO,GAAP,UAAQ,QAA8B;QACpC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,uCAAgC,QAAQ,mCAAgC,CACzE,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,4CAAuB,GAAvB,UAAwB,QAA8B;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED;;;;OAIG;IACH,4BAAO,GAAP,UAAwC,QAAW,EAAE,GAAc;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;IASD,sBAAI,gCAAQ;QAPZ;;;;;;WAMG;aACH;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACjC,CAAC;aACD,UAAa,KAAmB;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;;;OAHA;IAQD,sBAAI,+BAAO;QAHX;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC;aACD,UAAY,KAAmB;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;;;OAHA;IAUD,sBAAI,gCAAQ;QALZ;;;;WAIG;aACH;YACE,OAAO,IAAI,CAAC,SAAS;gBACnB,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,2BAA2B,EAAE,CAAC,eAAe,CAAA;QACnD,CAAC;aACD,UAAa,EAAgB;YAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACrB,CAAC;;;OAHA;IAKD;;;OAGG;IACH,0BAAK,GAAL,cAAS,CAAC;IACZ,iBAAC;AAAD,CAAC,AAnGD,IAmGC"}
@@ -0,0 +1,3 @@
1
+ export * from './AcDbHostApplicationServices';
2
+ export * from './AcDbObject';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './AcDbHostApplicationServices';
2
+ export * from './AcDbObject';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,cAAc,CAAA"}
@@ -0,0 +1,43 @@
1
+ type AcDbChunkProcessingCallback = (start: number, end: number) => Promise<void>;
2
+ /**
3
+ * This class is used to break up the work into smaller chunks that are executed asynchronously.
4
+ * This is often referred to "batch processing" or "cooperative multitasking," where the
5
+ * time-consuming task is broken into smaller pieces and executed in small intervals to allow
6
+ * the UI to remain responsive.
7
+ */
8
+ export declare class AcDbBatchProcessing {
9
+ private _count;
10
+ private _numerOfChunk;
11
+ private _chunkSize;
12
+ private _minimumChunkSize;
13
+ /**
14
+ * Construct one instance of this class
15
+ * @param count Input the total number of items to process
16
+ * @param numerOfChunk Input the number of chunks to process
17
+ * @param minimumChunkSize Input the minimum number of items in one chunk. If it is greater
18
+ * than the total number of items to process, the total number is used.
19
+ */
20
+ constructor(count: number, numerOfChunk: number, minimumChunkSize: number);
21
+ /**
22
+ * The total number of items to process
23
+ */
24
+ get count(): number;
25
+ /**
26
+ * The number of chunks to process
27
+ */
28
+ get numerOfChunk(): number;
29
+ /**
30
+ * The minimum number of items in one chunk.
31
+ */
32
+ get minimumChunkSize(): number;
33
+ set minimumChunkSize(value: number);
34
+ /**
35
+ * The number of items in one chunk
36
+ */
37
+ get chunkSize(): number;
38
+ private calculateChunkSize;
39
+ private scheduleTask;
40
+ processChunk(callback: AcDbChunkProcessingCallback): Promise<void>;
41
+ }
42
+ export {};
43
+ //# 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;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,iBAAiB,CAAa;IAEtC;;;;;;OAMG;gBACS,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;IAOzE;;OAEG;IACH,IAAI,KAAK,WAER;IAED;;OAEG;IACH,IAAI,YAAY,WAEf;IAED;;OAEG;IACH,IAAI,gBAAgB,IAGQ,MAAM,CADjC;IACD,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAGjC;IAED;;OAEG;IACH,IAAI,SAAS,WAEZ;IAED,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAcP,YAAY,CAAC,QAAQ,EAAE,2BAA2B;CAqBhE"}
@@ -0,0 +1,165 @@
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
+ * This class is used to break up the work into smaller chunks that are executed asynchronously.
39
+ * This is often referred to "batch processing" or "cooperative multitasking," where the
40
+ * time-consuming task is broken into smaller pieces and executed in small intervals to allow
41
+ * the UI to remain responsive.
42
+ */
43
+ var AcDbBatchProcessing = /** @class */ (function () {
44
+ /**
45
+ * Construct one instance of this class
46
+ * @param count Input the total number of items to process
47
+ * @param numerOfChunk Input the number of chunks to process
48
+ * @param minimumChunkSize Input the minimum number of items in one chunk. If it is greater
49
+ * than the total number of items to process, the total number is used.
50
+ */
51
+ function AcDbBatchProcessing(count, numerOfChunk, minimumChunkSize) {
52
+ this._chunkSize = -1;
53
+ this._minimumChunkSize = 50;
54
+ this._count = count;
55
+ this._numerOfChunk = numerOfChunk < 1 ? 1 : numerOfChunk;
56
+ this._minimumChunkSize = minimumChunkSize;
57
+ this.calculateChunkSize();
58
+ }
59
+ Object.defineProperty(AcDbBatchProcessing.prototype, "count", {
60
+ /**
61
+ * The total number of items to process
62
+ */
63
+ get: function () {
64
+ return this._count;
65
+ },
66
+ enumerable: false,
67
+ configurable: true
68
+ });
69
+ Object.defineProperty(AcDbBatchProcessing.prototype, "numerOfChunk", {
70
+ /**
71
+ * The number of chunks to process
72
+ */
73
+ get: function () {
74
+ return this._numerOfChunk;
75
+ },
76
+ enumerable: false,
77
+ configurable: true
78
+ });
79
+ Object.defineProperty(AcDbBatchProcessing.prototype, "minimumChunkSize", {
80
+ /**
81
+ * The minimum number of items in one chunk.
82
+ */
83
+ get: function () {
84
+ return this._minimumChunkSize;
85
+ },
86
+ set: function (value) {
87
+ this._minimumChunkSize = value;
88
+ this.calculateChunkSize();
89
+ },
90
+ enumerable: false,
91
+ configurable: true
92
+ });
93
+ Object.defineProperty(AcDbBatchProcessing.prototype, "chunkSize", {
94
+ /**
95
+ * The number of items in one chunk
96
+ */
97
+ get: function () {
98
+ return this._chunkSize;
99
+ },
100
+ enumerable: false,
101
+ configurable: true
102
+ });
103
+ AcDbBatchProcessing.prototype.calculateChunkSize = function () {
104
+ var demicalChunkSize = this._count / this._numerOfChunk;
105
+ if (demicalChunkSize < this._minimumChunkSize) {
106
+ demicalChunkSize = Math.min(this._minimumChunkSize, this._count);
107
+ }
108
+ this._chunkSize =
109
+ demicalChunkSize < 1 ? this._count : Math.floor(demicalChunkSize);
110
+ };
111
+ AcDbBatchProcessing.prototype.scheduleTask = function (callback) {
112
+ if (typeof window !== 'undefined' &&
113
+ typeof window.requestAnimationFrame === 'function') {
114
+ // Browser environment with requestAnimationFrame
115
+ window.requestAnimationFrame(callback);
116
+ }
117
+ else {
118
+ // Node.js or fallback to setTimeout
119
+ setTimeout(callback, 0);
120
+ }
121
+ };
122
+ // Use the ChunkProcessingCallback type for the callback parameter
123
+ AcDbBatchProcessing.prototype.processChunk = function (callback) {
124
+ return __awaiter(this, void 0, void 0, function () {
125
+ var currentIndex, processNextChunk;
126
+ var _this = this;
127
+ return __generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0:
130
+ currentIndex = 0;
131
+ processNextChunk = function () { return __awaiter(_this, void 0, void 0, function () {
132
+ var start, end;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ start = currentIndex;
137
+ end = Math.min(currentIndex + this._chunkSize, this._count);
138
+ // Call the provided callback with the chunk's range
139
+ return [4 /*yield*/, callback(start, end)];
140
+ case 1:
141
+ // Call the provided callback with the chunk's range
142
+ _a.sent();
143
+ currentIndex = end;
144
+ // If there are more items to process, schedule the next chunk
145
+ if (currentIndex < this._count) {
146
+ this.scheduleTask(processNextChunk); // Schedule the next chunk to be processed asynchronously
147
+ }
148
+ return [2 /*return*/];
149
+ }
150
+ });
151
+ }); };
152
+ // Start processing the first chunk
153
+ return [4 /*yield*/, processNextChunk()];
154
+ case 1:
155
+ // Start processing the first chunk
156
+ _a.sent();
157
+ return [2 /*return*/];
158
+ }
159
+ });
160
+ });
161
+ };
162
+ return AcDbBatchProcessing;
163
+ }());
164
+ export { AcDbBatchProcessing };
165
+ //# 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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"}
@@ -0,0 +1,39 @@
1
+ import { ParsedDxf } from '@mlightcad/dxf-json';
2
+ import { AcDbDatabase } from '../database';
3
+ import { AcDbConversionProgressCallback, AcDbDatabaseConverter } from '../database/AcDbDatabaseConverter';
4
+ /**
5
+ * Default database converter for DXF files.
6
+ */
7
+ export declare class AcDbDxfConverter extends AcDbDatabaseConverter<ParsedDxf> {
8
+ protected parse(data: string): ParsedDxf;
9
+ /**
10
+ * Get all of fonts used by entities in model space and paper space
11
+ * @param dxf Input parsed dxf model
12
+ * @returns Return all of fonts used by entities in model space and paper space
13
+ */
14
+ protected getFonts(dxf: ParsedDxf): string[];
15
+ /**
16
+ * Iterate entities in model space to get fonts used by text, mtext and insert entities
17
+ */
18
+ private getFontsInBlock;
19
+ /**
20
+ * Breaks up the work into smaller chunks that are executed asynchronously. This is often referred to
21
+ * as "batch processing" or "cooperative multitasking," where the time-consuming task is broken into
22
+ * smaller pieces and executed in small intervals to allow the UI to remain responsive.
23
+ */
24
+ protected processEntities(dxf: ParsedDxf, db: AcDbDatabase, minimumChunkSize: number, startPercentage: {
25
+ value: number;
26
+ }, progress?: AcDbConversionProgressCallback): Promise<void>;
27
+ private processEntitiesInBlock;
28
+ protected processBlocks(model: ParsedDxf, db: AcDbDatabase): void;
29
+ protected processHeader(model: ParsedDxf, db: AcDbDatabase): void;
30
+ protected processBlockTables(dxf: ParsedDxf, db: AcDbDatabase): void;
31
+ protected processObjects(model: ParsedDxf, db: AcDbDatabase): void;
32
+ protected processViewports(model: ParsedDxf, db: AcDbDatabase): void;
33
+ protected processLayers(model: ParsedDxf, db: AcDbDatabase): void;
34
+ protected processLineTypes(model: ParsedDxf, db: AcDbDatabase): void;
35
+ protected processTextStyles(model: ParsedDxf, db: AcDbDatabase): void;
36
+ protected processDimStyles(model: ParsedDxf, db: AcDbDatabase): void;
37
+ private processCommonTableEntryAttrs;
38
+ }
39
+ //# sourceMappingURL=AcDbDxfConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbDxfConverter.d.ts","sourceRoot":"","sources":["../../src/converter/AcDbDxfConverter.ts"],"names":[],"mappings":"AACA,OAAkB,EAGhB,SAAS,EAEV,MAAM,qBAAqB,CAAA;AAY5B,OAAO,EAGL,YAAY,EAab,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,mCAAmC,CAAA;AAK1C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,qBAAqB,CAAC,SAAS,CAAC;IACpE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAKxC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS;IA2BjC;;OAEG;IACH,OAAO,CAAC,eAAe;IA6BvB;;;;OAIG;cACa,eAAe,CAC7B,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,YAAY,EAChB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAClC,QAAQ,CAAC,EAAE,8BAA8B;YA2C7B,sBAAsB;IAsBpC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAsB1D,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAc1D,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAa7D,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAuB3D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IA6G7D,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAqB1D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAY7D,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAW9D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY;IAmF7D,OAAO,CAAC,4BAA4B;CAQrC"}