@itwin/core-backend 5.2.0-dev.7 → 5.2.0
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/CHANGELOG.md +56 -1
- package/lib/cjs/BackendHubAccess.d.ts +2 -0
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.d.ts +6 -0
- package/lib/cjs/BackendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js +6 -0
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BlobContainerService.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +57 -3
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +151 -42
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/CatalogDb.js.map +1 -1
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +2 -2
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +248 -248
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/ChannelControl.js.map +1 -1
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.js +5 -5
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +4 -0
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +8 -0
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +22 -0
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/FontFile.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeographicCRSServices.js.map +1 -1
- package/lib/cjs/GeometrySummary.js +47 -47
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +54 -3
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +96 -18
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelDbFonts.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +11 -1
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +5 -0
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.d.ts +1 -5
- package/lib/cjs/IModelIncrementalSchemaLocater.d.ts.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.js +0 -6
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.js +1 -1
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/LockControl.js.map +1 -1
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/SchemaSync.js.map +1 -1
- package/lib/cjs/SchemaUtils.js.map +1 -1
- package/lib/cjs/SheetIndex.js.map +1 -1
- package/lib/cjs/SqliteChangesetReader.d.ts +8 -0
- package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
- package/lib/cjs/SqliteChangesetReader.js +11 -0
- package/lib/cjs/SqliteChangesetReader.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/StashManager.d.ts +175 -0
- package/lib/cjs/StashManager.d.ts.map +1 -0
- package/lib/cjs/StashManager.js +306 -0
- package/lib/cjs/StashManager.js.map +1 -0
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +226 -15
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +249 -23
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +10 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +15 -6
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js +6 -6
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.d.ts +3 -2
- package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js +8 -7
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.d.ts +145 -36
- package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js +234 -106
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +2 -0
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.js +26 -19
- package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -1
- package/lib/cjs/annotations/TextBlockGeometry.js +11 -3
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.d.ts +51 -38
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.js +252 -156
- package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
- package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +1 -1
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
- package/lib/cjs/internal/FontFileImpl.js.map +1 -1
- package/lib/cjs/internal/HubMock.js.map +1 -1
- package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/cjs/internal/NativePlatform.js.map +1 -1
- package/lib/cjs/internal/NoLocks.js.map +1 -1
- package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/internal/Symbols.d.ts +1 -0
- package/lib/cjs/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/internal/Symbols.js +2 -1
- package/lib/cjs/internal/Symbols.js.map +1 -1
- package/lib/cjs/internal/annotations/fields.d.ts +2 -12
- package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
- package/lib/cjs/internal/annotations/fields.js +49 -45
- package/lib/cjs/internal/annotations/fields.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +1 -1
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
- package/lib/esm/BackendHubAccess.d.ts +2 -0
- package/lib/esm/BackendHubAccess.d.ts.map +1 -1
- package/lib/esm/BackendHubAccess.js.map +1 -1
- package/lib/esm/BackendLoggerCategory.d.ts +6 -0
- package/lib/esm/BackendLoggerCategory.d.ts.map +1 -1
- package/lib/esm/BackendLoggerCategory.js +6 -0
- package/lib/esm/BackendLoggerCategory.js.map +1 -1
- package/lib/esm/BisCoreSchema.js.map +1 -1
- package/lib/esm/BlobContainerService.js.map +1 -1
- package/lib/esm/BriefcaseManager.d.ts +57 -3
- package/lib/esm/BriefcaseManager.d.ts.map +1 -1
- package/lib/esm/BriefcaseManager.js +152 -43
- package/lib/esm/BriefcaseManager.js.map +1 -1
- package/lib/esm/CatalogDb.js.map +1 -1
- package/lib/esm/Category.js.map +1 -1
- package/lib/esm/ChangeSummaryManager.js +2 -2
- package/lib/esm/ChangeSummaryManager.js.map +1 -1
- package/lib/esm/ChangedElementsDb.js.map +1 -1
- package/lib/esm/ChangesetECAdaptor.js +248 -248
- package/lib/esm/ChangesetECAdaptor.js.map +1 -1
- package/lib/esm/ChannelControl.js.map +1 -1
- package/lib/esm/CheckpointManager.js.map +1 -1
- package/lib/esm/ClassRegistry.js +5 -5
- package/lib/esm/ClassRegistry.js.map +1 -1
- package/lib/esm/CloudSqlite.d.ts +4 -0
- package/lib/esm/CloudSqlite.d.ts.map +1 -1
- package/lib/esm/CloudSqlite.js.map +1 -1
- package/lib/esm/CodeService.js.map +1 -1
- package/lib/esm/CodeSpecs.js.map +1 -1
- package/lib/esm/ConcurrentQuery.js.map +1 -1
- package/lib/esm/CustomViewState3dCreator.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyle.js.map +1 -1
- package/lib/esm/ECDb.d.ts +8 -0
- package/lib/esm/ECDb.d.ts.map +1 -1
- package/lib/esm/ECDb.js +22 -0
- package/lib/esm/ECDb.js.map +1 -1
- package/lib/esm/ECSchemaXmlContext.js.map +1 -1
- package/lib/esm/ECSqlStatement.js.map +1 -1
- package/lib/esm/Element.js.map +1 -1
- package/lib/esm/ElementAspect.js.map +1 -1
- package/lib/esm/ElementGraphics.js.map +1 -1
- package/lib/esm/ElementTreeWalker.js.map +1 -1
- package/lib/esm/Entity.js.map +1 -1
- package/lib/esm/EntityReferences.js.map +1 -1
- package/lib/esm/ExportGraphics.js.map +1 -1
- package/lib/esm/ExternalSource.js.map +1 -1
- package/lib/esm/FontFile.js.map +1 -1
- package/lib/esm/GeoCoordConfig.js.map +1 -1
- package/lib/esm/GeographicCRSServices.js.map +1 -1
- package/lib/esm/GeometrySummary.js +47 -47
- package/lib/esm/GeometrySummary.js.map +1 -1
- package/lib/esm/IModelDb.d.ts +54 -3
- package/lib/esm/IModelDb.d.ts.map +1 -1
- package/lib/esm/IModelDb.js +97 -19
- package/lib/esm/IModelDb.js.map +1 -1
- package/lib/esm/IModelDbFonts.js.map +1 -1
- package/lib/esm/IModelElementCloneContext.js.map +1 -1
- package/lib/esm/IModelHost.d.ts +11 -1
- package/lib/esm/IModelHost.d.ts.map +1 -1
- package/lib/esm/IModelHost.js +5 -0
- package/lib/esm/IModelHost.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.d.ts +1 -5
- package/lib/esm/IModelIncrementalSchemaLocater.d.ts.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.js +0 -6
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.js.map +1 -1
- package/lib/esm/LineStyle.js.map +1 -1
- package/lib/esm/LocalHub.js +1 -1
- package/lib/esm/LocalHub.js.map +1 -1
- package/lib/esm/LocalhostIpcHost.js.map +1 -1
- package/lib/esm/LockControl.js.map +1 -1
- package/lib/esm/Material.js.map +1 -1
- package/lib/esm/Model.js.map +1 -1
- package/lib/esm/NativeAppStorage.js.map +1 -1
- package/lib/esm/NativeHost.js.map +1 -1
- package/lib/esm/NavigationRelationship.js.map +1 -1
- package/lib/esm/PromiseMemoizer.js.map +1 -1
- package/lib/esm/PropertyStore.js.map +1 -1
- package/lib/esm/Relationship.js.map +1 -1
- package/lib/esm/RpcBackend.js.map +1 -1
- package/lib/esm/SQLiteDb.js.map +1 -1
- package/lib/esm/Schema.js.map +1 -1
- package/lib/esm/SchemaSync.js.map +1 -1
- package/lib/esm/SchemaUtils.js.map +1 -1
- package/lib/esm/SheetIndex.js.map +1 -1
- package/lib/esm/SqliteChangesetReader.d.ts +8 -0
- package/lib/esm/SqliteChangesetReader.d.ts.map +1 -1
- package/lib/esm/SqliteChangesetReader.js +11 -0
- package/lib/esm/SqliteChangesetReader.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/StashManager.d.ts +175 -0
- package/lib/esm/StashManager.d.ts.map +1 -0
- package/lib/esm/StashManager.js +301 -0
- package/lib/esm/StashManager.js.map +1 -0
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- package/lib/esm/TxnManager.d.ts +226 -15
- package/lib/esm/TxnManager.d.ts.map +1 -1
- package/lib/esm/TxnManager.js +247 -21
- package/lib/esm/TxnManager.js.map +1 -1
- package/lib/esm/ViewDefinition.js.map +1 -1
- package/lib/esm/ViewStateHydrator.js.map +1 -1
- package/lib/esm/ViewStore.js.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +10 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +13 -5
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js +6 -6
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.d.ts +3 -2
- package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js +8 -7
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.d.ts +145 -36
- package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js +235 -107
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts +2 -0
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.js +26 -19
- package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -1
- package/lib/esm/annotations/TextBlockGeometry.js +11 -3
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.d.ts +51 -38
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js +253 -157
- package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
- package/lib/esm/core-backend.js.map +1 -1
- package/lib/esm/domains/FunctionalElements.js.map +1 -1
- package/lib/esm/domains/FunctionalSchema.js.map +1 -1
- package/lib/esm/domains/GenericElements.js.map +1 -1
- package/lib/esm/domains/GenericSchema.js.map +1 -1
- package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
- package/lib/esm/internal/ChannelAdmin.js +1 -1
- package/lib/esm/internal/ChannelAdmin.js.map +1 -1
- package/lib/esm/internal/ElementLRUCache.js.map +1 -1
- package/lib/esm/internal/FontFileImpl.js.map +1 -1
- package/lib/esm/internal/HubMock.js.map +1 -1
- package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
- package/lib/esm/internal/NativePlatform.js.map +1 -1
- package/lib/esm/internal/NoLocks.js.map +1 -1
- package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
- package/lib/esm/internal/Symbols.d.ts +1 -0
- package/lib/esm/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/internal/Symbols.js +1 -0
- package/lib/esm/internal/Symbols.js.map +1 -1
- package/lib/esm/internal/annotations/fields.d.ts +2 -12
- package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
- package/lib/esm/internal/annotations/fields.js +51 -47
- package/lib/esm/internal/annotations/fields.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
- package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
- package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
- package/lib/esm/rpc/multipart.js.map +1 -1
- package/lib/esm/rpc/tracing.js.map +1 -1
- package/lib/esm/rpc/web/logging.js.map +1 -1
- package/lib/esm/rpc/web/request.js.map +1 -1
- package/lib/esm/rpc/web/response.js.map +1 -1
- package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/esm/test/AdvancedEqual.js.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.d.ts +5 -1
- package/lib/esm/test/AnnotationTestUtils.d.ts.map +1 -1
- package/lib/esm/test/AnnotationTestUtils.js +7 -2
- package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
- package/lib/esm/test/AttachDb.test.js +11 -11
- package/lib/esm/test/AttachDb.test.js.map +1 -1
- package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
- package/lib/esm/test/GeometryTestUtil.js.map +1 -1
- package/lib/esm/test/IModelHost.test.js.map +1 -1
- package/lib/esm/test/IModelTestUtils.js.map +1 -1
- package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
- package/lib/esm/test/IpcHost.test.js.map +1 -1
- package/lib/esm/test/KnownTestLocations.js.map +1 -1
- package/lib/esm/test/PrintElementTree.js.map +1 -1
- package/lib/esm/test/PropertyDb.test.js.map +1 -1
- package/lib/esm/test/RevisionUtility.js.map +1 -1
- package/lib/esm/test/SchemaUtils.test.js +25 -25
- package/lib/esm/test/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
- package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
- package/lib/esm/test/TestUtils.js.map +1 -1
- package/lib/esm/test/annotations/Fields.test.js +195 -78
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js +4 -4
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js +19 -17
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +410 -59
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.js +627 -193
- 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.d.ts +46 -0
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts.map +1 -1
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +20 -2
- package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
- package/lib/esm/test/categories/Category.test.js.map +1 -1
- package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
- package/lib/esm/test/ecdb/CTE.test.js +88 -88
- package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
- package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDb.test.js +128 -58
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
- package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
- package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlStatement.test.js +326 -326
- package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
- package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
- package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
- package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
- package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
- package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
- package/lib/esm/test/element/ElementAspect.test.js +22 -22
- package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
- package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
- package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
- package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
- package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
- package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
- package/lib/esm/test/element/NullStructArray.test.js +13 -13
- package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
- package/lib/esm/test/element/UrlLink.test.js.map +1 -1
- package/lib/esm/test/font/FontFile.test.js.map +1 -1
- package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
- package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
- package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
- package/lib/esm/test/hubaccess/Rebase.test.d.ts +2 -0
- package/lib/esm/test/hubaccess/Rebase.test.d.ts.map +1 -0
- package/lib/esm/test/hubaccess/Rebase.test.js +640 -0
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -0
- package/lib/esm/test/imageData.js.map +1 -1
- package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
- package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
- package/lib/esm/test/imodel/IModel.test.js +44 -44
- package/lib/esm/test/imodel/IModel.test.js.map +1 -1
- package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
- package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +20 -20
- package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +3 -3
- package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +16 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +1 -1
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +47 -0
- package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -1
- package/lib/esm/test/index.js.map +1 -1
- package/lib/esm/test/misc/DevTools.test.js.map +1 -1
- package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
- package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
- package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
- package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
- package/lib/esm/test/rpc/response.test.js.map +1 -1
- package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
- package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
- package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
- package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
- package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
- package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangeMerge.test.js +15 -19
- package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +248 -118
- package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
- package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
- package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
- package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
- package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
- package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
- package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
- package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
- package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
- package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
- package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
- package/lib/esm/test/standalone/MergeConflict.test.js +3 -3
- package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
- package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
- package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
- package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
- package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
- package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
- package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
- package/lib/esm/test/standalone/Setting.test.js.map +1 -1
- package/lib/esm/test/standalone/Settings.test.js.map +1 -1
- package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
- package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Texture.test.js.map +1 -1
- package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
- package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
- package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
- package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
- package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
- package/lib/esm/workspace/Settings.js.map +1 -1
- package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
- package/lib/esm/workspace/Workspace.d.ts +1 -1
- package/lib/esm/workspace/Workspace.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +13 -13
|
@@ -7,14 +7,20 @@ import { Code, FieldRun, SubCategoryAppearance, TextAnnotation, TextBlock, TextR
|
|
|
7
7
|
import { StandaloneDb } from "../../IModelDb";
|
|
8
8
|
import { IModelTestUtils } from "../IModelTestUtils";
|
|
9
9
|
import { createUpdateContext, updateField, updateFields } from "../../internal/annotations/fields";
|
|
10
|
-
import { DbResult, Id64 } from "@itwin/core-bentley";
|
|
10
|
+
import { DbResult, Id64, ProcessDetector } from "@itwin/core-bentley";
|
|
11
11
|
import { SpatialCategory } from "../../Category";
|
|
12
12
|
import { Point3d, YawPitchRollAngles } from "@itwin/core-geometry";
|
|
13
13
|
import { Schema, Schemas } from "../../Schema";
|
|
14
14
|
import { ClassRegistry } from "../../ClassRegistry";
|
|
15
15
|
import { PhysicalElement } from "../../Element";
|
|
16
16
|
import { ElementOwnsUniqueAspect, ElementUniqueAspect, FontFile, TextAnnotation3d } from "../../core-backend";
|
|
17
|
-
import { ElementDrivesTextAnnotation } from "../../annotations/ElementDrivesTextAnnotation";
|
|
17
|
+
import { ElementDrivesTextAnnotation, TextAnnotationUsesTextStyleByDefault } from "../../annotations/ElementDrivesTextAnnotation";
|
|
18
|
+
function isIntlSupported() {
|
|
19
|
+
// Node in the mobile add-on does not include Intl, so this test fails. Right now, mobile
|
|
20
|
+
// users are not expected to do any editing, but long term we will attempt to find a better
|
|
21
|
+
// solution.
|
|
22
|
+
return !ProcessDetector.isMobileAppBackend;
|
|
23
|
+
}
|
|
18
24
|
describe("updateField", () => {
|
|
19
25
|
const mockElementId = "0x1";
|
|
20
26
|
const mockPath = {
|
|
@@ -31,7 +37,7 @@ describe("updateField", () => {
|
|
|
31
37
|
propertyPath.accessors?.[0] === 0 &&
|
|
32
38
|
propertyPath.accessors?.[1] === "nestedProperty" &&
|
|
33
39
|
propertyValue !== undefined) {
|
|
34
|
-
return { value: propertyValue,
|
|
40
|
+
return { value: propertyValue, type: "string" };
|
|
35
41
|
}
|
|
36
42
|
return undefined;
|
|
37
43
|
},
|
|
@@ -97,36 +103,43 @@ describe("updateField", () => {
|
|
|
97
103
|
expect(fieldRun.cachedContent).to.equal(FieldRun.invalidContentIndicator);
|
|
98
104
|
});
|
|
99
105
|
});
|
|
100
|
-
const fieldsSchemaXml = `
|
|
101
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
102
|
-
<ECSchema schemaName="Fields" alias="ts" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
103
|
-
<ECSchemaReference name="BisCore" version="01.00.04" alias="bis"/>
|
|
104
|
-
|
|
105
|
-
<
|
|
106
|
-
<
|
|
107
|
-
<
|
|
108
|
-
</
|
|
109
|
-
|
|
110
|
-
<ECStructClass typeName="
|
|
111
|
-
<
|
|
112
|
-
<
|
|
113
|
-
</ECStructClass>
|
|
114
|
-
|
|
115
|
-
<
|
|
116
|
-
<
|
|
117
|
-
<
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
<
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
<
|
|
127
|
-
<
|
|
128
|
-
|
|
129
|
-
|
|
106
|
+
const fieldsSchemaXml = `
|
|
107
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
108
|
+
<ECSchema schemaName="Fields" alias="ts" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
|
|
109
|
+
<ECSchemaReference name="BisCore" version="01.00.04" alias="bis"/>
|
|
110
|
+
|
|
111
|
+
<ECEnumeration typeName="IntEnum" backingTypeName="int">
|
|
112
|
+
<ECEnumerator name="one" displayLabel="One" value="1" />
|
|
113
|
+
<ECEnumerator name="two" displayLabel="Two" value="2"/>
|
|
114
|
+
</ECEnumeration>
|
|
115
|
+
|
|
116
|
+
<ECStructClass typeName="InnerStruct" modifier="None">
|
|
117
|
+
<ECProperty propertyName="bool" typeName="boolean"/>
|
|
118
|
+
<ECArrayProperty propertyName="doubles" typeName="double" minOccurs="0" maxOccurs="unbounded"/>
|
|
119
|
+
</ECStructClass>
|
|
120
|
+
|
|
121
|
+
<ECStructClass typeName="OuterStruct" modifier="None">
|
|
122
|
+
<ECStructProperty propertyName="innerStruct" typeName="InnerStruct"/>
|
|
123
|
+
<ECStructArrayProperty propertyName="innerStructs" typeName="InnerStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
124
|
+
</ECStructClass>
|
|
125
|
+
|
|
126
|
+
<ECEntityClass typeName="TestElement" modifier="None">
|
|
127
|
+
<BaseClass>bis:PhysicalElement</BaseClass>
|
|
128
|
+
<ECProperty propertyName="intProp" typeName="int"/>
|
|
129
|
+
<ECProperty propertyName="point" typeName="point3d"/>
|
|
130
|
+
<ECProperty propertyName="maybeNull" typeName="int"/>
|
|
131
|
+
<ECProperty propertyName="datetime" typeName="dateTime"/>
|
|
132
|
+
<ECArrayProperty propertyName="strings" typeName="string" minOccurs="0" maxOccurs="unbounded"/>
|
|
133
|
+
<ECStructProperty propertyName="outerStruct" typeName="OuterStruct"/>
|
|
134
|
+
<ECStructArrayProperty propertyName="outerStructs" typeName="OuterStruct" minOccurs="0" maxOccurs="unbounded"/>
|
|
135
|
+
<ECProperty propertyName="intEnum" typeName="IntEnum"/>
|
|
136
|
+
</ECEntityClass>
|
|
137
|
+
|
|
138
|
+
<ECEntityClass typeName="TestAspect" modifier="None">
|
|
139
|
+
<BaseClass>bis:ElementUniqueAspect</BaseClass>
|
|
140
|
+
<ECProperty propertyName="aspectProp" typeName="int"/>
|
|
141
|
+
</ECEntityClass>
|
|
142
|
+
</ECSchema>
|
|
130
143
|
`;
|
|
131
144
|
class TestElement extends PhysicalElement {
|
|
132
145
|
static get className() { return "TestElement"; }
|
|
@@ -174,6 +187,8 @@ describe("Field evaluation", () => {
|
|
|
174
187
|
intProp: 100,
|
|
175
188
|
point: { x: 1, y: 2, z: 3 },
|
|
176
189
|
strings: ["a", "b", `"name": "c"`],
|
|
190
|
+
datetime: new Date("2025-08-28T13:45:30.123Z"),
|
|
191
|
+
intEnum: 1,
|
|
177
192
|
outerStruct: {
|
|
178
193
|
innerStruct: { bool: false, doubles: [1, 2, 3] },
|
|
179
194
|
innerStructs: [{ bool: true, doubles: [] }, { bool: false, doubles: [5, 4, 3, 2, 1] }],
|
|
@@ -189,6 +204,7 @@ describe("Field evaluation", () => {
|
|
|
189
204
|
jsonProperties: {
|
|
190
205
|
stringProp: "abc",
|
|
191
206
|
ints: [10, 11, 12, 13],
|
|
207
|
+
bool: true,
|
|
192
208
|
zoo: {
|
|
193
209
|
address: {
|
|
194
210
|
zipcode: 12345,
|
|
@@ -210,22 +226,27 @@ describe("Field evaluation", () => {
|
|
|
210
226
|
imodel.saveChanges();
|
|
211
227
|
return id;
|
|
212
228
|
}
|
|
229
|
+
function evaluateField(propertyPath, propertyHost, deletedDependency = false) {
|
|
230
|
+
if (typeof propertyHost === "string") {
|
|
231
|
+
propertyHost = { schemaName: "Fields", className: "TestElement", elementId: propertyHost };
|
|
232
|
+
}
|
|
233
|
+
const field = FieldRun.create({
|
|
234
|
+
propertyPath,
|
|
235
|
+
propertyHost,
|
|
236
|
+
});
|
|
237
|
+
const context = createUpdateContext(propertyHost.elementId, imodel, deletedDependency);
|
|
238
|
+
return context.getProperty(field);
|
|
239
|
+
}
|
|
213
240
|
describe("getProperty", () => {
|
|
214
241
|
function expectValue(expected, propertyPath, propertyHost, deletedDependency = false) {
|
|
215
|
-
|
|
216
|
-
propertyHost = { schemaName: "Fields", className: "TestElement", elementId: propertyHost };
|
|
217
|
-
}
|
|
218
|
-
const field = FieldRun.create({
|
|
219
|
-
propertyPath,
|
|
220
|
-
propertyHost,
|
|
221
|
-
});
|
|
222
|
-
const context = createUpdateContext(propertyHost.elementId, imodel, deletedDependency);
|
|
223
|
-
const actual = context.getProperty(field);
|
|
224
|
-
expect(actual?.value).to.deep.equal(expected);
|
|
242
|
+
expect(evaluateField(propertyPath, propertyHost, deletedDependency)?.value).to.deep.equal(expected);
|
|
225
243
|
}
|
|
226
244
|
it("returns a primitive property value", () => {
|
|
227
245
|
expectValue(100, { propertyName: "intProp" }, sourceElementId);
|
|
228
246
|
});
|
|
247
|
+
it("returns an integer enum property value", () => {
|
|
248
|
+
expectValue(1, { propertyName: "intEnum" }, sourceElementId);
|
|
249
|
+
});
|
|
229
250
|
it("treats points as primitive values", () => {
|
|
230
251
|
expectValue({ x: 1, y: 2, z: 3 }, { propertyName: "point" }, sourceElementId);
|
|
231
252
|
expectValue(undefined, { propertyName: "point", accessors: ["x"] }, sourceElementId);
|
|
@@ -284,28 +305,62 @@ describe("Field evaluation", () => {
|
|
|
284
305
|
expectValue(false, { propertyName: "outerStructs", accessors: [0, "innerStructs", -1, "bool"] }, sourceElementId);
|
|
285
306
|
expectValue(5, { propertyName: "outerStructs", accessors: [0, "innerStructs", 0, "doubles", 0] }, sourceElementId);
|
|
286
307
|
});
|
|
287
|
-
it("returns arbitrarily-nested JSON properties", () => {
|
|
288
|
-
expectValue("abc", { propertyName: "jsonProperties", jsonAccessors: ["stringProp"] }, sourceElementId);
|
|
289
|
-
expectValue(10, { propertyName: "jsonProperties", jsonAccessors: ["ints", 0] }, sourceElementId);
|
|
290
|
-
expectValue(13, { propertyName: "jsonProperties", jsonAccessors: ["ints", 3] }, sourceElementId);
|
|
291
|
-
expectValue(13, { propertyName: "jsonProperties", jsonAccessors: ["ints", -1] }, sourceElementId);
|
|
292
|
-
expectValue(11, { propertyName: "jsonProperties", jsonAccessors: ["ints", -3] }, sourceElementId);
|
|
293
|
-
expectValue(12345, { propertyName: "jsonProperties", jsonAccessors: ["zoo", "address", "zipcode"] }, sourceElementId);
|
|
294
|
-
expectValue("scree!", { propertyName: "jsonProperties", jsonAccessors: ["zoo", "birds", 1, "sound"] }, sourceElementId);
|
|
295
|
-
});
|
|
296
|
-
it("returns undefined if JSON accessors applied to non-JSON property", () => {
|
|
297
|
-
expectValue(undefined, { propertyName: "int", jsonAccessors: ["whatever"] }, sourceElementId);
|
|
298
|
-
expectValue(undefined, { propertyName: "strings", accessors: [2, "name"] }, sourceElementId);
|
|
299
|
-
expectValue(undefined, { propertyName: "outerStruct", accessors: ["innerStruct"], jsonAccessors: ["bool"] }, sourceElementId);
|
|
300
|
-
});
|
|
301
308
|
it("returns the value of a property of an aspect", () => {
|
|
302
309
|
expect(imodel.elements.getAspects(sourceElementId, "Fields:TestAspect").length).to.equal(1);
|
|
303
310
|
expectValue(999, { propertyName: "aspectProp" }, { elementId: sourceElementId, schemaName: "Fields", className: "TestAspect" });
|
|
304
311
|
});
|
|
312
|
+
it("should fail to evaluate if prop type does not match", () => {
|
|
313
|
+
const fieldRun = FieldRun.create({
|
|
314
|
+
propertyHost: { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" },
|
|
315
|
+
propertyPath: { propertyName: "string", accessors: [0] },
|
|
316
|
+
cachedContent: "oldValue",
|
|
317
|
+
formatOptions: {
|
|
318
|
+
case: "upper",
|
|
319
|
+
prefix: "Value: ",
|
|
320
|
+
suffix: "!"
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
const context = createUpdateContext(sourceElementId, imodel, false);
|
|
324
|
+
const updated = updateField(fieldRun, context);
|
|
325
|
+
expect(updated).to.be.true;
|
|
326
|
+
expect(fieldRun.cachedContent).to.equal(FieldRun.invalidContentIndicator);
|
|
327
|
+
});
|
|
328
|
+
function getPropertyType(propertyHost, propertyPath) {
|
|
329
|
+
if (typeof propertyPath === "string") {
|
|
330
|
+
propertyPath = { propertyName: propertyPath };
|
|
331
|
+
}
|
|
332
|
+
return evaluateField(propertyPath, propertyHost)?.type;
|
|
333
|
+
}
|
|
334
|
+
it("deduces type for primitive properties", () => {
|
|
335
|
+
const propertyHost = { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" };
|
|
336
|
+
expect(getPropertyType(propertyHost, "intProp")).to.equal("string");
|
|
337
|
+
expect(getPropertyType(propertyHost, "point")).to.equal("coordinate");
|
|
338
|
+
expect(getPropertyType(propertyHost, { propertyName: "strings", accessors: [0] })).to.equal("string");
|
|
339
|
+
expect(getPropertyType(propertyHost, "intEnum")).to.equal("int-enum");
|
|
340
|
+
expect(getPropertyType(propertyHost, { propertyName: "outerStruct", accessors: ["innerStruct", "doubles", 0] })).to.equal("quantity");
|
|
341
|
+
expect(getPropertyType(propertyHost, { propertyName: "outerStruct", accessors: ["innerStruct", "bool"] })).to.equal("boolean");
|
|
342
|
+
propertyHost.schemaName = "BisCore";
|
|
343
|
+
propertyHost.className = "GeometricElement3d";
|
|
344
|
+
expect(getPropertyType(propertyHost, "LastMod")).to.equal("datetime");
|
|
345
|
+
expect(getPropertyType(propertyHost, "FederationGuid")).to.equal("string");
|
|
346
|
+
});
|
|
347
|
+
it("returns undefined for non-primitive properties", () => {
|
|
348
|
+
const propertyHost = { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" };
|
|
349
|
+
expect(getPropertyType(propertyHost, "outerStruct")).to.equal(undefined);
|
|
350
|
+
expect(getPropertyType(propertyHost, "outerStructs")).to.equal(undefined);
|
|
351
|
+
});
|
|
352
|
+
it("returns undefined for invalid property paths", () => {
|
|
353
|
+
const propertyHost = { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" };
|
|
354
|
+
expect(getPropertyType(propertyHost, "unknownPropertyName")).to.be.undefined;
|
|
355
|
+
});
|
|
356
|
+
it("should return undefined for unsupported primitive types", () => {
|
|
357
|
+
const host = { elementId: sourceElementId, schemaName: "BisCore", className: "GeometricElement3d" };
|
|
358
|
+
expect(getPropertyType(host, "GeometryStream")).to.be.undefined;
|
|
359
|
+
});
|
|
305
360
|
});
|
|
306
361
|
describe("updateFields", () => {
|
|
307
362
|
it("recomputes cached content", () => {
|
|
308
|
-
const textBlock = TextBlock.create(
|
|
363
|
+
const textBlock = TextBlock.create();
|
|
309
364
|
const fieldRun = FieldRun.create({
|
|
310
365
|
propertyHost: { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" },
|
|
311
366
|
propertyPath: { propertyName: "intProp" },
|
|
@@ -318,7 +373,7 @@ describe("Field evaluation", () => {
|
|
|
318
373
|
expect(fieldRun.cachedContent).to.equal("100"); // `intProp` value from the test element
|
|
319
374
|
});
|
|
320
375
|
it("does not update a field if recomputed content matches cached content", () => {
|
|
321
|
-
const textBlock = TextBlock.create(
|
|
376
|
+
const textBlock = TextBlock.create();
|
|
322
377
|
const fieldRun = FieldRun.create({
|
|
323
378
|
propertyHost: { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" },
|
|
324
379
|
propertyPath: { propertyName: "intProp" },
|
|
@@ -331,7 +386,7 @@ describe("Field evaluation", () => {
|
|
|
331
386
|
expect(fieldRun.cachedContent).to.equal("100");
|
|
332
387
|
});
|
|
333
388
|
it("returns the number of fields updated", () => {
|
|
334
|
-
const textBlock = TextBlock.create(
|
|
389
|
+
const textBlock = TextBlock.create();
|
|
335
390
|
const fieldRun1 = FieldRun.create({
|
|
336
391
|
propertyHost: { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" },
|
|
337
392
|
propertyPath: { propertyName: "intProp" },
|
|
@@ -361,6 +416,7 @@ describe("Field evaluation", () => {
|
|
|
361
416
|
angles: YawPitchRollAngles.createDegrees(0, 0, 0).toJSON(),
|
|
362
417
|
},
|
|
363
418
|
classFullName: TextAnnotation3d.classFullName,
|
|
419
|
+
defaultTextStyle: new TextAnnotationUsesTextStyleByDefault("0x123").toJSON(),
|
|
364
420
|
}, imodel);
|
|
365
421
|
if (textBlock) {
|
|
366
422
|
const annotation = TextAnnotation.fromJSON({ textBlock: textBlock.toJSON() });
|
|
@@ -395,21 +451,21 @@ describe("Field evaluation", () => {
|
|
|
395
451
|
expect(relationship.sourceId).to.equal(sourceElementId);
|
|
396
452
|
expect(relationship.targetId).to.equal(targetId);
|
|
397
453
|
});
|
|
398
|
-
function createField(propertyHost, cachedContent, propertyName = "intProp", accessors
|
|
454
|
+
function createField(propertyHost, cachedContent, propertyName = "intProp", accessors) {
|
|
399
455
|
if (typeof propertyHost === "string") {
|
|
400
456
|
propertyHost = { schemaName: "Fields", className: "TestElement", elementId: propertyHost };
|
|
401
457
|
}
|
|
402
458
|
return FieldRun.create({
|
|
403
|
-
styleOverrides: {
|
|
459
|
+
styleOverrides: { font: { name: "Karla" } },
|
|
404
460
|
propertyHost,
|
|
405
461
|
cachedContent,
|
|
406
|
-
propertyPath: { propertyName, accessors
|
|
462
|
+
propertyPath: { propertyName, accessors },
|
|
407
463
|
});
|
|
408
464
|
}
|
|
409
465
|
describe("updateFieldDependencies", () => {
|
|
410
466
|
it("creates exactly one relationship for each unique source element on insert and update", () => {
|
|
411
467
|
const source1 = insertTestElement();
|
|
412
|
-
const block = TextBlock.create(
|
|
468
|
+
const block = TextBlock.create();
|
|
413
469
|
block.appendRun(createField(source1, "1"));
|
|
414
470
|
const targetId = insertAnnotationElement(block);
|
|
415
471
|
imodel.saveChanges();
|
|
@@ -437,7 +493,7 @@ describe("Field evaluation", () => {
|
|
|
437
493
|
it("deletes stale relationships", () => {
|
|
438
494
|
const sourceA = insertTestElement();
|
|
439
495
|
const sourceB = insertTestElement();
|
|
440
|
-
const block = TextBlock.create(
|
|
496
|
+
const block = TextBlock.create();
|
|
441
497
|
block.appendRun(createField(sourceA, "A"));
|
|
442
498
|
block.appendRun(createField(sourceB, "B"));
|
|
443
499
|
const targetId = insertAnnotationElement(block);
|
|
@@ -447,14 +503,16 @@ describe("Field evaluation", () => {
|
|
|
447
503
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceB })).not.to.be.undefined;
|
|
448
504
|
const target = imodel.elements.getElement(targetId);
|
|
449
505
|
const anno = target.getAnnotation();
|
|
450
|
-
|
|
506
|
+
// Remove the sourceA FieldRun from the first paragraph.
|
|
507
|
+
const p1 = anno.textBlock.children[0];
|
|
508
|
+
p1.children.shift();
|
|
451
509
|
target.setAnnotation(anno);
|
|
452
510
|
target.update();
|
|
453
511
|
imodel.saveChanges();
|
|
454
512
|
expectNumRelationships(1, targetId);
|
|
455
513
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceA })).to.be.undefined;
|
|
456
514
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceB })).not.to.be.undefined;
|
|
457
|
-
anno.textBlock.
|
|
515
|
+
anno.textBlock.children.length = 0;
|
|
458
516
|
anno.textBlock.appendRun(createField(sourceA, "A2"));
|
|
459
517
|
target.setAnnotation(anno);
|
|
460
518
|
target.update();
|
|
@@ -462,9 +520,9 @@ describe("Field evaluation", () => {
|
|
|
462
520
|
expectNumRelationships(1, targetId);
|
|
463
521
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceA })).not.to.be.undefined;
|
|
464
522
|
expect(imodel.relationships.tryGetInstance(ElementDrivesTextAnnotation.classFullName, { targetId, sourceId: sourceB })).to.be.undefined;
|
|
465
|
-
anno.textBlock.
|
|
523
|
+
anno.textBlock.children.length = 0;
|
|
466
524
|
anno.textBlock.appendRun(TextRun.create({
|
|
467
|
-
styleOverrides: {
|
|
525
|
+
styleOverrides: { font: { name: "Karla" } },
|
|
468
526
|
content: "not a field",
|
|
469
527
|
}));
|
|
470
528
|
target.setAnnotation(anno);
|
|
@@ -476,7 +534,7 @@ describe("Field evaluation", () => {
|
|
|
476
534
|
});
|
|
477
535
|
it("ignores invalid source element Ids", () => {
|
|
478
536
|
const source = insertTestElement();
|
|
479
|
-
const block = TextBlock.create(
|
|
537
|
+
const block = TextBlock.create();
|
|
480
538
|
block.appendRun(createField(Id64.invalid, "invalid"));
|
|
481
539
|
block.appendRun(createField("0xbaadf00d", "non-existent"));
|
|
482
540
|
block.appendRun(createField(source, "valid"));
|
|
@@ -491,9 +549,19 @@ describe("Field evaluation", () => {
|
|
|
491
549
|
const actual = anno.textBlock.stringify();
|
|
492
550
|
expect(actual).to.equal(expected);
|
|
493
551
|
}
|
|
552
|
+
it("evaluates cachedContent when annotation element is inserted", () => {
|
|
553
|
+
const sourceId = insertTestElement();
|
|
554
|
+
const block = TextBlock.create();
|
|
555
|
+
block.appendRun(createField(sourceId, "initial cached content"));
|
|
556
|
+
expect(block.stringify()).to.equal("initial cached content");
|
|
557
|
+
const targetId = insertAnnotationElement(block);
|
|
558
|
+
imodel.saveChanges();
|
|
559
|
+
const target = imodel.elements.getElement(targetId);
|
|
560
|
+
expect(target.getAnnotation().textBlock.stringify()).to.equal("100");
|
|
561
|
+
});
|
|
494
562
|
it("updates fields when source element is modified or deleted", () => {
|
|
495
563
|
const sourceId = insertTestElement();
|
|
496
|
-
const block = TextBlock.create(
|
|
564
|
+
const block = TextBlock.create();
|
|
497
565
|
block.appendRun(createField(sourceId, "old value"));
|
|
498
566
|
;
|
|
499
567
|
const targetId = insertAnnotationElement(block);
|
|
@@ -516,7 +584,7 @@ describe("Field evaluation", () => {
|
|
|
516
584
|
});
|
|
517
585
|
it("updates fields when source element aspect is modified, deleted, or recreated", () => {
|
|
518
586
|
const sourceId = insertTestElement();
|
|
519
|
-
const block = TextBlock.create(
|
|
587
|
+
const block = TextBlock.create();
|
|
520
588
|
block.appendRun(createField({ elementId: sourceId, schemaName: "Fields", className: "TestAspect" }, "", "aspectProp"));
|
|
521
589
|
const targetId = insertAnnotationElement(block);
|
|
522
590
|
imodel.saveChanges();
|
|
@@ -544,7 +612,7 @@ describe("Field evaluation", () => {
|
|
|
544
612
|
it("updates only fields for specific modified element", () => {
|
|
545
613
|
const sourceA = insertTestElement();
|
|
546
614
|
const sourceB = insertTestElement();
|
|
547
|
-
const block = TextBlock.create(
|
|
615
|
+
const block = TextBlock.create();
|
|
548
616
|
block.appendRun(createField(sourceA, "A"));
|
|
549
617
|
block.appendRun(createField(sourceB, "B"));
|
|
550
618
|
const targetId = insertAnnotationElement(block);
|
|
@@ -558,18 +626,67 @@ describe("Field evaluation", () => {
|
|
|
558
626
|
});
|
|
559
627
|
it("supports complex property paths", () => {
|
|
560
628
|
const sourceId = insertTestElement();
|
|
561
|
-
const block = TextBlock.create(
|
|
629
|
+
const block = TextBlock.create();
|
|
562
630
|
block.appendRun(createField(sourceId, "", "outerStruct", ["innerStructs", 1, "doubles", -2]));
|
|
563
|
-
block.appendRun(createField(sourceId, "", "jsonProperties", undefined, ["zoo", "birds", 0, "name"]));
|
|
564
631
|
const targetId = insertAnnotationElement(block);
|
|
565
632
|
imodel.saveChanges();
|
|
566
|
-
expectText("
|
|
633
|
+
expectText("2", targetId);
|
|
567
634
|
const source = imodel.elements.getElement(sourceId);
|
|
568
635
|
source.outerStruct.innerStructs[1].doubles[3] = 12.5;
|
|
569
|
-
source.jsonProperties.zoo.birds[0].name = "parrot";
|
|
570
636
|
source.update();
|
|
571
637
|
imodel.saveChanges();
|
|
572
|
-
expectText("12.
|
|
638
|
+
expectText("12.5", targetId);
|
|
639
|
+
});
|
|
640
|
+
});
|
|
641
|
+
describe("Format Validation", () => {
|
|
642
|
+
it("validates formatting options for string property type", () => {
|
|
643
|
+
// Create a FieldRun with string property type and some format options
|
|
644
|
+
const fieldRun = FieldRun.create({
|
|
645
|
+
propertyHost: { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" },
|
|
646
|
+
propertyPath: { propertyName: "strings", accessors: [0] },
|
|
647
|
+
cachedContent: "oldValue",
|
|
648
|
+
formatOptions: {
|
|
649
|
+
case: "upper",
|
|
650
|
+
prefix: "Value: ",
|
|
651
|
+
suffix: "!"
|
|
652
|
+
}
|
|
653
|
+
});
|
|
654
|
+
// Context returns a string value for the property
|
|
655
|
+
const context = {
|
|
656
|
+
hostElementId: sourceElementId,
|
|
657
|
+
getProperty: () => { return { value: "abc", type: "string" }; },
|
|
658
|
+
};
|
|
659
|
+
// Update the field and check the result
|
|
660
|
+
const updated = updateField(fieldRun, context);
|
|
661
|
+
// The formatted value should be uppercased and have prefix/suffix applied
|
|
662
|
+
expect(updated).to.be.true;
|
|
663
|
+
expect(fieldRun.cachedContent).to.equal("Value: ABC!");
|
|
664
|
+
});
|
|
665
|
+
it("validates formatting options for datetime objects", function () {
|
|
666
|
+
if (!isIntlSupported()) {
|
|
667
|
+
this.skip();
|
|
668
|
+
}
|
|
669
|
+
const propertyHost = { elementId: sourceElementId, schemaName: "Fields", className: "TestElement" };
|
|
670
|
+
const fieldRun = FieldRun.create({
|
|
671
|
+
propertyHost,
|
|
672
|
+
propertyPath: { propertyName: "datetime" },
|
|
673
|
+
cachedContent: "oldval",
|
|
674
|
+
formatOptions: {
|
|
675
|
+
dateTime: {
|
|
676
|
+
formatOptions: {
|
|
677
|
+
month: "short",
|
|
678
|
+
day: "2-digit",
|
|
679
|
+
year: "numeric",
|
|
680
|
+
timeZone: "UTC"
|
|
681
|
+
},
|
|
682
|
+
locale: "en-US",
|
|
683
|
+
},
|
|
684
|
+
},
|
|
685
|
+
});
|
|
686
|
+
const context = createUpdateContext(sourceElementId, imodel, false);
|
|
687
|
+
const updated = updateField(fieldRun, context);
|
|
688
|
+
expect(updated).to.be.true;
|
|
689
|
+
expect(fieldRun.cachedContent).to.equal("Aug 28, 2025");
|
|
573
690
|
});
|
|
574
691
|
});
|
|
575
692
|
});
|