@itwin/core-backend 5.2.0-dev.30 → 5.2.0-dev.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/BackendHubAccess.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.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.map +1 -1
- package/lib/cjs/BriefcaseManager.js +3 -2
- 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.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.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.js +8 -8
- 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.js.map +1 -1
- package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/ImageSourceConversion.js.map +1 -1
- package/lib/cjs/IpcHost.js.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.js.map +1 -1
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/StashManager.js.map +1 -1
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.js.map +1 -1
- 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.map +1 -1
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +3 -5
- package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js +1 -1
- package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -1
- package/lib/cjs/annotations/TextAnnotationGeometry.js +24 -17
- 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 +8 -0
- package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.d.ts +46 -27
- package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -1
- package/lib/cjs/annotations/TextBlockLayout.js +201 -113
- 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.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.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.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.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.map +1 -1
- package/lib/esm/BriefcaseManager.js +3 -2
- 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.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.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.js +8 -8
- 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.js.map +1 -1
- package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
- package/lib/esm/IModelJsFs.js.map +1 -1
- package/lib/esm/ImageSourceConversion.js.map +1 -1
- package/lib/esm/IpcHost.js.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.js.map +1 -1
- package/lib/esm/SqliteStatement.js.map +1 -1
- package/lib/esm/StashManager.js.map +1 -1
- package/lib/esm/Texture.js.map +1 -1
- package/lib/esm/TileStorage.js.map +1 -1
- 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.map +1 -1
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js +4 -6
- package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
- package/lib/esm/annotations/FrameGeometry.js.map +1 -1
- package/lib/esm/annotations/LeaderGeometry.js +1 -1
- package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -1
- package/lib/esm/annotations/TextAnnotationGeometry.js +24 -17
- 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 +8 -0
- package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.d.ts +46 -27
- package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -1
- package/lib/esm/annotations/TextBlockLayout.js +202 -114
- 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.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.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.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 +181 -65
- package/lib/esm/test/annotations/Fields.test.js.map +1 -1
- package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js +1 -1
- package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
- package/lib/esm/test/annotations/TextBlock.test.js +417 -54
- 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 +44 -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 +18 -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 +72 -72
- package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
- package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
- package/lib/esm/test/ecdb/ECSqlAst.test.js +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.js +33 -33
- package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/lib/esm/test/standalone/ChangesetReader.test.js +117 -117
- 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.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.js.map +1 -1
- package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
- package/package.json +13 -13
|
@@ -59,11 +59,10 @@ function computeLayoutTextBlockResult(args) {
|
|
|
59
59
|
* @beta
|
|
60
60
|
*/
|
|
61
61
|
function computeGraphemeOffsets(args) {
|
|
62
|
-
const {
|
|
62
|
+
const { source, runLayoutResult, graphemeCharIndexes, iModel } = args;
|
|
63
63
|
const findFontId = args.findFontId ?? ((name, type) => iModel.fonts.findId({ name, type }) ?? 0);
|
|
64
64
|
const computeTextRange = args.computeTextRange ?? ((x) => iModel.computeRangesForText(x));
|
|
65
|
-
|
|
66
|
-
if (source.type !== "text" || runLayoutResult.characterCount === 0) {
|
|
65
|
+
if (!(source instanceof core_common_1.TextRun) || runLayoutResult.characterCount === 0) {
|
|
67
66
|
return [];
|
|
68
67
|
}
|
|
69
68
|
const style = core_common_1.TextStyleSettings.fromJSON(runLayoutResult.textStyle);
|
|
@@ -127,29 +126,27 @@ class TextStyleResolver {
|
|
|
127
126
|
if (args.textBlock.styleOverrides)
|
|
128
127
|
this.blockSettings = this.blockSettings.clone(args.textBlock.styleOverrides);
|
|
129
128
|
}
|
|
130
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Resolves the effective text style settings for a given TextBlockComponent, applying block-level overrides.
|
|
131
|
+
*/
|
|
132
|
+
resolveSettings(overrides, isLeader = false) {
|
|
131
133
|
let settings = this.blockSettings;
|
|
132
|
-
if (
|
|
133
|
-
settings = settings.clone(
|
|
134
|
-
return settings;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
resolveRunSettings(paragraph, run) {
|
|
149
|
-
let settings = this.resolveParagraphSettingsImpl(paragraph);
|
|
150
|
-
if (run.overridesStyle)
|
|
151
|
-
settings = settings.clone(run.styleOverrides);
|
|
152
|
-
return applyBlockSettings(settings, this.blockSettings);
|
|
134
|
+
if (overrides)
|
|
135
|
+
settings = settings.clone(overrides);
|
|
136
|
+
return applyBlockSettings(settings, this.blockSettings, isLeader);
|
|
137
|
+
}
|
|
138
|
+
resolveMarkerText(overrides, index) {
|
|
139
|
+
const markerSettings = overrides.listMarker ?? this.blockSettings.listMarker;
|
|
140
|
+
return (0, core_common_1.getMarkerText)(markerSettings, index);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Computes the indentation based on its style and nesting depth.
|
|
144
|
+
*/
|
|
145
|
+
resolveIndentation(styleOverrides, depth) {
|
|
146
|
+
const overrides = this.resolveSettings(styleOverrides);
|
|
147
|
+
const indentation = overrides.indentation;
|
|
148
|
+
const tabInterval = overrides.tabInterval;
|
|
149
|
+
return indentation + tabInterval * depth;
|
|
153
150
|
}
|
|
154
151
|
}
|
|
155
152
|
exports.TextStyleResolver = TextStyleResolver;
|
|
@@ -240,9 +237,9 @@ class LayoutContext {
|
|
|
240
237
|
layout.extendRange(denominator);
|
|
241
238
|
return { layout, numerator, denominator };
|
|
242
239
|
}
|
|
243
|
-
computeRangeForTabRun(style, source,
|
|
240
|
+
computeRangeForTabRun(style, source, lengthFromLastTab) {
|
|
244
241
|
const interval = source.styleOverrides.tabInterval ?? style.tabInterval;
|
|
245
|
-
const tabEndX = interval -
|
|
242
|
+
const tabEndX = interval - lengthFromLastTab % interval;
|
|
246
243
|
const range = new core_geometry_1.Range2d(0, 0, 0, style.lineHeight);
|
|
247
244
|
range.extendXY(tabEndX, range.low.y);
|
|
248
245
|
return range;
|
|
@@ -298,8 +295,8 @@ class RunLayout {
|
|
|
298
295
|
this.style = props.style;
|
|
299
296
|
this.fontId = props.fontId;
|
|
300
297
|
}
|
|
301
|
-
static create(source,
|
|
302
|
-
const style = context.textStyleResolver.
|
|
298
|
+
static create(source, context, cumulativeOverrides) {
|
|
299
|
+
const style = context.textStyleResolver.resolveSettings(cumulativeOverrides);
|
|
303
300
|
const fontId = context.findFontId(style.fontName);
|
|
304
301
|
const charOffset = 0;
|
|
305
302
|
const offsetFromLine = { x: 0, y: 0 };
|
|
@@ -368,9 +365,8 @@ class RunLayout {
|
|
|
368
365
|
});
|
|
369
366
|
});
|
|
370
367
|
}
|
|
371
|
-
toResult(
|
|
368
|
+
toResult() {
|
|
372
369
|
const result = {
|
|
373
|
-
sourceRunIndex: paragraph.runs.indexOf(this.source),
|
|
374
370
|
fontId: this.fontId,
|
|
375
371
|
characterOffset: this.charOffset,
|
|
376
372
|
characterCount: this.numChars,
|
|
@@ -400,32 +396,47 @@ exports.RunLayout = RunLayout;
|
|
|
400
396
|
class LineLayout {
|
|
401
397
|
source;
|
|
402
398
|
range = new core_geometry_1.Range2d(0, 0, 0, 0);
|
|
399
|
+
runRange = new core_geometry_1.Range2d(0, 0, 0, 0); // Range of all runs excluding marker.
|
|
403
400
|
justificationRange = new core_geometry_1.Range2d(0, 0, 0, 0);
|
|
404
|
-
offsetFromDocument
|
|
401
|
+
offsetFromDocument;
|
|
402
|
+
depth;
|
|
405
403
|
lengthFromLastTab = 0; // Used to track the length from the last tab for tab runs.
|
|
406
404
|
_runs = [];
|
|
407
|
-
|
|
405
|
+
_marker;
|
|
406
|
+
constructor(source, style, context, depth = 0) {
|
|
408
407
|
this.source = source;
|
|
408
|
+
this.depth = depth;
|
|
409
|
+
this.offsetFromDocument = { x: context?.textStyleResolver.resolveIndentation(style, depth) ?? 0, y: 0 };
|
|
409
410
|
}
|
|
410
411
|
/** Compute a string representation, primarily for debugging purposes. */
|
|
411
412
|
stringify() {
|
|
412
413
|
const runs = this._runs.map((run) => run.stringify());
|
|
413
414
|
return `${runs.join("")}`;
|
|
414
415
|
}
|
|
416
|
+
/** Gets the array of RunLayout objects contained in this line. */
|
|
415
417
|
get runs() { return this._runs; }
|
|
418
|
+
/** Indicates whether this line contains any runs. */
|
|
416
419
|
get isEmpty() { return this._runs.length === 0; }
|
|
420
|
+
/** Gets the last RunLayout in this line. */
|
|
417
421
|
get back() {
|
|
418
422
|
(0, core_bentley_1.assert)(!this.isEmpty);
|
|
419
423
|
return this._runs[this._runs.length - 1];
|
|
420
424
|
}
|
|
425
|
+
/**
|
|
426
|
+
* Gets or sets the marker RunLayout for this line, used for lists.
|
|
427
|
+
* A marker is the symbol or character that appears before each list item in a list, bullets, numbers, etc.
|
|
428
|
+
* */
|
|
429
|
+
get marker() { return this._marker; }
|
|
430
|
+
set marker(value) { this._marker = value; }
|
|
421
431
|
append(run) {
|
|
422
432
|
this._runs.push(run);
|
|
423
433
|
this.computeRanges();
|
|
424
434
|
}
|
|
425
435
|
/** Invoked every time a run is appended,. */
|
|
426
436
|
computeRanges() {
|
|
427
|
-
this.
|
|
428
|
-
this.
|
|
437
|
+
this.runRange.low.setZero();
|
|
438
|
+
this.runRange.high.setZero();
|
|
439
|
+
this.lengthFromLastTab = 0;
|
|
429
440
|
// Some runs (fractions) are taller than others.
|
|
430
441
|
// We want to center each run vertically inside the line.
|
|
431
442
|
let lineHeight = 0;
|
|
@@ -434,26 +445,39 @@ class LineLayout {
|
|
|
434
445
|
}
|
|
435
446
|
for (const run of this._runs) {
|
|
436
447
|
const runHeight = run.range.yLength();
|
|
437
|
-
const runOffset = { x: this.
|
|
448
|
+
const runOffset = { x: this.runRange.high.x, y: (lineHeight - runHeight) / 2 };
|
|
438
449
|
run.offsetFromLine = runOffset;
|
|
439
450
|
const runLayoutRange = run.range.cloneTranslated(runOffset);
|
|
440
|
-
this.
|
|
451
|
+
this.runRange.extendRange(runLayoutRange);
|
|
441
452
|
if ("linebreak" !== run.source.type) {
|
|
442
453
|
const runJustificationRange = run.justificationRange?.cloneTranslated(runOffset);
|
|
443
454
|
this.justificationRange.extendRange(runJustificationRange ?? runLayoutRange);
|
|
444
455
|
}
|
|
445
|
-
if (run.source.type
|
|
456
|
+
if ("tab" === run.source.type) {
|
|
446
457
|
this.lengthFromLastTab = 0;
|
|
447
458
|
}
|
|
448
459
|
else {
|
|
449
460
|
this.lengthFromLastTab += run.range.xLength();
|
|
450
461
|
}
|
|
451
462
|
}
|
|
463
|
+
this.range.setFrom(this.runRange);
|
|
464
|
+
if (this._marker) {
|
|
465
|
+
const indentation = this.range.low.x;
|
|
466
|
+
const x = indentation - (this._marker.style.tabInterval / 2) - this._marker.range.xLength();
|
|
467
|
+
const runHeight = this._marker.range.yLength();
|
|
468
|
+
const runOffset = {
|
|
469
|
+
x,
|
|
470
|
+
y: (lineHeight - runHeight) / 2 // Center the marker vertically in the line.
|
|
471
|
+
};
|
|
472
|
+
this._marker.offsetFromLine = runOffset;
|
|
473
|
+
const markerRange = this._marker.range.cloneTranslated(this._marker.offsetFromLine);
|
|
474
|
+
this.range.extendRange(markerRange);
|
|
475
|
+
}
|
|
452
476
|
}
|
|
453
|
-
toResult(
|
|
477
|
+
toResult() {
|
|
454
478
|
return {
|
|
455
|
-
|
|
456
|
-
|
|
479
|
+
runs: this.runs.map((x) => x.toResult()),
|
|
480
|
+
marker: this.marker?.toResult(),
|
|
457
481
|
range: this.range.toJSON(),
|
|
458
482
|
justificationRange: this.justificationRange.toJSON(),
|
|
459
483
|
offsetFromDocument: this.offsetFromDocument,
|
|
@@ -488,7 +512,7 @@ class TextBlockLayout {
|
|
|
488
512
|
}
|
|
489
513
|
toResult() {
|
|
490
514
|
return {
|
|
491
|
-
lines: this.lines.map((x) => x.toResult(
|
|
515
|
+
lines: this.lines.map((x) => x.toResult()),
|
|
492
516
|
range: this.range.toJSON(),
|
|
493
517
|
};
|
|
494
518
|
}
|
|
@@ -502,59 +526,151 @@ class TextBlockLayout {
|
|
|
502
526
|
}
|
|
503
527
|
populateLines(context) {
|
|
504
528
|
const doc = this.source;
|
|
505
|
-
if (doc.
|
|
529
|
+
if (!doc.children || doc.children.length === 0) {
|
|
506
530
|
return;
|
|
507
531
|
}
|
|
508
|
-
|
|
509
|
-
let
|
|
510
|
-
for (
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
532
|
+
let curLine = new LineLayout(doc.children[0], doc.children[0].styleOverrides, context);
|
|
533
|
+
let childIndex = 0;
|
|
534
|
+
for (const child of doc.children) {
|
|
535
|
+
curLine = this.populateComponent(child, childIndex++, context, doc.width, curLine, doc, doc.styleOverrides);
|
|
536
|
+
}
|
|
537
|
+
if (curLine.runs.length > 0) {
|
|
538
|
+
this.flushLine(context, curLine, doc.styleOverrides);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
populateComponent(component, componentIndex, context, docWidth, curLine, parent, cumulativeOverrides, depth = 0) {
|
|
542
|
+
cumulativeOverrides = { ...cumulativeOverrides, ...component.styleOverrides };
|
|
543
|
+
switch (component.type) {
|
|
544
|
+
case "list": {
|
|
545
|
+
// If we have any runs in the current line, flush it before starting the list.
|
|
546
|
+
if (curLine.runs.length > 0) {
|
|
547
|
+
curLine = this.flushLine(context, curLine, cumulativeOverrides, component.children[0], true, depth + 1);
|
|
524
548
|
}
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
curLine.append(run);
|
|
530
|
-
continue;
|
|
549
|
+
else {
|
|
550
|
+
// If not, we need to apply the indentation for the list to the first line.
|
|
551
|
+
curLine.offsetFromDocument.x = context.textStyleResolver.resolveIndentation(cumulativeOverrides, depth + 1);
|
|
552
|
+
curLine.depth = depth + 1;
|
|
531
553
|
}
|
|
532
|
-
//
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
curLine.
|
|
538
|
-
|
|
554
|
+
// Iterate through each list item, setting the marker and populating its contents.
|
|
555
|
+
component.children.forEach((child, index) => {
|
|
556
|
+
const markerContent = context.textStyleResolver.resolveMarkerText(cumulativeOverrides, index + 1);
|
|
557
|
+
const markerRun = core_common_1.TextRun.create({ content: markerContent });
|
|
558
|
+
curLine.marker = RunLayout.create(markerRun, context, cumulativeOverrides);
|
|
559
|
+
curLine = this.populateComponent(child, index, context, docWidth, curLine, component, cumulativeOverrides, depth + 1);
|
|
560
|
+
});
|
|
561
|
+
// Lastly flush the line.
|
|
562
|
+
const nextSibling = parent?.children[componentIndex + 1];
|
|
563
|
+
if (curLine && nextSibling) {
|
|
564
|
+
curLine = this.flushLine(context, curLine, cumulativeOverrides, nextSibling, true, depth);
|
|
539
565
|
}
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
566
|
+
break;
|
|
567
|
+
}
|
|
568
|
+
case "paragraph": {
|
|
569
|
+
// Iterate through each paragraph child (either a list or a run), populating its contents.
|
|
570
|
+
component.children.forEach((child, index) => {
|
|
571
|
+
curLine = this.populateComponent(child, index, context, docWidth, curLine, component, cumulativeOverrides, depth);
|
|
572
|
+
});
|
|
573
|
+
// Lastly flush the line.
|
|
574
|
+
const nextSibling = parent?.children[componentIndex + 1];
|
|
575
|
+
if (curLine && nextSibling) {
|
|
576
|
+
curLine = this.flushLine(context, curLine, cumulativeOverrides, nextSibling, true, depth);
|
|
577
|
+
}
|
|
578
|
+
break;
|
|
579
|
+
}
|
|
580
|
+
case "text": {
|
|
581
|
+
const layout = RunLayout.create(component, context, cumulativeOverrides);
|
|
582
|
+
// Text can be word-wrapped, so we need to split it into multiple runs if necessary.
|
|
583
|
+
if (docWidth > 0) {
|
|
584
|
+
layout.split(context).forEach(r => { curLine = this.populateRun(curLine, r, context, cumulativeOverrides, docWidth); });
|
|
545
585
|
}
|
|
546
586
|
else {
|
|
547
|
-
|
|
548
|
-
curLine = this.flushLine(context, curLine);
|
|
549
|
-
// Recompute tab shift if applicable
|
|
550
|
-
applyTabShift(run, curLine, context);
|
|
551
|
-
curLine.append(run);
|
|
587
|
+
curLine = this.populateRun(curLine, layout, context, cumulativeOverrides, docWidth);
|
|
552
588
|
}
|
|
589
|
+
break;
|
|
553
590
|
}
|
|
591
|
+
case "fraction":
|
|
592
|
+
case "tab": {
|
|
593
|
+
const layout = RunLayout.create(component, context, cumulativeOverrides);
|
|
594
|
+
curLine = this.populateRun(curLine, layout, context, cumulativeOverrides, docWidth);
|
|
595
|
+
break;
|
|
596
|
+
}
|
|
597
|
+
case "linebreak": {
|
|
598
|
+
const layout = RunLayout.create(component, context, cumulativeOverrides);
|
|
599
|
+
curLine.append(layout);
|
|
600
|
+
curLine = this.flushLine(context, curLine, cumulativeOverrides, undefined, undefined, depth);
|
|
601
|
+
break;
|
|
602
|
+
}
|
|
603
|
+
default: break;
|
|
554
604
|
}
|
|
555
|
-
|
|
556
|
-
|
|
605
|
+
return curLine;
|
|
606
|
+
}
|
|
607
|
+
;
|
|
608
|
+
populateRun(curLine, run, context, cumulativeOverrides, docWidth) {
|
|
609
|
+
// If this is a tab, we need to apply the tab shift first, and then we can treat it like a text run.
|
|
610
|
+
applyTabShift(run, curLine, context);
|
|
611
|
+
// If our width is not set, then we don't have to compute word wrapping, so just append the run, and continue.
|
|
612
|
+
if (docWidth <= 0) {
|
|
613
|
+
curLine.append(run);
|
|
614
|
+
return curLine;
|
|
615
|
+
}
|
|
616
|
+
// If not, we need to determine if we can append this run to the current line without exceeding the document width or if we need to word wrap.
|
|
617
|
+
const runWidth = run.justificationRange?.xLength() ?? run.range.xLength();
|
|
618
|
+
const lineWidth = curLine.runRange.xLength();
|
|
619
|
+
const newWidth = runWidth + lineWidth + curLine.offsetFromDocument.x;
|
|
620
|
+
// If true, then no word wrapping is required, so we can append to the current line.
|
|
621
|
+
if (newWidth < docWidth || core_geometry_1.Geometry.isAlmostEqualNumber(newWidth, docWidth, core_geometry_1.Geometry.smallMetricDistance)) {
|
|
622
|
+
curLine.append(run);
|
|
623
|
+
return curLine;
|
|
624
|
+
}
|
|
625
|
+
// If not, do word wrapping
|
|
626
|
+
if (curLine.runs.length === 0) {
|
|
627
|
+
curLine.append(run);
|
|
628
|
+
// Lastly, flush line
|
|
629
|
+
curLine = this.flushLine(context, curLine, cumulativeOverrides, undefined, undefined, curLine.depth);
|
|
557
630
|
}
|
|
631
|
+
else {
|
|
632
|
+
// First, flush line
|
|
633
|
+
curLine = this.flushLine(context, curLine, cumulativeOverrides, undefined, undefined, curLine.depth);
|
|
634
|
+
// Recompute tab shift if applicable
|
|
635
|
+
applyTabShift(run, curLine, context);
|
|
636
|
+
curLine.append(run);
|
|
637
|
+
}
|
|
638
|
+
return curLine;
|
|
639
|
+
}
|
|
640
|
+
;
|
|
641
|
+
flushLine(context, curLine, cumulativeOverrides, next, newParagraph = false, depth = 0) {
|
|
642
|
+
next = next ?? curLine.source;
|
|
643
|
+
// We want to guarantee that each layout line has at least one run.
|
|
644
|
+
if (curLine.runs.length === 0) {
|
|
645
|
+
if (this.lines.length === 0 || this._back.runs.length === 0) {
|
|
646
|
+
return new LineLayout(next, cumulativeOverrides, context, depth);
|
|
647
|
+
}
|
|
648
|
+
if (curLine.source.type !== "linebreak") {
|
|
649
|
+
const newLine = new LineLayout(next, cumulativeOverrides, context, depth);
|
|
650
|
+
newLine.offsetFromDocument.y -= context.textStyleResolver.blockSettings.paragraphSpacingFactor * context.textStyleResolver.blockSettings.lineHeight;
|
|
651
|
+
return newLine;
|
|
652
|
+
}
|
|
653
|
+
const run = curLine.source.clone();
|
|
654
|
+
curLine.append(RunLayout.create(run, context, cumulativeOverrides));
|
|
655
|
+
}
|
|
656
|
+
// Line origin is its baseline.
|
|
657
|
+
const lineOffset = { ...curLine.offsetFromDocument }; // Start with the line's original offset, which includes indentation.
|
|
658
|
+
lineOffset.y -= curLine.range.yLength(); // Shift down the baseline
|
|
659
|
+
// Place it below any existing lines
|
|
660
|
+
if (this.lines.length > 0) {
|
|
661
|
+
lineOffset.y += this._back.offsetFromDocument.y;
|
|
662
|
+
lineOffset.y -= context.textStyleResolver.blockSettings.lineSpacingFactor * context.textStyleResolver.blockSettings.lineHeight;
|
|
663
|
+
}
|
|
664
|
+
curLine.offsetFromDocument = lineOffset;
|
|
665
|
+
// Update document range from computed line range and position
|
|
666
|
+
this.textRange.extendRange(curLine.range.cloneTranslated(lineOffset));
|
|
667
|
+
this.lines.push(curLine);
|
|
668
|
+
if (newParagraph) {
|
|
669
|
+
const newLine = new LineLayout(next, cumulativeOverrides, context, depth);
|
|
670
|
+
newLine.offsetFromDocument.y -= context.textStyleResolver.blockSettings.paragraphSpacingFactor * context.textStyleResolver.blockSettings.lineHeight;
|
|
671
|
+
return newLine;
|
|
672
|
+
}
|
|
673
|
+
return new LineLayout(next, cumulativeOverrides, context, depth);
|
|
558
674
|
}
|
|
559
675
|
justifyLines() {
|
|
560
676
|
// We don't want to justify empty text, or a single line of text whose width is 0. By default text is already left justified.
|
|
@@ -565,7 +681,7 @@ class TextBlockLayout {
|
|
|
565
681
|
const docWidth = this.source.width;
|
|
566
682
|
let minOffset = Number.MAX_VALUE;
|
|
567
683
|
for (const line of this.lines) {
|
|
568
|
-
const lineWidth = line.justificationRange.xLength();
|
|
684
|
+
const lineWidth = line.justificationRange.xLength() + line.offsetFromDocument.x;
|
|
569
685
|
let offset = docWidth - lineWidth;
|
|
570
686
|
if ("center" === this.source.justification) {
|
|
571
687
|
offset = offset / 2;
|
|
@@ -579,34 +695,6 @@ class TextBlockLayout {
|
|
|
579
695
|
this.textRange.high.x += minOffset;
|
|
580
696
|
}
|
|
581
697
|
}
|
|
582
|
-
flushLine(context, line, nextParagraph) {
|
|
583
|
-
nextParagraph = nextParagraph ?? line.source;
|
|
584
|
-
// We want to guarantee that each layout line has at least one run.
|
|
585
|
-
if (line.runs.length === 0) {
|
|
586
|
-
// If we're empty, there should always be a preceding run, and it should be a line break.
|
|
587
|
-
if (this.lines.length === 0 || this._back.runs.length === 0) {
|
|
588
|
-
return new LineLayout(nextParagraph);
|
|
589
|
-
}
|
|
590
|
-
const prevRun = this._back.back.source;
|
|
591
|
-
(0, core_bentley_1.assert)(prevRun.type === "linebreak");
|
|
592
|
-
if (prevRun.type !== "linebreak") {
|
|
593
|
-
return new LineLayout(nextParagraph);
|
|
594
|
-
}
|
|
595
|
-
line.append(RunLayout.create(prevRun.clone(), line.source, context));
|
|
596
|
-
}
|
|
597
|
-
// Line origin is its baseline.
|
|
598
|
-
const lineOffset = { x: 0, y: -line.range.yLength() };
|
|
599
|
-
// Place it below any existing lines
|
|
600
|
-
if (this.lines.length > 0) {
|
|
601
|
-
lineOffset.y += this._back.offsetFromDocument.y;
|
|
602
|
-
lineOffset.y -= context.textStyleResolver.blockSettings.lineSpacingFactor * context.textStyleResolver.blockSettings.lineHeight;
|
|
603
|
-
}
|
|
604
|
-
line.offsetFromDocument = lineOffset;
|
|
605
|
-
// Update document range from computed line range and position
|
|
606
|
-
this.textRange.extendRange(line.range.cloneTranslated(lineOffset));
|
|
607
|
-
this.lines.push(line);
|
|
608
|
-
return new LineLayout(nextParagraph);
|
|
609
|
-
}
|
|
610
698
|
applyMargins(margins) {
|
|
611
699
|
this.range = this.textRange.clone();
|
|
612
700
|
if (this.range.isNull)
|