@mlightcad/data-model 1.3.3 → 1.3.5
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.
- package/dist/data-model.cjs +5 -0
- package/dist/data-model.js +25995 -0
- package/dist/dxf-parser-worker.js +1715 -0
- package/lib/base/AcDbHostApplicationServices.d.ts +96 -0
- package/lib/base/AcDbHostApplicationServices.d.ts.map +1 -0
- package/lib/base/AcDbHostApplicationServices.js +118 -0
- package/lib/base/AcDbHostApplicationServices.js.map +1 -0
- package/lib/base/AcDbObject.d.ts +205 -0
- package/lib/base/AcDbObject.d.ts.map +1 -0
- package/lib/base/AcDbObject.js +236 -0
- package/lib/base/AcDbObject.js.map +1 -0
- package/lib/base/index.d.ts +3 -0
- package/lib/base/index.d.ts.map +1 -0
- package/lib/base/index.js +3 -0
- package/lib/base/index.js.map +1 -0
- package/lib/converter/AcDbBatchProcessing.d.ts +146 -0
- package/lib/converter/AcDbBatchProcessing.d.ts.map +1 -0
- package/lib/converter/AcDbBatchProcessing.js +272 -0
- package/lib/converter/AcDbBatchProcessing.js.map +1 -0
- package/lib/converter/AcDbDxfConverter.d.ts +272 -0
- package/lib/converter/AcDbDxfConverter.d.ts.map +1 -0
- package/lib/converter/AcDbDxfConverter.js +883 -0
- package/lib/converter/AcDbDxfConverter.js.map +1 -0
- package/lib/converter/AcDbDxfParser.d.ts +23 -0
- package/lib/converter/AcDbDxfParser.d.ts.map +1 -0
- package/lib/converter/AcDbDxfParser.js +85 -0
- package/lib/converter/AcDbDxfParser.js.map +1 -0
- package/lib/converter/AcDbEntitiyConverter.d.ts +160 -0
- package/lib/converter/AcDbEntitiyConverter.d.ts.map +1 -0
- package/lib/converter/AcDbEntitiyConverter.js +708 -0
- package/lib/converter/AcDbEntitiyConverter.js.map +1 -0
- package/lib/converter/AcDbObjectConverter.d.ts +61 -0
- package/lib/converter/AcDbObjectConverter.d.ts.map +1 -0
- package/lib/converter/AcDbObjectConverter.js +91 -0
- package/lib/converter/AcDbObjectConverter.js.map +1 -0
- package/lib/converter/AcDbRegenerator.d.ts +101 -0
- package/lib/converter/AcDbRegenerator.d.ts.map +1 -0
- package/lib/converter/AcDbRegenerator.js +334 -0
- package/lib/converter/AcDbRegenerator.js.map +1 -0
- package/lib/converter/index.d.ts +5 -0
- package/lib/converter/index.d.ts.map +1 -0
- package/lib/converter/index.js +5 -0
- package/lib/converter/index.js.map +1 -0
- package/lib/converter/worker/AcDbBaseWorker.d.ts +36 -0
- package/lib/converter/worker/AcDbBaseWorker.d.ts.map +1 -0
- package/lib/converter/worker/AcDbBaseWorker.js +93 -0
- package/lib/converter/worker/AcDbBaseWorker.js.map +1 -0
- package/lib/converter/worker/AcDbDxfParserWorker.d.ts +11 -0
- package/lib/converter/worker/AcDbDxfParserWorker.d.ts.map +1 -0
- package/lib/converter/worker/AcDbDxfParserWorker.js +75 -0
- package/lib/converter/worker/AcDbDxfParserWorker.js.map +1 -0
- package/lib/converter/worker/AcDbWorkerManager.d.ts +107 -0
- package/lib/converter/worker/AcDbWorkerManager.d.ts.map +1 -0
- package/lib/converter/worker/AcDbWorkerManager.js +360 -0
- package/lib/converter/worker/AcDbWorkerManager.js.map +1 -0
- package/lib/converter/worker/index.d.ts +3 -0
- package/lib/converter/worker/index.d.ts.map +1 -0
- package/lib/converter/worker/index.js +3 -0
- package/lib/converter/worker/index.js.map +1 -0
- package/lib/database/AcDbBlockTable.d.ts +56 -0
- package/lib/database/AcDbBlockTable.d.ts.map +1 -0
- package/lib/database/AcDbBlockTable.js +98 -0
- package/lib/database/AcDbBlockTable.js.map +1 -0
- package/lib/database/AcDbBlockTableRecord.d.ts +185 -0
- package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbBlockTableRecord.js +261 -0
- package/lib/database/AcDbBlockTableRecord.js.map +1 -0
- package/lib/database/AcDbDatabase.d.ts +563 -0
- package/lib/database/AcDbDatabase.d.ts.map +1 -0
- package/lib/database/AcDbDatabase.js +842 -0
- package/lib/database/AcDbDatabase.js.map +1 -0
- package/lib/database/AcDbDatabaseConverter.d.ts +292 -0
- package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -0
- package/lib/database/AcDbDatabaseConverter.js +448 -0
- package/lib/database/AcDbDatabaseConverter.js.map +1 -0
- package/lib/database/AcDbDatabaseConverterManager.d.ts +141 -0
- package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -0
- package/lib/database/AcDbDatabaseConverterManager.js +173 -0
- package/lib/database/AcDbDatabaseConverterManager.js.map +1 -0
- package/lib/database/AcDbDimStyleTable.d.ts +31 -0
- package/lib/database/AcDbDimStyleTable.d.ts.map +1 -0
- package/lib/database/AcDbDimStyleTable.js +49 -0
- package/lib/database/AcDbDimStyleTable.js.map +1 -0
- package/lib/database/AcDbDimStyleTableRecord.d.ts +797 -0
- package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbDimStyleTableRecord.js +1294 -0
- package/lib/database/AcDbDimStyleTableRecord.js.map +1 -0
- package/lib/database/AcDbDwgVersion.d.ts +32 -0
- package/lib/database/AcDbDwgVersion.d.ts.map +1 -0
- package/lib/database/AcDbDwgVersion.js +126 -0
- package/lib/database/AcDbDwgVersion.js.map +1 -0
- package/lib/database/AcDbLayerTable.d.ts +51 -0
- package/lib/database/AcDbLayerTable.d.ts.map +1 -0
- package/lib/database/AcDbLayerTable.js +92 -0
- package/lib/database/AcDbLayerTable.js.map +1 -0
- package/lib/database/AcDbLayerTableRecord.d.ts +278 -0
- package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbLayerTableRecord.js +397 -0
- package/lib/database/AcDbLayerTableRecord.js.map +1 -0
- package/lib/database/AcDbLinetypeTable.d.ts +30 -0
- package/lib/database/AcDbLinetypeTable.d.ts.map +1 -0
- package/lib/database/AcDbLinetypeTable.js +48 -0
- package/lib/database/AcDbLinetypeTable.js.map +1 -0
- package/lib/database/AcDbLinetypeTableRecord.d.ts +79 -0
- package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbLinetypeTableRecord.js +129 -0
- package/lib/database/AcDbLinetypeTableRecord.js.map +1 -0
- package/lib/database/AcDbSymbolTable.d.ts +199 -0
- package/lib/database/AcDbSymbolTable.d.ts.map +1 -0
- package/lib/database/AcDbSymbolTable.js +264 -0
- package/lib/database/AcDbSymbolTable.js.map +1 -0
- package/lib/database/AcDbSymbolTableRecord.d.ts +61 -0
- package/lib/database/AcDbSymbolTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbSymbolTableRecord.js +82 -0
- package/lib/database/AcDbSymbolTableRecord.js.map +1 -0
- package/lib/database/AcDbTextStyleTable.d.ts +48 -0
- package/lib/database/AcDbTextStyleTable.d.ts.map +1 -0
- package/lib/database/AcDbTextStyleTable.js +112 -0
- package/lib/database/AcDbTextStyleTable.js.map +1 -0
- package/lib/database/AcDbTextStyleTableRecord.d.ts +179 -0
- package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbTextStyleTableRecord.js +276 -0
- package/lib/database/AcDbTextStyleTableRecord.js.map +1 -0
- package/lib/database/AcDbViewportTable.d.ts +31 -0
- package/lib/database/AcDbViewportTable.d.ts.map +1 -0
- package/lib/database/AcDbViewportTable.js +49 -0
- package/lib/database/AcDbViewportTable.js.map +1 -0
- package/lib/database/AcDbViewportTableRecord.d.ts +154 -0
- package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbViewportTableRecord.js +318 -0
- package/lib/database/AcDbViewportTableRecord.js.map +1 -0
- package/lib/database/index.d.ts +19 -0
- package/lib/database/index.d.ts.map +1 -0
- package/lib/database/index.js +19 -0
- package/lib/database/index.js.map +1 -0
- package/lib/entity/AcDb2dPolyline.d.ts +146 -0
- package/lib/entity/AcDb2dPolyline.d.ts.map +1 -0
- package/lib/entity/AcDb2dPolyline.js +220 -0
- package/lib/entity/AcDb2dPolyline.js.map +1 -0
- package/lib/entity/AcDb2dVertex.d.ts +143 -0
- package/lib/entity/AcDb2dVertex.d.ts.map +1 -0
- package/lib/entity/AcDb2dVertex.js +210 -0
- package/lib/entity/AcDb2dVertex.js.map +1 -0
- package/lib/entity/AcDb3dPolyline.d.ts +102 -0
- package/lib/entity/AcDb3dPolyline.d.ts.map +1 -0
- package/lib/entity/AcDb3dPolyline.js +158 -0
- package/lib/entity/AcDb3dPolyline.js.map +1 -0
- package/lib/entity/AcDb3dVertex.d.ts +83 -0
- package/lib/entity/AcDb3dVertex.d.ts.map +1 -0
- package/lib/entity/AcDb3dVertex.js +133 -0
- package/lib/entity/AcDb3dVertex.js.map +1 -0
- package/lib/entity/AcDbArc.d.ts +254 -0
- package/lib/entity/AcDbArc.d.ts.map +1 -0
- package/lib/entity/AcDbArc.js +340 -0
- package/lib/entity/AcDbArc.js.map +1 -0
- package/lib/entity/AcDbBlockReference.d.ts +190 -0
- package/lib/entity/AcDbBlockReference.d.ts.map +1 -0
- package/lib/entity/AcDbBlockReference.js +302 -0
- package/lib/entity/AcDbBlockReference.js.map +1 -0
- package/lib/entity/AcDbCircle.d.ts +186 -0
- package/lib/entity/AcDbCircle.d.ts.map +1 -0
- package/lib/entity/AcDbCircle.js +249 -0
- package/lib/entity/AcDbCircle.js.map +1 -0
- package/lib/entity/AcDbCurve.d.ts +42 -0
- package/lib/entity/AcDbCurve.d.ts.map +1 -0
- package/lib/entity/AcDbCurve.js +44 -0
- package/lib/entity/AcDbCurve.js.map +1 -0
- package/lib/entity/AcDbEllipse.d.ts +207 -0
- package/lib/entity/AcDbEllipse.d.ts.map +1 -0
- package/lib/entity/AcDbEllipse.js +272 -0
- package/lib/entity/AcDbEllipse.js.map +1 -0
- package/lib/entity/AcDbEntity.d.ts +385 -0
- package/lib/entity/AcDbEntity.d.ts.map +1 -0
- package/lib/entity/AcDbEntity.js +561 -0
- package/lib/entity/AcDbEntity.js.map +1 -0
- package/lib/entity/AcDbFace.d.ts +151 -0
- package/lib/entity/AcDbFace.d.ts.map +1 -0
- package/lib/entity/AcDbFace.js +224 -0
- package/lib/entity/AcDbFace.js.map +1 -0
- package/lib/entity/AcDbHatch.d.ts +174 -0
- package/lib/entity/AcDbHatch.d.ts.map +1 -0
- package/lib/entity/AcDbHatch.js +250 -0
- package/lib/entity/AcDbHatch.js.map +1 -0
- package/lib/entity/AcDbLeader.d.ts +243 -0
- package/lib/entity/AcDbLeader.d.ts.map +1 -0
- package/lib/entity/AcDbLeader.js +358 -0
- package/lib/entity/AcDbLeader.js.map +1 -0
- package/lib/entity/AcDbLine.d.ts +198 -0
- package/lib/entity/AcDbLine.d.ts.map +1 -0
- package/lib/entity/AcDbLine.js +300 -0
- package/lib/entity/AcDbLine.js.map +1 -0
- package/lib/entity/AcDbMText.d.ts +248 -0
- package/lib/entity/AcDbMText.d.ts.map +1 -0
- package/lib/entity/AcDbMText.js +414 -0
- package/lib/entity/AcDbMText.js.map +1 -0
- package/lib/entity/AcDbPoint.d.ts +113 -0
- package/lib/entity/AcDbPoint.d.ts.map +1 -0
- package/lib/entity/AcDbPoint.js +155 -0
- package/lib/entity/AcDbPoint.js.map +1 -0
- package/lib/entity/AcDbPolyline.d.ts +221 -0
- package/lib/entity/AcDbPolyline.d.ts.map +1 -0
- package/lib/entity/AcDbPolyline.js +301 -0
- package/lib/entity/AcDbPolyline.js.map +1 -0
- package/lib/entity/AcDbRasterImage.d.ts +216 -0
- package/lib/entity/AcDbRasterImage.d.ts.map +1 -0
- package/lib/entity/AcDbRasterImage.js +451 -0
- package/lib/entity/AcDbRasterImage.js.map +1 -0
- package/lib/entity/AcDbRay.d.ts +150 -0
- package/lib/entity/AcDbRay.d.ts.map +1 -0
- package/lib/entity/AcDbRay.js +208 -0
- package/lib/entity/AcDbRay.js.map +1 -0
- package/lib/entity/AcDbSpline.d.ts +135 -0
- package/lib/entity/AcDbSpline.d.ts.map +1 -0
- package/lib/entity/AcDbSpline.js +142 -0
- package/lib/entity/AcDbSpline.js.map +1 -0
- package/lib/entity/AcDbTable.d.ts +260 -0
- package/lib/entity/AcDbTable.d.ts.map +1 -0
- package/lib/entity/AcDbTable.js +452 -0
- package/lib/entity/AcDbTable.js.map +1 -0
- package/lib/entity/AcDbText.d.ts +388 -0
- package/lib/entity/AcDbText.d.ts.map +1 -0
- package/lib/entity/AcDbText.js +523 -0
- package/lib/entity/AcDbText.js.map +1 -0
- package/lib/entity/AcDbTrace.d.ts +193 -0
- package/lib/entity/AcDbTrace.d.ts.map +1 -0
- package/lib/entity/AcDbTrace.js +271 -0
- package/lib/entity/AcDbTrace.js.map +1 -0
- package/lib/entity/AcDbViewport.d.ts +173 -0
- package/lib/entity/AcDbViewport.d.ts.map +1 -0
- package/lib/entity/AcDbViewport.js +295 -0
- package/lib/entity/AcDbViewport.js.map +1 -0
- package/lib/entity/AcDbWipeout.d.ts +39 -0
- package/lib/entity/AcDbWipeout.d.ts.map +1 -0
- package/lib/entity/AcDbWipeout.js +70 -0
- package/lib/entity/AcDbWipeout.js.map +1 -0
- package/lib/entity/AcDbXline.d.ts +151 -0
- package/lib/entity/AcDbXline.d.ts.map +1 -0
- package/lib/entity/AcDbXline.js +209 -0
- package/lib/entity/AcDbXline.js.map +1 -0
- package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts +92 -0
- package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts.map +1 -0
- package/lib/entity/dimension/AcDb3PointAngularDimension.js +157 -0
- package/lib/entity/dimension/AcDb3PointAngularDimension.js.map +1 -0
- package/lib/entity/dimension/AcDbAlignedDimension.d.ts +220 -0
- package/lib/entity/dimension/AcDbAlignedDimension.d.ts.map +1 -0
- package/lib/entity/dimension/AcDbAlignedDimension.js +341 -0
- package/lib/entity/dimension/AcDbAlignedDimension.js.map +1 -0
- package/lib/entity/dimension/AcDbArcDimension.d.ts +94 -0
- package/lib/entity/dimension/AcDbArcDimension.d.ts.map +1 -0
- package/lib/entity/dimension/AcDbArcDimension.js +159 -0
- package/lib/entity/dimension/AcDbArcDimension.js.map +1 -0
- package/lib/entity/dimension/AcDbDiametricDimension.d.ts +145 -0
- package/lib/entity/dimension/AcDbDiametricDimension.d.ts.map +1 -0
- package/lib/entity/dimension/AcDbDiametricDimension.js +275 -0
- package/lib/entity/dimension/AcDbDiametricDimension.js.map +1 -0
- package/lib/entity/dimension/AcDbDimension.d.ts +257 -0
- package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -0
- package/lib/entity/dimension/AcDbDimension.js +466 -0
- package/lib/entity/dimension/AcDbDimension.js.map +1 -0
- package/lib/entity/dimension/AcDbOrdinateDimension.d.ts +78 -0
- package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -0
- package/lib/entity/dimension/AcDbOrdinateDimension.js +133 -0
- package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -0
- package/lib/entity/dimension/AcDbRadialDimension.d.ts +214 -0
- package/lib/entity/dimension/AcDbRadialDimension.d.ts.map +1 -0
- package/lib/entity/dimension/AcDbRadialDimension.js +288 -0
- package/lib/entity/dimension/AcDbRadialDimension.js.map +1 -0
- package/lib/entity/dimension/index.d.ts +8 -0
- package/lib/entity/dimension/index.d.ts.map +1 -0
- package/lib/entity/dimension/index.js +8 -0
- package/lib/entity/dimension/index.js.map +1 -0
- package/lib/entity/index.d.ts +28 -0
- package/lib/entity/index.d.ts.map +1 -0
- package/lib/entity/index.js +28 -0
- package/lib/entity/index.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib/misc/AcDbAngleUnits.d.ts +20 -0
- package/lib/misc/AcDbAngleUnits.d.ts.map +1 -0
- package/lib/misc/AcDbAngleUnits.js +21 -0
- package/lib/misc/AcDbAngleUnits.js.map +1 -0
- package/lib/misc/AcDbCodePage.d.ts +50 -0
- package/lib/misc/AcDbCodePage.d.ts.map +1 -0
- package/lib/misc/AcDbCodePage.js +100 -0
- package/lib/misc/AcDbCodePage.js.map +1 -0
- package/lib/misc/AcDbConstants.d.ts +24 -0
- package/lib/misc/AcDbConstants.d.ts.map +1 -0
- package/lib/misc/AcDbConstants.js +24 -0
- package/lib/misc/AcDbConstants.js.map +1 -0
- package/lib/misc/AcDbDimArrowType.d.ts +89 -0
- package/lib/misc/AcDbDimArrowType.d.ts.map +1 -0
- package/lib/misc/AcDbDimArrowType.js +90 -0
- package/lib/misc/AcDbDimArrowType.js.map +1 -0
- package/lib/misc/AcDbObjectIterator.d.ts +64 -0
- package/lib/misc/AcDbObjectIterator.d.ts.map +1 -0
- package/lib/misc/AcDbObjectIterator.js +84 -0
- package/lib/misc/AcDbObjectIterator.js.map +1 -0
- package/lib/misc/AcDbOsnapMode.d.ts +51 -0
- package/lib/misc/AcDbOsnapMode.d.ts.map +1 -0
- package/lib/misc/AcDbOsnapMode.js +52 -0
- package/lib/misc/AcDbOsnapMode.js.map +1 -0
- package/lib/misc/AcDbRenderingCache.d.ts +141 -0
- package/lib/misc/AcDbRenderingCache.d.ts.map +1 -0
- package/lib/misc/AcDbRenderingCache.js +239 -0
- package/lib/misc/AcDbRenderingCache.js.map +1 -0
- package/lib/misc/AcDbUnitsValue.d.ts +101 -0
- package/lib/misc/AcDbUnitsValue.d.ts.map +1 -0
- package/lib/misc/AcDbUnitsValue.js +121 -0
- package/lib/misc/AcDbUnitsValue.js.map +1 -0
- package/lib/misc/index.d.ts +9 -0
- package/lib/misc/index.d.ts.map +1 -0
- package/lib/misc/index.js +9 -0
- package/lib/misc/index.js.map +1 -0
- package/lib/object/AcDbDictionary.d.ts +178 -0
- package/lib/object/AcDbDictionary.d.ts.map +1 -0
- package/lib/object/AcDbDictionary.js +264 -0
- package/lib/object/AcDbDictionary.js.map +1 -0
- package/lib/object/AcDbRasterImageDef.d.ts +54 -0
- package/lib/object/AcDbRasterImageDef.d.ts.map +1 -0
- package/lib/object/AcDbRasterImageDef.js +82 -0
- package/lib/object/AcDbRasterImageDef.js.map +1 -0
- package/lib/object/index.d.ts +4 -0
- package/lib/object/index.d.ts.map +1 -0
- package/lib/object/index.js +4 -0
- package/lib/object/index.js.map +1 -0
- package/lib/object/layout/AcDbLayout.d.ts +190 -0
- package/lib/object/layout/AcDbLayout.d.ts.map +1 -0
- package/lib/object/layout/AcDbLayout.js +253 -0
- package/lib/object/layout/AcDbLayout.js.map +1 -0
- package/lib/object/layout/AcDbLayoutDictionary.d.ts +47 -0
- package/lib/object/layout/AcDbLayoutDictionary.d.ts.map +1 -0
- package/lib/object/layout/AcDbLayoutDictionary.js +122 -0
- package/lib/object/layout/AcDbLayoutDictionary.js.map +1 -0
- package/lib/object/layout/AcDbLayoutManager.d.ts +188 -0
- package/lib/object/layout/AcDbLayoutManager.d.ts.map +1 -0
- package/lib/object/layout/AcDbLayoutManager.js +245 -0
- package/lib/object/layout/AcDbLayoutManager.js.map +1 -0
- package/lib/object/layout/index.d.ts +4 -0
- package/lib/object/layout/index.d.ts.map +1 -0
- package/lib/object/layout/index.js +4 -0
- package/lib/object/layout/index.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { AcDbDatabase } from '../database/AcDbDatabase';
|
|
2
|
+
import { AcDbLayoutManager } from '../object/layout/AcDbLayoutManager';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the singleton instance of the host application services.
|
|
5
|
+
*
|
|
6
|
+
* This function provides access to the global AcDbHostApplicationServices instance
|
|
7
|
+
* that manages various services for host applications at runtime.
|
|
8
|
+
*
|
|
9
|
+
* @returns The singleton instance of AcDbHostApplicationServices
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const services = acdbHostApplicationServices();
|
|
13
|
+
* const database = services.workingDatabase;
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function acdbHostApplicationServices(): AcDbHostApplicationServices;
|
|
17
|
+
/**
|
|
18
|
+
* The AcDbHostApplicationServices class provides various services to host applications at runtime.
|
|
19
|
+
*
|
|
20
|
+
* This class implements the singleton pattern and manages:
|
|
21
|
+
* - Working database reference
|
|
22
|
+
* - Layout manager instance
|
|
23
|
+
* - Other application-wide services
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const services = acdbHostApplicationServices();
|
|
28
|
+
* services.workingDatabase = new AcDbDatabase();
|
|
29
|
+
* const layoutManager = services.layoutManager;
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare class AcDbHostApplicationServices {
|
|
33
|
+
/** The current working database instance */
|
|
34
|
+
private _workingDatabase;
|
|
35
|
+
/** The layout manager instance */
|
|
36
|
+
private _layoutManager;
|
|
37
|
+
/** The singleton instance of AcDbHostApplicationServices */
|
|
38
|
+
static instance: AcDbHostApplicationServices;
|
|
39
|
+
/**
|
|
40
|
+
* Private constructor to enforce singleton pattern.
|
|
41
|
+
* Initializes the layout manager.
|
|
42
|
+
*/
|
|
43
|
+
private constructor();
|
|
44
|
+
/**
|
|
45
|
+
* Gets the current working database.
|
|
46
|
+
*
|
|
47
|
+
* The working database is the primary database that the application
|
|
48
|
+
* is currently operating on. This must be set before it can be accessed.
|
|
49
|
+
*
|
|
50
|
+
* @returns The current working database
|
|
51
|
+
* @throws {Error} When the working database has not been set
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const services = acdbHostApplicationServices();
|
|
55
|
+
* try {
|
|
56
|
+
* const db = services.workingDatabase;
|
|
57
|
+
* // Use the database
|
|
58
|
+
* } catch (error) {
|
|
59
|
+
* console.error('Working database not set');
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
get workingDatabase(): AcDbDatabase;
|
|
64
|
+
/**
|
|
65
|
+
* Sets the working database.
|
|
66
|
+
*
|
|
67
|
+
* This method sets the database that will be used as the current working database
|
|
68
|
+
* for the application. This database will be returned by the workingDatabase getter.
|
|
69
|
+
*
|
|
70
|
+
* @param database - The database to make the new working database
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const services = acdbHostApplicationServices();
|
|
74
|
+
* const db = new AcDbDatabase();
|
|
75
|
+
* services.workingDatabase = db;
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
set workingDatabase(database: AcDbDatabase);
|
|
79
|
+
/**
|
|
80
|
+
* Gets the layout manager instance.
|
|
81
|
+
*
|
|
82
|
+
* The layout manager is responsible for managing layout objects in the application.
|
|
83
|
+
* This is a singleton instance that is created when the AcDbHostApplicationServices
|
|
84
|
+
* is instantiated.
|
|
85
|
+
*
|
|
86
|
+
* @returns The layout manager instance
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const services = acdbHostApplicationServices();
|
|
90
|
+
* const layoutManager = services.layoutManager;
|
|
91
|
+
* // Use the layout manager
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
get layoutManager(): AcDbLayoutManager;
|
|
95
|
+
}
|
|
96
|
+
//# 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;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,gCAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,2BAA2B;IACtC,4CAA4C;IAC5C,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,kCAAkC;IAClC,OAAO,CAAC,cAAc,CAAmB;IAEzC,4DAA4D;IAC5D,OAAc,QAAQ,EAAE,2BAA2B,CAChB;IAEnC;;;OAGG;IACH,OAAO;IAIP;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,eAAe,IAAI,YAAY,CAQlC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,eAAe,CAAC,QAAQ,EAAE,YAAY,EAEzC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,aAAa,sBAEhB;CACF"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { AcDbLayoutManager } from '../object/layout/AcDbLayoutManager';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the singleton instance of the host application services.
|
|
4
|
+
*
|
|
5
|
+
* This function provides access to the global AcDbHostApplicationServices instance
|
|
6
|
+
* that manages various services for host applications at runtime.
|
|
7
|
+
*
|
|
8
|
+
* @returns The singleton instance of AcDbHostApplicationServices
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const services = acdbHostApplicationServices();
|
|
12
|
+
* const database = services.workingDatabase;
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export function acdbHostApplicationServices() {
|
|
16
|
+
return AcDbHostApplicationServices.instance;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The AcDbHostApplicationServices class provides various services to host applications at runtime.
|
|
20
|
+
*
|
|
21
|
+
* This class implements the singleton pattern and manages:
|
|
22
|
+
* - Working database reference
|
|
23
|
+
* - Layout manager instance
|
|
24
|
+
* - Other application-wide services
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const services = acdbHostApplicationServices();
|
|
29
|
+
* services.workingDatabase = new AcDbDatabase();
|
|
30
|
+
* const layoutManager = services.layoutManager;
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
var AcDbHostApplicationServices = /** @class */ (function () {
|
|
34
|
+
/**
|
|
35
|
+
* Private constructor to enforce singleton pattern.
|
|
36
|
+
* Initializes the layout manager.
|
|
37
|
+
*/
|
|
38
|
+
function AcDbHostApplicationServices() {
|
|
39
|
+
/** The current working database instance */
|
|
40
|
+
this._workingDatabase = null;
|
|
41
|
+
this._layoutManager = new AcDbLayoutManager();
|
|
42
|
+
}
|
|
43
|
+
Object.defineProperty(AcDbHostApplicationServices.prototype, "workingDatabase", {
|
|
44
|
+
/**
|
|
45
|
+
* Gets the current working database.
|
|
46
|
+
*
|
|
47
|
+
* The working database is the primary database that the application
|
|
48
|
+
* is currently operating on. This must be set before it can be accessed.
|
|
49
|
+
*
|
|
50
|
+
* @returns The current working database
|
|
51
|
+
* @throws {Error} When the working database has not been set
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const services = acdbHostApplicationServices();
|
|
55
|
+
* try {
|
|
56
|
+
* const db = services.workingDatabase;
|
|
57
|
+
* // Use the database
|
|
58
|
+
* } catch (error) {
|
|
59
|
+
* console.error('Working database not set');
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
get: function () {
|
|
64
|
+
if (this._workingDatabase == null) {
|
|
65
|
+
throw new Error('The current working database must be set before using it!');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return this._workingDatabase;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
/**
|
|
72
|
+
* Sets the working database.
|
|
73
|
+
*
|
|
74
|
+
* This method sets the database that will be used as the current working database
|
|
75
|
+
* for the application. This database will be returned by the workingDatabase getter.
|
|
76
|
+
*
|
|
77
|
+
* @param database - The database to make the new working database
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const services = acdbHostApplicationServices();
|
|
81
|
+
* const db = new AcDbDatabase();
|
|
82
|
+
* services.workingDatabase = db;
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
set: function (database) {
|
|
86
|
+
this._workingDatabase = database;
|
|
87
|
+
},
|
|
88
|
+
enumerable: false,
|
|
89
|
+
configurable: true
|
|
90
|
+
});
|
|
91
|
+
Object.defineProperty(AcDbHostApplicationServices.prototype, "layoutManager", {
|
|
92
|
+
/**
|
|
93
|
+
* Gets the layout manager instance.
|
|
94
|
+
*
|
|
95
|
+
* The layout manager is responsible for managing layout objects in the application.
|
|
96
|
+
* This is a singleton instance that is created when the AcDbHostApplicationServices
|
|
97
|
+
* is instantiated.
|
|
98
|
+
*
|
|
99
|
+
* @returns The layout manager instance
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const services = acdbHostApplicationServices();
|
|
103
|
+
* const layoutManager = services.layoutManager;
|
|
104
|
+
* // Use the layout manager
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
get: function () {
|
|
108
|
+
return this._layoutManager;
|
|
109
|
+
},
|
|
110
|
+
enumerable: false,
|
|
111
|
+
configurable: true
|
|
112
|
+
});
|
|
113
|
+
/** The singleton instance of AcDbHostApplicationServices */
|
|
114
|
+
AcDbHostApplicationServices.instance = new AcDbHostApplicationServices();
|
|
115
|
+
return AcDbHostApplicationServices;
|
|
116
|
+
}());
|
|
117
|
+
export { AcDbHostApplicationServices };
|
|
118
|
+
//# 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;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,2BAA2B,CAAC,QAAQ,CAAA;AAC7C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH;IAWE;;;OAGG;IACH;QAdA,4CAA4C;QACpC,qBAAgB,GAAwB,IAAI,CAAA;QAclD,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAiB,EAAE,CAAA;IAC/C,CAAC;IAqBD,sBAAI,wDAAe;QAnBnB;;;;;;;;;;;;;;;;;;WAkBG;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;;;;;;;;;;;;;WAaG;aACH,UAAoB,QAAsB;YACxC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAA;QAClC,CAAC;;;OAlBA;IAmCD,sBAAI,sDAAa;QAfjB;;;;;;;;;;;;;;WAcG;aACH;YACE,OAAO,IAAI,CAAC,cAAc,CAAA;QAC5B,CAAC;;;OAAA;IA5ED,4DAA4D;IAC9C,oCAAQ,GACpB,IAAI,2BAA2B,EAAE,AADb,CACa;IA2ErC,kCAAC;CAAA,AApFD,IAoFC;SApFY,2BAA2B"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { AcCmAttributes, AcCmObject, AcCmStringKey } from '@mlightcad/common';
|
|
2
|
+
import { AcDbDatabase } from '../database/AcDbDatabase';
|
|
3
|
+
/** Type alias for object ID as string */
|
|
4
|
+
export type AcDbObjectId = string;
|
|
5
|
+
/**
|
|
6
|
+
* Interface defining the attributes that can be associated with an AcDbObject.
|
|
7
|
+
*
|
|
8
|
+
* Extends the base AcCmAttributes interface and adds object-specific attributes
|
|
9
|
+
* like objectId and ownerId.
|
|
10
|
+
*/
|
|
11
|
+
export interface AcDbObjectAttrs extends AcCmAttributes {
|
|
12
|
+
/** Unique identifier for the object */
|
|
13
|
+
objectId?: AcDbObjectId;
|
|
14
|
+
/** Identifier of the object that owns this object */
|
|
15
|
+
ownerId?: AcDbObjectId;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The base class for all objects that reside in a drawing database.
|
|
19
|
+
*
|
|
20
|
+
* This class provides the fundamental functionality for all database objects,
|
|
21
|
+
* including attribute management, object identification, and database association.
|
|
22
|
+
* It serves as the foundation for entities, tables, and other database objects.
|
|
23
|
+
*
|
|
24
|
+
* @template ATTRS - The type of attributes this object can have
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* class MyEntity extends AcDbObject<MyEntityAttrs> {
|
|
29
|
+
* constructor(attrs?: Partial<MyEntityAttrs>) {
|
|
30
|
+
* super(attrs);
|
|
31
|
+
* }
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare class AcDbObject<ATTRS extends AcDbObjectAttrs = AcDbObjectAttrs> {
|
|
36
|
+
/** Reference to the database this object belongs to */
|
|
37
|
+
private _database?;
|
|
38
|
+
/** The attributes object that stores all object properties */
|
|
39
|
+
private _attrs;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new AcDbObject instance.
|
|
42
|
+
*
|
|
43
|
+
* @param attrs - Input attribute values for this object
|
|
44
|
+
* @param defaultAttrs - Default values for attributes of this object
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const obj = new AcDbObject({ objectId: '123' });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
constructor(attrs?: Partial<ATTRS>, defaultAttrs?: Partial<ATTRS>);
|
|
52
|
+
/**
|
|
53
|
+
* Gets the attributes object for this AcDbObject.
|
|
54
|
+
*
|
|
55
|
+
* @returns The AcCmObject instance containing all attributes
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const attrs = obj.attrs;
|
|
60
|
+
* const value = attrs.get('someAttribute');
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
get attrs(): AcCmObject<ATTRS>;
|
|
64
|
+
/**
|
|
65
|
+
* Gets the value of the specified attribute.
|
|
66
|
+
*
|
|
67
|
+
* This method will throw an exception if the specified attribute doesn't exist.
|
|
68
|
+
* Use getAttrWithoutException() if you want to handle missing attributes gracefully.
|
|
69
|
+
*
|
|
70
|
+
* @param attrName - The name of the attribute to retrieve
|
|
71
|
+
* @returns The value of the specified attribute
|
|
72
|
+
* @throws {Error} When the specified attribute doesn't exist
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* try {
|
|
77
|
+
* const value = obj.getAttr('objectId');
|
|
78
|
+
* } catch (error) {
|
|
79
|
+
* console.error('Attribute not found');
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
getAttr(attrName: AcCmStringKey<ATTRS>): ATTRS[AcCmStringKey<ATTRS>] & ({} | null);
|
|
84
|
+
/**
|
|
85
|
+
* Gets the value of the specified attribute without throwing an exception.
|
|
86
|
+
*
|
|
87
|
+
* This method returns undefined if the specified attribute doesn't exist,
|
|
88
|
+
* making it safer for optional attributes.
|
|
89
|
+
*
|
|
90
|
+
* @param attrName - The name of the attribute to retrieve
|
|
91
|
+
* @returns The value of the specified attribute, or undefined if it doesn't exist
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const value = obj.getAttrWithoutException('optionalAttribute');
|
|
96
|
+
* if (value !== undefined) {
|
|
97
|
+
* // Use the value
|
|
98
|
+
* }
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
getAttrWithoutException(attrName: AcCmStringKey<ATTRS>): ATTRS[AcCmStringKey<ATTRS>] | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* Sets the value of an attribute.
|
|
104
|
+
*
|
|
105
|
+
* @param attrName - The name of the attribute to set
|
|
106
|
+
* @param val - The value to assign to the attribute
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* obj.setAttr('objectId', 'new-id-123');
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
setAttr<A extends AcCmStringKey<ATTRS>>(attrName: A, val?: ATTRS[A]): void;
|
|
114
|
+
/**
|
|
115
|
+
* Gets the object ID.
|
|
116
|
+
*
|
|
117
|
+
* AutoCAD uses 64-bit integers to represent handles, which exceed the maximum
|
|
118
|
+
* integer value of JavaScript. Therefore, strings are used to represent object handles.
|
|
119
|
+
*
|
|
120
|
+
* @returns The object ID as a string
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* const id = obj.objectId;
|
|
125
|
+
* console.log(`Object ID: ${id}`);
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
get objectId(): AcDbObjectId;
|
|
129
|
+
/**
|
|
130
|
+
* Sets the object ID.
|
|
131
|
+
*
|
|
132
|
+
* @param value - The new object ID
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* obj.objectId = 'new-object-id';
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
set objectId(value: AcDbObjectId);
|
|
140
|
+
/**
|
|
141
|
+
* Gets the object ID of the owner of this object.
|
|
142
|
+
*
|
|
143
|
+
* @returns The owner object ID
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const ownerId = obj.ownerId;
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
get ownerId(): AcDbObjectId;
|
|
151
|
+
/**
|
|
152
|
+
* Sets the object ID of the owner of this object.
|
|
153
|
+
*
|
|
154
|
+
* @param value - The new owner object ID
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* obj.ownerId = 'parent-object-id';
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
set ownerId(value: AcDbObjectId);
|
|
162
|
+
/**
|
|
163
|
+
* Gets the database in which this object is resident.
|
|
164
|
+
*
|
|
165
|
+
* When an object isn't added to a database, this property returns the current
|
|
166
|
+
* working database. After it is added to a database, it will be set automatically.
|
|
167
|
+
* You should never set this value manually.
|
|
168
|
+
*
|
|
169
|
+
* @returns The database this object belongs to
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const db = obj.database;
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
get database(): AcDbDatabase;
|
|
177
|
+
/**
|
|
178
|
+
* Sets the database for this object.
|
|
179
|
+
*
|
|
180
|
+
* This is typically set automatically when the object is added to a database.
|
|
181
|
+
* Manual setting should be avoided unless you know what you're doing.
|
|
182
|
+
*
|
|
183
|
+
* @param db - The database to associate with this object
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* obj.database = myDatabase;
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
set database(db: AcDbDatabase);
|
|
191
|
+
/**
|
|
192
|
+
* Closes the object.
|
|
193
|
+
*
|
|
194
|
+
* All changes made to the object since it was opened are committed to the database,
|
|
195
|
+
* and a "closed" notification is sent. This method can be overridden by subclasses
|
|
196
|
+
* to provide specific cleanup behavior.
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* obj.close();
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
close(): void;
|
|
204
|
+
}
|
|
205
|
+
//# 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,EACL,cAAc,EACd,UAAU,EACV,aAAa,EAEd,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,uCAAuC;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,qDAAqD;IACrD,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,UAAU,CAAC,KAAK,SAAS,eAAe,GAAG,eAAe;IACrE,uDAAuD;IACvD,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAmB;IAEjC;;;;;;;;;;OAUG;gBACS,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;IAMjE;;;;;;;;;;OAUG;IACH,IAAI,KAAK,sBAER;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;IAUtC;;;;;;;;;;;;;;;;OAgBG;IACH,uBAAuB,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;IAItD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,CAAC,SAAS,aAAa,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAInE;;;;;;;;;;;;;OAaG;IACH,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED;;;;;;;;;OASG;IACH,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,EAE/B;IAED;;;;;;;;;OASG;IACH,IAAI,OAAO,IAAI,YAAY,CAE1B;IAED;;;;;;;;;OASG;IACH,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,EAE9B;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,QAAQ,IAAI,YAAY,CAI3B;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,EAE5B;IAED;;;;;;;;;;;OAWG;IACH,KAAK;CACN"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { AcCmObject, defaults } from '@mlightcad/common';
|
|
2
|
+
import { uid } from 'uid';
|
|
3
|
+
import { acdbHostApplicationServices } from './AcDbHostApplicationServices';
|
|
4
|
+
/**
|
|
5
|
+
* The base class for all objects that reside in a drawing database.
|
|
6
|
+
*
|
|
7
|
+
* This class provides the fundamental functionality for all database objects,
|
|
8
|
+
* including attribute management, object identification, and database association.
|
|
9
|
+
* It serves as the foundation for entities, tables, and other database objects.
|
|
10
|
+
*
|
|
11
|
+
* @template ATTRS - The type of attributes this object can have
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* class MyEntity extends AcDbObject<MyEntityAttrs> {
|
|
16
|
+
* constructor(attrs?: Partial<MyEntityAttrs>) {
|
|
17
|
+
* super(attrs);
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
var AcDbObject = /** @class */ (function () {
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new AcDbObject instance.
|
|
25
|
+
*
|
|
26
|
+
* @param attrs - Input attribute values for this object
|
|
27
|
+
* @param defaultAttrs - Default values for attributes of this object
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const obj = new AcDbObject({ objectId: '123' });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
function AcDbObject(attrs, defaultAttrs) {
|
|
35
|
+
attrs = attrs || {};
|
|
36
|
+
defaults(attrs, { objectId: uid() });
|
|
37
|
+
this._attrs = new AcCmObject(attrs, defaultAttrs);
|
|
38
|
+
}
|
|
39
|
+
Object.defineProperty(AcDbObject.prototype, "attrs", {
|
|
40
|
+
/**
|
|
41
|
+
* Gets the attributes object for this AcDbObject.
|
|
42
|
+
*
|
|
43
|
+
* @returns The AcCmObject instance containing all attributes
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const attrs = obj.attrs;
|
|
48
|
+
* const value = attrs.get('someAttribute');
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
get: function () {
|
|
52
|
+
return this._attrs;
|
|
53
|
+
},
|
|
54
|
+
enumerable: false,
|
|
55
|
+
configurable: true
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Gets the value of the specified attribute.
|
|
59
|
+
*
|
|
60
|
+
* This method will throw an exception if the specified attribute doesn't exist.
|
|
61
|
+
* Use getAttrWithoutException() if you want to handle missing attributes gracefully.
|
|
62
|
+
*
|
|
63
|
+
* @param attrName - The name of the attribute to retrieve
|
|
64
|
+
* @returns The value of the specified attribute
|
|
65
|
+
* @throws {Error} When the specified attribute doesn't exist
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* try {
|
|
70
|
+
* const value = obj.getAttr('objectId');
|
|
71
|
+
* } catch (error) {
|
|
72
|
+
* console.error('Attribute not found');
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
AcDbObject.prototype.getAttr = function (attrName) {
|
|
77
|
+
var value = this._attrs.get(attrName);
|
|
78
|
+
if (value === undefined) {
|
|
79
|
+
throw new Error("[AcDbObject] Attribute name '".concat(attrName, "' does't exist in this object!"));
|
|
80
|
+
}
|
|
81
|
+
return value;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Gets the value of the specified attribute without throwing an exception.
|
|
85
|
+
*
|
|
86
|
+
* This method returns undefined if the specified attribute doesn't exist,
|
|
87
|
+
* making it safer for optional attributes.
|
|
88
|
+
*
|
|
89
|
+
* @param attrName - The name of the attribute to retrieve
|
|
90
|
+
* @returns The value of the specified attribute, or undefined if it doesn't exist
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* const value = obj.getAttrWithoutException('optionalAttribute');
|
|
95
|
+
* if (value !== undefined) {
|
|
96
|
+
* // Use the value
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
AcDbObject.prototype.getAttrWithoutException = function (attrName) {
|
|
101
|
+
return this._attrs.get(attrName);
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Sets the value of an attribute.
|
|
105
|
+
*
|
|
106
|
+
* @param attrName - The name of the attribute to set
|
|
107
|
+
* @param val - The value to assign to the attribute
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* obj.setAttr('objectId', 'new-id-123');
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
AcDbObject.prototype.setAttr = function (attrName, val) {
|
|
115
|
+
this._attrs.set(attrName, val);
|
|
116
|
+
};
|
|
117
|
+
Object.defineProperty(AcDbObject.prototype, "objectId", {
|
|
118
|
+
/**
|
|
119
|
+
* Gets the object ID.
|
|
120
|
+
*
|
|
121
|
+
* AutoCAD uses 64-bit integers to represent handles, which exceed the maximum
|
|
122
|
+
* integer value of JavaScript. Therefore, strings are used to represent object handles.
|
|
123
|
+
*
|
|
124
|
+
* @returns The object ID as a string
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const id = obj.objectId;
|
|
129
|
+
* console.log(`Object ID: ${id}`);
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
get: function () {
|
|
133
|
+
return this.getAttr('objectId');
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Sets the object ID.
|
|
137
|
+
*
|
|
138
|
+
* @param value - The new object ID
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* obj.objectId = 'new-object-id';
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
set: function (value) {
|
|
146
|
+
this._attrs.set('objectId', value);
|
|
147
|
+
},
|
|
148
|
+
enumerable: false,
|
|
149
|
+
configurable: true
|
|
150
|
+
});
|
|
151
|
+
Object.defineProperty(AcDbObject.prototype, "ownerId", {
|
|
152
|
+
/**
|
|
153
|
+
* Gets the object ID of the owner of this object.
|
|
154
|
+
*
|
|
155
|
+
* @returns The owner object ID
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* const ownerId = obj.ownerId;
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
get: function () {
|
|
163
|
+
return this.getAttr('ownerId');
|
|
164
|
+
},
|
|
165
|
+
/**
|
|
166
|
+
* Sets the object ID of the owner of this object.
|
|
167
|
+
*
|
|
168
|
+
* @param value - The new owner object ID
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* obj.ownerId = 'parent-object-id';
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
set: function (value) {
|
|
176
|
+
this._attrs.set('ownerId', value);
|
|
177
|
+
},
|
|
178
|
+
enumerable: false,
|
|
179
|
+
configurable: true
|
|
180
|
+
});
|
|
181
|
+
Object.defineProperty(AcDbObject.prototype, "database", {
|
|
182
|
+
/**
|
|
183
|
+
* Gets the database in which this object is resident.
|
|
184
|
+
*
|
|
185
|
+
* When an object isn't added to a database, this property returns the current
|
|
186
|
+
* working database. After it is added to a database, it will be set automatically.
|
|
187
|
+
* You should never set this value manually.
|
|
188
|
+
*
|
|
189
|
+
* @returns The database this object belongs to
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* const db = obj.database;
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
get: function () {
|
|
197
|
+
return this._database
|
|
198
|
+
? this._database
|
|
199
|
+
: acdbHostApplicationServices().workingDatabase;
|
|
200
|
+
},
|
|
201
|
+
/**
|
|
202
|
+
* Sets the database for this object.
|
|
203
|
+
*
|
|
204
|
+
* This is typically set automatically when the object is added to a database.
|
|
205
|
+
* Manual setting should be avoided unless you know what you're doing.
|
|
206
|
+
*
|
|
207
|
+
* @param db - The database to associate with this object
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```typescript
|
|
211
|
+
* obj.database = myDatabase;
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
set: function (db) {
|
|
215
|
+
this._database = db;
|
|
216
|
+
},
|
|
217
|
+
enumerable: false,
|
|
218
|
+
configurable: true
|
|
219
|
+
});
|
|
220
|
+
/**
|
|
221
|
+
* Closes the object.
|
|
222
|
+
*
|
|
223
|
+
* All changes made to the object since it was opened are committed to the database,
|
|
224
|
+
* and a "closed" notification is sent. This method can be overridden by subclasses
|
|
225
|
+
* to provide specific cleanup behavior.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```typescript
|
|
229
|
+
* obj.close();
|
|
230
|
+
* ```
|
|
231
|
+
*/
|
|
232
|
+
AcDbObject.prototype.close = function () { };
|
|
233
|
+
return AcDbObject;
|
|
234
|
+
}());
|
|
235
|
+
export { AcDbObject };
|
|
236
|
+
//# sourceMappingURL=AcDbObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcDbObject.js","sourceRoot":"","sources":["../../src/base/AcDbObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAGzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAkB3E;;;;;;;;;;;;;;;;;GAiBG;AACH;IAME;;;;;;;;;;OAUG;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;IAaD,sBAAI,6BAAK;QAXT;;;;;;;;;;WAUG;aACH;YACE,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;;;OAAA;IAED;;;;;;;;;;;;;;;;;;OAkBG;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;;;;;;;;;;;;;;;;OAgBG;IACH,4CAAuB,GAAvB,UAAwB,QAA8B;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED;;;;;;;;;;OAUG;IACH,4BAAO,GAAP,UAAwC,QAAW,EAAE,GAAc;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;IAgBD,sBAAI,gCAAQ;QAdZ;;;;;;;;;;;;;WAaG;aACH;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACjC,CAAC;QAED;;;;;;;;;WASG;aACH,UAAa,KAAmB;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;;;OAdA;IA0BD,sBAAI,+BAAO;QAVX;;;;;;;;;WASG;aACH;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC;QAED;;;;;;;;;WASG;aACH,UAAY,KAAmB;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;;;OAdA;IA8BD,sBAAI,gCAAQ;QAdZ;;;;;;;;;;;;;WAaG;aACH;YACE,OAAO,IAAI,CAAC,SAAS;gBACnB,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,2BAA2B,EAAE,CAAC,eAAe,CAAA;QACnD,CAAC;QAED;;;;;;;;;;;;WAYG;aACH,UAAa,EAAgB;YAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACrB,CAAC;;;OAjBA;IAmBD;;;;;;;;;;;OAWG;IACH,0BAAK,GAAL,cAAS,CAAC;IACZ,iBAAC;AAAD,CAAC,AArND,IAqNC"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,cAAc,CAAA"}
|