@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,448 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ var __generator = (this && this.__generator) || function (thisArg, body) {
26
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
+ function verb(n) { return function (v) { return step([n, v]); }; }
29
+ function step(op) {
30
+ if (f) throw new TypeError("Generator is already executing.");
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ 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;
33
+ if (y = 0, t) op = [op[0] & 2, t.value];
34
+ switch (op[0]) {
35
+ case 0: case 1: t = op; break;
36
+ case 4: _.label++; return { value: op[1], done: false };
37
+ case 5: _.label++; y = op[1]; op = [0]; continue;
38
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
+ default:
40
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
+ if (t[2]) _.ops.pop();
45
+ _.trys.pop(); continue;
46
+ }
47
+ op = body.call(thisArg, _);
48
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
+ }
51
+ };
52
+ import { AcCmPerformanceCollector, AcCmTask, AcCmTaskScheduler } from '@mlightcad/common';
53
+ import { AcDbRenderingCache } from '../misc';
54
+ var PERFORMANCE_ENTRY_NAME = 'Load Database';
55
+ /**
56
+ * Task class for database conversion operations.
57
+ *
58
+ * This class extends AcCmTask to provide specialized functionality
59
+ * for database conversion tasks, including progress tracking and
60
+ * stage management.
61
+ *
62
+ * @template TIn - The input type for the task
63
+ * @template TOut - The output type for the task
64
+ */
65
+ var AcDbConversionTask = /** @class */ (function (_super) {
66
+ __extends(AcDbConversionTask, _super);
67
+ function AcDbConversionTask(data, progress) {
68
+ var _this = _super.call(this, data.stage) || this;
69
+ _this.data = data;
70
+ _this.progress = progress;
71
+ return _this;
72
+ }
73
+ /**
74
+ * Executes the task.
75
+ */
76
+ AcDbConversionTask.prototype.run = function (input) {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ var entry, t, out;
79
+ return __generator(this, function (_a) {
80
+ switch (_a.label) {
81
+ case 0:
82
+ entry = AcCmPerformanceCollector.getInstance().getEntry(PERFORMANCE_ENTRY_NAME);
83
+ t = Date.now();
84
+ if (!this.progress) return [3 /*break*/, 2];
85
+ return [4 /*yield*/, this.progress(this.data.progress.value, this.data.stage, 'START')];
86
+ case 1:
87
+ _a.sent();
88
+ _a.label = 2;
89
+ case 2: return [4 /*yield*/, this.data.task(input)];
90
+ case 3:
91
+ out = _a.sent();
92
+ if (!this.progress) return [3 /*break*/, 5];
93
+ return [4 /*yield*/, this.progress(this.data.progress.value, this.data.stage, 'END', out ? out.data : null)];
94
+ case 4:
95
+ _a.sent();
96
+ this.data.progress.value += this.data.step;
97
+ if (this.data.progress.value > 100) {
98
+ this.data.progress.value = 100;
99
+ }
100
+ _a.label = 5;
101
+ case 5:
102
+ if (entry) {
103
+ ;
104
+ entry.data[this.name] = Date.now() - t;
105
+ }
106
+ return [2 /*return*/, out];
107
+ }
108
+ });
109
+ });
110
+ };
111
+ return AcDbConversionTask;
112
+ }(AcCmTask));
113
+ /**
114
+ * Abstract base class for database converters.
115
+ *
116
+ * This class provides the foundation for converting various file formats
117
+ * (such as DXF, DWG) into AcDbDatabase objects. It handles the conversion
118
+ * process in stages and provides progress tracking capabilities.
119
+ *
120
+ * @template TModel - The type of the parsed model data
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * class MyConverter extends AcDbDatabaseConverter<MyModel> {
125
+ * protected parse(data: string | ArrayBuffer): MyModel {
126
+ * // Implementation for parsing data
127
+ * }
128
+ *
129
+ * ......
130
+ *
131
+ * protected processEntities(model: MyModel, db: AcDbDatabase) {
132
+ * // Implementation for processing entities
133
+ * }
134
+ * }
135
+ * ```
136
+ */
137
+ var AcDbDatabaseConverter = /** @class */ (function () {
138
+ /**
139
+ * Creates a new instance of the database converter.
140
+ *
141
+ * @param config - Configuration options for the converter. This includes settings
142
+ * such as worker URL for web workers used in the conversion process.
143
+ * If not provided, an empty configuration object will be used.
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * // Create converter with default configuration
148
+ * const converter = new AcDbDxfConverter();
149
+ *
150
+ * // Create converter with custom worker URL
151
+ * const converter = new AcDbDxfConverter({
152
+ * parserWorkerUrl: '/assets/dxf-parser-worker.js'
153
+ * });
154
+ * ```
155
+ */
156
+ function AcDbDatabaseConverter(config) {
157
+ if (config === void 0) { config = {}; }
158
+ this.config = config;
159
+ }
160
+ /**
161
+ * Reads and converts data into an AcDbDatabase.
162
+ *
163
+ * This method orchestrates the entire conversion process, including
164
+ * parsing, processing various components (fonts, linetypes, styles, etc.),
165
+ * and building the final database.
166
+ *
167
+ * @param data - The input data to convert
168
+ * @param db - The database to populate with converted data
169
+ * @param minimumChunkSize - Minimum chunk size for batch processing
170
+ * @param progress - Optional progress callback
171
+ * @returns Promise that resolves when conversion is complete
172
+ *
173
+ */
174
+ AcDbDatabaseConverter.prototype.read = function (data, db, minimumChunkSize, progress) {
175
+ return __awaiter(this, void 0, void 0, function () {
176
+ var loadDbTimeEntry, percentage, scheduler, t;
177
+ var _this = this;
178
+ return __generator(this, function (_a) {
179
+ switch (_a.label) {
180
+ case 0:
181
+ loadDbTimeEntry = {
182
+ name: PERFORMANCE_ENTRY_NAME,
183
+ data: { total: 0 },
184
+ format: function () {
185
+ var _this = this;
186
+ var result = '';
187
+ Object.keys(this.data).forEach(function (key) {
188
+ if (key !== 'total') {
189
+ result += "- ".concat(key, ": ").concat(_this.data[key], " ms\n");
190
+ }
191
+ });
192
+ result += "- total: ".concat(this.data.total, " ms");
193
+ return result;
194
+ }
195
+ };
196
+ AcCmPerformanceCollector.getInstance().collect(loadDbTimeEntry);
197
+ this.progress = progress;
198
+ percentage = { value: 0 };
199
+ scheduler = new AcCmTaskScheduler();
200
+ scheduler.setCompleteCallback(function () { return _this.onFinished(); });
201
+ scheduler.setErrorCallback(function (error) { return _this.onError(error); });
202
+ scheduler.addTask(new AcDbConversionTask({
203
+ stage: 'START',
204
+ step: 1,
205
+ progress: percentage,
206
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
207
+ return __generator(this, function (_a) {
208
+ return [2 /*return*/, data];
209
+ });
210
+ }); }
211
+ }, progress));
212
+ scheduler.addTask(new AcDbConversionTask({
213
+ stage: 'PARSE',
214
+ step: 5,
215
+ progress: percentage,
216
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
217
+ return __generator(this, function (_a) {
218
+ switch (_a.label) {
219
+ case 0: return [4 /*yield*/, this.parse(data)];
220
+ case 1: return [2 /*return*/, _a.sent()];
221
+ }
222
+ });
223
+ }); }
224
+ }, progress));
225
+ scheduler.addTask(new AcDbConversionTask({
226
+ stage: 'FONT',
227
+ step: 5,
228
+ progress: percentage,
229
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
230
+ var fonts;
231
+ return __generator(this, function (_a) {
232
+ fonts = this.getFonts(data.model);
233
+ return [2 /*return*/, { model: data.model, data: fonts }];
234
+ });
235
+ }); }
236
+ }, progress));
237
+ scheduler.addTask(new AcDbConversionTask({
238
+ stage: 'LTYPE',
239
+ step: 1,
240
+ progress: percentage,
241
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
242
+ return __generator(this, function (_a) {
243
+ this.processLineTypes(data.model, db);
244
+ return [2 /*return*/, data];
245
+ });
246
+ }); }
247
+ }, progress));
248
+ scheduler.addTask(new AcDbConversionTask({
249
+ stage: 'STYLE',
250
+ step: 1,
251
+ progress: percentage,
252
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
253
+ return __generator(this, function (_a) {
254
+ this.processTextStyles(data.model, db);
255
+ return [2 /*return*/, data];
256
+ });
257
+ }); }
258
+ }, progress));
259
+ scheduler.addTask(new AcDbConversionTask({
260
+ stage: 'DIMSTYLE',
261
+ step: 1,
262
+ progress: percentage,
263
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
264
+ return __generator(this, function (_a) {
265
+ this.processDimStyles(data.model, db);
266
+ return [2 /*return*/, data];
267
+ });
268
+ }); }
269
+ }, progress));
270
+ scheduler.addTask(new AcDbConversionTask({
271
+ stage: 'LAYER',
272
+ step: 1,
273
+ progress: percentage,
274
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
275
+ return __generator(this, function (_a) {
276
+ this.processLayers(data.model, db);
277
+ // Guarantee layer '0' is created at least
278
+ if (db.tables.layerTable.numEntries === 0) {
279
+ db.createDefaultData({ layer: true });
280
+ }
281
+ return [2 /*return*/, data];
282
+ });
283
+ }); }
284
+ }, progress));
285
+ scheduler.addTask(new AcDbConversionTask({
286
+ stage: 'VPORT',
287
+ step: 1,
288
+ progress: percentage,
289
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
290
+ return __generator(this, function (_a) {
291
+ this.processViewports(data.model, db);
292
+ return [2 /*return*/, data];
293
+ });
294
+ }); }
295
+ }, progress));
296
+ scheduler.addTask(new AcDbConversionTask({
297
+ stage: 'HEADER',
298
+ step: 1,
299
+ progress: percentage,
300
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
301
+ return __generator(this, function (_a) {
302
+ this.processHeader(data.model, db);
303
+ return [2 /*return*/, data];
304
+ });
305
+ }); }
306
+ }, progress));
307
+ scheduler.addTask(new AcDbConversionTask({
308
+ stage: 'BLOCK_RECORD',
309
+ step: 5,
310
+ progress: percentage,
311
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
312
+ return __generator(this, function (_a) {
313
+ this.processBlockTables(data.model, db);
314
+ return [2 /*return*/, data];
315
+ });
316
+ }); }
317
+ }, progress));
318
+ scheduler.addTask(new AcDbConversionTask({
319
+ stage: 'OBJECT',
320
+ step: 5,
321
+ progress: percentage,
322
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
323
+ return __generator(this, function (_a) {
324
+ this.processObjects(data.model, db);
325
+ // Guarantee one layout is created for MODEL_SPACE at least
326
+ if (db.dictionaries.layouts.numEntries === 0) {
327
+ db.createDefaultData({ layout: true });
328
+ }
329
+ return [2 /*return*/, data];
330
+ });
331
+ }); }
332
+ }, progress));
333
+ scheduler.addTask(new AcDbConversionTask({
334
+ stage: 'BLOCK',
335
+ step: 5,
336
+ progress: percentage,
337
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
338
+ return __generator(this, function (_a) {
339
+ switch (_a.label) {
340
+ case 0: return [4 /*yield*/, this.processBlocks(data.model, db)];
341
+ case 1:
342
+ _a.sent();
343
+ return [2 /*return*/, data];
344
+ }
345
+ });
346
+ }); }
347
+ }, progress));
348
+ scheduler.addTask(new AcDbConversionTask({
349
+ stage: 'ENTITY',
350
+ step: 100,
351
+ progress: percentage,
352
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
353
+ return __generator(this, function (_a) {
354
+ switch (_a.label) {
355
+ case 0: return [4 /*yield*/, this.processEntities(data.model, db, minimumChunkSize, percentage, progress)];
356
+ case 1:
357
+ _a.sent();
358
+ return [2 /*return*/, data];
359
+ }
360
+ });
361
+ }); }
362
+ }, progress));
363
+ scheduler.addTask(new AcDbConversionTask({
364
+ stage: 'END',
365
+ step: 0,
366
+ progress: percentage,
367
+ task: function (data) { return __awaiter(_this, void 0, void 0, function () {
368
+ return __generator(this, function (_a) {
369
+ return [2 /*return*/, data];
370
+ });
371
+ }); }
372
+ }, progress));
373
+ t = Date.now();
374
+ return [4 /*yield*/, scheduler.run(data)];
375
+ case 1:
376
+ _a.sent();
377
+ loadDbTimeEntry.data.total = Date.now() - t;
378
+ return [2 /*return*/];
379
+ }
380
+ });
381
+ });
382
+ };
383
+ AcDbDatabaseConverter.prototype.onError = function (error) {
384
+ if (this.progress) {
385
+ var task = error.task;
386
+ this.progress(task.data.progress.value, task.data.stage, 'ERROR', undefined, error);
387
+ }
388
+ console.error("Error occurred in conversion stage '".concat(error.task.name, "': "), error.error);
389
+ // Tasks to convert entities are not critical to the conversion process
390
+ // If failed to convert certain entities, we can still continue to convert
391
+ // the rest of entities.
392
+ if (error.task.name === 'ENTITY') {
393
+ return false;
394
+ }
395
+ this.onFinished();
396
+ return true;
397
+ };
398
+ AcDbDatabaseConverter.prototype.onFinished = function () {
399
+ if (this.progress) {
400
+ this.progress(100, 'END', 'END');
401
+ // Clear cache to reduce memory consumption
402
+ AcDbRenderingCache.instance.clear();
403
+ }
404
+ };
405
+ AcDbDatabaseConverter.prototype.parse = function (_data, _workerUrl) {
406
+ return __awaiter(this, void 0, void 0, function () {
407
+ return __generator(this, function (_a) {
408
+ throw new Error('Not impelemented yet!');
409
+ });
410
+ });
411
+ };
412
+ AcDbDatabaseConverter.prototype.getFonts = function (_model) {
413
+ throw new Error('Not impelemented yet!');
414
+ };
415
+ AcDbDatabaseConverter.prototype.processLineTypes = function (_model, _db) {
416
+ throw new Error('Not impelemented yet!');
417
+ };
418
+ AcDbDatabaseConverter.prototype.processTextStyles = function (_model, _db) {
419
+ throw new Error('Not impelemented yet!');
420
+ };
421
+ AcDbDatabaseConverter.prototype.processDimStyles = function (_model, _db) {
422
+ throw new Error('Not impelemented yet!');
423
+ };
424
+ AcDbDatabaseConverter.prototype.processLayers = function (_model, _db) {
425
+ throw new Error('Not impelemented yet!');
426
+ };
427
+ AcDbDatabaseConverter.prototype.processViewports = function (_model, _db) {
428
+ throw new Error('Not impelemented yet!');
429
+ };
430
+ AcDbDatabaseConverter.prototype.processHeader = function (_model, _db) {
431
+ throw new Error('Not impelemented yet!');
432
+ };
433
+ AcDbDatabaseConverter.prototype.processBlockTables = function (_model, _db) {
434
+ throw new Error('Not impelemented yet!');
435
+ };
436
+ AcDbDatabaseConverter.prototype.processObjects = function (_model, _db) {
437
+ throw new Error('Not impelemented yet!');
438
+ };
439
+ AcDbDatabaseConverter.prototype.processBlocks = function (_model, _db) {
440
+ throw new Error('Not impelemented yet!');
441
+ };
442
+ AcDbDatabaseConverter.prototype.processEntities = function (_model, _db, _minimumChunkSize, _percentage, _progress) {
443
+ throw new Error('Not impelemented yet!');
444
+ };
445
+ return AcDbDatabaseConverter;
446
+ }());
447
+ export { AcDbDatabaseConverter };
448
+ //# sourceMappingURL=AcDbDatabaseConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbDatabaseConverter.js","sourceRoot":"","sources":["../../src/database/AcDbDatabaseConverter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { AcCmEventManager } from '@mlightcad/common';
2
+ import { AcDbDatabaseConverter } from './AcDbDatabaseConverter';
3
+ /**
4
+ * Represents the supported drawing file types.
5
+ */
6
+ export declare enum AcDbFileType {
7
+ /**
8
+ * DXF (Drawing Exchange Format) file
9
+ */
10
+ DXF = "dxf",
11
+ /**
12
+ * DWG (Drawing) file
13
+ */
14
+ DWG = "dwg"
15
+ }
16
+ /**
17
+ * Event arguments for database converter manager events.
18
+ */
19
+ export interface AcDbDatabaseConverterManagerEventArgs {
20
+ /** The file type associated with the event */
21
+ fileType: AcDbFileType;
22
+ /** The converter associated with the event */
23
+ converter: AcDbDatabaseConverter;
24
+ }
25
+ /**
26
+ * Manager for registering and managing database converters by file type.
27
+ *
28
+ * This class provides a centralized way to register database converters for
29
+ * different file types (DXF, DWG, etc.) and retrieve the appropriate converter
30
+ * for a given file type. It implements the singleton pattern and provides
31
+ * event notifications when converters are registered or unregistered.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const manager = AcDbDatabaseConverterManager.instance;
36
+ * const converter = manager.get(AcDbFileType.DXF);
37
+ * if (converter) {
38
+ * await converter.read(dxfData, database, 100);
39
+ * }
40
+ * ```
41
+ */
42
+ export declare class AcDbDatabaseConverterManager {
43
+ /** Singleton instance of the manager */
44
+ private static _instance?;
45
+ /** Map of file types to their associated converters */
46
+ private _converters;
47
+ /**
48
+ * Events that can be triggered by the converter manager.
49
+ *
50
+ * These events allow applications to respond to converter registration
51
+ * and unregistration.
52
+ */
53
+ readonly events: {
54
+ /** Fired when a converter is registered */
55
+ registered: AcCmEventManager<AcDbDatabaseConverterManagerEventArgs>;
56
+ /** Fired when a converter is unregistered */
57
+ unregistered: AcCmEventManager<AcDbDatabaseConverterManagerEventArgs>;
58
+ };
59
+ /**
60
+ * Creates a new instance of AcDbDatabaseConverterManager.
61
+ *
62
+ * @returns The singleton instance of AcDbDatabaseConverterManager
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const manager = AcDbDatabaseConverterManager.createInstance();
67
+ * ```
68
+ */
69
+ static createInstance(): AcDbDatabaseConverterManager | undefined;
70
+ /**
71
+ * Gets the singleton instance of this class.
72
+ *
73
+ * @returns The singleton instance of AcDbDatabaseConverterManager
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const manager = AcDbDatabaseConverterManager.instance;
78
+ * ```
79
+ */
80
+ static get instance(): AcDbDatabaseConverterManager;
81
+ /**
82
+ * Private constructor to enforce singleton pattern.
83
+ *
84
+ * Initializes the manager with a default DXF converter.
85
+ */
86
+ private constructor();
87
+ /**
88
+ * Gets all registered file types.
89
+ *
90
+ * @returns An iterator of all registered file types
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const fileTypes = manager.fileTypes;
95
+ * for (const fileType of fileTypes) {
96
+ * console.log('Supported file type:', fileType);
97
+ * }
98
+ * ```
99
+ */
100
+ get fileTypes(): IterableIterator<AcDbFileType>;
101
+ /**
102
+ * Registers a database converter for the specified file type.
103
+ *
104
+ * @param fileType - The file type to register the converter for
105
+ * @param converter - The database converter to register
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * const converter = new MyCustomConverter();
110
+ * manager.register(AcDbFileType.DWG, converter);
111
+ * ```
112
+ */
113
+ register(fileType: AcDbFileType, converter: AcDbDatabaseConverter): void;
114
+ /**
115
+ * Gets the database converter associated with the specified file type.
116
+ *
117
+ * @param fileType - The file type to get the converter for
118
+ * @returns The database converter associated with the specified file type, or undefined if not found
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const converter = manager.get(AcDbFileType.DXF);
123
+ * if (converter) {
124
+ * await converter.read(dxfData, database, 100);
125
+ * }
126
+ * ```
127
+ */
128
+ get(fileType: AcDbFileType): AcDbDatabaseConverter<unknown> | undefined;
129
+ /**
130
+ * Unregisters the database converter for the specified file type.
131
+ *
132
+ * @param fileType - The file type to unregister the converter for
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * manager.unregister(AcDbFileType.DWG);
137
+ * ```
138
+ */
139
+ unregister(fileType: AcDbFileType): void;
140
+ }
141
+ //# sourceMappingURL=AcDbDatabaseConverterManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbDatabaseConverterManager.d.ts","sourceRoot":"","sources":["../../src/database/AcDbDatabaseConverterManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;GAEG;AACH,oBAAY,YAAY;IACtB;;OAEG;IACH,GAAG,QAAQ;IACX;;OAEG;IACH,GAAG,QAAQ;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,qCAAqC;IACpD,8CAA8C;IAC9C,QAAQ,EAAE,YAAY,CAAA;IACtB,8CAA8C;IAC9C,SAAS,EAAE,qBAAqB,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,4BAA4B;IACvC,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAA8B;IACvD,uDAAuD;IACvD,OAAO,CAAC,WAAW,CAA0C;IAE7D;;;;;OAKG;IACH,SAAgB,MAAM;QACpB,2CAA2C;;QAE3C,6CAA6C;;MAE9C;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,cAAc;IAQrB;;;;;;;;;OASG;IACH,MAAM,KAAK,QAAQ,iCAMlB;IAED;;;;OAIG;IACH,OAAO;IAKP;;;;;;;;;;;;OAYG;IACH,IAAI,SAAS,mCAEZ;IAED;;;;;;;;;;;OAWG;IACI,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,qBAAqB;IAQxE;;;;;;;;;;;;;OAaG;IACI,GAAG,CAAC,QAAQ,EAAE,YAAY;IAIjC;;;;;;;;;OASG;IACI,UAAU,CAAC,QAAQ,EAAE,YAAY;CAUzC"}