@itwin/core-backend 5.9.0-dev.4 → 5.9.0-dev.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/BriefcaseManager.js +3 -3
- package/lib/cjs/BriefcaseManager.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/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +5 -2
- 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/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/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/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/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/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/IModelDb.d.ts +66 -22
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +174 -288
- package/lib/cjs/IModelDb.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/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/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/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/SchemaSync.js +4 -4
- package/lib/cjs/SchemaSync.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/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/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/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/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/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/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/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/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/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/BriefcaseManager.js +3 -3
- package/lib/esm/BriefcaseManager.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/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +5 -2
- 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/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/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/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/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/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/IModelDb.d.ts +66 -22
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +176 -290
- package/lib/esm/IModelDb.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/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/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/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/SchemaSync.js +5 -5
- package/lib/esm/SchemaSync.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/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/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/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/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/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/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/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/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/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.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 +111 -96
- package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.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/PropertyDb.test.js +2 -2
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/SquashSchemaAndDataChanges.test.js +27 -18
- 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 +82 -90
- 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/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/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +3 -2
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js +2 -2
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +0 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/QueryReaders.test.js +17 -14
- 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.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 +68 -60
- 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 +37 -38
- 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 +10 -9
- 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/IModelDbFonts.test.js +87 -73
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +164 -125
- 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/Rebase.test.js +313 -247
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- package/lib/esm/test/hubaccess/SemanticRebase.test.js +322 -247
- package/lib/esm/test/hubaccess/SemanticRebase.test.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/IModel.test.js +419 -344
- 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/incrementalSchemaLocater/ECSqlQueries.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/schema/ClassRegistry.test.js +23 -22
- 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 +2 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/schema/SchemaImportCallbacks.test.js +207 -192
- 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 +114 -85
- package/lib/esm/test/standalone/ChangesetReader.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/ElementMesh.test.js +16 -13
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +26 -20
- 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 +184 -142
- package/lib/esm/test/standalone/IModelWrite.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/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/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/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 +7 -6
- 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/Workspace.test.js +25 -23
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/package.json +12 -12
|
@@ -7,6 +7,7 @@ import { InformationPartitionElement, RoleElement, TypeDefinitionElement } from
|
|
|
7
7
|
import { IModelDb } from "../IModelDb";
|
|
8
8
|
import { RoleModel } from "../Model";
|
|
9
9
|
import { DrawingGraphicRepresentsElement, ElementRefersToElements } from "../Relationship";
|
|
10
|
+
import { EditTxn } from "../EditTxn";
|
|
10
11
|
/** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented
|
|
11
12
|
* to a Subject and broken down by a FunctionalModel.
|
|
12
13
|
* @public
|
|
@@ -21,13 +22,16 @@ export declare class FunctionalPartition extends InformationPartitionElement {
|
|
|
21
22
|
export declare class FunctionalModel extends RoleModel {
|
|
22
23
|
static get className(): string;
|
|
23
24
|
constructor(props: ModelProps, iModel: IModelDb);
|
|
24
|
-
/** Insert a FunctionalPartition and a FunctionalModel that breaks it down.
|
|
25
|
-
|
|
25
|
+
/** Insert a FunctionalPartition and a FunctionalModel that breaks it down using an explicit transaction.
|
|
26
|
+
* @param txn The EditTxn used to perform inserts.
|
|
26
27
|
* @param parentSubjectId The FunctionalPartition will be inserted as a child of this Subject element.
|
|
27
28
|
* @param name The name of the FunctionalPartition that the new FunctionalModel will break down.
|
|
28
29
|
* @returns The Id of the newly inserted FunctionalPartition and FunctionalModel (same value).
|
|
29
30
|
* @throws [[IModelError]] if there is an insert problem.
|
|
31
|
+
* @beta
|
|
30
32
|
*/
|
|
33
|
+
static insert(txn: EditTxn, parentSubjectId: Id64String, name: string): Id64String;
|
|
34
|
+
/** @deprecated Use FunctionalModel.insert(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */
|
|
31
35
|
static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String;
|
|
32
36
|
}
|
|
33
37
|
/** A FunctionalElement captures functional requirements that will ultimately be fulfilled by a PhysicalElement.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalElements.d.ts","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,sBAAsB,EAAU,gCAAgC,EAAE,UAAU,EAAE,cAAc,EAAE,0BAA0B,EACzH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"FunctionalElements.d.ts","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,sBAAsB,EAAU,gCAAgC,EAAE,UAAU,EAAE,cAAc,EAAE,0BAA0B,EACzH,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,2BAA2B;IAClE,WAA2B,SAAS,IAAI,MAAM,CAAkC;IAEhF,SAAS,aAAa,KAAK,EAAE,gCAAgC,EAAE,MAAM,EAAE,QAAQ;CAGhF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,WAA2B,SAAS,IAAI,MAAM,CAA8B;gBAEzD,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;IAItD;;;;;;;OAOG;WACW,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IACzF,qKAAqK;WACvJ,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;CAchG;AAED;;GAEG;AACH,8BAAsB,iBAAkB,SAAQ,WAAW;IACzD,WAA2B,SAAS,IAAI,MAAM,CAAgC;IAE9E,SAAS,aAAa,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ;CAGtE;AAED;;GAEG;AACH,8BAAsB,0BAA2B,SAAQ,iBAAiB;IACxE,WAA2B,SAAS,IAAI,MAAM,CAAyC;IAEvF,SAAS,aAAa,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ;CAGtE;AAED,cAAc;AACd,qBAAa,mBAAoB,SAAQ,0BAA0B;IACjE,WAA2B,SAAS,IAAI,MAAM,CAAkC;IAEhF,SAAS,aAAa,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ;CAGtE;AAED;;GAEG;AACH,8BAAsB,0BAA2B,SAAQ,iBAAiB;IACxE,WAA2B,SAAS,IAAI,MAAM,CAAyC;IAEvF,SAAS,aAAa,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ;CAGtE;AAED;;GAEG;AACH,8BAAsB,cAAe,SAAQ,qBAAqB;IAChE,WAA2B,SAAS,IAAI,MAAM,CAA6B;IAE3E,SAAS,aAAa,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,QAAQ;CAG1E;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,cAAc;IAC3D,WAAkB,SAAS,IAAI,MAAM,CAAwC;IAC7E,OAAc,aAAa,SAA0C;gBAClD,EAAE,EAAE,UAAU,EAAE,YAAY,GAAE,MAAgD;CAGlG;AAED;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,uBAAuB;IAC1E,WAA2B,SAAS,IAAI,MAAM,CAA8C;CAC7F;AAED;;GAEG;AACH,qBAAa,yCAA0C,SAAQ,+BAA+B;IAC5F,WAA2B,SAAS,IAAI,MAAM,CAAwD;CACvG"}
|
|
@@ -10,6 +10,8 @@ import { InformationPartitionElement, RoleElement, TypeDefinitionElement } from
|
|
|
10
10
|
import { RoleModel } from "../Model";
|
|
11
11
|
import { SubjectOwnsPartitionElements } from "../NavigationRelationship";
|
|
12
12
|
import { DrawingGraphicRepresentsElement, ElementRefersToElements } from "../Relationship";
|
|
13
|
+
import { EditTxn } from "../EditTxn";
|
|
14
|
+
import { _implicitTxn } from "../internal/Symbols";
|
|
13
15
|
/** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented
|
|
14
16
|
* to a Subject and broken down by a FunctionalModel.
|
|
15
17
|
* @public
|
|
@@ -28,22 +30,15 @@ export class FunctionalModel extends RoleModel {
|
|
|
28
30
|
constructor(props, iModel) {
|
|
29
31
|
super(props, iModel);
|
|
30
32
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* @param name The name of the FunctionalPartition that the new FunctionalModel will break down.
|
|
35
|
-
* @returns The Id of the newly inserted FunctionalPartition and FunctionalModel (same value).
|
|
36
|
-
* @throws [[IModelError]] if there is an insert problem.
|
|
37
|
-
*/
|
|
38
|
-
static insert(iModelDb, parentSubjectId, name) {
|
|
39
|
-
const partitionProps = {
|
|
33
|
+
static insert(txnOrDb, parentSubjectId, name) {
|
|
34
|
+
const txn = txnOrDb instanceof EditTxn ? txnOrDb : txnOrDb[_implicitTxn];
|
|
35
|
+
const partitionId = txn.insertElement({
|
|
40
36
|
classFullName: FunctionalPartition.classFullName,
|
|
41
37
|
model: IModel.repositoryModelId,
|
|
42
38
|
parent: new SubjectOwnsPartitionElements(parentSubjectId),
|
|
43
|
-
code: FunctionalPartition.createCode(
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
return iModelDb.models.insertModel({
|
|
39
|
+
code: FunctionalPartition.createCode(txn.iModel, parentSubjectId, name),
|
|
40
|
+
});
|
|
41
|
+
return txn.insertModel({
|
|
47
42
|
classFullName: this.classFullName,
|
|
48
43
|
modeledElement: { id: partitionId },
|
|
49
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionalElements.js","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EACmB,MAAM,EAAgD,cAAc,GAC7F,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"FunctionalElements.js","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.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 Elements\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport {\n FunctionalElementProps, IModel, InformationPartitionElementProps, ModelProps, RelatedElement, TypeDefinitionElementProps,\n} from \"@itwin/core-common\";\nimport { InformationPartitionElement, RoleElement, TypeDefinitionElement } from \"../Element\";\nimport { IModelDb } from \"../IModelDb\";\nimport { RoleModel } from \"../Model\";\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\nimport { DrawingGraphicRepresentsElement, ElementRefersToElements } from \"../Relationship\";\nimport { EditTxn } from \"../EditTxn\";\nimport { _implicitTxn } from \"../internal/Symbols\";\n\n/** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented\n * to a Subject and broken down by a FunctionalModel.\n * @public\n */\nexport class FunctionalPartition extends InformationPartitionElement {\n public static override get className(): string { return \"FunctionalPartition\"; }\n\n protected constructor(props: InformationPartitionElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A container for persisting FunctionalElements.\n * @public\n */\nexport class FunctionalModel extends RoleModel {\n public static override get className(): string { return \"FunctionalModel\"; }\n\n public constructor(props: ModelProps, iModel: IModelDb) {\n super(props, iModel);\n }\n\n /** Insert a FunctionalPartition and a FunctionalModel that breaks it down using an explicit transaction.\n * @param txn The EditTxn used to perform inserts.\n * @param parentSubjectId The FunctionalPartition will be inserted as a child of this Subject element.\n * @param name The name of the FunctionalPartition that the new FunctionalModel will break down.\n * @returns The Id of the newly inserted FunctionalPartition and FunctionalModel (same value).\n * @throws [[IModelError]] if there is an insert problem.\n * @beta\n */\n public static insert(txn: EditTxn, parentSubjectId: Id64String, name: string): Id64String;\n /** @deprecated Use FunctionalModel.insert(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String;\n public static insert(txnOrDb: EditTxn | IModelDb, parentSubjectId: Id64String, name: string): Id64String {\n const txn = txnOrDb instanceof EditTxn ? txnOrDb : txnOrDb[_implicitTxn];\n const partitionId = txn.insertElement({\n classFullName: FunctionalPartition.classFullName,\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\n code: FunctionalPartition.createCode(txn.iModel, parentSubjectId, name),\n });\n return txn.insertModel({\n classFullName: this.classFullName,\n modeledElement: { id: partitionId },\n });\n }\n}\n\n/** A FunctionalElement captures functional requirements that will ultimately be fulfilled by a PhysicalElement.\n * @public\n */\nexport abstract class FunctionalElement extends RoleElement {\n public static override get className(): string { return \"FunctionalElement\"; }\n\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A FunctionalBreakdownElement is a *folder* node in the functional hierarchy.\n * @public\n */\nexport abstract class FunctionalBreakdownElement extends FunctionalElement {\n public static override get className(): string { return \"FunctionalBreakdownElement\"; }\n\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** @public */\nexport class FunctionalComposite extends FunctionalBreakdownElement {\n public static override get className(): string { return \"FunctionalComposite\"; }\n\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A FunctionalComponentElement is a *leaf* node in the functional hierarchy.\n * @public\n */\nexport abstract class FunctionalComponentElement extends FunctionalElement {\n public static override get className(): string { return \"FunctionalComponentElement\"; }\n\n protected constructor(props: FunctionalElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** Defines a set of properties (the 'type') that can be associated with a Functional Element.\n * @public\n */\nexport abstract class FunctionalType extends TypeDefinitionElement {\n public static override get className(): string { return \"FunctionalType\"; }\n\n protected constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** Relates a [[FunctionalElement]] to its [[FunctionalType]]\n * @public\n */\nexport class FunctionalElementIsOfType extends RelatedElement {\n public static get className(): string { return \"FunctionalElementIsOfType\"; }\n public static classFullName = \"Functional:FunctionalElementIsOfType\";\n public constructor(id: Id64String, relClassName: string = FunctionalElementIsOfType.classFullName) {\n super({ id, relClassName });\n }\n}\n\n/** Relates a [[PhysicalElement]] to the [[FunctionalElement]] elements that it fulfills.\n * @public\n */\nexport class PhysicalElementFulfillsFunction extends ElementRefersToElements {\n public static override get className(): string { return \"PhysicalElementFulfillsFunction\"; }\n}\n\n/** Relates a [[DrawingGraphic]] to the [[FunctionalElement]] that it represents\n * @public\n */\nexport class DrawingGraphicRepresentsFunctionalElement extends DrawingGraphicRepresentsElement {\n public static override get className(): string { return \"DrawingGraphicRepresentsFunctionalElement\"; }\n}\n"]}
|
|
@@ -7,6 +7,7 @@ import { Document, GraphicalElement2d, GraphicalElement3d, GraphicalType2d, Grou
|
|
|
7
7
|
import { IModelDb } from "../IModelDb";
|
|
8
8
|
import { PhysicalMaterial } from "../Material";
|
|
9
9
|
import { GraphicalModel3d, GroupInformationModel } from "../Model";
|
|
10
|
+
import { EditTxn } from "../EditTxn";
|
|
10
11
|
/** A graphical detailing symbol that is placed on a [[Drawing]] or [[Sheet]].
|
|
11
12
|
* @public
|
|
12
13
|
*/
|
|
@@ -69,14 +70,17 @@ export declare class DetailCallout extends Callout {
|
|
|
69
70
|
export declare class GenericGraphicalModel3d extends GraphicalModel3d {
|
|
70
71
|
static get className(): string;
|
|
71
72
|
constructor(props: GeometricModel3dProps, iModel: IModelDb);
|
|
72
|
-
/** Insert a BisCore:GraphicalPartition3d and a Generic:GraphicalModel3d that sub-models it.
|
|
73
|
-
* @param
|
|
73
|
+
/** Insert a BisCore:GraphicalPartition3d and a Generic:GraphicalModel3d that sub-models it using an explicit transaction.
|
|
74
|
+
* @param txn The EditTxn used to perform inserts.
|
|
74
75
|
* @param parentSubjectId The GraphicalPartition3d will be inserted as a child of this Subject element.
|
|
75
76
|
* @param name The name of the GraphicalPartition3d that the new Generic:GraphicalModel3d will sub-model.
|
|
76
77
|
* @param isPlanProjection Optional value (default is false) that indicates if the contents of this model are expected to be in an XY plane.
|
|
77
78
|
* @returns The Id of the newly inserted GraphicalPartition3d and GraphicalModel3d (same value).
|
|
78
79
|
* @throws [[IModelError]] if there is an insert problem.
|
|
80
|
+
* @beta
|
|
79
81
|
*/
|
|
82
|
+
static insert(txn: EditTxn, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String;
|
|
83
|
+
/** @deprecated Use GenericGraphicalModel3d.insert(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */
|
|
80
84
|
static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String;
|
|
81
85
|
}
|
|
82
86
|
/** The Generic:Graphic3d class is used when 3D graphics cannot be further classified.
|
|
@@ -109,13 +113,16 @@ export declare class SpatialLocation extends SpatialLocationElement {
|
|
|
109
113
|
export declare class GroupModel extends GroupInformationModel {
|
|
110
114
|
static get className(): string;
|
|
111
115
|
constructor(props: ModelProps, iModel: IModelDb);
|
|
112
|
-
/** Insert a GroupInformationPartition and a GroupModel that breaks it down.
|
|
113
|
-
* @param
|
|
116
|
+
/** Insert a GroupInformationPartition and a GroupModel that breaks it down using an explicit transaction.
|
|
117
|
+
* @param txn The EditTxn used to perform inserts.
|
|
114
118
|
* @param parentSubjectId The GroupInformationPartition will be inserted as a child of this Subject element.
|
|
115
119
|
* @param name The name of the GroupInformationPartition that the new GroupModel will break down.
|
|
116
120
|
* @returns The Id of the newly inserted GroupModel.
|
|
117
121
|
* @throws [[IModelError]] if there is an insert problem.
|
|
122
|
+
* @beta
|
|
118
123
|
*/
|
|
124
|
+
static insert(txn: EditTxn, parentSubjectId: Id64String, name: string): Id64String;
|
|
125
|
+
/** @deprecated Use GroupModel.insert(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */
|
|
119
126
|
static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String;
|
|
120
127
|
}
|
|
121
128
|
/** The Generic:Group class is used when the group cannot be further classified.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericElements.d.ts","sourceRoot":"","sources":["../../../src/domains/GenericElements.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,qBAAqB,EACzF,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,wBAAwB,EAC5I,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAwB,eAAe,EAAE,uBAAuB,EAChH,eAAe,EAAE,YAAY,EAAE,sBAAsB,EACtD,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"GenericElements.d.ts","sourceRoot":"","sources":["../../../src/domains/GenericElements.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ import { Document, GraphicalElement2d, GraphicalElement3d, GraphicalPartition3d,
|
|
|
10
10
|
import { PhysicalMaterial } from "../Material";
|
|
11
11
|
import { GraphicalModel3d, GroupInformationModel } from "../Model";
|
|
12
12
|
import { SubjectOwnsPartitionElements } from "../NavigationRelationship";
|
|
13
|
+
import { EditTxn } from "../EditTxn";
|
|
14
|
+
import { _implicitTxn } from "../internal/Symbols";
|
|
13
15
|
/** A graphical detailing symbol that is placed on a [[Drawing]] or [[Sheet]].
|
|
14
16
|
* @public
|
|
15
17
|
*/
|
|
@@ -90,28 +92,22 @@ export class GenericGraphicalModel3d extends GraphicalModel3d {
|
|
|
90
92
|
constructor(props, iModel) {
|
|
91
93
|
super(props, iModel);
|
|
92
94
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
* @param name The name of the GraphicalPartition3d that the new Generic:GraphicalModel3d will sub-model.
|
|
97
|
-
* @param isPlanProjection Optional value (default is false) that indicates if the contents of this model are expected to be in an XY plane.
|
|
98
|
-
* @returns The Id of the newly inserted GraphicalPartition3d and GraphicalModel3d (same value).
|
|
99
|
-
* @throws [[IModelError]] if there is an insert problem.
|
|
100
|
-
*/
|
|
101
|
-
static insert(iModelDb, parentSubjectId, name, isPlanProjection) {
|
|
95
|
+
static insert(txnOrDb, parentSubjectId, name, isPlanProjection) {
|
|
96
|
+
const txn = txnOrDb instanceof EditTxn ? txnOrDb : txnOrDb[_implicitTxn];
|
|
97
|
+
const iModelDb = txn.iModel;
|
|
102
98
|
const partitionProps = {
|
|
103
99
|
classFullName: GraphicalPartition3d.classFullName,
|
|
104
100
|
model: IModel.repositoryModelId,
|
|
105
101
|
parent: new SubjectOwnsPartitionElements(parentSubjectId),
|
|
106
102
|
code: GraphicalPartition3d.createCode(iModelDb, parentSubjectId, name),
|
|
107
103
|
};
|
|
108
|
-
const partitionId =
|
|
104
|
+
const partitionId = txn.insertElement(partitionProps);
|
|
109
105
|
const modelProps = {
|
|
110
106
|
classFullName: this.classFullName,
|
|
111
107
|
modeledElement: { id: partitionId },
|
|
112
108
|
isPlanProjection,
|
|
113
109
|
};
|
|
114
|
-
return
|
|
110
|
+
return txn.insertModel(modelProps);
|
|
115
111
|
}
|
|
116
112
|
}
|
|
117
113
|
/** The Generic:Graphic3d class is used when 3D graphics cannot be further classified.
|
|
@@ -152,22 +148,15 @@ export class GroupModel extends GroupInformationModel {
|
|
|
152
148
|
constructor(props, iModel) {
|
|
153
149
|
super(props, iModel);
|
|
154
150
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
* @param name The name of the GroupInformationPartition that the new GroupModel will break down.
|
|
159
|
-
* @returns The Id of the newly inserted GroupModel.
|
|
160
|
-
* @throws [[IModelError]] if there is an insert problem.
|
|
161
|
-
*/
|
|
162
|
-
static insert(iModelDb, parentSubjectId, name) {
|
|
163
|
-
const partitionProps = {
|
|
151
|
+
static insert(txnOrDb, parentSubjectId, name) {
|
|
152
|
+
const txn = txnOrDb instanceof EditTxn ? txnOrDb : txnOrDb[_implicitTxn];
|
|
153
|
+
const partitionId = txn.insertElement({
|
|
164
154
|
classFullName: GroupInformationPartition.classFullName,
|
|
165
155
|
model: IModel.repositoryModelId,
|
|
166
156
|
parent: new SubjectOwnsPartitionElements(parentSubjectId),
|
|
167
|
-
code: GroupInformationPartition.createCode(
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
return iModelDb.models.insertModel({
|
|
157
|
+
code: GroupInformationPartition.createCode(txn.iModel, parentSubjectId, name),
|
|
158
|
+
});
|
|
159
|
+
return txn.insertModel({
|
|
171
160
|
classFullName: this.classFullName,
|
|
172
161
|
modeledElement: { id: partitionId },
|
|
173
162
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericElements.js","sourceRoot":"","sources":["../../../src/domains/GenericElements.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EACwH,MAAM,GAEpI,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,uBAAuB,EAAE,yBAAyB,EAC3I,eAAe,EAAE,YAAY,EAAE,sBAAsB,GACtD,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAgB,eAAgB,SAAQ,kBAAkB;IACvD,MAAM,KAAc,SAAS,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAC5E,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,eAAe;IACrC,MAAM,KAAc,SAAS,KAAa,OAAO,WAAW,CAAC,CAAC,CAAC;IACtE,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC/C,MAAM,KAAc,SAAS,KAAa,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAChF,YAAmB,KAA+B,EAAE,MAAgB;QAClE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAgB,OAAQ,SAAQ,eAAe;IAC5C,MAAM,KAAc,SAAS,KAAa,OAAO,SAAS,CAAC,CAAC,CAAC;IACpE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAClC,MAAM,KAAc,SAAS,KAAa,OAAO,gBAAgB,CAAC,CAAC,CAAC;IAC3E,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,OAAO;IACpC,MAAM,KAAc,SAAS,KAAa,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC7E,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC/B,MAAM,KAAc,SAAS,KAAa,OAAO,aAAa,CAAC,CAAC,CAAC;IACxE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IACjC,MAAM,KAAc,SAAS,KAAa,OAAO,eAAe,CAAC,CAAC,CAAC;IAC1E,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,KAAc,SAAS,KAAa,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC7E,YAAmB,KAA4B,EAAE,MAAgB;QAC/D,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;IACD;;;;;;;OAOG;IACI,MAAM,CAAC,MAAM,CAAC,QAAkB,EAAE,eAA2B,EAAE,IAAY,EAAE,gBAA0B;QAC5G,MAAM,cAAc,GAAqC;YACvD,aAAa,EAAE,oBAAoB,CAAC,aAAa;YACjD,KAAK,EAAE,MAAM,CAAC,iBAAiB;YAC/B,MAAM,EAAE,IAAI,4BAA4B,CAAC,eAAe,CAAC;YACzD,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;SACvE,CAAC;QACF,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,UAAU,GAA0B;YACxC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;YACnC,gBAAgB;SACjB,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,kBAAkB;IACxC,MAAM,KAAc,SAAS,KAAa,OAAO,WAAW,CAAC,CAAC,CAAC;IACtE,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,eAAe;IAC1C,MAAM,KAAc,SAAS,KAAa,OAAO,gBAAgB,CAAC,CAAC,CAAC;IAC3E,YAAmB,KAA2B,EAAE,MAAgB;QAC9D,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,sBAAsB;IAClD,MAAM,KAAc,SAAS,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAC5E,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,qBAAqB;IAC5C,MAAM,KAAc,SAAS,KAAa,OAAO,YAAY,CAAC,CAAC,CAAC;IACvE,YAAmB,KAAiB,EAAE,MAAgB;QACpD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;IACD;;;;;;OAMG;IACI,MAAM,CAAC,MAAM,CAAC,QAAkB,EAAE,eAA2B,EAAE,IAAY;QAChF,MAAM,cAAc,GAAqC;YACvD,aAAa,EAAE,yBAAyB,CAAC,aAAa;YACtD,KAAK,EAAE,MAAM,CAAC,iBAAiB;YAC/B,MAAM,EAAE,IAAI,4BAA4B,CAAC,eAAe,CAAC;YACzD,IAAI,EAAE,yBAAyB,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;SAC5E,CAAC;QACF,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,uBAAuB;IACzC,MAAM,KAAc,SAAS,KAAa,OAAO,OAAO,CAAC,CAAC,CAAC;IAClE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IACpC,MAAM,KAAc,SAAS,KAAa,OAAO,UAAU,CAAC,CAAC,CAAC;IACrE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,KAAc,SAAS,KAAa,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC7E,YAAmB,KAA6B,EAAE,MAAgB;QAChE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAC5C,MAAM,KAAc,SAAS,KAAa,OAAO,cAAc,CAAC,CAAC,CAAC;IACzE,YAAmB,KAAwB,EAAE,MAAgB;QAC3D,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IAClD,MAAM,KAAc,SAAS,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAC5E,YAAmB,KAAiC,EAAE,MAAgB;QACpE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF","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 Elements\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport {\n CalloutProps, DefinitionElementProps, ElementProps, GeometricElement2dProps, GeometricElement3dProps, GeometricModel3dProps, IModel,\n InformationPartitionElementProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, TypeDefinitionElementProps, ViewAttachmentLabelProps,\n} from \"@itwin/core-common\";\nimport {\n Document, GraphicalElement2d, GraphicalElement3d, GraphicalPartition3d, GraphicalType2d, GroupInformationElement, GroupInformationPartition,\n PhysicalElement, PhysicalType, SpatialLocationElement,\n} from \"../Element\";\nimport { IModelDb } from \"../IModelDb\";\nimport { PhysicalMaterial } from \"../Material\";\nimport { GraphicalModel3d, GroupInformationModel } from \"../Model\";\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\n\n/** A graphical detailing symbol that is placed on a [[Drawing]] or [[Sheet]].\n * @public\n */\nexport abstract class DetailingSymbol extends GraphicalElement2d {\n public static override get className(): string { return \"DetailingSymbol\"; }\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical DetailingSymbol that contains title text.\n * @public\n */\nexport class TitleText extends DetailingSymbol {\n public static override get className(): string { return \"TitleText\"; }\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical DetailingSymbol that contains a view attachment label.\n * @public\n */\nexport class ViewAttachmentLabel extends DetailingSymbol {\n public static override get className(): string { return \"ViewAttachmentLabel\"; }\n public constructor(props: ViewAttachmentLabelProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical DetailingSymbol that calls out a reference to another drawing.\n * @public\n */\nexport abstract class Callout extends DetailingSymbol {\n public static override get className(): string { return \"Callout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references a section drawing.\n * @public\n */\nexport class SectionCallout extends Callout {\n public static override get className(): string { return \"SectionCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references an elevation drawing.\n * @public\n */\nexport class ElevationCallout extends Callout {\n public static override get className(): string { return \"ElevationCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references a plan drawing.\n * @public\n */\nexport class PlanCallout extends Callout {\n public static override get className(): string { return \"PlanCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references a detail drawing.\n * @public\n */\nexport class DetailCallout extends Callout {\n public static override get className(): string { return \"DetailCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A generic container for persisting BisCore:GraphicalElement3d instances.\n * @public\n */\nexport class GenericGraphicalModel3d extends GraphicalModel3d {\n public static override get className(): string { return \"GraphicalModel3d\"; }\n public constructor(props: GeometricModel3dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n /** Insert a BisCore:GraphicalPartition3d and a Generic:GraphicalModel3d that sub-models it.\n * @param iModelDb Insert into this iModel\n * @param parentSubjectId The GraphicalPartition3d will be inserted as a child of this Subject element.\n * @param name The name of the GraphicalPartition3d that the new Generic:GraphicalModel3d will sub-model.\n * @param isPlanProjection Optional value (default is false) that indicates if the contents of this model are expected to be in an XY plane.\n * @returns The Id of the newly inserted GraphicalPartition3d and GraphicalModel3d (same value).\n * @throws [[IModelError]] if there is an insert problem.\n */\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String {\n const partitionProps: InformationPartitionElementProps = {\n classFullName: GraphicalPartition3d.classFullName,\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\n code: GraphicalPartition3d.createCode(iModelDb, parentSubjectId, name),\n };\n const partitionId = iModelDb.elements.insertElement(partitionProps);\n const modelProps: GeometricModel3dProps = {\n classFullName: this.classFullName,\n modeledElement: { id: partitionId },\n isPlanProjection,\n };\n return iModelDb.models.insertModel(modelProps);\n }\n}\n\n/** The Generic:Graphic3d class is used when 3D graphics cannot be further classified.\n * @note More-specific BisCore:GraphicalElement3d subclasses should be used wherever possible.\n * @public\n */\nexport class Graphic3d extends GraphicalElement3d {\n public static override get className(): string { return \"Graphic3d\"; }\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:PhysicalObject class is used when physical elements cannot be further classified.\n * @note More-specific BisCore:PhysicalElement subclasses should be used wherever possible.\n * @public\n */\nexport class PhysicalObject extends PhysicalElement {\n public static override get className(): string { return \"PhysicalObject\"; }\n public constructor(props: PhysicalElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:SpatialLocation class is used when spatial locations cannot be further classified.\n * @note More-specific BisCore:SpatialLocationElement subclasses should be used wherever possible.\n * @public\n */\nexport class SpatialLocation extends SpatialLocationElement {\n public static override get className(): string { return \"SpatialLocation\"; }\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A generic container for BisCore:GroupInformationElement instances.\n * @public\n */\nexport class GroupModel extends GroupInformationModel {\n public static override get className(): string { return \"GroupModel\"; }\n public constructor(props: ModelProps, iModel: IModelDb) {\n super(props, iModel);\n }\n /** Insert a GroupInformationPartition and a GroupModel that breaks it down.\n * @param iModelDb Insert into this iModel\n * @param parentSubjectId The GroupInformationPartition will be inserted as a child of this Subject element.\n * @param name The name of the GroupInformationPartition that the new GroupModel will break down.\n * @returns The Id of the newly inserted GroupModel.\n * @throws [[IModelError]] if there is an insert problem.\n */\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String {\n const partitionProps: InformationPartitionElementProps = {\n classFullName: GroupInformationPartition.classFullName,\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\n code: GroupInformationPartition.createCode(iModelDb, parentSubjectId, name),\n };\n const partitionId = iModelDb.elements.insertElement(partitionProps);\n return iModelDb.models.insertModel({\n classFullName: this.classFullName,\n modeledElement: { id: partitionId },\n });\n }\n}\n\n/** The Generic:Group class is used when the group cannot be further classified.\n * @public\n */\nexport class Group extends GroupInformationElement {\n public static override get className(): string { return \"Group\"; }\n public constructor(props: ElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:Document class is used when a document cannot be further classified.\n * @note More-specific BisCore:Document subclasses should be used wherever possible.\n * @public\n */\nexport class GenericDocument extends Document {\n public static override get className(): string { return \"Document\"; }\n public constructor(props: ElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:PhysicalMaterial class is used when the physical material cannot be further classified.\n * @note More-specific BisCore:PhysicalMaterial subclasses should be used wherever possible.\n * @public\n */\nexport class GenericPhysicalMaterial extends PhysicalMaterial {\n public static override get className(): string { return \"PhysicalMaterial\"; }\n public constructor(props: DefinitionElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:PhysicalType class is used when the physical type cannot be further classified.\n * @note More-specific BisCore:PhysicalType subclasses should be used wherever possible.\n * @public\n */\nexport class GenericPhysicalType extends PhysicalType {\n public static override get className(): string { return \"PhysicalType\"; }\n public constructor(props: PhysicalTypeProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:GraphicalType2d class is used when graphical types cannot be further classified.\n * @note More-specific BisCore:GraphicalType2d subclasses should be used wherever possible.\n * @public\n */\nexport class GenericGraphicalType2d extends GraphicalType2d {\n public static override get className(): string { return \"GraphicalType2d\"; }\n public constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GenericElements.js","sourceRoot":"","sources":["../../../src/domains/GenericElements.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 Elements\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport {\n CalloutProps, DefinitionElementProps, ElementProps, GeometricElement2dProps, GeometricElement3dProps, GeometricModel3dProps, IModel,\n InformationPartitionElementProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, TypeDefinitionElementProps, ViewAttachmentLabelProps,\n} from \"@itwin/core-common\";\nimport {\n Document, GraphicalElement2d, GraphicalElement3d, GraphicalPartition3d, GraphicalType2d, GroupInformationElement, GroupInformationPartition,\n PhysicalElement, PhysicalType, SpatialLocationElement,\n} from \"../Element\";\nimport { IModelDb } from \"../IModelDb\";\nimport { PhysicalMaterial } from \"../Material\";\nimport { GraphicalModel3d, GroupInformationModel } from \"../Model\";\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\nimport { EditTxn } from \"../EditTxn\";\nimport { _implicitTxn } from \"../internal/Symbols\";\n\n/** A graphical detailing symbol that is placed on a [[Drawing]] or [[Sheet]].\n * @public\n */\nexport abstract class DetailingSymbol extends GraphicalElement2d {\n public static override get className(): string { return \"DetailingSymbol\"; }\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical DetailingSymbol that contains title text.\n * @public\n */\nexport class TitleText extends DetailingSymbol {\n public static override get className(): string { return \"TitleText\"; }\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical DetailingSymbol that contains a view attachment label.\n * @public\n */\nexport class ViewAttachmentLabel extends DetailingSymbol {\n public static override get className(): string { return \"ViewAttachmentLabel\"; }\n public constructor(props: ViewAttachmentLabelProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical DetailingSymbol that calls out a reference to another drawing.\n * @public\n */\nexport abstract class Callout extends DetailingSymbol {\n public static override get className(): string { return \"Callout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references a section drawing.\n * @public\n */\nexport class SectionCallout extends Callout {\n public static override get className(): string { return \"SectionCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references an elevation drawing.\n * @public\n */\nexport class ElevationCallout extends Callout {\n public static override get className(): string { return \"ElevationCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references a plan drawing.\n * @public\n */\nexport class PlanCallout extends Callout {\n public static override get className(): string { return \"PlanCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A graphical Callout that references a detail drawing.\n * @public\n */\nexport class DetailCallout extends Callout {\n public static override get className(): string { return \"DetailCallout\"; }\n public constructor(props: CalloutProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A generic container for persisting BisCore:GraphicalElement3d instances.\n * @public\n */\nexport class GenericGraphicalModel3d extends GraphicalModel3d {\n public static override get className(): string { return \"GraphicalModel3d\"; }\n public constructor(props: GeometricModel3dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n /** Insert a BisCore:GraphicalPartition3d and a Generic:GraphicalModel3d that sub-models it using an explicit transaction.\n * @param txn The EditTxn used to perform inserts.\n * @param parentSubjectId The GraphicalPartition3d will be inserted as a child of this Subject element.\n * @param name The name of the GraphicalPartition3d that the new Generic:GraphicalModel3d will sub-model.\n * @param isPlanProjection Optional value (default is false) that indicates if the contents of this model are expected to be in an XY plane.\n * @returns The Id of the newly inserted GraphicalPartition3d and GraphicalModel3d (same value).\n * @throws [[IModelError]] if there is an insert problem.\n * @beta\n */\n public static insert(txn: EditTxn, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String;\n /** @deprecated Use GenericGraphicalModel3d.insert(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String;\n public static insert(txnOrDb: EditTxn | IModelDb, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String {\n const txn = txnOrDb instanceof EditTxn ? txnOrDb : txnOrDb[_implicitTxn];\n const iModelDb = txn.iModel;\n const partitionProps: InformationPartitionElementProps = {\n classFullName: GraphicalPartition3d.classFullName,\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\n code: GraphicalPartition3d.createCode(iModelDb, parentSubjectId, name),\n };\n const partitionId = txn.insertElement(partitionProps);\n const modelProps: GeometricModel3dProps = {\n classFullName: this.classFullName,\n modeledElement: { id: partitionId },\n isPlanProjection,\n };\n return txn.insertModel(modelProps);\n }\n}\n\n/** The Generic:Graphic3d class is used when 3D graphics cannot be further classified.\n * @note More-specific BisCore:GraphicalElement3d subclasses should be used wherever possible.\n * @public\n */\nexport class Graphic3d extends GraphicalElement3d {\n public static override get className(): string { return \"Graphic3d\"; }\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:PhysicalObject class is used when physical elements cannot be further classified.\n * @note More-specific BisCore:PhysicalElement subclasses should be used wherever possible.\n * @public\n */\nexport class PhysicalObject extends PhysicalElement {\n public static override get className(): string { return \"PhysicalObject\"; }\n public constructor(props: PhysicalElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:SpatialLocation class is used when spatial locations cannot be further classified.\n * @note More-specific BisCore:SpatialLocationElement subclasses should be used wherever possible.\n * @public\n */\nexport class SpatialLocation extends SpatialLocationElement {\n public static override get className(): string { return \"SpatialLocation\"; }\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** A generic container for BisCore:GroupInformationElement instances.\n * @public\n */\nexport class GroupModel extends GroupInformationModel {\n public static override get className(): string { return \"GroupModel\"; }\n public constructor(props: ModelProps, iModel: IModelDb) {\n super(props, iModel);\n }\n /** Insert a GroupInformationPartition and a GroupModel that breaks it down using an explicit transaction.\n * @param txn The EditTxn used to perform inserts.\n * @param parentSubjectId The GroupInformationPartition will be inserted as a child of this Subject element.\n * @param name The name of the GroupInformationPartition that the new GroupModel will break down.\n * @returns The Id of the newly inserted GroupModel.\n * @throws [[IModelError]] if there is an insert problem.\n * @beta\n */\n public static insert(txn: EditTxn, parentSubjectId: Id64String, name: string): Id64String;\n /** @deprecated Use GroupModel.insert(txn, ...) instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help. */\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String;\n public static insert(txnOrDb: EditTxn | IModelDb, parentSubjectId: Id64String, name: string): Id64String {\n const txn = txnOrDb instanceof EditTxn ? txnOrDb : txnOrDb[_implicitTxn];\n const partitionId = txn.insertElement({\n classFullName: GroupInformationPartition.classFullName,\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\n code: GroupInformationPartition.createCode(txn.iModel, parentSubjectId, name),\n });\n return txn.insertModel({\n classFullName: this.classFullName,\n modeledElement: { id: partitionId },\n });\n }\n}\n\n/** The Generic:Group class is used when the group cannot be further classified.\n * @public\n */\nexport class Group extends GroupInformationElement {\n public static override get className(): string { return \"Group\"; }\n public constructor(props: ElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:Document class is used when a document cannot be further classified.\n * @note More-specific BisCore:Document subclasses should be used wherever possible.\n * @public\n */\nexport class GenericDocument extends Document {\n public static override get className(): string { return \"Document\"; }\n public constructor(props: ElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:PhysicalMaterial class is used when the physical material cannot be further classified.\n * @note More-specific BisCore:PhysicalMaterial subclasses should be used wherever possible.\n * @public\n */\nexport class GenericPhysicalMaterial extends PhysicalMaterial {\n public static override get className(): string { return \"PhysicalMaterial\"; }\n public constructor(props: DefinitionElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:PhysicalType class is used when the physical type cannot be further classified.\n * @note More-specific BisCore:PhysicalType subclasses should be used wherever possible.\n * @public\n */\nexport class GenericPhysicalType extends PhysicalType {\n public static override get className(): string { return \"PhysicalType\"; }\n public constructor(props: PhysicalTypeProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n\n/** The Generic:GraphicalType2d class is used when graphical types cannot be further classified.\n * @note More-specific BisCore:GraphicalType2d subclasses should be used wherever possible.\n * @public\n */\nexport class GenericGraphicalType2d extends GraphicalType2d {\n public static override get className(): string { return \"GraphicalType2d\"; }\n public constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\n super(props, iModel);\n }\n}\n"]}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { Id64String } from "@itwin/core-bentley";
|
|
5
5
|
import { ChannelControl, ChannelKey, ChannelUpgradeOptions } from "../ChannelControl";
|
|
6
6
|
import { IModelDb } from "../IModelDb";
|
|
7
|
+
import { EditTxn } from "../EditTxn";
|
|
7
8
|
import { _implementationProhibited, _verifyChannel } from "./Symbols";
|
|
8
9
|
declare class ChannelAdmin implements ChannelControl {
|
|
9
10
|
private _iModel;
|
|
@@ -20,7 +21,21 @@ declare class ChannelAdmin implements ChannelControl {
|
|
|
20
21
|
makeChannelRoot(args: {
|
|
21
22
|
elementId: Id64String;
|
|
22
23
|
channelKey: ChannelKey;
|
|
24
|
+
txn: EditTxn;
|
|
23
25
|
}): void;
|
|
26
|
+
/** @deprecated Use makeChannelRoot and supply `txn`. */
|
|
27
|
+
makeChannelRoot(args: {
|
|
28
|
+
elementId: Id64String;
|
|
29
|
+
channelKey: ChannelKey;
|
|
30
|
+
}): void;
|
|
31
|
+
insertChannelSubject(args: {
|
|
32
|
+
subjectName: string;
|
|
33
|
+
channelKey: ChannelKey;
|
|
34
|
+
parentSubjectId?: Id64String;
|
|
35
|
+
description?: string;
|
|
36
|
+
txn: EditTxn;
|
|
37
|
+
}): Id64String;
|
|
38
|
+
/** @deprecated Use insertChannelSubject and supply `txn`. */
|
|
24
39
|
insertChannelSubject(args: {
|
|
25
40
|
subjectName: string;
|
|
26
41
|
channelKey: ChannelKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelAdmin.d.ts","sourceRoot":"","sources":["../../../src/internal/ChannelAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAY,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAyB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE7G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"ChannelAdmin.d.ts","sourceRoot":"","sources":["../../../src/internal/ChannelAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAY,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAyB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE7G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAA2B,cAAc,EAAE,MAAM,WAAW,CAAC;AAG/F,cAAM,YAAa,YAAW,cAAc;IAQvB,OAAO,CAAC,OAAO;IAPlC,gBAAuB,gBAAgB,2BAA2B;IAElE,SAAgB,CAAC,yBAAyB,CAAC,YAAa;IACxD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,aAAa,CAAqC;gBAE/B,OAAO,EAAE,QAAQ;IAMrC,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAKxC,oBAAoB,CAAC,UAAU,EAAE,UAAU;IAK3C,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU;IA6BhD,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAmB3C,eAAe,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IACnG,wDAAwD;IACjD,eAAe,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;IAqB9E,oBAAoB,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,eAAe,CAAC,EAAE,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,GAAG,UAAU;IAChK,6DAA6D;IACtD,oBAAoB,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC;QAAC,eAAe,CAAC,EAAE,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IAc3I,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAqB1D,cAAc,CAAC,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBzG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,CAEnE"}
|
|
@@ -11,7 +11,7 @@ import { ChannelControl } from "../ChannelControl";
|
|
|
11
11
|
import { Subject } from "../Element";
|
|
12
12
|
import { IModelHost } from "../IModelHost";
|
|
13
13
|
import { ElementOwnsChannelRootAspect } from "../NavigationRelationship";
|
|
14
|
-
import { _implementationProhibited, _nativeDb, _verifyChannel } from "./Symbols";
|
|
14
|
+
import { _implementationProhibited, _implicitTxn, _nativeDb, _verifyChannel } from "./Symbols";
|
|
15
15
|
import * as semver from "semver";
|
|
16
16
|
class ChannelAdmin {
|
|
17
17
|
_iModel;
|
|
@@ -75,6 +75,7 @@ class ChannelAdmin {
|
|
|
75
75
|
return this[_verifyChannel](modelId);
|
|
76
76
|
}
|
|
77
77
|
makeChannelRoot(args) {
|
|
78
|
+
const txn = args.txn ?? this._iModel[_implicitTxn];
|
|
78
79
|
const channelKey = this.getChannelKey(args.elementId);
|
|
79
80
|
if (ChannelControl.sharedChannelName !== channelKey)
|
|
80
81
|
ChannelControlError.throwError("may-not-nest", `Channel ${channelKey} may not nest`, channelKey);
|
|
@@ -88,16 +89,17 @@ class ChannelAdmin {
|
|
|
88
89
|
},
|
|
89
90
|
owner: args.channelKey,
|
|
90
91
|
};
|
|
91
|
-
|
|
92
|
+
txn.insertAspect(props);
|
|
92
93
|
}
|
|
93
94
|
insertChannelSubject(args) {
|
|
95
|
+
const txn = args.txn ?? this._iModel[_implicitTxn];
|
|
94
96
|
// Check if channelKey already exists before inserting Subject.
|
|
95
97
|
// makeChannelRoot will check that again, but at that point the new Subject is already inserted.
|
|
96
98
|
// Prefer to check twice instead of deleting the Subject in the latter option.
|
|
97
99
|
if (this.queryChannelRoot(args.channelKey) !== undefined)
|
|
98
100
|
ChannelControlError.throwError("root-exists", `Channel ${args.channelKey} root already exist`, args.channelKey);
|
|
99
|
-
const elementId = Subject.insert(
|
|
100
|
-
this.makeChannelRoot({ elementId, channelKey: args.channelKey });
|
|
101
|
+
const elementId = Subject.insert(txn, args.parentSubjectId ?? IModel.rootSubjectId, args.subjectName, args.description);
|
|
102
|
+
this.makeChannelRoot({ elementId, channelKey: args.channelKey, txn });
|
|
101
103
|
return elementId;
|
|
102
104
|
}
|
|
103
105
|
queryChannelRoot(channelKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelAdmin.js","sourceRoot":"","sources":["../../../src/internal/ChannelAdmin.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 Elements\n */\n\nimport { DbResult, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport { ChannelControlError, ChannelRootAspectProps, IModel, IModelError } from \"@itwin/core-common\";\nimport { ChannelControl, ChannelKey, ChannelUpgradeContext, ChannelUpgradeOptions } from \"../ChannelControl\";\nimport { Subject } from \"../Element\";\nimport { IModelDb } from \"../IModelDb\";\nimport { IModelHost } from \"../IModelHost\";\nimport { ElementOwnsChannelRootAspect } from \"../NavigationRelationship\";\nimport { _implementationProhibited, _nativeDb, _verifyChannel } from \"./Symbols\";\nimport * as semver from \"semver\";\n\nclass ChannelAdmin implements ChannelControl {\n public static readonly channelClassName = \"bis:ChannelRootAspect\";\n\n public readonly [_implementationProhibited] = undefined;\n private _allowedChannels = new Set<ChannelKey>();\n private _allowedModels = new Set<Id64String>();\n private _deniedModels = new Map<Id64String, ChannelKey>();\n\n public constructor(private _iModel: IModelDb) {\n // for backwards compatibility, allow the shared channel unless explicitly turned off in IModelHostOptions.\n if (IModelHost.configuration?.allowSharedChannel !== false)\n this._allowedChannels.add(ChannelControl.sharedChannelName);\n }\n\n public addAllowedChannel(channelKey: ChannelKey) {\n this._allowedChannels.add(channelKey);\n this._deniedModels.clear();\n }\n\n public removeAllowedChannel(channelKey: ChannelKey) {\n this._allowedChannels.delete(channelKey);\n this._allowedModels.clear();\n }\n\n public getChannelKey(elementId: Id64String): ChannelKey {\n if (elementId === IModel.rootSubjectId)\n return ChannelControl.sharedChannelName;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const channel = this._iModel.withPreparedStatement(`SELECT Owner FROM ${ChannelAdmin.channelClassName} WHERE Element.Id=?`, (stmt) => {\n stmt.bindId(1, elementId);\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getString() : undefined;\n });\n\n if (channel !== undefined)\n return channel;\n } catch {\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\n // In that case all data in such iModel is assumed to be in the shared channel.\n return ChannelControl.sharedChannelName;\n }\n\n const parentId = this._iModel.withPreparedSqliteStatement(\"SELECT ParentId,ModelId FROM bis_Element WHERE id=?\", (stmt) => {\n stmt.bindId(1, elementId);\n if (DbResult.BE_SQLITE_ROW !== stmt.step())\n throw new IModelError(IModelStatus.NotFound, \"Element does not exist\");\n return stmt.getValueId(0) ?? stmt.getValueId(1); // if parent is undefined, use modelId\n });\n\n return this.getChannelKey(parentId);\n }\n\n public [_verifyChannel](modelId: Id64String): void {\n // Note: indirect changes are permitted to change any channel\n if (this._allowedModels.has(modelId) || this._iModel[_nativeDb].getTxnMode() === \"indirect\")\n return;\n\n const deniedChannel = this._deniedModels.get(modelId);\n if (undefined !== deniedChannel)\n ChannelControlError.throwError(\"not-allowed\", `Channel ${deniedChannel} is not allowed`, deniedChannel);\n\n const channel = this.getChannelKey(modelId);\n if (this._allowedChannels.has(channel)) {\n this._allowedModels.add(modelId);\n return;\n }\n\n this._deniedModels.set(modelId, channel);\n return this[_verifyChannel](modelId);\n }\n\n public makeChannelRoot(args: { elementId: Id64String, channelKey: ChannelKey }) {\n const channelKey = this.getChannelKey(args.elementId);\n if (ChannelControl.sharedChannelName !== channelKey)\n ChannelControlError.throwError(\"may-not-nest\", `Channel ${channelKey} may not nest`, channelKey);\n\n if (this.queryChannelRoot(args.channelKey) !== undefined)\n ChannelControlError.throwError(\"root-exists\", `Channel ${args.channelKey} root already exist`, channelKey);\n\n const props: ChannelRootAspectProps = {\n classFullName: ChannelAdmin.channelClassName,\n element: {\n id: args.elementId,\n relClassName: ElementOwnsChannelRootAspect.classFullName,\n },\n owner: args.channelKey,\n };\n this._iModel.elements.insertAspect(props);\n }\n\n public insertChannelSubject(args: { subjectName: string, channelKey: ChannelKey, parentSubjectId?: Id64String, description?: string }): Id64String {\n // Check if channelKey already exists before inserting Subject.\n // makeChannelRoot will check that again, but at that point the new Subject is already inserted.\n // Prefer to check twice instead of deleting the Subject in the latter option.\n if (this.queryChannelRoot(args.channelKey) !== undefined)\n ChannelControlError.throwError(\"root-exists\", `Channel ${args.channelKey} root already exist`, args.channelKey);\n\n const elementId = Subject.insert(this._iModel, args.parentSubjectId ?? IModel.rootSubjectId, args.subjectName, args.description);\n this.makeChannelRoot({ elementId, channelKey: args.channelKey });\n return elementId;\n }\n\n public queryChannelRoot(channelKey: ChannelKey): Id64String | undefined {\n if (channelKey === ChannelControl.sharedChannelName)\n // RootSubject acts as the ChannelRoot element of the shared channel\n return IModel.rootSubjectId;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const channelRoot = this._iModel.withPreparedStatement(`SELECT Element.Id FROM ${ChannelAdmin.channelClassName} WHERE Owner=?`, (stmt) => {\n stmt.bindString(1, channelKey);\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getId() : undefined;\n });\n\n return channelRoot;\n } catch {\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\n // In that case all data in such iModel is assumed to be in the shared channel.\n return undefined;\n }\n\n }\n\n public async upgradeChannel(options: ChannelUpgradeOptions, iModel: IModelDb, data?: any): Promise<void> {\n // Validations\n if (!this._allowedChannels.has(options.channelKey))\n ChannelControlError.throwError(\"not-allowed\", `Channel ${options.channelKey} is not allowed`, options.channelKey);\n\n if (semver.gte(options.fromVersion, options.toVersion))\n ChannelControlError.throwError(\"not-allowed\", `Upgrading channel ${options.channelKey} from ${options.fromVersion} to ${options.toVersion} is not allowed`, options.channelKey);\n\n if (!this.queryChannelRoot(options.channelKey) && options.channelKey !== ChannelControl.sharedChannelName)\n ChannelControlError.throwError(\"not-allowed\", `Channel ${options.channelKey} not found`, options.channelKey);\n\n const context: ChannelUpgradeContext = {\n iModel,\n channelKey: options.channelKey,\n fromVersion: options.fromVersion,\n toVersion: options.toVersion,\n data,\n };\n\n try {\n await options.callback(context);\n } catch (error: any) {\n ChannelControlError.throwError(error, \"channel-upgrade-failed\", `Channel ${options.channelKey} upgrade failed: ${error.message}`);\n }\n }\n}\n\nexport function createChannelControl(iModel: IModelDb): ChannelAdmin {\n return new ChannelAdmin(iModel);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ChannelAdmin.js","sourceRoot":"","sources":["../../../src/internal/ChannelAdmin.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 Elements\n */\n\nimport { DbResult, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport { ChannelControlError, ChannelRootAspectProps, IModel, IModelError } from \"@itwin/core-common\";\nimport { ChannelControl, ChannelKey, ChannelUpgradeContext, ChannelUpgradeOptions } from \"../ChannelControl\";\nimport { Subject } from \"../Element\";\nimport { IModelDb } from \"../IModelDb\";\nimport { IModelHost } from \"../IModelHost\";\nimport { ElementOwnsChannelRootAspect } from \"../NavigationRelationship\";\nimport { EditTxn } from \"../EditTxn\";\nimport { _implementationProhibited, _implicitTxn, _nativeDb, _verifyChannel } from \"./Symbols\";\nimport * as semver from \"semver\";\n\nclass ChannelAdmin implements ChannelControl {\n public static readonly channelClassName = \"bis:ChannelRootAspect\";\n\n public readonly [_implementationProhibited] = undefined;\n private _allowedChannels = new Set<ChannelKey>();\n private _allowedModels = new Set<Id64String>();\n private _deniedModels = new Map<Id64String, ChannelKey>();\n\n public constructor(private _iModel: IModelDb) {\n // for backwards compatibility, allow the shared channel unless explicitly turned off in IModelHostOptions.\n if (IModelHost.configuration?.allowSharedChannel !== false)\n this._allowedChannels.add(ChannelControl.sharedChannelName);\n }\n\n public addAllowedChannel(channelKey: ChannelKey) {\n this._allowedChannels.add(channelKey);\n this._deniedModels.clear();\n }\n\n public removeAllowedChannel(channelKey: ChannelKey) {\n this._allowedChannels.delete(channelKey);\n this._allowedModels.clear();\n }\n\n public getChannelKey(elementId: Id64String): ChannelKey {\n if (elementId === IModel.rootSubjectId)\n return ChannelControl.sharedChannelName;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const channel = this._iModel.withPreparedStatement(`SELECT Owner FROM ${ChannelAdmin.channelClassName} WHERE Element.Id=?`, (stmt) => {\n stmt.bindId(1, elementId);\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getString() : undefined;\n });\n\n if (channel !== undefined)\n return channel;\n } catch {\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\n // In that case all data in such iModel is assumed to be in the shared channel.\n return ChannelControl.sharedChannelName;\n }\n\n const parentId = this._iModel.withPreparedSqliteStatement(\"SELECT ParentId,ModelId FROM bis_Element WHERE id=?\", (stmt) => {\n stmt.bindId(1, elementId);\n if (DbResult.BE_SQLITE_ROW !== stmt.step())\n throw new IModelError(IModelStatus.NotFound, \"Element does not exist\");\n return stmt.getValueId(0) ?? stmt.getValueId(1); // if parent is undefined, use modelId\n });\n\n return this.getChannelKey(parentId);\n }\n\n public [_verifyChannel](modelId: Id64String): void {\n // Note: indirect changes are permitted to change any channel\n if (this._allowedModels.has(modelId) || this._iModel[_nativeDb].getTxnMode() === \"indirect\")\n return;\n\n const deniedChannel = this._deniedModels.get(modelId);\n if (undefined !== deniedChannel)\n ChannelControlError.throwError(\"not-allowed\", `Channel ${deniedChannel} is not allowed`, deniedChannel);\n\n const channel = this.getChannelKey(modelId);\n if (this._allowedChannels.has(channel)) {\n this._allowedModels.add(modelId);\n return;\n }\n\n this._deniedModels.set(modelId, channel);\n return this[_verifyChannel](modelId);\n }\n\n public makeChannelRoot(args: { elementId: Id64String, channelKey: ChannelKey, txn: EditTxn }): void;\n /** @deprecated Use makeChannelRoot and supply `txn`. */\n public makeChannelRoot(args: { elementId: Id64String, channelKey: ChannelKey }): void;\n public makeChannelRoot(args: { elementId: Id64String, channelKey: ChannelKey, txn?: EditTxn }): void {\n const txn = args.txn ?? this._iModel[_implicitTxn];\n const channelKey = this.getChannelKey(args.elementId);\n if (ChannelControl.sharedChannelName !== channelKey)\n ChannelControlError.throwError(\"may-not-nest\", `Channel ${channelKey} may not nest`, channelKey);\n\n if (this.queryChannelRoot(args.channelKey) !== undefined)\n ChannelControlError.throwError(\"root-exists\", `Channel ${args.channelKey} root already exist`, channelKey);\n\n const props: ChannelRootAspectProps = {\n classFullName: ChannelAdmin.channelClassName,\n element: {\n id: args.elementId,\n relClassName: ElementOwnsChannelRootAspect.classFullName,\n },\n owner: args.channelKey,\n };\n txn.insertAspect(props);\n }\n\n public insertChannelSubject(args: { subjectName: string, channelKey: ChannelKey, parentSubjectId?: Id64String, description?: string, txn: EditTxn }): Id64String;\n /** @deprecated Use insertChannelSubject and supply `txn`. */\n public insertChannelSubject(args: { subjectName: string, channelKey: ChannelKey, parentSubjectId?: Id64String, description?: string }): Id64String;\n public insertChannelSubject(args: { subjectName: string, channelKey: ChannelKey, parentSubjectId?: Id64String, description?: string, txn?: EditTxn }): Id64String {\n const txn = args.txn ?? this._iModel[_implicitTxn];\n // Check if channelKey already exists before inserting Subject.\n // makeChannelRoot will check that again, but at that point the new Subject is already inserted.\n // Prefer to check twice instead of deleting the Subject in the latter option.\n if (this.queryChannelRoot(args.channelKey) !== undefined)\n ChannelControlError.throwError(\"root-exists\", `Channel ${args.channelKey} root already exist`, args.channelKey);\n\n const elementId = Subject.insert(txn, args.parentSubjectId ?? IModel.rootSubjectId, args.subjectName, args.description);\n this.makeChannelRoot({ elementId, channelKey: args.channelKey, txn });\n return elementId;\n }\n\n public queryChannelRoot(channelKey: ChannelKey): Id64String | undefined {\n if (channelKey === ChannelControl.sharedChannelName)\n // RootSubject acts as the ChannelRoot element of the shared channel\n return IModel.rootSubjectId;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const channelRoot = this._iModel.withPreparedStatement(`SELECT Element.Id FROM ${ChannelAdmin.channelClassName} WHERE Owner=?`, (stmt) => {\n stmt.bindString(1, channelKey);\n return DbResult.BE_SQLITE_ROW === stmt.step() ? stmt.getValue(0).getId() : undefined;\n });\n\n return channelRoot;\n } catch {\n // Exception happens if the iModel is too old: ChannelRootAspect class not present in the BisCore schema (older than v1.0.10).\n // In that case all data in such iModel is assumed to be in the shared channel.\n return undefined;\n }\n\n }\n\n public async upgradeChannel(options: ChannelUpgradeOptions, iModel: IModelDb, data?: any): Promise<void> {\n // Validations\n if (!this._allowedChannels.has(options.channelKey))\n ChannelControlError.throwError(\"not-allowed\", `Channel ${options.channelKey} is not allowed`, options.channelKey);\n\n if (semver.gte(options.fromVersion, options.toVersion))\n ChannelControlError.throwError(\"not-allowed\", `Upgrading channel ${options.channelKey} from ${options.fromVersion} to ${options.toVersion} is not allowed`, options.channelKey);\n\n if (!this.queryChannelRoot(options.channelKey) && options.channelKey !== ChannelControl.sharedChannelName)\n ChannelControlError.throwError(\"not-allowed\", `Channel ${options.channelKey} not found`, options.channelKey);\n\n const context: ChannelUpgradeContext = {\n iModel,\n channelKey: options.channelKey,\n fromVersion: options.fromVersion,\n toVersion: options.toVersion,\n data,\n };\n\n try {\n await options.callback(context);\n } catch (error: any) {\n ChannelControlError.throwError(error, \"channel-upgrade-failed\", `Channel ${options.channelKey} upgrade failed: ${error.message}`);\n }\n }\n}\n\nexport function createChannelControl(iModel: IModelDb): ChannelAdmin {\n return new ChannelAdmin(iModel);\n}\n"]}
|
|
@@ -8,6 +8,8 @@ export declare const _faceProps: unique symbol;
|
|
|
8
8
|
export declare const _getData: unique symbol;
|
|
9
9
|
export declare const _key: unique symbol;
|
|
10
10
|
/** @internal */
|
|
11
|
+
export declare const _implicitTxn: unique symbol;
|
|
12
|
+
/** @internal */
|
|
11
13
|
export declare const _nativeDb: unique symbol;
|
|
12
14
|
export declare const _releaseAllLocks: unique symbol;
|
|
13
15
|
export declare const _verifyChannel: unique symbol;
|
|
@@ -18,5 +20,7 @@ export declare const _getHubAccess: unique symbol;
|
|
|
18
20
|
export declare const _mockCheckpoint: unique symbol;
|
|
19
21
|
export declare const _cache: unique symbol;
|
|
20
22
|
export declare const _instanceKeyCache: unique symbol;
|
|
23
|
+
/** @internal */
|
|
24
|
+
export declare const _activeTxn: unique symbol;
|
|
21
25
|
export declare const _resetIModelDb: unique symbol;
|
|
22
26
|
//# sourceMappingURL=Symbols.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,kBAAkB,eAAuC,CAAC;AACvE,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,QAAQ,eAA6B,CAAC;AACnD,eAAO,MAAM,IAAI,eAAyB,CAAC;AAC3C,gBAAgB;AAChB,eAAO,MAAM,SAAS,eAA8B,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAAqC,CAAC;AACnE,eAAO,MAAM,cAAc,eAAmC,CAAC;AAC/D,gBAAgB;AAChB,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,iBAAiB,eAAsC,CAAC;AACrE,eAAO,MAAM,cAAc,eAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,kBAAkB,eAAuC,CAAC;AACvE,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,QAAQ,eAA6B,CAAC;AACnD,eAAO,MAAM,IAAI,eAAyB,CAAC;AAC3C,gBAAgB;AAChB,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,gBAAgB;AAChB,eAAO,MAAM,SAAS,eAA8B,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAAqC,CAAC;AACnE,eAAO,MAAM,cAAc,eAAmC,CAAC;AAC/D,gBAAgB;AAChB,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,iBAAiB,eAAsC,CAAC;AACrE,gBAAgB;AAChB,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,cAAc,eAAmC,CAAC"}
|
|
@@ -15,6 +15,8 @@ export const _faceProps = Symbol.for(sym("faceProps"));
|
|
|
15
15
|
export const _getData = Symbol.for(sym("getData"));
|
|
16
16
|
export const _key = Symbol.for(sym("key"));
|
|
17
17
|
/** @internal */
|
|
18
|
+
export const _implicitTxn = Symbol.for(sym("implicitTxn"));
|
|
19
|
+
/** @internal */
|
|
18
20
|
export const _nativeDb = Symbol.for(sym("nativeDb"));
|
|
19
21
|
export const _releaseAllLocks = Symbol.for(sym("releaseAllLocks"));
|
|
20
22
|
export const _verifyChannel = Symbol.for(sym("verifyChannel"));
|
|
@@ -25,5 +27,7 @@ export const _getHubAccess = Symbol.for(sym("getHubAccess"));
|
|
|
25
27
|
export const _mockCheckpoint = Symbol.for(sym("mockCheckpoint"));
|
|
26
28
|
export const _cache = Symbol.for(sym("cache"));
|
|
27
29
|
export const _instanceKeyCache = Symbol.for(sym("instanceKeyCache"));
|
|
30
|
+
/** @internal */
|
|
31
|
+
export const _activeTxn = Symbol.for(sym("activeTxn"));
|
|
28
32
|
export const _resetIModelDb = Symbol.for(sym("resetIModelDb"));
|
|
29
33
|
//# sourceMappingURL=Symbols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,wCAAwC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,gBAAgB;AAChB,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/D,gBAAgB;AAChB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,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*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Workspace\n */\n\nexport const _implementationProhibited = Symbol.for(\"Implementations of this interface can only be obtained from the containing package\");\n\nfunction sym(name: string): string {\n return `${name}_core-backend_INTERNAL_ONLY_DO_NOT_USE`;\n}\n\nexport const _close = Symbol.for(sym(\"close\"));\nexport const _elementWasCreated = Symbol.for(sym(\"elementWasCreated\"));\nexport const _faceProps = Symbol.for(sym(\"faceProps\"));\nexport const _getData = Symbol.for(sym(\"getData\"));\nexport const _key = Symbol.for(sym(\"key\"));\n/** @internal */\nexport const _nativeDb = Symbol.for(sym(\"nativeDb\"));\nexport const _releaseAllLocks = Symbol.for(sym(\"releaseAllLocks\"));\nexport const _verifyChannel = Symbol.for(sym(\"verifyChannel\"));\n/** @internal */\nexport const _hubAccess = Symbol.for(sym(\"hubAccess\"));\nexport const _setHubAccess = Symbol.for(sym(\"setHubAccess\"));\nexport const _getHubAccess = Symbol.for(sym(\"getHubAccess\"));\nexport const _mockCheckpoint = Symbol.for(sym(\"mockCheckpoint\"));\nexport const _cache = Symbol.for(sym(\"cache\"));\nexport const _instanceKeyCache = Symbol.for(sym(\"instanceKeyCache\"));\nexport const _resetIModelDb = Symbol.for(sym(\"resetIModelDb\"));\n"]}
|
|
1
|
+
{"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,wCAAwC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AAC3D,gBAAgB;AAChB,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/D,gBAAgB;AAChB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACrE,gBAAgB;AAChB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,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*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Workspace\n */\n\nexport const _implementationProhibited = Symbol.for(\"Implementations of this interface can only be obtained from the containing package\");\n\nfunction sym(name: string): string {\n return `${name}_core-backend_INTERNAL_ONLY_DO_NOT_USE`;\n}\n\nexport const _close = Symbol.for(sym(\"close\"));\nexport const _elementWasCreated = Symbol.for(sym(\"elementWasCreated\"));\nexport const _faceProps = Symbol.for(sym(\"faceProps\"));\nexport const _getData = Symbol.for(sym(\"getData\"));\nexport const _key = Symbol.for(sym(\"key\"));\n/** @internal */\nexport const _implicitTxn = Symbol.for(sym(\"implicitTxn\"));\n/** @internal */\nexport const _nativeDb = Symbol.for(sym(\"nativeDb\"));\nexport const _releaseAllLocks = Symbol.for(sym(\"releaseAllLocks\"));\nexport const _verifyChannel = Symbol.for(sym(\"verifyChannel\"));\n/** @internal */\nexport const _hubAccess = Symbol.for(sym(\"hubAccess\"));\nexport const _setHubAccess = Symbol.for(sym(\"setHubAccess\"));\nexport const _getHubAccess = Symbol.for(sym(\"getHubAccess\"));\nexport const _mockCheckpoint = Symbol.for(sym(\"mockCheckpoint\"));\nexport const _cache = Symbol.for(sym(\"cache\"));\nexport const _instanceKeyCache = Symbol.for(sym(\"instanceKeyCache\"));\n/** @internal */\nexport const _activeTxn = Symbol.for(sym(\"activeTxn\"));\nexport const _resetIModelDb = Symbol.for(sym(\"resetIModelDb\"));\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FieldRun, FieldValue, RelationshipProps, TextBlock } from "@itwin/core-common";
|
|
2
2
|
import { IModelDb } from "../../IModelDb";
|
|
3
3
|
import { Id64String } from "@itwin/core-bentley";
|
|
4
|
+
import type { EditTxn } from "../../EditTxn";
|
|
4
5
|
export interface UpdateFieldsContext {
|
|
5
6
|
readonly hostElementId: Id64String | undefined;
|
|
6
7
|
getProperty(field: FieldRun): FieldValue | undefined;
|
|
@@ -8,6 +9,6 @@ export interface UpdateFieldsContext {
|
|
|
8
9
|
export declare function createUpdateContext(hostElementId: string | undefined, iModel: IModelDb, deleted: boolean): UpdateFieldsContext;
|
|
9
10
|
export declare function updateField(field: FieldRun, context: UpdateFieldsContext): boolean;
|
|
10
11
|
export declare function updateFields(textBlock: TextBlock, context: UpdateFieldsContext): number;
|
|
11
|
-
export declare function updateElementFields(props: RelationshipProps,
|
|
12
|
-
export declare function updateAllFields(annotationElementId: Id64String,
|
|
12
|
+
export declare function updateElementFields(props: RelationshipProps, txn: EditTxn, deleted: boolean): void;
|
|
13
|
+
export declare function updateAllFields(annotationElementId: Id64String, txn: EditTxn): void;
|
|
13
14
|
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/internal/annotations/fields.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0D,QAAQ,EAAE,UAAU,EAAoB,iBAAiB,EAAE,SAAS,EAA8B,MAAM,oBAAoB,CAAC;AAC9L,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAmC,UAAU,EAAU,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/internal/annotations/fields.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0D,QAAQ,EAAE,UAAU,EAAoB,iBAAiB,EAAE,SAAS,EAA8B,MAAM,oBAAoB,CAAC;AAC9L,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAmC,UAAU,EAAU,MAAM,qBAAqB,CAAC;AAI1F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA0B7C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,SAAS,CAAC;IAE/C,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;CACrD;AAsLD,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAK9H;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAsBlF;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CASvF;AA0BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAElG;AAED,wBAAgB,eAAe,CAAC,mBAAmB,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAEnF"}
|