@itwin/core-backend 5.9.0-dev.4 → 5.9.0-dev.6
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/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.js +3 -3
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.d.ts +37 -7
- package/lib/cjs/Category.d.ts.map +1 -1
- package/lib/cjs/Category.js +33 -42
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +253 -250
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.d.ts +29 -0
- package/lib/cjs/ChannelControl.d.ts.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.js +1 -1
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +32 -3
- package/lib/cjs/CodeSpecs.d.ts.map +1 -1
- package/lib/cjs/CodeSpecs.js +48 -20
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +18 -3
- package/lib/cjs/DisplayStyle.d.ts.map +1 -1
- package/lib/cjs/DisplayStyle.js +10 -21
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/ECSqlSyncReader.js.map +1 -1
- package/lib/cjs/EditTxn.d.ts +262 -0
- package/lib/cjs/EditTxn.d.ts.map +1 -0
- package/lib/cjs/EditTxn.js +548 -0
- package/lib/cjs/EditTxn.js.map +1 -0
- package/lib/cjs/Element.d.ts +74 -5
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +63 -75
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +10 -0
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +21 -12
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +56 -3
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +53 -40
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.d.ts +11 -2
- package/lib/cjs/ExternalSource.d.ts.map +1 -1
- package/lib/cjs/ExternalSource.js +10 -8
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +66 -22
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +182 -296
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +22 -0
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +9 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.js +2 -2
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +47 -7
- package/lib/cjs/LineStyle.d.ts.map +1 -1
- package/lib/cjs/LineStyle.js +38 -33
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.d.ts +8 -1
- package/lib/cjs/Material.d.ts.map +1 -1
- package/lib/cjs/Material.js +6 -12
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +59 -20
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +38 -80
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +72 -7
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +39 -21
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js +4 -4
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.d.ts +9 -0
- package/lib/cjs/SheetIndex.d.ts.map +1 -1
- package/lib/cjs/SheetIndex.js +38 -35
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/StashManager.js +1 -1
- package/lib/cjs/StashManager.js.map +1 -1
- package/lib/cjs/Texture.d.ts +6 -0
- package/lib/cjs/Texture.d.ts.map +1 -1
- package/lib/cjs/Texture.js +6 -14
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +5 -5
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +23 -7
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +21 -1
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +27 -66
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +33 -27
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js +6 -5
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.d.ts +1 -0
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +1 -0
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.d.ts +6 -2
- package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js +8 -13
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +11 -4
- package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
- package/lib/cjs/domains/GenericElements.js +13 -24
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts +15 -0
- package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +5 -3
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/internal/HubMock.js.map +1 -1
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/OnlineStatus.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +4 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +5 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.d.ts +3 -2
- package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
- package/lib/cjs/internal/annotations/fields.js +7 -6
- package/lib/cjs/internal/annotations/fields.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsDb.js.map +1 -1
- package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.js +3 -3
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.d.ts +37 -7
- package/lib/esm/Category.d.ts.map +1 -1
- package/lib/esm/Category.js +33 -42
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +253 -250
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.d.ts +29 -0
- package/lib/esm/ChannelControl.d.ts.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.js +1 -1
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +5 -5
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.d.ts +32 -3
- package/lib/esm/CodeSpecs.d.ts.map +1 -1
- package/lib/esm/CodeSpecs.js +49 -21
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/CustomViewState3dCreator.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyle.d.ts +18 -3
- package/lib/esm/DisplayStyle.d.ts.map +1 -1
- package/lib/esm/DisplayStyle.js +10 -21
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlRowExecutor.js.map +1 -1
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/ECSqlSyncReader.js.map +1 -1
- package/lib/esm/EditTxn.d.ts +262 -0
- package/lib/esm/EditTxn.d.ts.map +1 -0
- package/lib/esm/EditTxn.js +543 -0
- package/lib/esm/EditTxn.js.map +1 -0
- package/lib/esm/Element.d.ts +74 -5
- package/lib/esm/Element.d.ts.map +1 -1
- package/lib/esm/Element.js +64 -76
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.d.ts +10 -0
- package/lib/esm/ElementAspect.d.ts.map +1 -1
- package/lib/esm/ElementAspect.js +22 -13
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.d.ts +56 -3
- package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
- package/lib/esm/ElementTreeWalker.js +53 -40
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.d.ts +11 -2
- package/lib/esm/ExternalSource.d.ts.map +1 -1
- package/lib/esm/ExternalSource.js +10 -8
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/FontFile.js.map +1 -1
- package/lib/esm/GeoCoordConfig.js.map +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/GeometrySummary.js +47 -47
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +66 -22
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +184 -298
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +22 -0
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +9 -0
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.js +3 -3
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/LineStyle.d.ts +47 -7
- package/lib/esm/LineStyle.d.ts.map +1 -1
- package/lib/esm/LineStyle.js +38 -33
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.js +1 -1
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/LocalhostIpcHost.js.map +1 -1
- package/lib/esm/LockControl.js.map +1 -1
- package/lib/esm/Material.d.ts +8 -1
- package/lib/esm/Material.d.ts.map +1 -1
- package/lib/esm/Material.js +6 -12
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.d.ts +59 -20
- package/lib/esm/Model.d.ts.map +1 -1
- package/lib/esm/Model.js +39 -81
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.d.ts +72 -7
- package/lib/esm/Relationship.d.ts.map +1 -1
- package/lib/esm/Relationship.js +40 -22
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.js +5 -5
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- package/lib/esm/SheetIndex.d.ts +9 -0
- package/lib/esm/SheetIndex.d.ts.map +1 -1
- package/lib/esm/SheetIndex.js +38 -35
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/SqliteChangesetReader.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/StashManager.js +1 -1
- package/lib/esm/StashManager.js.map +1 -1
- package/lib/esm/Texture.d.ts +6 -0
- package/lib/esm/Texture.d.ts.map +1 -1
- package/lib/esm/Texture.js +6 -14
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +5 -5
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +23 -7
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.d.ts +21 -1
- package/lib/esm/ViewDefinition.d.ts.map +1 -1
- package/lib/esm/ViewDefinition.js +27 -66
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +33 -27
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js +6 -5
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
- package/lib/esm/core-backend.d.ts +1 -0
- package/lib/esm/core-backend.d.ts.map +1 -1
- package/lib/esm/core-backend.js +1 -0
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.d.ts +6 -2
- package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
- package/lib/esm/domains/FunctionalElements.js +8 -13
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- package/lib/esm/domains/GenericElements.d.ts +11 -4
- package/lib/esm/domains/GenericElements.d.ts.map +1 -1
- package/lib/esm/domains/GenericElements.js +13 -24
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/domains/GenericSchema.js.map +1 -1
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.d.ts +15 -0
- package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/esm/internal/ChannelAdmin.js +6 -4
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/internal/HubMock.js.map +1 -1
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/esm/internal/IntegrityCheck.js.map +1 -1
- package/lib/esm/internal/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/OnlineStatus.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +4 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +4 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/annotations/fields.d.ts +3 -2
- package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
- package/lib/esm/internal/annotations/fields.js +7 -6
- package/lib/esm/internal/annotations/fields.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.d.ts +20 -19
- package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
- package/lib/esm/test/ElementDrivesElement.test.js +134 -119
- package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js +56 -2
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.d.ts +23 -23
- package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
- package/lib/esm/test/IModelTestUtils.js +466 -449
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js +2 -2
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/RevisionUtility.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +25 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js +156 -147
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js +11 -7
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestEditTxn.d.ts +8 -0
- package/lib/esm/test/TestEditTxn.d.ts.map +1 -0
- package/lib/esm/test/TestEditTxn.js +34 -0
- package/lib/esm/test/TestEditTxn.js.map +1 -0
- package/lib/esm/test/TestUtils.d.ts +1 -0
- package/lib/esm/test/TestUtils.d.ts.map +1 -1
- package/lib/esm/test/TestUtils.js +8 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +135 -143
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +156 -99
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.js +5 -3
- package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js +63 -3
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- package/lib/esm/test/codespec/CodeSpec.test.js +88 -5
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +88 -88
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +72 -72
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +68 -67
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +6 -6
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -333
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/QueryReaders.test.js +47 -44
- package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -2
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +30 -28
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js +159 -143
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +90 -82
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js +51 -43
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +176 -177
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js +2 -2
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js +40 -38
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +23 -22
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- package/lib/esm/test/element/ProjectInformationRecord.test.js +5 -2
- package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
- package/lib/esm/test/element/SheetInformationAspect.test.js +43 -11
- package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
- package/lib/esm/test/element/UrlLink.test.js +2 -2
- package/lib/esm/test/element/UrlLink.test.js.map +1 -1
- package/lib/esm/test/font/FontFile.test.js.map +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js +87 -73
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +194 -155
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js +2 -4
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/Rebase.test.js +369 -303
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebase.test.js +467 -392
- package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/Code.test.js +31 -31
- package/lib/esm/test/imodel/Code.test.js.map +1 -1
- package/lib/esm/test/imodel/ElementTreeWalker.test.js +57 -48
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +463 -388
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/imodel/ProjectExtents.test.js +2 -2
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js +13 -13
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js +2 -2
- package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
- package/lib/esm/test/index.d.ts +1 -0
- package/lib/esm/test/index.d.ts.map +1 -1
- package/lib/esm/test/index.js +1 -0
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
- package/lib/esm/test/rpc/response.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +122 -121
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js +36 -34
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js +114 -94
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js +11 -10
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js +226 -211
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +1 -3
- package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -247
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js +101 -82
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +242 -213
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
- package/lib/esm/test/standalone/DisplayStyle.test.js +43 -40
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js +4 -3
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/EditTxn.test.d.ts +2 -0
- package/lib/esm/test/standalone/EditTxn.test.d.ts.map +1 -0
- package/lib/esm/test/standalone/EditTxn.test.js +219 -0
- package/lib/esm/test/standalone/EditTxn.test.js.map +1 -0
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js +16 -13
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +40 -34
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js +11 -15
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js +212 -165
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js +31 -25
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.js +11 -8
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.d.ts +2 -2
- package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +211 -169
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +25 -22
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- package/lib/esm/test/standalone/IntegrityCheck.test.js +20 -18
- package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.d.ts +2 -2
- package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js +49 -33
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js +5 -5
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js +3 -2
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/standalone/SectionDrawing.test.js +7 -7
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js +21 -19
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Setting.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js +7 -4
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js +2 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js +3 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/StandaloneDb.test.js +27 -26
- package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js +5 -4
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js +5 -3
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js +35 -31
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js +700 -653
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewDefinition.test.js +295 -229
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js +25 -23
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
- package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
- package/lib/esm/workspace/Settings.js.map +1 -1
- package/lib/esm/workspace/SettingsDb.js.map +1 -1
- package/lib/esm/workspace/SettingsEditor.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +13 -13
|
@@ -5,6 +5,7 @@ import { ElementAspectProps, EntityReferenceSet, ExternalSourceAspectProps, Rela
|
|
|
5
5
|
import { Entity } from "./Entity";
|
|
6
6
|
import { IModelDb } from "./IModelDb";
|
|
7
7
|
import { Id64String } from "@itwin/core-bentley";
|
|
8
|
+
import { EditTxn } from "./EditTxn";
|
|
8
9
|
/** Argument for the `ElementAspect.onXxx` static methods
|
|
9
10
|
* @beta
|
|
10
11
|
*/
|
|
@@ -115,8 +116,17 @@ export declare class SheetInformationAspect extends ElementUniqueAspect {
|
|
|
115
116
|
* If `information` is `undefined`, any existing aspect will be deleted.
|
|
116
117
|
* Otherwise, a new aspect will be inserted, or an existing aspect will be updated with the new metadata.
|
|
117
118
|
* @throws Error if the iModel contains a version of the BisCore schema older than 01.00.25.
|
|
119
|
+
* @deprecated Use SheetInformationAspect.setSheetInformation(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
|
|
118
120
|
*/
|
|
119
121
|
static setSheetInformation(information: SheetInformation | undefined, sheetId: Id64String, iModel: IModelDb): void;
|
|
122
|
+
/** Sets the `information` for the [[Sheet]] element specified by `sheetId`, using an explicit EditTxn.
|
|
123
|
+
* If `information` is `undefined`, any existing aspect will be deleted.
|
|
124
|
+
* Otherwise, a new aspect will be inserted, or an existing aspect will be updated with the new metadata.
|
|
125
|
+
* @throws Error if the iModel contains a version of the BisCore schema older than 01.00.25.
|
|
126
|
+
* @throws EditTxnError if the EditTxn is not active.
|
|
127
|
+
* @beta
|
|
128
|
+
*/
|
|
129
|
+
static setSheetInformation(txn: EditTxn, information: SheetInformation | undefined, sheetId: Id64String): void;
|
|
120
130
|
}
|
|
121
131
|
/** An ElementMultiAspect that stores synchronization information for an Element originating from an external source.
|
|
122
132
|
* @note The associated ECClass was added to the BisCore schema in version 1.0.2
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementAspect.d.ts","sourceRoot":"","sources":["../../src/ElementAspect.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAA0B,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,cAAc,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC9L,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ElementAspect.d.ts","sourceRoot":"","sources":["../../src/ElementAspect.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAA0B,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,cAAc,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC9L,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,MAAM,EAAE,QAAQ,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,UAAU,CAAC;CACnB;AACD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,+DAA+D;IAC/D,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;CACrC;AACD;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,kDAAkD;IAClD,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IACvC,WAA2B,SAAS,IAAI,MAAM,CAA4B;IACnE,OAAO,EAAE,cAAc,CAAC;IAE/B,kFAAkF;gBACtE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ;IAKvC,MAAM,IAAI,kBAAkB;IAM5C;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAMtD;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAEzD;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAMtD;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAExD;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAOnD;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;CACtD;AACD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,WAA2B,SAAS,IAAI,MAAM,CAAkC;CACjF;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,WAA2B,SAAS,IAAI,MAAM,CAAiC;CAChF;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,WAA2B,SAAS,IAAI,MAAM,CAAgC;IAC9E;;OAEG;WACW,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM;CAIhF;AAID;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,WAA2B,SAAS,WAAuC;IAE3E,4BAA4B;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;qBAEhB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAS/D,OAAO;IAaS,MAAM,IAAI,2BAA2B;IAgBrD,OAAO,CAAC,MAAM,CAAC,YAAY;IAc3B;;OAEG;WACW,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAG,gBAAgB,GAAG,SAAS;IAKtG;;;;;OAKG;WACW,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI;IAEzH;;;;;;OAMG;WACW,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,GAAG,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;CAsDtH;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,WAA2B,SAAS,IAAI,MAAM,CAAmC;IAEjF;;;OAGG;IACI,KAAK,EAAE,cAAc,CAAC;IAC7B,6DAA6D;IACtD,UAAU,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IAChD,IAAI,EAAE,MAAM,CAAC;IACpB,mKAAmK;IAC5J,QAAQ,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACI,cAAc,CAAC,EAAE,MAAM,CAAC;IAC/B,iHAAiH;IAC1G,MAAM,CAAC,EAAE,cAAc,CAAC;IAE/B,kFAAkF;gBACtE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ;IAW9D;;;;;;;;;;;MAWE;WACY,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,CAAC;IAe9I,MAAM,IAAI,yBAAyB;cAYhC,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;CAQ/E;AAED,uBAAuB;AACvB,yBAAiB,oBAAoB,CAAC;IACpC;;OAEG;IACH,KAAY,IAAI;QACd,oFAAoF;QACpF,OAAO,YAAY;QACnB,yFAAyF;QACzF,YAAY,iBAAiB;QAC7B;;WAEG;QACH,KAAK,UAAU;KAChB;CACF"}
|
package/lib/cjs/ElementAspect.js
CHANGED
|
@@ -15,6 +15,7 @@ const Symbols_1 = require("./internal/Symbols");
|
|
|
15
15
|
const NavigationRelationship_1 = require("./NavigationRelationship");
|
|
16
16
|
const Element_1 = require("./Element");
|
|
17
17
|
const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
|
|
18
|
+
const EditTxn_1 = require("./EditTxn");
|
|
18
19
|
/** An Element Aspect is a class that defines a set of properties that are related to (and owned by) a single element.
|
|
19
20
|
* Semantically, an ElementAspect can be considered part of the Element. Thus, an ElementAspect is deleted if its owning Element is deleted.
|
|
20
21
|
* BIS Guideline: Subclass ElementUniqueAspect or ElementMultiAspect rather than subclassing ElementAspect directly.
|
|
@@ -105,7 +106,7 @@ class ChannelRootAspect extends ElementUniqueAspect {
|
|
|
105
106
|
*/
|
|
106
107
|
static insert(iModel, ownerId, channelName) {
|
|
107
108
|
const props = { classFullName: this.classFullName, element: { id: ownerId }, owner: channelName };
|
|
108
|
-
iModel.
|
|
109
|
+
iModel[Symbols_1._implicitTxn].insertAspect(props);
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
exports.ChannelRootAspect = ChannelRootAspect;
|
|
@@ -166,23 +167,31 @@ class SheetInformationAspect extends ElementUniqueAspect {
|
|
|
166
167
|
const aspect = this.findForSheet(sheetId, iModel);
|
|
167
168
|
return aspect?.sheetInformation;
|
|
168
169
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
170
|
+
static setSheetInformation(arg1, arg2, arg3) {
|
|
171
|
+
let txn;
|
|
172
|
+
let information;
|
|
173
|
+
let sheetId;
|
|
174
|
+
if (arg1 instanceof EditTxn_1.EditTxn) {
|
|
175
|
+
txn = arg1;
|
|
176
|
+
information = arg2;
|
|
177
|
+
sheetId = arg3;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
txn = arg3[Symbols_1._implicitTxn];
|
|
181
|
+
information = arg1;
|
|
182
|
+
sheetId = arg2;
|
|
183
|
+
}
|
|
184
|
+
txn.iModel.requireMinimumSchemaVersion("BisCore", minimumBisCoreVersion, "SheetInformationAspect");
|
|
185
|
+
const aspect = this.findForSheet(sheetId, txn.iModel);
|
|
177
186
|
if (!information) {
|
|
178
187
|
if (aspect) {
|
|
179
|
-
|
|
188
|
+
txn.deleteAspect(aspect.id);
|
|
180
189
|
}
|
|
181
190
|
return;
|
|
182
191
|
}
|
|
183
192
|
if (aspect) {
|
|
184
193
|
aspect.sheetInformation = { ...information };
|
|
185
|
-
|
|
194
|
+
txn.updateAspect(aspect.toJSON());
|
|
186
195
|
}
|
|
187
196
|
else {
|
|
188
197
|
const info = { ...information };
|
|
@@ -202,7 +211,7 @@ class SheetInformationAspect extends ElementUniqueAspect {
|
|
|
202
211
|
},
|
|
203
212
|
...info,
|
|
204
213
|
};
|
|
205
|
-
|
|
214
|
+
txn.insertAspect(props);
|
|
206
215
|
}
|
|
207
216
|
}
|
|
208
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementAspect.js","sourceRoot":"","sources":["../../src/ElementAspect.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ElementAspects\n */\n\nimport { ChannelRootAspectProps, ElementAspectProps, EntityReferenceSet, ExternalSourceAspectProps, RelatedElement, SheetInformation, SheetInformationAspectProps } from \"@itwin/core-common\";\nimport { Entity } from \"./Entity\";\nimport { IModelDb } from \"./IModelDb\";\nimport { ECSqlStatement } from \"./ECSqlStatement\";\nimport { assert, DbResult, Id64String } from \"@itwin/core-bentley\";\nimport { _verifyChannel } from \"./internal/Symbols\";\nimport { SheetOwnsSheetInformationAspect } from \"./NavigationRelationship\";\nimport { Sheet } from \"./Element\";\nimport { ECVersion } from \"@itwin/ecschema-metadata\";\n\n/** Argument for the `ElementAspect.onXxx` static methods\n * @beta\n */\nexport interface OnAspectArg {\n /** The iModel for the aspect affected by this event. */\n iModel: IModelDb;\n /** The model for the aspect affected by this event */\n model: Id64String;\n}\n/** Argument for the `ElementAspect.onXxx` static methods that supply the properties of an aspect to be inserted or updated.\n * @beta\n */\nexport interface OnAspectPropsArg extends OnAspectArg {\n /** The new properties of the aspect affected by this event. */\n props: Readonly<ElementAspectProps>;\n}\n/** Argument for the `ElementAspect.onXxx` static methods that only supply the Id of the affected aspect.\n * @beta\n */\nexport interface OnAspectIdArg extends OnAspectArg {\n /** The Id of the aspect affected by this event */\n aspectId: Id64String;\n}\n\n/** An Element Aspect is a class that defines a set of properties that are related to (and owned by) a single element.\n * Semantically, an ElementAspect can be considered part of the Element. Thus, an ElementAspect is deleted if its owning Element is deleted.\n * BIS Guideline: Subclass ElementUniqueAspect or ElementMultiAspect rather than subclassing ElementAspect directly.\n * @public @preview\n */\nexport class ElementAspect extends Entity {\n public static override get className(): string { return \"ElementAspect\"; }\n public element: RelatedElement;\n\n /** Construct an aspect from its JSON representation and its containing iModel. */\n constructor(props: ElementAspectProps, iModel: IModelDb) {\n super(props, iModel);\n this.element = RelatedElement.fromJSON(props.element)!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\n }\n\n public override toJSON(): ElementAspectProps {\n const val = super.toJSON() as ElementAspectProps;\n val.element = this.element;\n return val;\n }\n\n /** Called before a new ElementAspect is inserted.\n * @note throw an exception to disallow the insert\n * @note If you override this method, you must call super.\n * @beta\n */\n protected static onInsert(arg: OnAspectPropsArg): void {\n const { props, iModel } = arg;\n iModel.channels[_verifyChannel](arg.model);\n iModel.locks.checkExclusiveLock(props.element.id, \"element\", \"insert aspect\");\n }\n\n /** Called after a new ElementAspect was inserted.\n * @note If you override this method, you must call super.\n * @beta\n */\n protected static onInserted(_arg: OnAspectPropsArg): void { }\n\n /** Called before an ElementAspect is updated.\n * @note throw an exception to disallow the update\n * @note If you override this method, you must call super.\n * @beta\n */\n protected static onUpdate(arg: OnAspectPropsArg): void {\n const { props, iModel } = arg;\n iModel.channels[_verifyChannel](arg.model);\n iModel.locks.checkExclusiveLock(props.element.id, \"element\", \"update aspect\");\n }\n\n /** Called after an ElementAspect was updated.\n * @note If you override this method, you must call super.\n * @beta\n */\n protected static onUpdated(_arg: OnAspectPropsArg): void { }\n\n /** Called before an ElementAspect is deleted.\n * @note throw an exception to disallow the delete\n * @note If you override this method, you must call super.\n * @beta\n */\n protected static onDelete(arg: OnAspectIdArg): void {\n const { aspectId, iModel } = arg;\n iModel.channels[_verifyChannel](arg.model);\n const { element } = iModel.elements.getAspect(aspectId);\n iModel.locks.checkExclusiveLock(element.id, \"element\", \"delete aspect\");\n }\n\n /** Called after an ElementAspect was deleted.\n * @note If you override this method, you must call super.\n * @beta\n */\n protected static onDeleted(_arg: OnAspectIdArg): void { }\n}\n/** An Element Unique Aspect is an ElementAspect where there can be only zero or one instance of the Element Aspect class per Element.\n * @public @preview\n */\nexport class ElementUniqueAspect extends ElementAspect {\n public static override get className(): string { return \"ElementUniqueAspect\"; }\n}\n\n/** An Element Multi-Aspect is an ElementAspect where there can be **n** instances of the Element Aspect class per Element.\n * @public @preview\n */\nexport class ElementMultiAspect extends ElementAspect {\n public static override get className(): string { return \"ElementMultiAspect\"; }\n}\n\n/**\n * @public @preview\n */\nexport class ChannelRootAspect extends ElementUniqueAspect {\n public static override get className(): string { return \"ChannelRootAspect\"; }\n /** Insert a ChannelRootAspect on the specified element.\n * @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[ChannelControl.makeChannelRoot]]. This method does not enforce the rule that channels may not nest and is therefore dangerous.\n */\n public static insert(iModel: IModelDb, ownerId: Id64String, channelName: string) {\n const props: ChannelRootAspectProps = { classFullName: this.classFullName, element: { id: ownerId }, owner: channelName };\n iModel.elements.insertAspect(props);\n }\n}\n\nconst minimumBisCoreVersion = new ECVersion(1, 0, 25);\n\n/** An [[ElementUniqueAspect]] that captures common metadata about a single [[Sheet]].\n * Use [[getSheetInformation]] to retrieve the metadata for a Sheet and [[setSheetInformation]] to create, update, or delete it.\n * @beta\n */\nexport class SheetInformationAspect extends ElementUniqueAspect {\n public static override get className() { return \"SheetInformationAspect\"; }\n \n /** The sheet's metadata. */\n public sheetInformation: SheetInformation;\n\n protected static override onInsert(arg: OnAspectPropsArg): void {\n super.onInsert(arg);\n\n const sheet = arg.iModel.elements.tryGetElement<Sheet>(arg.props.element);\n if (!(sheet instanceof Sheet)) {\n throw new Error(\"SheetInformationAspect can only be applied to a Sheet element\");\n }\n }\n\n private constructor(props: SheetInformationAspectProps, iModel: IModelDb) {\n super(props, iModel);\n\n const designedDate = undefined !== props.designedDate ? new Date(props.designedDate) : undefined;\n\n this.sheetInformation = {\n designedBy: props.designedBy,\n designedDate,\n drawnBy: props.drawnBy,\n checkedBy: props.checkedBy,\n };\n }\n\n public override toJSON(): SheetInformationAspectProps {\n const props = super.toJSON() as SheetInformationAspectProps;\n for (const key of [\"designedBy\", \"drawnBy\", \"checkedBy\"] as const) {\n const value = this.sheetInformation[key];\n if (undefined !== value) {\n props[key] = value;\n }\n }\n\n if (undefined !== this.sheetInformation.designedDate) {\n props.designedDate = this.sheetInformation.designedDate.toISOString();\n }\n\n return props;\n }\n\n private static findForSheet(sheetId: Id64String, iModel: IModelDb): SheetInformationAspect | undefined {\n if (!iModel.meetsMinimumSchemaVersion(\"BisCore\", minimumBisCoreVersion)) {\n return undefined;\n }\n\n const aspects = iModel.elements.getAspects(sheetId, this.classFullName);\n if (aspects[0]) {\n assert(aspects[0] instanceof SheetInformationAspect);\n return aspects[0];\n }\n\n return undefined;\n }\n\n /** Retrieves the metadata hosted by the aspect on the specified sheet, returning `undefined` if no such metadata could be retrieved.\n * @see [[setSheetInformation]] to create, update, or delete the aspect.\n */\n public static getSheetInformation(sheetId: Id64String, iModel: IModelDb): SheetInformation | undefined {\n const aspect = this.findForSheet(sheetId, iModel);\n return aspect?.sheetInformation;\n }\n\n /** Sets the `information` for the [[Sheet]] element specified by ``sheetId`.\n * If `information` is `undefined`, any existing aspect will be deleted.\n * Otherwise, a new aspect will be inserted, or an existing aspect will be updated with the new metadata.\n * @throws Error if the iModel contains a version of the BisCore schema older than 01.00.25.\n */\n public static setSheetInformation(information: SheetInformation | undefined, sheetId: Id64String, iModel: IModelDb): void {\n iModel.requireMinimumSchemaVersion(\"BisCore\", minimumBisCoreVersion, \"SheetInformationAspect\");\n\n const aspect = this.findForSheet(sheetId, iModel);\n if (!information) {\n if (aspect) {\n iModel.elements.deleteAspect(aspect.id);\n }\n\n return;\n }\n\n if (aspect) {\n aspect.sheetInformation = { ...information };\n iModel.elements.updateAspect(aspect.toJSON());\n } else {\n const info = { ...information } as any;\n for (const key of Object.keys(info)) {\n if (info[key] === undefined) {\n delete info[key];\n }\n }\n\n if (undefined !== info.designedDate) {\n info.designedDate = info.designedDate.toISOString();\n }\n\n const props: SheetInformationAspectProps = {\n classFullName: this.classFullName,\n element: {\n id: sheetId,\n relClassName: SheetOwnsSheetInformationAspect.classFullName,\n },\n ...info,\n };\n\n iModel.elements.insertAspect(props);\n }\n }\n}\n\n/** An ElementMultiAspect that stores synchronization information for an Element originating from an external source.\n * @note The associated ECClass was added to the BisCore schema in version 1.0.2\n * @public @preview\n */\nexport class ExternalSourceAspect extends ElementMultiAspect {\n public static override get className(): string { return \"ExternalSourceAspect\"; }\n\n /** An element that scopes the combination of `kind` and `identifier` to uniquely identify the object from the external source.\n * @note Warning: in a future major release the `scope` property will be optional, since the scope is intended to be potentially invalid.\n * all references should treat it as potentially undefined, but we cannot change the type yet since that is a breaking change.\n */\n public scope: RelatedElement;\n /** The identifier of the object in the source repository. */\n public identifier: string;\n /** The kind of object within the source repository. */\n public kind: string;\n /** The cryptographic hash (any algorithm) of the source object's content. If defined, it must be guaranteed to change when the source object's content changes. */\n public checksum?: string;\n /** An optional value that is typically a version number or a pseudo version number like last modified time.\n * It will be used by the synchronization process to detect that a source object is unchanged so that computing a cryptographic hash can be avoided.\n * If present, this value must be guaranteed to change when any of the source object's content changes.\n */\n public version?: string;\n /** A place where additional JSON properties can be stored. For example, provenance information or properties relating to the synchronization process.\n * @note Warning: in a future major release, the type of `jsonProperties` will be changed to object, and itwin.js will automatically stringify it when writing to the iModel.\n * This will be a breaking change, since application code will have to change from supplying a string to supplying an object.\n */\n public jsonProperties?: string;\n /** The source of the imported/synchronized object. Should point to an instance of [ExternalSource]($backend). */\n public source?: RelatedElement;\n\n /** Construct an aspect from its JSON representation and its containing iModel. */\n constructor(props: ExternalSourceAspectProps, iModel: IModelDb) {\n super(props, iModel);\n this.scope = RelatedElement.fromJSON(props.scope)!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\n this.source = RelatedElement.fromJSON(props.source);\n this.identifier = props.identifier;\n this.kind = props.kind;\n this.checksum = props.checksum;\n this.version = props.version;\n this.jsonProperties = props.jsonProperties;\n }\n\n /** Look up the elements that contain one or more ExternalSourceAspect with the specified Scope, Kind, and Identifier.\n * The result of this function is an array of all of the ExternalSourceAspects that were found, each associated with the owning element.\n * A given element could have more than one ExternalSourceAspect with the given scope, kind, and identifier.\n * Also, many elements could have ExternalSourceAspect with the same scope, kind, and identifier.\n * Therefore, the result array could have more than one entry with the same elementId.\n * Aspects are never shared. Each aspect has its own unique ECInstanceId.\n * @param iModelDb The iModel to query\n * @param scope The scope of the ExternalSourceAspects to find\n * @param kind The kind of the ExternalSourceAspects to find\n * @param identifier The identifier of the ExternalSourceAspects to find\n * @returns the query results\n */\n public static findAllBySource(iModelDb: IModelDb, scope: Id64String, kind: string, identifier: string): Array<{ elementId: Id64String, aspectId: Id64String }> {\n const sql = `SELECT Element.Id, ECInstanceId FROM ${ExternalSourceAspect.classFullName} WHERE (Scope.Id=:scope AND Kind=:kind AND Identifier=:identifier)`;\n const found: Array<{ elementId: Id64String, aspectId: Id64String }> = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iModelDb.withPreparedStatement(sql, (statement: ECSqlStatement) => {\n statement.bindId(\"scope\", scope);\n statement.bindString(\"kind\", kind);\n statement.bindString(\"identifier\", identifier);\n while (DbResult.BE_SQLITE_ROW === statement.step()) {\n found.push({ elementId: statement.getValue(0).getId(), aspectId: statement.getValue(1).getId() });\n }\n });\n return found;\n }\n\n public override toJSON(): ExternalSourceAspectProps {\n const val = super.toJSON() as ExternalSourceAspectProps;\n val.scope = this.scope;\n val.source = this.source;\n val.identifier = this.identifier;\n val.kind = this.kind;\n val.checksum = this.checksum;\n val.version = this.version;\n val.jsonProperties = this.jsonProperties;\n return val;\n }\n\n protected override collectReferenceIds(referenceIds: EntityReferenceSet): void {\n super.collectReferenceIds(referenceIds);\n if (this.scope)\n referenceIds.addElement(this.scope.id);\n referenceIds.addElement(this.element.id);\n if (this.source)\n referenceIds.addElement(this.source.id);\n }\n}\n\n/** @public @preview */\nexport namespace ExternalSourceAspect {\n /** Standard values for the `Kind` property of `ExternalSourceAspect`.\n * @public @preview\n */\n export enum Kind {\n /** Indicates that the [[ExternalSourceAspect]] is storing [[Element]] provenance */\n Element = \"Element\",\n /** Indicates that the [[ExternalSourceAspect]] is storing [[Relationship]] provenance */\n Relationship = \"Relationship\",\n /** Indicates that the [[ExternalSourceAspect]] is storing *scope* provenance\n * @see [[ExternalSourceAspect.scope]]\n */\n Scope = \"Scope\",\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ElementAspect.js","sourceRoot":"","sources":["../../src/ElementAspect.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ElementAspects\r\n */\r\n\r\nimport { ChannelRootAspectProps, ElementAspectProps, EntityReferenceSet, ExternalSourceAspectProps, RelatedElement, SheetInformation, SheetInformationAspectProps } from \"@itwin/core-common\";\r\nimport { Entity } from \"./Entity\";\r\nimport { IModelDb } from \"./IModelDb\";\r\nimport { ECSqlStatement } from \"./ECSqlStatement\";\r\nimport { assert, DbResult, Id64String } from \"@itwin/core-bentley\";\r\nimport { _implicitTxn, _verifyChannel } from \"./internal/Symbols\";\r\nimport { SheetOwnsSheetInformationAspect } from \"./NavigationRelationship\";\r\nimport { Sheet } from \"./Element\";\r\nimport { ECVersion } from \"@itwin/ecschema-metadata\";\r\nimport { EditTxn } from \"./EditTxn\";\r\n\r\n/** Argument for the `ElementAspect.onXxx` static methods\r\n * @beta\r\n */\r\nexport interface OnAspectArg {\r\n /** The iModel for the aspect affected by this event. */\r\n iModel: IModelDb;\r\n /** The model for the aspect affected by this event */\r\n model: Id64String;\r\n}\r\n/** Argument for the `ElementAspect.onXxx` static methods that supply the properties of an aspect to be inserted or updated.\r\n * @beta\r\n */\r\nexport interface OnAspectPropsArg extends OnAspectArg {\r\n /** The new properties of the aspect affected by this event. */\r\n props: Readonly<ElementAspectProps>;\r\n}\r\n/** Argument for the `ElementAspect.onXxx` static methods that only supply the Id of the affected aspect.\r\n * @beta\r\n */\r\nexport interface OnAspectIdArg extends OnAspectArg {\r\n /** The Id of the aspect affected by this event */\r\n aspectId: Id64String;\r\n}\r\n\r\n/** An Element Aspect is a class that defines a set of properties that are related to (and owned by) a single element.\r\n * Semantically, an ElementAspect can be considered part of the Element. Thus, an ElementAspect is deleted if its owning Element is deleted.\r\n * BIS Guideline: Subclass ElementUniqueAspect or ElementMultiAspect rather than subclassing ElementAspect directly.\r\n * @public @preview\r\n */\r\nexport class ElementAspect extends Entity {\r\n public static override get className(): string { return \"ElementAspect\"; }\r\n public element: RelatedElement;\r\n\r\n /** Construct an aspect from its JSON representation and its containing iModel. */\r\n constructor(props: ElementAspectProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n this.element = RelatedElement.fromJSON(props.element)!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\r\n }\r\n\r\n public override toJSON(): ElementAspectProps {\r\n const val = super.toJSON() as ElementAspectProps;\r\n val.element = this.element;\r\n return val;\r\n }\r\n\r\n /** Called before a new ElementAspect is inserted.\r\n * @note throw an exception to disallow the insert\r\n * @note If you override this method, you must call super.\r\n * @beta\r\n */\r\n protected static onInsert(arg: OnAspectPropsArg): void {\r\n const { props, iModel } = arg;\r\n iModel.channels[_verifyChannel](arg.model);\r\n iModel.locks.checkExclusiveLock(props.element.id, \"element\", \"insert aspect\");\r\n }\r\n\r\n /** Called after a new ElementAspect was inserted.\r\n * @note If you override this method, you must call super.\r\n * @beta\r\n */\r\n protected static onInserted(_arg: OnAspectPropsArg): void { }\r\n\r\n /** Called before an ElementAspect is updated.\r\n * @note throw an exception to disallow the update\r\n * @note If you override this method, you must call super.\r\n * @beta\r\n */\r\n protected static onUpdate(arg: OnAspectPropsArg): void {\r\n const { props, iModel } = arg;\r\n iModel.channels[_verifyChannel](arg.model);\r\n iModel.locks.checkExclusiveLock(props.element.id, \"element\", \"update aspect\");\r\n }\r\n\r\n /** Called after an ElementAspect was updated.\r\n * @note If you override this method, you must call super.\r\n * @beta\r\n */\r\n protected static onUpdated(_arg: OnAspectPropsArg): void { }\r\n\r\n /** Called before an ElementAspect is deleted.\r\n * @note throw an exception to disallow the delete\r\n * @note If you override this method, you must call super.\r\n * @beta\r\n */\r\n protected static onDelete(arg: OnAspectIdArg): void {\r\n const { aspectId, iModel } = arg;\r\n iModel.channels[_verifyChannel](arg.model);\r\n const { element } = iModel.elements.getAspect(aspectId);\r\n iModel.locks.checkExclusiveLock(element.id, \"element\", \"delete aspect\");\r\n }\r\n\r\n /** Called after an ElementAspect was deleted.\r\n * @note If you override this method, you must call super.\r\n * @beta\r\n */\r\n protected static onDeleted(_arg: OnAspectIdArg): void { }\r\n}\r\n/** An Element Unique Aspect is an ElementAspect where there can be only zero or one instance of the Element Aspect class per Element.\r\n * @public @preview\r\n */\r\nexport class ElementUniqueAspect extends ElementAspect {\r\n public static override get className(): string { return \"ElementUniqueAspect\"; }\r\n}\r\n\r\n/** An Element Multi-Aspect is an ElementAspect where there can be **n** instances of the Element Aspect class per Element.\r\n * @public @preview\r\n */\r\nexport class ElementMultiAspect extends ElementAspect {\r\n public static override get className(): string { return \"ElementMultiAspect\"; }\r\n}\r\n\r\n/**\r\n * @public @preview\r\n */\r\nexport class ChannelRootAspect extends ElementUniqueAspect {\r\n public static override get className(): string { return \"ChannelRootAspect\"; }\r\n /** Insert a ChannelRootAspect on the specified element.\r\n * @deprecated in 4.0 - will not be removed until after 2026-06-13. Use [[ChannelControl.makeChannelRoot]]. This method does not enforce the rule that channels may not nest and is therefore dangerous.\r\n */\r\n public static insert(iModel: IModelDb, ownerId: Id64String, channelName: string) {\r\n const props: ChannelRootAspectProps = { classFullName: this.classFullName, element: { id: ownerId }, owner: channelName };\r\n iModel[_implicitTxn].insertAspect(props);\r\n }\r\n}\r\n\r\nconst minimumBisCoreVersion = new ECVersion(1, 0, 25);\r\n\r\n/** An [[ElementUniqueAspect]] that captures common metadata about a single [[Sheet]].\r\n * Use [[getSheetInformation]] to retrieve the metadata for a Sheet and [[setSheetInformation]] to create, update, or delete it.\r\n * @beta\r\n */\r\nexport class SheetInformationAspect extends ElementUniqueAspect {\r\n public static override get className() { return \"SheetInformationAspect\"; }\r\n\r\n /** The sheet's metadata. */\r\n public sheetInformation: SheetInformation;\r\n\r\n protected static override onInsert(arg: OnAspectPropsArg): void {\r\n super.onInsert(arg);\r\n\r\n const sheet = arg.iModel.elements.tryGetElement<Sheet>(arg.props.element);\r\n if (!(sheet instanceof Sheet)) {\r\n throw new Error(\"SheetInformationAspect can only be applied to a Sheet element\");\r\n }\r\n }\r\n\r\n private constructor(props: SheetInformationAspectProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n\r\n const designedDate = undefined !== props.designedDate ? new Date(props.designedDate) : undefined;\r\n\r\n this.sheetInformation = {\r\n designedBy: props.designedBy,\r\n designedDate,\r\n drawnBy: props.drawnBy,\r\n checkedBy: props.checkedBy,\r\n };\r\n }\r\n\r\n public override toJSON(): SheetInformationAspectProps {\r\n const props = super.toJSON() as SheetInformationAspectProps;\r\n for (const key of [\"designedBy\", \"drawnBy\", \"checkedBy\"] as const) {\r\n const value = this.sheetInformation[key];\r\n if (undefined !== value) {\r\n props[key] = value;\r\n }\r\n }\r\n\r\n if (undefined !== this.sheetInformation.designedDate) {\r\n props.designedDate = this.sheetInformation.designedDate.toISOString();\r\n }\r\n\r\n return props;\r\n }\r\n\r\n private static findForSheet(sheetId: Id64String, iModel: IModelDb): SheetInformationAspect | undefined {\r\n if (!iModel.meetsMinimumSchemaVersion(\"BisCore\", minimumBisCoreVersion)) {\r\n return undefined;\r\n }\r\n\r\n const aspects = iModel.elements.getAspects(sheetId, this.classFullName);\r\n if (aspects[0]) {\r\n assert(aspects[0] instanceof SheetInformationAspect);\r\n return aspects[0];\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /** Retrieves the metadata hosted by the aspect on the specified sheet, returning `undefined` if no such metadata could be retrieved.\r\n * @see [[setSheetInformation]] to create, update, or delete the aspect.\r\n */\r\n public static getSheetInformation(sheetId: Id64String, iModel: IModelDb): SheetInformation | undefined {\r\n const aspect = this.findForSheet(sheetId, iModel);\r\n return aspect?.sheetInformation;\r\n }\r\n\r\n /** Sets the `information` for the [[Sheet]] element specified by ``sheetId`.\r\n * If `information` is `undefined`, any existing aspect will be deleted.\r\n * Otherwise, a new aspect will be inserted, or an existing aspect will be updated with the new metadata.\r\n * @throws Error if the iModel contains a version of the BisCore schema older than 01.00.25.\r\n * @deprecated Use SheetInformationAspect.setSheetInformation(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.\r\n */\r\n public static setSheetInformation(information: SheetInformation | undefined, sheetId: Id64String, iModel: IModelDb): void;\r\n\r\n /** Sets the `information` for the [[Sheet]] element specified by `sheetId`, using an explicit EditTxn.\r\n * If `information` is `undefined`, any existing aspect will be deleted.\r\n * Otherwise, a new aspect will be inserted, or an existing aspect will be updated with the new metadata.\r\n * @throws Error if the iModel contains a version of the BisCore schema older than 01.00.25.\r\n * @throws EditTxnError if the EditTxn is not active.\r\n * @beta\r\n */\r\n public static setSheetInformation(txn: EditTxn, information: SheetInformation | undefined, sheetId: Id64String): void;\r\n public static setSheetInformation(arg1: EditTxn | SheetInformation | undefined, arg2: SheetInformation | Id64String | undefined, arg3: Id64String | IModelDb): void {\r\n let txn: EditTxn;\r\n let information: SheetInformation | undefined;\r\n let sheetId: Id64String;\r\n\r\n if (arg1 instanceof EditTxn) {\r\n txn = arg1;\r\n information = arg2 as SheetInformation | undefined;\r\n sheetId = arg3 as Id64String;\r\n } else {\r\n txn = (arg3 as IModelDb)[_implicitTxn];\r\n information = arg1;\r\n sheetId = arg2 as Id64String;\r\n }\r\n\r\n txn.iModel.requireMinimumSchemaVersion(\"BisCore\", minimumBisCoreVersion, \"SheetInformationAspect\");\r\n\r\n const aspect = this.findForSheet(sheetId, txn.iModel);\r\n if (!information) {\r\n if (aspect) {\r\n txn.deleteAspect(aspect.id);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (aspect) {\r\n aspect.sheetInformation = { ...information };\r\n txn.updateAspect(aspect.toJSON());\r\n } else {\r\n const info = { ...information } as any;\r\n for (const key of Object.keys(info)) {\r\n if (info[key] === undefined) {\r\n delete info[key];\r\n }\r\n }\r\n\r\n if (undefined !== info.designedDate) {\r\n info.designedDate = info.designedDate.toISOString();\r\n }\r\n\r\n const props: SheetInformationAspectProps = {\r\n classFullName: this.classFullName,\r\n element: {\r\n id: sheetId,\r\n relClassName: SheetOwnsSheetInformationAspect.classFullName,\r\n },\r\n ...info,\r\n };\r\n\r\n txn.insertAspect(props);\r\n }\r\n }\r\n}\r\n\r\n/** An ElementMultiAspect that stores synchronization information for an Element originating from an external source.\r\n * @note The associated ECClass was added to the BisCore schema in version 1.0.2\r\n * @public @preview\r\n */\r\nexport class ExternalSourceAspect extends ElementMultiAspect {\r\n public static override get className(): string { return \"ExternalSourceAspect\"; }\r\n\r\n /** An element that scopes the combination of `kind` and `identifier` to uniquely identify the object from the external source.\r\n * @note Warning: in a future major release the `scope` property will be optional, since the scope is intended to be potentially invalid.\r\n * all references should treat it as potentially undefined, but we cannot change the type yet since that is a breaking change.\r\n */\r\n public scope: RelatedElement;\r\n /** The identifier of the object in the source repository. */\r\n public identifier: string;\r\n /** The kind of object within the source repository. */\r\n public kind: string;\r\n /** The cryptographic hash (any algorithm) of the source object's content. If defined, it must be guaranteed to change when the source object's content changes. */\r\n public checksum?: string;\r\n /** An optional value that is typically a version number or a pseudo version number like last modified time.\r\n * It will be used by the synchronization process to detect that a source object is unchanged so that computing a cryptographic hash can be avoided.\r\n * If present, this value must be guaranteed to change when any of the source object's content changes.\r\n */\r\n public version?: string;\r\n /** A place where additional JSON properties can be stored. For example, provenance information or properties relating to the synchronization process.\r\n * @note Warning: in a future major release, the type of `jsonProperties` will be changed to object, and itwin.js will automatically stringify it when writing to the iModel.\r\n * This will be a breaking change, since application code will have to change from supplying a string to supplying an object.\r\n */\r\n public jsonProperties?: string;\r\n /** The source of the imported/synchronized object. Should point to an instance of [ExternalSource]($backend). */\r\n public source?: RelatedElement;\r\n\r\n /** Construct an aspect from its JSON representation and its containing iModel. */\r\n constructor(props: ExternalSourceAspectProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n this.scope = RelatedElement.fromJSON(props.scope)!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\r\n this.source = RelatedElement.fromJSON(props.source);\r\n this.identifier = props.identifier;\r\n this.kind = props.kind;\r\n this.checksum = props.checksum;\r\n this.version = props.version;\r\n this.jsonProperties = props.jsonProperties;\r\n }\r\n\r\n /** Look up the elements that contain one or more ExternalSourceAspect with the specified Scope, Kind, and Identifier.\r\n * The result of this function is an array of all of the ExternalSourceAspects that were found, each associated with the owning element.\r\n * A given element could have more than one ExternalSourceAspect with the given scope, kind, and identifier.\r\n * Also, many elements could have ExternalSourceAspect with the same scope, kind, and identifier.\r\n * Therefore, the result array could have more than one entry with the same elementId.\r\n * Aspects are never shared. Each aspect has its own unique ECInstanceId.\r\n * @param iModelDb The iModel to query\r\n * @param scope The scope of the ExternalSourceAspects to find\r\n * @param kind The kind of the ExternalSourceAspects to find\r\n * @param identifier The identifier of the ExternalSourceAspects to find\r\n * @returns the query results\r\n */\r\n public static findAllBySource(iModelDb: IModelDb, scope: Id64String, kind: string, identifier: string): Array<{ elementId: Id64String, aspectId: Id64String }> {\r\n const sql = `SELECT Element.Id, ECInstanceId FROM ${ExternalSourceAspect.classFullName} WHERE (Scope.Id=:scope AND Kind=:kind AND Identifier=:identifier)`;\r\n const found: Array<{ elementId: Id64String, aspectId: Id64String }> = [];\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n iModelDb.withPreparedStatement(sql, (statement: ECSqlStatement) => {\r\n statement.bindId(\"scope\", scope);\r\n statement.bindString(\"kind\", kind);\r\n statement.bindString(\"identifier\", identifier);\r\n while (DbResult.BE_SQLITE_ROW === statement.step()) {\r\n found.push({ elementId: statement.getValue(0).getId(), aspectId: statement.getValue(1).getId() });\r\n }\r\n });\r\n return found;\r\n }\r\n\r\n public override toJSON(): ExternalSourceAspectProps {\r\n const val = super.toJSON() as ExternalSourceAspectProps;\r\n val.scope = this.scope;\r\n val.source = this.source;\r\n val.identifier = this.identifier;\r\n val.kind = this.kind;\r\n val.checksum = this.checksum;\r\n val.version = this.version;\r\n val.jsonProperties = this.jsonProperties;\r\n return val;\r\n }\r\n\r\n protected override collectReferenceIds(referenceIds: EntityReferenceSet): void {\r\n super.collectReferenceIds(referenceIds);\r\n if (this.scope)\r\n referenceIds.addElement(this.scope.id);\r\n referenceIds.addElement(this.element.id);\r\n if (this.source)\r\n referenceIds.addElement(this.source.id);\r\n }\r\n}\r\n\r\n/** @public @preview */\r\nexport namespace ExternalSourceAspect {\r\n /** Standard values for the `Kind` property of `ExternalSourceAspect`.\r\n * @public @preview\r\n */\r\n export enum Kind {\r\n /** Indicates that the [[ExternalSourceAspect]] is storing [[Element]] provenance */\r\n Element = \"Element\",\r\n /** Indicates that the [[ExternalSourceAspect]] is storing [[Relationship]] provenance */\r\n Relationship = \"Relationship\",\r\n /** Indicates that the [[ExternalSourceAspect]] is storing *scope* provenance\r\n * @see [[ExternalSourceAspect.scope]]\r\n */\r\n Scope = \"Scope\",\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementGraphics.js","sourceRoot":"","sources":["../../src/ElementGraphics.ts"],"names":[],"mappings":";;AAaA,0DA0BC;AAvCD;;;+FAG+F;AAC/F,sDAA2D;AAC3D,oDAA8E;AAG9E,gDAA+C;AAE/C;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAAC,OAAoC,EAAE,MAAgB;IAClG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAS,CAAC,CAAC,uBAAuB,CAAC,OAAc,CAAC,CAAC,CAAC,2CAA2C;IAE3H,IAAI,KAAyB,CAAC;IAC9B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,8CAAsC;QACtC;YACE,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB;YACE,KAAK,GAAG,cAAc,CAAC;YACvB,MAAM;QACR;YACE,KAAK,GAAG,8BAA8B,CAAC;YACvC,MAAM;QACR;YACE,KAAK,GAAG,cAAc,OAAO,CAAC,SAAS,YAAY,CAAC;YACpD,MAAM;QACR;YACE,KAAK,GAAG,yBAAyB,OAAO,CAAC,EAAE,GAAG,CAAC;YAC/C,MAAM;IACV,CAAC;IAED,IAAA,qBAAM,EAAC,SAAS,KAAK,KAAK,CAAC,CAAC;IAC5B,MAAM,IAAI,yBAAW,CAAC,2BAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { assert, IModelStatus } from \"@itwin/core-bentley\";\nimport { ElementGraphicsRequestProps, IModelError } from \"@itwin/core-common\";\nimport { ElementGraphicsStatus } from \"@bentley/imodeljs-native\";\nimport { IModelDb } from \"./IModelDb\";\nimport { _nativeDb } from \"./internal/Symbols\";\n\n/** See [[IModelDb.generateElementGraphics]] and IModelTileRpcImpl.requestElementGraphics.\n * @internal\n */\nexport async function generateElementGraphics(request: ElementGraphicsRequestProps, iModel: IModelDb): Promise<Uint8Array | undefined> {\n const result = await iModel[_nativeDb].generateElementGraphics(request as any); // ###TODO update package versions in addon\n\n let error: string | undefined;\n switch (result.status) {\n case ElementGraphicsStatus.NoGeometry:\n case ElementGraphicsStatus.Canceled:\n return undefined;\n case ElementGraphicsStatus.Success:\n return result.content;\n case ElementGraphicsStatus.InvalidJson:\n error = \"Invalid JSON\";\n break;\n case ElementGraphicsStatus.UnknownMajorFormatVersion:\n error = \"Unknown major format version\";\n break;\n case ElementGraphicsStatus.ElementNotFound:\n error = `Element Id ${request.elementId} not found`;\n break;\n case ElementGraphicsStatus.DuplicateRequestId:\n error = `Duplicate request Id \"${request.id}\"`;\n break;\n }\n\n assert(undefined !== error);\n throw new IModelError(IModelStatus.BadRequest, error);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ElementGraphics.js","sourceRoot":"","sources":["../../src/ElementGraphics.ts"],"names":[],"mappings":";;AAaA,0DA0BC;AAvCD;;;+FAG+F;AAC/F,sDAA2D;AAC3D,oDAA8E;AAG9E,gDAA+C;AAE/C;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAAC,OAAoC,EAAE,MAAgB;IAClG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAS,CAAC,CAAC,uBAAuB,CAAC,OAAc,CAAC,CAAC,CAAC,2CAA2C;IAE3H,IAAI,KAAyB,CAAC;IAC9B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,8CAAsC;QACtC;YACE,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB;YACE,KAAK,GAAG,cAAc,CAAC;YACvB,MAAM;QACR;YACE,KAAK,GAAG,8BAA8B,CAAC;YACvC,MAAM;QACR;YACE,KAAK,GAAG,cAAc,OAAO,CAAC,SAAS,YAAY,CAAC;YACpD,MAAM;QACR;YACE,KAAK,GAAG,yBAAyB,OAAO,CAAC,EAAE,GAAG,CAAC;YAC/C,MAAM;IACV,CAAC;IAED,IAAA,qBAAM,EAAC,SAAS,KAAK,KAAK,CAAC,CAAC;IAC5B,MAAM,IAAI,yBAAW,CAAC,2BAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { assert, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { ElementGraphicsRequestProps, IModelError } from \"@itwin/core-common\";\r\nimport { ElementGraphicsStatus } from \"@bentley/imodeljs-native\";\r\nimport { IModelDb } from \"./IModelDb\";\r\nimport { _nativeDb } from \"./internal/Symbols\";\r\n\r\n/** See [[IModelDb.generateElementGraphics]] and IModelTileRpcImpl.requestElementGraphics.\r\n * @internal\r\n */\r\nexport async function generateElementGraphics(request: ElementGraphicsRequestProps, iModel: IModelDb): Promise<Uint8Array | undefined> {\r\n const result = await iModel[_nativeDb].generateElementGraphics(request as any); // ###TODO update package versions in addon\r\n\r\n let error: string | undefined;\r\n switch (result.status) {\r\n case ElementGraphicsStatus.NoGeometry:\r\n case ElementGraphicsStatus.Canceled:\r\n return undefined;\r\n case ElementGraphicsStatus.Success:\r\n return result.content;\r\n case ElementGraphicsStatus.InvalidJson:\r\n error = \"Invalid JSON\";\r\n break;\r\n case ElementGraphicsStatus.UnknownMajorFormatVersion:\r\n error = \"Unknown major format version\";\r\n break;\r\n case ElementGraphicsStatus.ElementNotFound:\r\n error = `Element Id ${request.elementId} not found`;\r\n break;\r\n case ElementGraphicsStatus.DuplicateRequestId:\r\n error = `Duplicate request Id \"${request.id}\"`;\r\n break;\r\n }\r\n\r\n assert(undefined !== error);\r\n throw new IModelError(IModelStatus.BadRequest, error);\r\n}\r\n"]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @module Elements
|
|
3
3
|
*/
|
|
4
4
|
import { Id64Array, Id64String } from "@itwin/core-bentley";
|
|
5
|
+
import { EditTxn } from "./EditTxn";
|
|
5
6
|
import { IModelDb } from "./IModelDb";
|
|
6
7
|
import { Model } from "./Model";
|
|
7
8
|
/** @beta */
|
|
@@ -39,8 +40,8 @@ export declare class ElementTreeWalkerScope {
|
|
|
39
40
|
* @beta
|
|
40
41
|
*/
|
|
41
42
|
export declare abstract class ElementTreeBottomUp {
|
|
42
|
-
protected
|
|
43
|
-
constructor(
|
|
43
|
+
protected readonly txn: EditTxn;
|
|
44
|
+
constructor(iModelOrTxn: IModelDb | EditTxn);
|
|
44
45
|
/** Return true if the search should recurse into this model */
|
|
45
46
|
protected shouldExploreModel(_model: Model, _scope: ElementTreeWalkerScope): boolean;
|
|
46
47
|
/** Return true if the search should recurse into the children (if any) of this element */
|
|
@@ -62,9 +63,12 @@ export declare abstract class ElementTreeBottomUp {
|
|
|
62
63
|
}
|
|
63
64
|
/** Helper class that manages the deletion of definitions and subjects */
|
|
64
65
|
declare class SpecialElements {
|
|
66
|
+
private readonly _txn?;
|
|
65
67
|
definitionModels: Id64Array;
|
|
66
68
|
definitions: Id64Array;
|
|
67
69
|
subjects: Id64Array;
|
|
70
|
+
constructor(_txn?: EditTxn | undefined);
|
|
71
|
+
private getTxn;
|
|
68
72
|
recordSpecialElement(iModel: IModelDb, elementId: Id64String): boolean;
|
|
69
73
|
/** Delete special elements - This calls Elements.deleteDefinitionElements to process the collected definition elements as a group and then
|
|
70
74
|
* calls Models.deleteModel on collected definition models. It then deletes all collected Subjects by calling Element.deleteElement on them.
|
|
@@ -80,6 +84,15 @@ declare class SpecialElements {
|
|
|
80
84
|
*/
|
|
81
85
|
export declare class ElementTreeDeleter extends ElementTreeBottomUp {
|
|
82
86
|
protected _special: SpecialElements;
|
|
87
|
+
/**
|
|
88
|
+
* Create an ElementTreeDeleter that uses an explicit EditTxn.
|
|
89
|
+
*/
|
|
90
|
+
constructor(txn: EditTxn);
|
|
91
|
+
/**
|
|
92
|
+
* Create an ElementTreeDeleter.
|
|
93
|
+
* @deprecated Supply an explicit EditTxn.
|
|
94
|
+
*/
|
|
95
|
+
constructor(iModel: IModelDb);
|
|
83
96
|
protected shouldExploreModel(_model: Model): boolean;
|
|
84
97
|
protected shouldVisitElement(_elementId: Id64String): boolean;
|
|
85
98
|
protected visitModel(model: Model, _scope: ElementTreeWalkerScope): void;
|
|
@@ -130,6 +143,15 @@ export declare class ElementSubTreeDeleter extends ElementTreeTopDown {
|
|
|
130
143
|
* @param iModel The iModel
|
|
131
144
|
* @param topElement Where to start the search.
|
|
132
145
|
* @param shouldPruneCb Callback that selects sub-trees that should be deleted.
|
|
146
|
+
* @param txn The EditTxn used to perform the deletes.
|
|
147
|
+
* @see deleteElementSubTrees for a simple way to use this class.
|
|
148
|
+
*/
|
|
149
|
+
constructor(txn: EditTxn, shouldPruneCb: ElementSubTreeDeleteFilter);
|
|
150
|
+
/** Construct an ElementSubTreeDeleter.
|
|
151
|
+
* @param iModel The iModel
|
|
152
|
+
* @param topElement Where to start the search.
|
|
153
|
+
* @param shouldPruneCb Callback that selects sub-trees that should be deleted.
|
|
154
|
+
* @deprecated Supply an explicit EditTxn.
|
|
133
155
|
* @see deleteElementSubTrees for a simple way to use this class.
|
|
134
156
|
*/
|
|
135
157
|
constructor(iModel: IModelDb, shouldPruneCb: ElementSubTreeDeleteFilter);
|
|
@@ -150,6 +172,8 @@ export declare class ElementSubTreeDeleter extends ElementTreeTopDown {
|
|
|
150
172
|
export interface DeleteElementTreeArgs {
|
|
151
173
|
/** The iModel containing the elements to delete. */
|
|
152
174
|
iModel: IModelDb;
|
|
175
|
+
/** The EditTxn used to perform the deletes. */
|
|
176
|
+
txn: EditTxn;
|
|
153
177
|
/** The Id of the root element of the tree to delete. */
|
|
154
178
|
topElement: Id64String;
|
|
155
179
|
/** The maximum number of passes to make when deleting definition elements.
|
|
@@ -157,17 +181,45 @@ export interface DeleteElementTreeArgs {
|
|
|
157
181
|
*/
|
|
158
182
|
maxPasses?: number;
|
|
159
183
|
}
|
|
184
|
+
/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.
|
|
185
|
+
* @param txn The EditTxn used to perform the deletes.
|
|
186
|
+
* @param topElement The parent of the sub-tree
|
|
187
|
+
* @param maxPasses The maximum number of passes to make when deleting definition elements.
|
|
188
|
+
* @beta
|
|
189
|
+
*/
|
|
190
|
+
export declare function deleteElementTree(txn: EditTxn, topElement: Id64String, maxPasses?: number): void;
|
|
160
191
|
/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.
|
|
161
192
|
* @param iModel The iModel
|
|
162
193
|
* @param topElement The parent of the sub-tree
|
|
194
|
+
* @deprecated Supply an explicit `txn`.
|
|
163
195
|
* @beta
|
|
164
196
|
*/
|
|
165
197
|
export declare function deleteElementTree(iModel: IModelDb, topElement: Id64String): void;
|
|
166
198
|
/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.
|
|
167
|
-
* @param args Specifies the
|
|
199
|
+
* @param args Specifies the transaction and top element.
|
|
168
200
|
* @beta
|
|
169
201
|
*/
|
|
170
202
|
export declare function deleteElementTree(args: DeleteElementTreeArgs): void;
|
|
203
|
+
/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.
|
|
204
|
+
* @param args Specifies the iModel and top element.
|
|
205
|
+
* @deprecated Supply `txn` via [[DeleteElementTreeArgs]].
|
|
206
|
+
* @beta
|
|
207
|
+
*/
|
|
208
|
+
export declare function deleteElementTree(args: {
|
|
209
|
+
iModel: IModelDb;
|
|
210
|
+
topElement: Id64String;
|
|
211
|
+
maxPasses?: number;
|
|
212
|
+
}): void;
|
|
213
|
+
/** Deletes all element sub-trees that are selected by the supplied filter. Uses ElementSubTreeDeleter.
|
|
214
|
+
* If the filter selects the top element itself, then the entire tree (including the top element) is deleted.
|
|
215
|
+
* That has the same effect as calling [[deleteElementTree]] on the top element.
|
|
216
|
+
* @note The caller may have to call this function multiple times if there are multiple layers of dependencies among definition elements.
|
|
217
|
+
* @param txn The EditTxn used to perform the deletes.
|
|
218
|
+
* @param topElement Where to start the search.
|
|
219
|
+
* @param filter Callback that selects sub-trees that should be deleted.
|
|
220
|
+
* @beta
|
|
221
|
+
*/
|
|
222
|
+
export declare function deleteElementSubTrees(txn: EditTxn, topElement: Id64String, filter: ElementSubTreeDeleteFilter): void;
|
|
171
223
|
/** Deletes all element sub-trees that are selected by the supplied filter. Uses ElementSubTreeDeleter.
|
|
172
224
|
* If the filter selects the top element itself, then the entire tree (including the top element) is deleted.
|
|
173
225
|
* That has the same effect as calling [[deleteElementTree]] on the top element.
|
|
@@ -175,6 +227,7 @@ export declare function deleteElementTree(args: DeleteElementTreeArgs): void;
|
|
|
175
227
|
* @param iModel The iModel
|
|
176
228
|
* @param topElement Where to start the search.
|
|
177
229
|
* @param filter Callback that selects sub-trees that should be deleted.
|
|
230
|
+
* @deprecated Supply `txn` explicitly.
|
|
178
231
|
* @beta
|
|
179
232
|
*/
|
|
180
233
|
export declare function deleteElementSubTrees(iModel: IModelDb, topElement: Id64String, filter: ElementSubTreeDeleteFilter): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTreeWalker.d.ts","sourceRoot":"","sources":["../../src/ElementTreeWalker.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAoB,SAAS,EAAE,UAAU,EAAoB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ElementTreeWalker.d.ts","sourceRoot":"","sources":["../../src/ElementTreeWalker.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,11 @@ exports.deleteElementSubTrees = deleteElementSubTrees;
|
|
|
13
13
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
14
14
|
const core_common_1 = require("@itwin/core-common");
|
|
15
15
|
const BackendLoggerCategory_1 = require("./BackendLoggerCategory");
|
|
16
|
+
const EditTxn_1 = require("./EditTxn");
|
|
16
17
|
const Element_1 = require("./Element");
|
|
17
18
|
const IModelDb_1 = require("./IModelDb");
|
|
18
19
|
const Model_1 = require("./Model");
|
|
20
|
+
const Symbols_1 = require("./internal/Symbols");
|
|
19
21
|
const loggerCategory = `${BackendLoggerCategory_1.BackendLoggerCategory.IModelDb}.ElementTreeWalker`;
|
|
20
22
|
function sortChildrenBeforeParents(iModel, ids) {
|
|
21
23
|
const children = [];
|
|
@@ -160,9 +162,9 @@ function logModel(op, iModel, modelId, scope, logElements) {
|
|
|
160
162
|
* @beta
|
|
161
163
|
*/
|
|
162
164
|
class ElementTreeBottomUp {
|
|
163
|
-
|
|
164
|
-
constructor(
|
|
165
|
-
this.
|
|
165
|
+
txn;
|
|
166
|
+
constructor(iModelOrTxn) {
|
|
167
|
+
this.txn = iModelOrTxn instanceof EditTxn_1.EditTxn ? iModelOrTxn : iModelOrTxn[Symbols_1._implicitTxn];
|
|
166
168
|
}
|
|
167
169
|
/** Return true if the search should recurse into this model */
|
|
168
170
|
shouldExploreModel(_model, _scope) { return true; }
|
|
@@ -174,7 +176,7 @@ class ElementTreeBottomUp {
|
|
|
174
176
|
shouldVisitModel(_model, _scope) { return true; }
|
|
175
177
|
/** The main tree-walking function */
|
|
176
178
|
processElementTree(element, scope) {
|
|
177
|
-
const subModel = this.
|
|
179
|
+
const subModel = this.txn.iModel.models.tryGetModel(element);
|
|
178
180
|
if (subModel !== undefined) {
|
|
179
181
|
if (this.shouldExploreModel(subModel, scope))
|
|
180
182
|
this._processSubModel(subModel, scope);
|
|
@@ -188,7 +190,7 @@ class ElementTreeBottomUp {
|
|
|
188
190
|
}
|
|
189
191
|
/** process the children of the specified parent element */
|
|
190
192
|
_processChildren(parentElement, parentScope) {
|
|
191
|
-
const children = this.
|
|
193
|
+
const children = this.txn.iModel.elements.queryChildren(parentElement);
|
|
192
194
|
if (children.length === 0)
|
|
193
195
|
return;
|
|
194
196
|
const childrenScope = new ElementTreeWalkerScope(parentScope, parentElement);
|
|
@@ -212,9 +214,18 @@ class ElementTreeBottomUp {
|
|
|
212
214
|
exports.ElementTreeBottomUp = ElementTreeBottomUp;
|
|
213
215
|
/** Helper class that manages the deletion of definitions and subjects */
|
|
214
216
|
class SpecialElements {
|
|
217
|
+
_txn;
|
|
215
218
|
definitionModels = [];
|
|
216
219
|
definitions = [];
|
|
217
220
|
subjects = [];
|
|
221
|
+
constructor(_txn) {
|
|
222
|
+
this._txn = _txn;
|
|
223
|
+
}
|
|
224
|
+
getTxn(iModel) {
|
|
225
|
+
if (undefined !== this._txn)
|
|
226
|
+
return this._txn;
|
|
227
|
+
return iModel[Symbols_1._implicitTxn];
|
|
228
|
+
}
|
|
218
229
|
recordSpecialElement(iModel, elementId) {
|
|
219
230
|
// Defer Definitions and Subjects
|
|
220
231
|
const cls = classifyElementForPruning(iModel, elementId);
|
|
@@ -237,6 +248,7 @@ class SpecialElements {
|
|
|
237
248
|
* @note Caller must ensure that the special elements were recorded in a depth-first search.
|
|
238
249
|
*/
|
|
239
250
|
deleteSpecialElements(iModel) {
|
|
251
|
+
const txn = this.getTxn(iModel);
|
|
240
252
|
// It's dangerous to pass a mixture of SubCategories and Categories to deleteDefinitionElements.
|
|
241
253
|
// That function will delete the Categories first, which automatically deletes all their child
|
|
242
254
|
// SubCategories (in native code). If a SubCategory in the list is one of those children, then
|
|
@@ -248,7 +260,7 @@ class SpecialElements {
|
|
|
248
260
|
for (const definitions of sortChildrenBeforeParents(iModel, this.definitions)) {
|
|
249
261
|
if (isTraceEnabled())
|
|
250
262
|
definitions.forEach((e) => logElement("try delete", iModel, e));
|
|
251
|
-
|
|
263
|
+
txn.deleteDefinitionElements(definitions); // will not delete definitions that are still in use.
|
|
252
264
|
}
|
|
253
265
|
for (const m of this.definitionModels) {
|
|
254
266
|
if (!isModelEmpty(iModel, m)) {
|
|
@@ -256,8 +268,8 @@ class SpecialElements {
|
|
|
256
268
|
}
|
|
257
269
|
else {
|
|
258
270
|
logModel("delete", iModel, m);
|
|
259
|
-
|
|
260
|
-
|
|
271
|
+
txn.deleteModel(m);
|
|
272
|
+
txn.deleteElement(m);
|
|
261
273
|
}
|
|
262
274
|
}
|
|
263
275
|
for (const e of this.subjects) {
|
|
@@ -266,7 +278,7 @@ class SpecialElements {
|
|
|
266
278
|
}
|
|
267
279
|
else {
|
|
268
280
|
logElement("delete", iModel, e);
|
|
269
|
-
|
|
281
|
+
txn.deleteElement(e);
|
|
270
282
|
}
|
|
271
283
|
}
|
|
272
284
|
}
|
|
@@ -278,20 +290,24 @@ class SpecialElements {
|
|
|
278
290
|
* @beta
|
|
279
291
|
*/
|
|
280
292
|
class ElementTreeDeleter extends ElementTreeBottomUp {
|
|
281
|
-
_special
|
|
293
|
+
_special;
|
|
294
|
+
constructor(iModelOrTxn) {
|
|
295
|
+
super(iModelOrTxn);
|
|
296
|
+
this._special = new SpecialElements(iModelOrTxn instanceof EditTxn_1.EditTxn ? iModelOrTxn : undefined);
|
|
297
|
+
}
|
|
282
298
|
shouldExploreModel(_model) { return true; }
|
|
283
299
|
shouldVisitElement(_elementId) { return true; }
|
|
284
300
|
visitModel(model, _scope) {
|
|
285
301
|
if (isDefinitionModel(model))
|
|
286
302
|
return; // we recorded definition models in visitElement when we encountered the DefinitionPartition elements.
|
|
287
303
|
// visitElement has already deleted the elements in the model. So, now it's safe to delete the model itself.
|
|
288
|
-
logModel("delete", this.
|
|
289
|
-
model.
|
|
304
|
+
logModel("delete", this.txn.iModel, model.id, _scope);
|
|
305
|
+
this.txn.deleteModel(model.id);
|
|
290
306
|
}
|
|
291
307
|
visitElement(elementId, _scope) {
|
|
292
|
-
if (!this._special.recordSpecialElement(this.
|
|
293
|
-
logElement("delete", this.
|
|
294
|
-
this.
|
|
308
|
+
if (!this._special.recordSpecialElement(this.txn.iModel, elementId)) {
|
|
309
|
+
logElement("delete", this.txn.iModel, elementId, _scope);
|
|
310
|
+
this.txn.deleteElement(elementId);
|
|
295
311
|
}
|
|
296
312
|
}
|
|
297
313
|
/**
|
|
@@ -301,14 +317,14 @@ class ElementTreeDeleter extends ElementTreeBottomUp {
|
|
|
301
317
|
* @see deleteSpecialElements
|
|
302
318
|
*/
|
|
303
319
|
deleteNormalElements(topElement, scope) {
|
|
304
|
-
const topScope = scope ?? ElementTreeWalkerScope.createTopScope(this.
|
|
320
|
+
const topScope = scope ?? ElementTreeWalkerScope.createTopScope(this.txn.iModel, topElement);
|
|
305
321
|
this.processElementTree(topElement, topScope); //
|
|
306
322
|
}
|
|
307
323
|
/** Delete all special elements that were found and deferred by deleteNormalElements. Call this
|
|
308
324
|
* function once after all element trees are processed by deleteNormalElements.
|
|
309
325
|
*/
|
|
310
326
|
deleteSpecialElements() {
|
|
311
|
-
this._special.deleteSpecialElements(this.
|
|
327
|
+
this._special.deleteSpecialElements(this.txn.iModel);
|
|
312
328
|
}
|
|
313
329
|
}
|
|
314
330
|
exports.ElementTreeDeleter = ElementTreeDeleter;
|
|
@@ -364,15 +380,10 @@ class ElementTreeTopDown {
|
|
|
364
380
|
class ElementSubTreeDeleter extends ElementTreeTopDown {
|
|
365
381
|
_treeDeleter;
|
|
366
382
|
_shouldPruneCb;
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
* @see deleteElementSubTrees for a simple way to use this class.
|
|
372
|
-
*/
|
|
373
|
-
constructor(iModel, shouldPruneCb) {
|
|
374
|
-
super(iModel);
|
|
375
|
-
this._treeDeleter = new ElementTreeDeleter(this._iModel);
|
|
383
|
+
constructor(iModelOrTxn, shouldPruneCb) {
|
|
384
|
+
super(iModelOrTxn instanceof EditTxn_1.EditTxn ? iModelOrTxn.iModel : iModelOrTxn);
|
|
385
|
+
const effectiveTxn = iModelOrTxn instanceof EditTxn_1.EditTxn ? iModelOrTxn : iModelOrTxn[Symbols_1._implicitTxn];
|
|
386
|
+
this._treeDeleter = new ElementTreeDeleter(effectiveTxn);
|
|
376
387
|
this._shouldPruneCb = shouldPruneCb;
|
|
377
388
|
}
|
|
378
389
|
shouldPrune(elementId, scope) { return this._shouldPruneCb(elementId, scope); }
|
|
@@ -395,39 +406,41 @@ class ElementSubTreeDeleter extends ElementTreeTopDown {
|
|
|
395
406
|
}
|
|
396
407
|
exports.ElementSubTreeDeleter = ElementSubTreeDeleter;
|
|
397
408
|
/** @internal */
|
|
398
|
-
function deleteElementTree(arg0, arg1) {
|
|
409
|
+
function deleteElementTree(arg0, arg1, arg2) {
|
|
399
410
|
let maxPasses;
|
|
411
|
+
let txn;
|
|
400
412
|
let iModel;
|
|
401
413
|
let topElement;
|
|
402
|
-
if (arg0 instanceof
|
|
414
|
+
if (arg0 instanceof EditTxn_1.EditTxn) {
|
|
415
|
+
(0, core_bentley_1.assert)(typeof arg1 === "string");
|
|
416
|
+
txn = arg0;
|
|
417
|
+
iModel = txn.iModel;
|
|
418
|
+
topElement = arg1;
|
|
419
|
+
maxPasses = arg2;
|
|
420
|
+
}
|
|
421
|
+
else if (arg0 instanceof IModelDb_1.IModelDb) {
|
|
403
422
|
(0, core_bentley_1.assert)(typeof arg1 === "string");
|
|
404
423
|
iModel = arg0;
|
|
405
424
|
topElement = arg1;
|
|
406
425
|
}
|
|
407
426
|
else {
|
|
408
427
|
iModel = arg0.iModel;
|
|
428
|
+
txn = "txn" in arg0 ? arg0.txn : undefined;
|
|
409
429
|
topElement = arg0.topElement;
|
|
410
430
|
maxPasses = arg0.maxPasses;
|
|
411
431
|
}
|
|
412
432
|
maxPasses = maxPasses ?? 5;
|
|
413
433
|
let pass = 0;
|
|
414
434
|
do {
|
|
415
|
-
const
|
|
435
|
+
const effectiveTxn = txn ?? iModel[Symbols_1._implicitTxn];
|
|
436
|
+
const del = new ElementTreeDeleter(effectiveTxn);
|
|
416
437
|
del.deleteNormalElements(topElement);
|
|
417
438
|
del.deleteSpecialElements();
|
|
418
439
|
} while ((iModel.elements.tryGetElement(topElement) !== undefined) && (++pass < maxPasses));
|
|
419
440
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
* @note The caller may have to call this function multiple times if there are multiple layers of dependencies among definition elements.
|
|
424
|
-
* @param iModel The iModel
|
|
425
|
-
* @param topElement Where to start the search.
|
|
426
|
-
* @param filter Callback that selects sub-trees that should be deleted.
|
|
427
|
-
* @beta
|
|
428
|
-
*/
|
|
429
|
-
function deleteElementSubTrees(iModel, topElement, filter) {
|
|
430
|
-
const del = new ElementSubTreeDeleter(iModel, filter);
|
|
441
|
+
function deleteElementSubTrees(arg0, topElement, filter) {
|
|
442
|
+
const effectiveTxn = arg0 instanceof EditTxn_1.EditTxn ? arg0 : arg0[Symbols_1._implicitTxn];
|
|
443
|
+
const del = new ElementSubTreeDeleter(effectiveTxn, filter);
|
|
431
444
|
del.deleteNormalElementSubTrees(topElement);
|
|
432
445
|
del.deleteSpecialElementSubTrees();
|
|
433
446
|
}
|