@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
|
@@ -20,6 +20,7 @@ import { TextAnnotationUsesTextStyleByDefault } from "../../annotations/ElementD
|
|
|
20
20
|
import { layoutTextBlock, TextStyleResolver } from "../../annotations/TextBlockLayout";
|
|
21
21
|
import { appendTextAnnotationGeometry } from "../../annotations/TextAnnotationGeometry";
|
|
22
22
|
import { IModelElementCloneContext } from "../../IModelElementCloneContext";
|
|
23
|
+
import { EditTxn, withEditTxn } from "../../EditTxn";
|
|
23
24
|
import * as fs from "fs";
|
|
24
25
|
function mockIModel() {
|
|
25
26
|
const iModel = {
|
|
@@ -51,23 +52,23 @@ const createJobSubjectElement = (iModel, name) => {
|
|
|
51
52
|
subj.setJsonProperty("Subject", { Job: name }); // eslint-disable-line @typescript-eslint/naming-convention
|
|
52
53
|
return subj;
|
|
53
54
|
};
|
|
54
|
-
const insertDrawingModel = (
|
|
55
|
-
const category = DrawingCategory.insert(
|
|
56
|
-
const [_, model] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(
|
|
57
|
-
const displayStyle = DisplayStyle2d.insert(
|
|
58
|
-
const categorySelector = CategorySelector.insert(
|
|
55
|
+
const insertDrawingModel = (txn, parentId, definitionModel) => {
|
|
56
|
+
const category = DrawingCategory.insert(txn, definitionModel, "DrawingCategory", new SubCategoryAppearance());
|
|
57
|
+
const [_, model] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(txn, { spec: '0x1', scope: '0x1', value: 'Drawing' }, undefined, parentId);
|
|
58
|
+
const displayStyle = DisplayStyle2d.insert(txn, definitionModel, "DisplayStyle2d");
|
|
59
|
+
const categorySelector = CategorySelector.insert(txn, definitionModel, "DrawingCategories", [category]);
|
|
59
60
|
const viewRange = new Range2d(0, 0, 500, 500);
|
|
60
|
-
DrawingViewDefinition.insert(
|
|
61
|
+
DrawingViewDefinition.insert(txn, definitionModel, "Drawing View", model, categorySelector, displayStyle, viewRange);
|
|
61
62
|
return { category, model };
|
|
62
63
|
};
|
|
63
|
-
const insertSpatialModel = (
|
|
64
|
-
const category = SpatialCategory.insert(
|
|
65
|
-
const [_, model] = IModelTestUtils.createAndInsertPhysicalPartitionAndModel(
|
|
66
|
-
const modelSelector = ModelSelector.insert(
|
|
67
|
-
const displayStyle = DisplayStyle3d.insert(
|
|
68
|
-
const categorySelector = CategorySelector.insert(
|
|
64
|
+
const insertSpatialModel = (txn, parentId, definitionModel) => {
|
|
65
|
+
const category = SpatialCategory.insert(txn, definitionModel, "spatialCategory", new SubCategoryAppearance());
|
|
66
|
+
const [_, model] = IModelTestUtils.createAndInsertPhysicalPartitionAndModel(txn, { spec: '0x1', scope: '0x1', value: 'Spatial' }, undefined, parentId);
|
|
67
|
+
const modelSelector = ModelSelector.insert(txn, definitionModel, "SpatialModelSelector", [model]);
|
|
68
|
+
const displayStyle = DisplayStyle3d.insert(txn, definitionModel, "DisplayStyle3d");
|
|
69
|
+
const categorySelector = CategorySelector.insert(txn, definitionModel, "spatialCategories", [category]);
|
|
69
70
|
const viewRange = new Range3d(0, 0, 0, 500, 500, 500);
|
|
70
|
-
SpatialViewDefinition.insertWithCamera(
|
|
71
|
+
SpatialViewDefinition.insertWithCamera(txn, definitionModel, "spatial View", modelSelector, categorySelector, displayStyle, viewRange);
|
|
71
72
|
return { category, model };
|
|
72
73
|
};
|
|
73
74
|
const createIModel = async (name) => {
|
|
@@ -79,8 +80,10 @@ const createIModel = async (name) => {
|
|
|
79
80
|
projectExtents: { low: { x: -500, y: -500, z: -50 }, high: { x: 500, y: 500, z: 50 } },
|
|
80
81
|
guid: Guid.createValue(),
|
|
81
82
|
});
|
|
82
|
-
await iModel
|
|
83
|
-
|
|
83
|
+
await withEditTxn(iModel, async () => {
|
|
84
|
+
await iModel.fonts.embedFontFile({
|
|
85
|
+
file: FontFile.createFromTrueTypeFileName(IModelTestUtils.resolveFontFile("Karla-Regular.ttf"))
|
|
86
|
+
});
|
|
84
87
|
});
|
|
85
88
|
return iModel;
|
|
86
89
|
};
|
|
@@ -271,10 +274,17 @@ describe("TextAnnotation element", () => {
|
|
|
271
274
|
let createElement3dArgs;
|
|
272
275
|
before(async () => {
|
|
273
276
|
imodel = await createIModel("TextAnnotation3d");
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
277
|
+
let jobSubjectId;
|
|
278
|
+
let definitionModel;
|
|
279
|
+
let category;
|
|
280
|
+
let model;
|
|
281
|
+
let styleId;
|
|
282
|
+
withEditTxn(imodel, (txn) => {
|
|
283
|
+
jobSubjectId = createJobSubjectElement(imodel, "Job").insert(txn);
|
|
284
|
+
definitionModel = DefinitionModel.insert(txn, jobSubjectId, "Definition");
|
|
285
|
+
({ category, model } = insertSpatialModel(txn, jobSubjectId, definitionModel));
|
|
286
|
+
styleId = createAnnotationTextStyle(imodel, definitionModel, "test", { font: { name: "Totally Real Font" }, textHeight: 0.25, isItalic: true }).insert(txn);
|
|
287
|
+
});
|
|
278
288
|
expect(jobSubjectId).not.to.be.undefined;
|
|
279
289
|
expect(category).not.to.be.undefined;
|
|
280
290
|
expect(model).not.to.be.undefined;
|
|
@@ -305,7 +315,7 @@ describe("TextAnnotation element", () => {
|
|
|
305
315
|
el0.setAnnotation(annotation);
|
|
306
316
|
}
|
|
307
317
|
expectPlacement3d(el0, false);
|
|
308
|
-
const elId = el0.insert();
|
|
318
|
+
const elId = withEditTxn(imodel, (txn) => el0.insert(txn));
|
|
309
319
|
expect(Id64.isValidId64(elId)).to.be.true;
|
|
310
320
|
const el1 = imodel.elements.getElement(elId);
|
|
311
321
|
expect(el1).not.to.be.undefined;
|
|
@@ -331,18 +341,21 @@ describe("TextAnnotation element", () => {
|
|
|
331
341
|
let createElement2dArgs;
|
|
332
342
|
before(async () => {
|
|
333
343
|
imodel = await createIModel("TextAnnotation2d");
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
344
|
+
let jobSubjectId;
|
|
345
|
+
let definitionModel;
|
|
346
|
+
let category;
|
|
347
|
+
let model;
|
|
348
|
+
withEditTxn(imodel, (txn) => {
|
|
349
|
+
jobSubjectId = createJobSubjectElement(imodel, "Job").insert(txn);
|
|
350
|
+
definitionModel = DefinitionModel.insert(txn, jobSubjectId, "Definition");
|
|
351
|
+
({ category, model } = insertDrawingModel(txn, jobSubjectId, definitionModel));
|
|
352
|
+
});
|
|
337
353
|
expect(jobSubjectId).not.to.be.undefined;
|
|
338
354
|
expect(category).not.to.be.undefined;
|
|
339
355
|
expect(model).not.to.be.undefined;
|
|
340
356
|
createElement2dArgs = { category, model };
|
|
341
357
|
});
|
|
342
|
-
after(() =>
|
|
343
|
-
imodel.saveChanges("tests");
|
|
344
|
-
imodel.close();
|
|
345
|
-
});
|
|
358
|
+
after(() => imodel.close());
|
|
346
359
|
it("creating element does not automatically compute the geometry", () => {
|
|
347
360
|
const annotation = createAnnotation();
|
|
348
361
|
const args = { ...createElement2dArgs, textAnnotationProps: annotation.toJSON() };
|
|
@@ -363,7 +376,7 @@ describe("TextAnnotation element", () => {
|
|
|
363
376
|
el0.setAnnotation(annotation);
|
|
364
377
|
}
|
|
365
378
|
expectPlacement2d(el0, false);
|
|
366
|
-
const elId = el0.insert();
|
|
379
|
+
const elId = withEditTxn(imodel, (txn) => el0.insert(txn));
|
|
367
380
|
expect(Id64.isValidId64(elId)).to.be.true;
|
|
368
381
|
const el1 = imodel.elements.getElement(elId);
|
|
369
382
|
expect(el1).not.to.be.undefined;
|
|
@@ -393,10 +406,16 @@ describe("TextAnnotation element", () => {
|
|
|
393
406
|
let seedStyleId2;
|
|
394
407
|
before(async () => {
|
|
395
408
|
imodel = await createIModel("DefaultTextStyle");
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
409
|
+
let jobSubjectId;
|
|
410
|
+
let definitionModel;
|
|
411
|
+
let styleId;
|
|
412
|
+
let differentStyleId;
|
|
413
|
+
withEditTxn(imodel, (txn) => {
|
|
414
|
+
jobSubjectId = createJobSubjectElement(imodel, "Job").insert(txn);
|
|
415
|
+
definitionModel = DefinitionModel.insert(txn, jobSubjectId, "Definition");
|
|
416
|
+
styleId = createAnnotationTextStyle(imodel, definitionModel, "test", { font: { name: "Totally Real Font" }, textHeight: 0.25, isItalic: true }).insert(txn);
|
|
417
|
+
differentStyleId = createAnnotationTextStyle(imodel, definitionModel, "alt", { font: { name: "Karla" }, textHeight: 0.5, isBold: true }).insert(txn);
|
|
418
|
+
});
|
|
400
419
|
expect(jobSubjectId).not.to.be.undefined;
|
|
401
420
|
expect(definitionModel).not.to.be.undefined;
|
|
402
421
|
expect(styleId).not.to.be.undefined;
|
|
@@ -406,14 +425,15 @@ describe("TextAnnotation element", () => {
|
|
|
406
425
|
seedStyleId = styleId;
|
|
407
426
|
seedStyleId2 = differentStyleId;
|
|
408
427
|
});
|
|
409
|
-
after(() =>
|
|
410
|
-
imodel.saveChanges("tests");
|
|
411
|
-
imodel.close();
|
|
412
|
-
});
|
|
428
|
+
after(() => imodel.close());
|
|
413
429
|
describe("TextAnnotation2d", () => {
|
|
414
430
|
let createElement2dArgs;
|
|
415
431
|
before(() => {
|
|
416
|
-
|
|
432
|
+
let category;
|
|
433
|
+
let model;
|
|
434
|
+
withEditTxn(imodel, (txn) => {
|
|
435
|
+
({ category, model } = insertDrawingModel(txn, seedSubjectId, seedDefinitionModelId));
|
|
436
|
+
});
|
|
417
437
|
expect(category).not.to.be.undefined;
|
|
418
438
|
expect(model).not.to.be.undefined;
|
|
419
439
|
createElement2dArgs = { category, model };
|
|
@@ -424,7 +444,7 @@ describe("TextAnnotation element", () => {
|
|
|
424
444
|
const el0 = createElement2d(imodel, args);
|
|
425
445
|
expect(el0.defaultTextStyle).not.to.be.undefined;
|
|
426
446
|
expect(el0.defaultTextStyle.id).to.equal(seedStyleId);
|
|
427
|
-
el0.insert();
|
|
447
|
+
withEditTxn(imodel, (txn) => el0.insert(txn));
|
|
428
448
|
const el1 = imodel.elements.getElement(el0.id);
|
|
429
449
|
expect(el1).not.to.be.undefined;
|
|
430
450
|
expect(el1.defaultTextStyle).not.to.be.undefined;
|
|
@@ -446,7 +466,7 @@ describe("TextAnnotation element", () => {
|
|
|
446
466
|
const args = { ...createElement2dArgs, textAnnotationProps: annotation.toJSON() };
|
|
447
467
|
const el0 = createElement2d(imodel, args);
|
|
448
468
|
el0.defaultTextStyle = undefined;
|
|
449
|
-
const elId = el0.insert();
|
|
469
|
+
const elId = withEditTxn(imodel, (txn) => el0.insert(txn));
|
|
450
470
|
expect(Id64.isValidId64(elId)).to.be.true;
|
|
451
471
|
const el1 = imodel.elements.getElement(elId);
|
|
452
472
|
expect(el1).not.to.be.undefined;
|
|
@@ -456,10 +476,11 @@ describe("TextAnnotation element", () => {
|
|
|
456
476
|
describe("onCloned", () => {
|
|
457
477
|
function insertStyledElement(styleId, db) {
|
|
458
478
|
const args = { ...createElement2dArgs, defaultTextStyleId: styleId };
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
479
|
+
return withEditTxn(db, (txn) => {
|
|
480
|
+
const elem = createElement2d(db, args);
|
|
481
|
+
elem.insert(txn);
|
|
482
|
+
return elem;
|
|
483
|
+
});
|
|
463
484
|
}
|
|
464
485
|
describe("within a single iModel", () => {
|
|
465
486
|
it("leaves property hosts intact", async () => {
|
|
@@ -487,8 +508,7 @@ describe("TextAnnotation element", () => {
|
|
|
487
508
|
});
|
|
488
509
|
const annotation = TextAnnotation.create({ textBlock, });
|
|
489
510
|
const elem = createElement2d(imodel, { ...createElement2dArgs, textAnnotationProps: annotation.toJSON() });
|
|
490
|
-
elem.insert();
|
|
491
|
-
imodel.saveChanges();
|
|
511
|
+
withEditTxn(imodel, (txn) => elem.insert(txn));
|
|
492
512
|
const context = new IModelElementCloneContext(imodel);
|
|
493
513
|
context.remapElement("0x123", "0x456");
|
|
494
514
|
context.remapElement("0xabc", "0xdef");
|
|
@@ -527,9 +547,14 @@ describe("TextAnnotation element", () => {
|
|
|
527
547
|
let dstElemArgs;
|
|
528
548
|
before(async () => {
|
|
529
549
|
dstDb = await createIModel("CloneTarget");
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
550
|
+
let jobSubjectId;
|
|
551
|
+
let category;
|
|
552
|
+
let model;
|
|
553
|
+
withEditTxn(dstDb, (txn) => {
|
|
554
|
+
jobSubjectId = createJobSubjectElement(dstDb, "Job").insert(txn);
|
|
555
|
+
dstDefModel = DefinitionModel.insert(txn, jobSubjectId, "Definition");
|
|
556
|
+
({ category, model } = insertDrawingModel(txn, jobSubjectId, dstDefModel));
|
|
557
|
+
});
|
|
533
558
|
expect(category).not.to.equal(createElement2dArgs.category);
|
|
534
559
|
expect(model).not.to.equal(createElement2dArgs.model);
|
|
535
560
|
dstElemArgs = { category, model };
|
|
@@ -560,8 +585,7 @@ describe("TextAnnotation element", () => {
|
|
|
560
585
|
});
|
|
561
586
|
const annotation = TextAnnotation.create({ textBlock });
|
|
562
587
|
const elem = createElement2d(imodel, { ...createElement2dArgs, textAnnotationProps: annotation.toJSON() });
|
|
563
|
-
elem.insert();
|
|
564
|
-
imodel.saveChanges();
|
|
588
|
+
withEditTxn(imodel, (txn) => elem.insert(txn));
|
|
565
589
|
const context = new IModelElementCloneContext(imodel, dstDb);
|
|
566
590
|
context.remapElement("0x123", "0x456");
|
|
567
591
|
context.remapElement("0xabc", "0xdef");
|
|
@@ -581,7 +605,7 @@ describe("TextAnnotation element", () => {
|
|
|
581
605
|
expect(props.defaultTextStyle).to.be.undefined;
|
|
582
606
|
});
|
|
583
607
|
it("remaps to an existing text style with the same code if present", async () => {
|
|
584
|
-
const dstStyleId = createAnnotationTextStyle(dstDb, dstDefModel, "test", { font: { name: "Karla" } }).insert();
|
|
608
|
+
const dstStyleId = withEditTxn(dstDb, (txn) => createAnnotationTextStyle(dstDb, dstDefModel, "test", { font: { name: "Karla" } }).insert(txn));
|
|
585
609
|
expect(dstStyleId).not.to.equal(seedStyleId);
|
|
586
610
|
const srcElem = insertStyledElement(seedStyleId, imodel);
|
|
587
611
|
const context = new IModelElementCloneContext(imodel, dstDb);
|
|
@@ -600,29 +624,35 @@ describe("TextAnnotation element", () => {
|
|
|
600
624
|
const context = new IModelElementCloneContext(imodel, dstDb);
|
|
601
625
|
context.remapElement(createElement2dArgs.model, dstElemArgs.model);
|
|
602
626
|
context.remapElement(seedDefinitionModelId, dstDefModel);
|
|
627
|
+
const txn = new EditTxn(dstDb, "import default text style if necessary");
|
|
628
|
+
txn.start();
|
|
603
629
|
const props = await context.cloneElement(srcElem);
|
|
630
|
+
txn.end();
|
|
604
631
|
const dstStyleId = props.defaultTextStyle.id;
|
|
605
632
|
expect(dstStyleId).not.to.be.undefined;
|
|
606
633
|
expect(dstStyleId).not.to.equal(seedStyleId2);
|
|
607
634
|
expect(dstDb.elements.tryGetElement(dstStyleId)).not.to.be.undefined;
|
|
608
635
|
});
|
|
609
636
|
it("remaps multiple occurrences of same style to same Id", async () => {
|
|
610
|
-
const srcStyleId = createAnnotationTextStyle(imodel, seedDefinitionModelId, "styyyle", { font: { name: "Karla" } }).insert();
|
|
637
|
+
const srcStyleId = withEditTxn(imodel, (editTxn) => createAnnotationTextStyle(imodel, seedDefinitionModelId, "styyyle", { font: { name: "Karla" } }).insert(editTxn));
|
|
611
638
|
const srcElem1 = insertStyledElement(srcStyleId, imodel);
|
|
612
639
|
const srcElem2 = insertStyledElement(srcStyleId, imodel);
|
|
613
640
|
const srcElem3 = insertStyledElement(srcStyleId, imodel);
|
|
614
641
|
const context = new IModelElementCloneContext(imodel, dstDb);
|
|
615
642
|
context.remapElement(createElement2dArgs.model, dstElemArgs.model);
|
|
616
643
|
context.remapElement(seedDefinitionModelId, dstDefModel);
|
|
644
|
+
const context2 = new IModelElementCloneContext(imodel, dstDb);
|
|
645
|
+
context2.remapElement(createElement2dArgs.model, dstElemArgs.model);
|
|
646
|
+
context2.remapElement(seedDefinitionModelId, dstDefModel);
|
|
647
|
+
const txn = new EditTxn(dstDb, "remap repeated text styles");
|
|
648
|
+
txn.start();
|
|
617
649
|
const props1 = await context.cloneElement(srcElem1);
|
|
618
650
|
const props2 = await context.cloneElement(srcElem2);
|
|
651
|
+
const props3 = await context2.cloneElement(srcElem3);
|
|
652
|
+
txn.end();
|
|
619
653
|
expect(props1.defaultTextStyle).not.to.be.undefined;
|
|
620
654
|
expect(props1.defaultTextStyle?.id).not.to.equal(srcStyleId);
|
|
621
655
|
expect(props2.defaultTextStyle?.id).to.equal(props1.defaultTextStyle?.id);
|
|
622
|
-
const context2 = new IModelElementCloneContext(imodel, dstDb);
|
|
623
|
-
context2.remapElement(createElement2dArgs.model, dstElemArgs.model);
|
|
624
|
-
context2.remapElement(seedDefinitionModelId, dstDefModel);
|
|
625
|
-
const props3 = await context2.cloneElement(srcElem3);
|
|
626
656
|
expect(props3.defaultTextStyle?.id).to.equal(props1.defaultTextStyle?.id);
|
|
627
657
|
});
|
|
628
658
|
});
|
|
@@ -631,7 +661,11 @@ describe("TextAnnotation element", () => {
|
|
|
631
661
|
describe("TextAnnotation3d", () => {
|
|
632
662
|
let createElement3dArgs;
|
|
633
663
|
before(() => {
|
|
634
|
-
|
|
664
|
+
let category;
|
|
665
|
+
let model;
|
|
666
|
+
withEditTxn(imodel, (txn) => {
|
|
667
|
+
({ category, model } = insertSpatialModel(txn, seedSubjectId, seedDefinitionModelId));
|
|
668
|
+
});
|
|
635
669
|
expect(category).not.to.be.undefined;
|
|
636
670
|
expect(model).not.to.be.undefined;
|
|
637
671
|
createElement3dArgs = { category, model };
|
|
@@ -642,7 +676,7 @@ describe("TextAnnotation element", () => {
|
|
|
642
676
|
const el0 = createElement3d(imodel, args);
|
|
643
677
|
expect(el0.defaultTextStyle).not.to.be.undefined;
|
|
644
678
|
expect(el0.defaultTextStyle.id).to.equal(seedStyleId);
|
|
645
|
-
el0.insert();
|
|
679
|
+
withEditTxn(imodel, (txn) => el0.insert(txn));
|
|
646
680
|
const el1 = imodel.elements.getElement(el0.id);
|
|
647
681
|
expect(el1).not.to.be.undefined;
|
|
648
682
|
expect(el1.defaultTextStyle).not.to.be.undefined;
|
|
@@ -664,7 +698,7 @@ describe("TextAnnotation element", () => {
|
|
|
664
698
|
const args = { ...createElement3dArgs, textAnnotationProps: annotation.toJSON() };
|
|
665
699
|
const el0 = createElement3d(imodel, args);
|
|
666
700
|
el0.defaultTextStyle = undefined;
|
|
667
|
-
const elId = el0.insert();
|
|
701
|
+
const elId = withEditTxn(imodel, (txn) => el0.insert(txn));
|
|
668
702
|
expect(Id64.isValidId64(elId)).to.be.true;
|
|
669
703
|
const el1 = imodel.elements.getElement(elId);
|
|
670
704
|
expect(el1).not.to.be.undefined;
|
|
@@ -680,8 +714,12 @@ describe("AnnotationTextStyle", () => {
|
|
|
680
714
|
let seedDefinitionModel;
|
|
681
715
|
before(async () => {
|
|
682
716
|
imodel = await createIModel("AnnotationTextStyle");
|
|
683
|
-
|
|
684
|
-
|
|
717
|
+
let jobSubjectId;
|
|
718
|
+
let definitionModel;
|
|
719
|
+
withEditTxn(imodel, (txn) => {
|
|
720
|
+
jobSubjectId = createJobSubjectElement(imodel, "Job").insert(txn);
|
|
721
|
+
definitionModel = DefinitionModel.insert(txn, jobSubjectId, "Definition");
|
|
722
|
+
});
|
|
685
723
|
expect(jobSubjectId).not.to.be.undefined;
|
|
686
724
|
expect(definitionModel).not.to.be.undefined;
|
|
687
725
|
seedSubjectId = jobSubjectId;
|
|
@@ -697,7 +735,7 @@ describe("AnnotationTextStyle", () => {
|
|
|
697
735
|
textHeight: 0.5
|
|
698
736
|
});
|
|
699
737
|
const el0 = createAnnotationTextStyle(imodel, seedDefinitionModel, "round-trip", textStyle.toJSON());
|
|
700
|
-
const elId = el0.insert();
|
|
738
|
+
const elId = withEditTxn(imodel, (txn) => el0.insert(txn));
|
|
701
739
|
expect(Id64.isValidId64(elId)).to.be.true;
|
|
702
740
|
const el1 = imodel.elements.getElement(elId);
|
|
703
741
|
expect(el1).not.to.be.undefined;
|
|
@@ -707,36 +745,40 @@ describe("AnnotationTextStyle", () => {
|
|
|
707
745
|
expect(style.toJSON()).to.deep.equal(textStyle.toJSON());
|
|
708
746
|
});
|
|
709
747
|
it("does not allow elements with invalid styles to be inserted", async () => {
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
748
|
+
withEditTxn(imodel, (txn) => {
|
|
749
|
+
// Default style should fail since it has no font
|
|
750
|
+
let annotationTextStyle = createAnnotationTextStyle(imodel, seedDefinitionModel, "default");
|
|
751
|
+
expect(() => annotationTextStyle.insert(txn)).to.throw();
|
|
752
|
+
// font is required
|
|
753
|
+
annotationTextStyle = createAnnotationTextStyle(imodel, seedDefinitionModel, "no font", { font: { name: "" } });
|
|
754
|
+
expect(() => annotationTextStyle.insert(txn)).to.throw();
|
|
755
|
+
// textHeight should be positive
|
|
756
|
+
annotationTextStyle = createAnnotationTextStyle(imodel, seedDefinitionModel, "invalid textHeight", { font: { name: "Totally Real Font" }, textHeight: 0 });
|
|
757
|
+
expect(() => annotationTextStyle.insert(txn)).to.throw();
|
|
758
|
+
// stackedFractionScale should be positive
|
|
759
|
+
annotationTextStyle = createAnnotationTextStyle(imodel, seedDefinitionModel, "invalid stackedFractionScale", { font: { name: "Totally Real Font" }, stackedFractionScale: 0 });
|
|
760
|
+
expect(() => annotationTextStyle.insert(txn)).to.throw();
|
|
761
|
+
});
|
|
722
762
|
});
|
|
723
763
|
it("does not allow updating of elements to invalid styles", async () => {
|
|
724
764
|
const annotationTextStyle = createAnnotationTextStyle(imodel, seedDefinitionModel, "valid style", { font: { name: "Totally Real Font" } });
|
|
725
|
-
const elId = annotationTextStyle.insert();
|
|
765
|
+
const elId = withEditTxn(imodel, (txn) => annotationTextStyle.insert(txn));
|
|
726
766
|
expect(Id64.isValidId64(elId)).to.be.true;
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
767
|
+
withEditTxn(imodel, (txn) => {
|
|
768
|
+
const el1 = imodel.elements.getElement(elId);
|
|
769
|
+
expect(el1).not.to.be.undefined;
|
|
770
|
+
expect(el1 instanceof AnnotationTextStyle).to.be.true;
|
|
771
|
+
el1.settings = el1.settings.clone({ font: { name: "" } });
|
|
772
|
+
expect(() => el1.update(txn)).to.throw();
|
|
773
|
+
el1.settings = el1.settings.clone({ font: { name: "Totally Real Font" }, textHeight: 0 });
|
|
774
|
+
expect(() => el1.update(txn)).to.throw();
|
|
775
|
+
el1.settings = el1.settings.clone({ textHeight: 2, stackedFractionScale: 0 });
|
|
776
|
+
expect(() => el1.update(txn)).to.throw();
|
|
777
|
+
el1.settings = el1.settings.clone({ stackedFractionScale: 0.45 });
|
|
778
|
+
el1.update(txn);
|
|
779
|
+
});
|
|
738
780
|
const updatedElement = imodel.elements.getElement(elId);
|
|
739
|
-
expect(updatedElement.settings.
|
|
781
|
+
expect(updatedElement.settings.stackedFractionScale).to.equal(0.45);
|
|
740
782
|
});
|
|
741
783
|
it("uses default style if none specified", async () => {
|
|
742
784
|
const el0 = AnnotationTextStyle.fromJSON({
|
|
@@ -870,13 +912,17 @@ describe("AnnotationTextStyle", () => {
|
|
|
870
912
|
before(async () => {
|
|
871
913
|
// The source and target iModel will both contain the Karla font family.
|
|
872
914
|
targetDb = await createIModel("AnnotationTextStyleTargetDb");
|
|
873
|
-
|
|
874
|
-
|
|
915
|
+
withEditTxn(targetDb, (txn) => {
|
|
916
|
+
const jobSubjectId = createJobSubjectElement(targetDb, "Job").insert(txn);
|
|
917
|
+
targetDefModel = DefinitionModel.insert(txn, jobSubjectId, "Definition");
|
|
918
|
+
});
|
|
875
919
|
// Embed a font into the source iModel that doesn't exist in the target iModel.
|
|
876
920
|
const shxName = IModelTestUtils.resolveFontFile("Cdm.shx");
|
|
877
921
|
const shxBlob = fs.readFileSync(shxName);
|
|
878
922
|
const shxFile = FontFile.createFromShxFontBlob({ blob: shxBlob, familyName: "Cdm" });
|
|
879
|
-
await imodel
|
|
923
|
+
await withEditTxn(imodel, async () => {
|
|
924
|
+
await imodel.fonts.embedFontFile({ file: shxFile });
|
|
925
|
+
});
|
|
880
926
|
});
|
|
881
927
|
after(() => targetDb.close());
|
|
882
928
|
it("embeds font into target Db if not already embedded", async () => {
|
|
@@ -893,9 +939,11 @@ describe("AnnotationTextStyle", () => {
|
|
|
893
939
|
};
|
|
894
940
|
const initialCounts = getFontCounts();
|
|
895
941
|
const karlaStyle = createAnnotationTextStyle(imodel, seedDefinitionModel, "karla-style", TextStyleSettings.fromJSON({ font: { name: "Karla" } }));
|
|
896
|
-
karlaStyle.insert();
|
|
897
942
|
const cdmStyle = createAnnotationTextStyle(imodel, seedDefinitionModel, "cdm-style", TextStyleSettings.fromJSON({ font: { name: "Cdm", type: FontType.Shx } }));
|
|
898
|
-
|
|
943
|
+
withEditTxn(imodel, (txn) => {
|
|
944
|
+
karlaStyle.insert(txn);
|
|
945
|
+
cdmStyle.insert(txn);
|
|
946
|
+
});
|
|
899
947
|
const context = new IModelElementCloneContext(imodel, targetDb);
|
|
900
948
|
context.remapElement(seedDefinitionModel, targetDefModel);
|
|
901
949
|
expect(targetDb.fonts.findId({ name: "Karla" })).not.to.be.undefined;
|
|
@@ -919,11 +967,19 @@ describe("appendTextAnnotationGeometry", () => {
|
|
|
919
967
|
let annotationRenderPriority;
|
|
920
968
|
before(async () => {
|
|
921
969
|
imodel = await createIModel("DefaultTextStyle");
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
970
|
+
let jobSubjectId;
|
|
971
|
+
let definitionModel;
|
|
972
|
+
let category;
|
|
973
|
+
let model;
|
|
974
|
+
let styleId;
|
|
975
|
+
let differentStyleId;
|
|
976
|
+
withEditTxn(imodel, (txn) => {
|
|
977
|
+
jobSubjectId = createJobSubjectElement(imodel, "Job").insert(txn);
|
|
978
|
+
definitionModel = DefinitionModel.insert(txn, jobSubjectId, "Definition");
|
|
979
|
+
({ category, model } = insertDrawingModel(txn, jobSubjectId, definitionModel));
|
|
980
|
+
styleId = createAnnotationTextStyle(imodel, definitionModel, "test", { font: { name: "Totally Real Font" }, textHeight: 0.25, isItalic: true }).insert(txn);
|
|
981
|
+
differentStyleId = createAnnotationTextStyle(imodel, definitionModel, "alt", { font: { name: "Karla" }, textHeight: 0.5, isBold: true }).insert(txn);
|
|
982
|
+
});
|
|
927
983
|
expect(jobSubjectId).not.to.be.undefined;
|
|
928
984
|
expect(definitionModel).not.to.be.undefined;
|
|
929
985
|
expect(category).not.to.be.undefined;
|
|
@@ -978,12 +1034,13 @@ describe("appendTextAnnotationGeometry", () => {
|
|
|
978
1034
|
it("produces geometry when given an empty annotation with frame styling", () => {
|
|
979
1035
|
const block = TextBlock.create();
|
|
980
1036
|
const annotation = TextAnnotation.fromJSON({ textBlock: block.toJSON() });
|
|
981
|
-
const
|
|
1037
|
+
const style = createAnnotationTextStyle(imodel, seedDefinitionModelId, "empty anno style", {
|
|
982
1038
|
font: { name: "Totally Real Font" },
|
|
983
1039
|
frame: {
|
|
984
1040
|
shape: "rectangle",
|
|
985
1041
|
}
|
|
986
|
-
})
|
|
1042
|
+
});
|
|
1043
|
+
const styleId = withEditTxn(imodel, (txn) => style.insert(txn));
|
|
987
1044
|
const builder = runAppendTextAnnotationGeometry(annotation, styleId);
|
|
988
1045
|
expect(builder.geometries).not.to.be.empty;
|
|
989
1046
|
expect(builder.params).not.to.be.empty;
|