@itwin/core-frontend 5.0.0-dev.4 → 5.0.0-dev.41
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 +42 -1
- package/lib/cjs/AccuDraw.d.ts +63 -8
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +118 -16
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js +5 -5
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BriefcaseTxns.d.ts +2 -2
- package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
- package/lib/cjs/BriefcaseTxns.js.map +1 -1
- package/lib/cjs/DrawingViewState.js +9 -9
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js +5 -5
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +62 -64
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +4 -1
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +24 -21
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IModelRoutingContext.d.ts +0 -3
- package/lib/cjs/IModelRoutingContext.d.ts.map +1 -1
- package/lib/cjs/IModelRoutingContext.js +5 -4
- package/lib/cjs/IModelRoutingContext.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +4 -3
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +1 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/NativeApp.js +15 -17
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NativeAppLogger.js +1 -1
- package/lib/cjs/NativeAppLogger.js.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +6 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +14 -2
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/cjs/SelectionSet.d.ts +84 -35
- package/lib/cjs/SelectionSet.d.ts.map +1 -1
- package/lib/cjs/SelectionSet.js +419 -163
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/Sprites.js +1 -1
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/ViewCreator2d.js +3 -3
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js +5 -5
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewState.js +2 -2
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewingSpace.js +9 -9
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.js +41 -41
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.d.ts +4 -0
- package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js +80 -7
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/common/internal/render/DisplayParams.js +1 -1
- package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +1 -1
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/cjs/render/MockRender.js +3 -3
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BatchState.js +1 -1
- package/lib/cjs/render/webgl/BatchState.js.map +1 -1
- package/lib/cjs/render/webgl/ColorInfo.js +2 -2
- package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/render/webgl/Diagnostics.js +4 -4
- package/lib/cjs/render/webgl/Diagnostics.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +4 -4
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/IModelFrameLifecycle.js +4 -4
- package/lib/cjs/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +3 -3
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/Material.js +4 -4
- package/lib/cjs/render/webgl/Material.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/RenderState.js +1 -1
- package/lib/cjs/render/webgl/RenderState.js.map +1 -1
- package/lib/cjs/render/webgl/Target.js +1 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +39 -39
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +3 -3
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/tile/CesiumAssetProvider.js +1 -1
- package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +6 -1
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +79 -2
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlParser.js +2 -2
- package/lib/cjs/tile/ImdlParser.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/MeshoptCompression.d.ts +9 -0
- package/lib/cjs/tile/MeshoptCompression.d.ts.map +1 -1
- package/lib/cjs/tile/MeshoptCompression.js +98 -66
- package/lib/cjs/tile/MeshoptCompression.js.map +1 -1
- package/lib/cjs/tile/map/ArcGISTileMap.js +1 -1
- package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +6 -6
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +2 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +5 -2
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +7 -7
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +8 -8
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileAvailability.js +1 -1
- package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +9 -9
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tile/map/WmsCapabilities.js +2 -2
- package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.d.ts +1 -0
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +22 -21
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +40 -40
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/EditManipulator.js +2 -2
- package/lib/cjs/tools/EditManipulator.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js +11 -4
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/IdleTool.js +2 -2
- package/lib/cjs/tools/IdleTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +39 -39
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.js +7 -7
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.js +10 -10
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +36 -24
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js +19 -19
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.js +63 -63
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.js +37 -37
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/ImdlParser/Worker.js +2 -2
- package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/esm/AccuDraw.d.ts +63 -8
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +119 -17
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js +1 -1
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js +5 -5
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BriefcaseTxns.d.ts +2 -2
- package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
- package/lib/esm/BriefcaseTxns.js.map +1 -1
- package/lib/esm/DrawingViewState.js +9 -9
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.js +5 -5
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +63 -65
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +4 -1
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +20 -17
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IModelRoutingContext.d.ts +0 -3
- package/lib/esm/IModelRoutingContext.d.ts.map +1 -1
- package/lib/esm/IModelRoutingContext.js +3 -2
- package/lib/esm/IModelRoutingContext.js.map +1 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +4 -3
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +1 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/NativeApp.js +15 -17
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NativeAppLogger.js +1 -1
- package/lib/esm/NativeAppLogger.js.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +6 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js +14 -2
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/esm/SelectionSet.d.ts +84 -35
- package/lib/esm/SelectionSet.d.ts.map +1 -1
- package/lib/esm/SelectionSet.js +418 -162
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/Sprites.js +1 -1
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/ViewCreator2d.js +3 -3
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.js +5 -5
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewState.js +2 -2
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewingSpace.js +9 -9
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.js +41 -41
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.d.ts +4 -0
- package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js +80 -7
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/common/internal/render/DisplayParams.js +1 -1
- package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitives.js +2 -2
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js +1 -1
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/esm/render/MockRender.js +3 -3
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BatchState.js +1 -1
- package/lib/esm/render/webgl/BatchState.js.map +1 -1
- package/lib/esm/render/webgl/ColorInfo.js +2 -2
- package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/render/webgl/Diagnostics.js +4 -4
- package/lib/esm/render/webgl/Diagnostics.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +4 -4
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/IModelFrameLifecycle.js +4 -4
- package/lib/esm/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +3 -3
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/Material.js +4 -4
- package/lib/esm/render/webgl/Material.js.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/RenderState.js +1 -1
- package/lib/esm/render/webgl/RenderState.js.map +1 -1
- package/lib/esm/render/webgl/Target.js +1 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Technique.js +39 -39
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/render/webgl/Texture.js +3 -3
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/tile/CesiumAssetProvider.js +1 -1
- package/lib/esm/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +6 -1
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +79 -2
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlParser.js +2 -2
- package/lib/esm/tile/ImdlParser.js.map +1 -1
- package/lib/esm/tile/ImdlReader.js +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/MeshoptCompression.d.ts +9 -0
- package/lib/esm/tile/MeshoptCompression.d.ts.map +1 -1
- package/lib/esm/tile/MeshoptCompression.js +98 -44
- package/lib/esm/tile/MeshoptCompression.js.map +1 -1
- package/lib/esm/tile/map/ArcGISTileMap.js +1 -1
- package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +6 -6
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +2 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +5 -2
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +2 -2
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +7 -7
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js +8 -8
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileAvailability.js +1 -1
- package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +9 -9
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tile/map/WmsCapabilities.js +2 -2
- package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.d.ts +1 -0
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +22 -21
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +40 -40
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/EditManipulator.js +2 -2
- package/lib/esm/tools/EditManipulator.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
- package/lib/esm/tools/ElementSetTool.js +11 -4
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/IdleTool.js +2 -2
- package/lib/esm/tools/IdleTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
- package/lib/esm/tools/MeasureTool.js +40 -40
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.js +7 -7
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.js +10 -10
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +36 -24
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.js +19 -19
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ToolSettings.js +63 -63
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.js +37 -37
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/ImdlParser/Worker.js +2 -2
- package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/public/locales/en/CoreTools.json +1 -0
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +20 -21
package/lib/cjs/SelectionSet.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
7
|
exports.SelectionSet = exports.HiliteSet = exports.SelectionSetEventType = void 0;
|
|
4
|
-
/*---------------------------------------------------------------------------------------------
|
|
5
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
-
*--------------------------------------------------------------------------------------------*/
|
|
8
8
|
/** @packageDocumentation
|
|
9
9
|
* @module SelectionSet
|
|
10
10
|
*/
|
|
@@ -16,85 +16,38 @@ const IModelApp_1 = require("./IModelApp");
|
|
|
16
16
|
*/
|
|
17
17
|
var SelectionSetEventType;
|
|
18
18
|
(function (SelectionSetEventType) {
|
|
19
|
-
/**
|
|
19
|
+
/** Ids have been added to the set. */
|
|
20
20
|
SelectionSetEventType[SelectionSetEventType["Add"] = 0] = "Add";
|
|
21
|
-
/**
|
|
21
|
+
/** Ids have been removed from the set. */
|
|
22
22
|
SelectionSetEventType[SelectionSetEventType["Remove"] = 1] = "Remove";
|
|
23
|
-
/** Some
|
|
23
|
+
/** Some ids have been added to the set and others have been removed. */
|
|
24
24
|
SelectionSetEventType[SelectionSetEventType["Replace"] = 2] = "Replace";
|
|
25
|
-
/** All
|
|
25
|
+
/** All ids have been removed from the set. */
|
|
26
26
|
SelectionSetEventType[SelectionSetEventType["Clear"] = 3] = "Clear";
|
|
27
27
|
})(SelectionSetEventType || (exports.SelectionSetEventType = SelectionSetEventType = {}));
|
|
28
|
-
/**
|
|
28
|
+
/** Holds a set of hilited entities and makes any changes to the set by passing the change
|
|
29
|
+
* function to given `change` callback.
|
|
29
30
|
* @internal
|
|
30
31
|
*/
|
|
31
32
|
class HilitedIds extends core_bentley_1.Id64.Uint32Set {
|
|
32
|
-
constructor(
|
|
33
|
+
constructor(_change) {
|
|
33
34
|
super();
|
|
34
|
-
this.
|
|
35
|
-
this._iModel = iModel;
|
|
35
|
+
this._change = _change;
|
|
36
36
|
}
|
|
37
37
|
add(low, high) {
|
|
38
|
-
super.add(low, high);
|
|
39
|
-
this.onChanged();
|
|
38
|
+
this._change(() => super.add(low, high));
|
|
40
39
|
}
|
|
41
40
|
delete(low, high) {
|
|
42
|
-
super.delete(low, high);
|
|
43
|
-
this.onChanged();
|
|
41
|
+
this._change(() => super.delete(low, high));
|
|
44
42
|
}
|
|
45
43
|
clear() {
|
|
46
|
-
super.clear();
|
|
47
|
-
this.onChanged();
|
|
44
|
+
this._change(() => super.clear());
|
|
48
45
|
}
|
|
49
46
|
addIds(ids) {
|
|
50
|
-
this.
|
|
47
|
+
this._change(() => super.addIds(ids));
|
|
51
48
|
}
|
|
52
49
|
deleteIds(ids) {
|
|
53
|
-
this.
|
|
54
|
-
}
|
|
55
|
-
onChanged() {
|
|
56
|
-
if (!this._changing)
|
|
57
|
-
IModelApp_1.IModelApp.viewManager.onSelectionSetChanged(this._iModel);
|
|
58
|
-
}
|
|
59
|
-
change(func) {
|
|
60
|
-
const changing = this._changing;
|
|
61
|
-
this._changing = false;
|
|
62
|
-
func();
|
|
63
|
-
this._changing = changing;
|
|
64
|
-
this.onChanged();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/** Keeps the set of hilited elements in sync with the selection set.
|
|
68
|
-
* @internal
|
|
69
|
-
*/
|
|
70
|
-
class HilitedElementIds extends HilitedIds {
|
|
71
|
-
constructor(iModel, syncWithSelectionSet = true) {
|
|
72
|
-
super(iModel);
|
|
73
|
-
this.wantSyncWithSelectionSet = syncWithSelectionSet;
|
|
74
|
-
}
|
|
75
|
-
get wantSyncWithSelectionSet() { return undefined !== this._removeListener; }
|
|
76
|
-
set wantSyncWithSelectionSet(want) {
|
|
77
|
-
if (want === this.wantSyncWithSelectionSet)
|
|
78
|
-
return;
|
|
79
|
-
if (want) {
|
|
80
|
-
const set = this._iModel.selectionSet;
|
|
81
|
-
this._removeListener = set.onChanged.addListener((ev) => this.change(() => this.processSelectionSetEvent(ev)));
|
|
82
|
-
this.processSelectionSetEvent({
|
|
83
|
-
set,
|
|
84
|
-
type: SelectionSetEventType.Add,
|
|
85
|
-
added: set.elements,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this._removeListener();
|
|
90
|
-
this._removeListener = undefined;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
processSelectionSetEvent(ev) {
|
|
94
|
-
if (SelectionSetEventType.Add !== ev.type)
|
|
95
|
-
this.deleteIds(ev.removed);
|
|
96
|
-
if (ev.type === SelectionSetEventType.Add || ev.type === SelectionSetEventType.Replace)
|
|
97
|
-
this.addIds(ev.added);
|
|
50
|
+
this._change(() => super.deleteIds(ids));
|
|
98
51
|
}
|
|
99
52
|
}
|
|
100
53
|
/** A set of *hilited* elements for an [[IModelConnection]], by element id.
|
|
@@ -116,8 +69,9 @@ class HilitedElementIds extends HilitedIds {
|
|
|
116
69
|
* @extensions
|
|
117
70
|
*/
|
|
118
71
|
class HiliteSet {
|
|
119
|
-
|
|
120
|
-
|
|
72
|
+
#mode;
|
|
73
|
+
#selectionChangesListener;
|
|
74
|
+
#changing;
|
|
121
75
|
/** Controls how the sets of hilited [[models]] and [[subcategories]] interact with one another.
|
|
122
76
|
* By default they are treated as a union: a [Feature]($common) is hilited if either its model **or** its subcategory is hilited.
|
|
123
77
|
* This can be changed to an intersection such that a [Feature]($common) is hilited only if both its model **and** subcategory are hilited.
|
|
@@ -125,189 +79,491 @@ class HiliteSet {
|
|
|
125
79
|
* [[elements]] is always hilited regardless of its model or subcategories.
|
|
126
80
|
*/
|
|
127
81
|
get modelSubCategoryMode() {
|
|
128
|
-
return this
|
|
82
|
+
return this.#mode;
|
|
129
83
|
}
|
|
130
84
|
set modelSubCategoryMode(mode) {
|
|
131
|
-
if (mode === this
|
|
85
|
+
if (mode === this.#mode) {
|
|
132
86
|
return;
|
|
87
|
+
}
|
|
133
88
|
this.onModelSubCategoryModeChanged.raiseEvent(mode);
|
|
134
|
-
this
|
|
89
|
+
this.#mode = mode;
|
|
135
90
|
}
|
|
136
91
|
/** Construct a HiliteSet
|
|
137
92
|
* @param iModel The iModel containing the entities to be hilited.
|
|
138
|
-
* @param syncWithSelectionSet If true, the
|
|
93
|
+
* @param syncWithSelectionSet If true, the hilite set contents will be synchronized with those in the `iModel`'s [[SelectionSet]].
|
|
139
94
|
*/
|
|
140
95
|
constructor(iModel, syncWithSelectionSet = true) {
|
|
141
96
|
this.iModel = iModel;
|
|
142
|
-
this
|
|
97
|
+
this.#mode = "union";
|
|
98
|
+
this.#changing = false;
|
|
143
99
|
/** Event raised just before changing the value of [[modelSubCategoryMode]]. */
|
|
144
100
|
this.onModelSubCategoryModeChanged = new core_bentley_1.BeEvent();
|
|
145
|
-
this.
|
|
146
|
-
this.subcategories = new HilitedIds(
|
|
147
|
-
this.models = new HilitedIds(
|
|
101
|
+
this.elements = new HilitedIds((func) => this.#change(func));
|
|
102
|
+
this.subcategories = new HilitedIds((func) => this.#change(func));
|
|
103
|
+
this.models = new HilitedIds((func) => this.#change(func));
|
|
104
|
+
this.wantSyncWithSelectionSet = syncWithSelectionSet;
|
|
148
105
|
}
|
|
149
|
-
/** Control whether the
|
|
106
|
+
/** Control whether the hilite set will be synchronized with the contents of the [[SelectionSet]].
|
|
150
107
|
* By default they are synchronized. Applications that override this take responsibility for managing the set of hilited entities.
|
|
151
108
|
* When turning synchronization off, the contents of the HiliteSet will remain unchanged.
|
|
152
109
|
* When turning synchronization on, the current contents of the HiliteSet will be preserved, and the contents of the selection set will be added to them.
|
|
153
110
|
*/
|
|
154
|
-
get wantSyncWithSelectionSet() {
|
|
155
|
-
|
|
111
|
+
get wantSyncWithSelectionSet() {
|
|
112
|
+
return !!this.#selectionChangesListener;
|
|
113
|
+
}
|
|
114
|
+
set wantSyncWithSelectionSet(want) {
|
|
115
|
+
if (want === this.wantSyncWithSelectionSet) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (want) {
|
|
119
|
+
const set = this.iModel.selectionSet;
|
|
120
|
+
this.#selectionChangesListener = set.onChanged.addListener((ev) => this.#processSelectionSetEvent(ev));
|
|
121
|
+
this.add(set.active);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.#selectionChangesListener();
|
|
125
|
+
this.#selectionChangesListener = undefined;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
#onChanged() {
|
|
129
|
+
if (!this.#changing) {
|
|
130
|
+
IModelApp_1.IModelApp.viewManager.onSelectionSetChanged(this.iModel);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
#change(func) {
|
|
134
|
+
const changing = this.#changing;
|
|
135
|
+
this.#changing = true;
|
|
136
|
+
try {
|
|
137
|
+
func();
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
this.#changing = changing;
|
|
141
|
+
}
|
|
142
|
+
this.#onChanged();
|
|
143
|
+
}
|
|
144
|
+
#processSelectionSetEvent(ev) {
|
|
145
|
+
switch (ev.type) {
|
|
146
|
+
case SelectionSetEventType.Add:
|
|
147
|
+
return this.add(ev.additions);
|
|
148
|
+
case SelectionSetEventType.Replace:
|
|
149
|
+
return this.#change(() => {
|
|
150
|
+
this.add(ev.additions);
|
|
151
|
+
this.remove(ev.removals);
|
|
152
|
+
});
|
|
153
|
+
case SelectionSetEventType.Remove:
|
|
154
|
+
case SelectionSetEventType.Clear:
|
|
155
|
+
return this.remove(ev.removals);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/** Adds a collection of geometric element, model and subcategory ids to this hilite set. */
|
|
159
|
+
add(additions) {
|
|
160
|
+
this.#change(() => {
|
|
161
|
+
additions.elements && this.elements.addIds(additions.elements);
|
|
162
|
+
additions.models && this.models.addIds(additions.models);
|
|
163
|
+
additions.subcategories && this.subcategories.addIds(additions.subcategories);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/** Removes a collection of geometric element, model and subcategory ids from this hilite set. */
|
|
167
|
+
remove(removals) {
|
|
168
|
+
this.#change(() => {
|
|
169
|
+
removals.elements && this.elements.deleteIds(removals.elements);
|
|
170
|
+
removals.models && this.models.deleteIds(removals.models);
|
|
171
|
+
removals.subcategories && this.subcategories.deleteIds(removals.subcategories);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/** Replaces ids currently in the hilite set with the given collection. */
|
|
175
|
+
replace(ids) {
|
|
176
|
+
this.#change(() => {
|
|
177
|
+
this.clear();
|
|
178
|
+
this.add(ids);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
156
181
|
/** Remove all elements from the hilited set. */
|
|
157
182
|
clear() {
|
|
158
|
-
this
|
|
159
|
-
|
|
160
|
-
|
|
183
|
+
this.#change(() => {
|
|
184
|
+
this.elements.clear();
|
|
185
|
+
this.models.clear();
|
|
186
|
+
this.subcategories.clear();
|
|
187
|
+
});
|
|
161
188
|
}
|
|
162
189
|
/** Returns true if nothing is hilited. */
|
|
163
|
-
get isEmpty() {
|
|
190
|
+
get isEmpty() {
|
|
191
|
+
return this.elements.isEmpty && this.subcategories.isEmpty && this.models.isEmpty;
|
|
192
|
+
}
|
|
164
193
|
/** Toggle the hilited state of one or more elements.
|
|
165
194
|
* @param arg the ID(s) of the elements whose state is to be toggled.
|
|
166
195
|
* @param onOff True to add the elements to the hilited set, false to remove them.
|
|
196
|
+
* @deprecated in 5.0. Use [[add]], [[remove]], [[replace]] instead.
|
|
167
197
|
*/
|
|
168
198
|
setHilite(arg, onOff) {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
this.elements.deleteId(id);
|
|
199
|
+
if (onOff) {
|
|
200
|
+
this.add({ elements: arg });
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
this.remove({ elements: arg });
|
|
175
204
|
}
|
|
176
|
-
if (oldSize !== this.elements.size)
|
|
177
|
-
IModelApp_1.IModelApp.viewManager.onSelectionSetChanged(this.iModel);
|
|
178
205
|
}
|
|
179
206
|
}
|
|
180
207
|
exports.HiliteSet = HiliteSet;
|
|
181
|
-
/** A set of *currently selected* elements for an IModelConnection
|
|
182
|
-
*
|
|
208
|
+
/** A set of *currently selected* geometric elements, models and subcategories for an `IModelConnection`.
|
|
209
|
+
* Generally, selected elements are displayed with a customizable hilite effect within a [[Viewport]], see [[HiliteSet]].
|
|
183
210
|
* @see [Hilite.Settings]($common) for customization of the hilite effect.
|
|
184
211
|
* @public
|
|
185
212
|
* @extensions
|
|
186
213
|
*/
|
|
187
214
|
class SelectionSet {
|
|
215
|
+
#selection;
|
|
188
216
|
/** The IDs of the selected elements.
|
|
189
217
|
* @note Do not modify this set directly. Instead, use methods like [[SelectionSet.add]].
|
|
190
218
|
*/
|
|
191
|
-
get elements() {
|
|
219
|
+
get elements() {
|
|
220
|
+
return this.#selection.elements;
|
|
221
|
+
}
|
|
222
|
+
/** The IDs of the selected models.
|
|
223
|
+
* @note Do not modify this set directly. Instead, use methods like [[SelectionSet.add]].
|
|
224
|
+
*/
|
|
225
|
+
get models() {
|
|
226
|
+
return this.#selection.models;
|
|
227
|
+
}
|
|
228
|
+
/** The IDs of the selected subcategories.
|
|
229
|
+
* @note Do not modify this set directly. Instead, use methods like [[SelectionSet.add]].
|
|
230
|
+
*/
|
|
231
|
+
get subcategories() {
|
|
232
|
+
return this.#selection.subcategories;
|
|
233
|
+
}
|
|
234
|
+
/** Get the active selection as a collection of geometric element, model and subcategory ids.
|
|
235
|
+
* @note Do not modify the sets in returned collection directly. Instead, use methods like [[SelectionSet.add]].
|
|
236
|
+
*/
|
|
237
|
+
get active() {
|
|
238
|
+
return { ...this.#selection };
|
|
239
|
+
}
|
|
192
240
|
constructor(iModel) {
|
|
193
241
|
this.iModel = iModel;
|
|
194
|
-
this
|
|
195
|
-
/** Called whenever elements are added or removed from this SelectionSet */
|
|
242
|
+
/** Called whenever ids are added or removed from this `SelectionSet` */
|
|
196
243
|
this.onChanged = new core_bentley_1.BeEvent();
|
|
244
|
+
this.#selection = {
|
|
245
|
+
elements: new Set(),
|
|
246
|
+
models: new Set(),
|
|
247
|
+
subcategories: new Set(),
|
|
248
|
+
};
|
|
197
249
|
}
|
|
198
|
-
sendChangedEvent(ev) {
|
|
250
|
+
#sendChangedEvent(ev) {
|
|
199
251
|
IModelApp_1.IModelApp.viewManager.onSelectionSetChanged(this.iModel);
|
|
200
252
|
this.onChanged.raiseEvent(ev);
|
|
201
253
|
}
|
|
202
254
|
/** Get the number of entries in this selection set. */
|
|
203
|
-
get size() {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
/**
|
|
255
|
+
get size() {
|
|
256
|
+
return this.elements.size + this.models.size + this.subcategories.size;
|
|
257
|
+
}
|
|
258
|
+
/** Check whether there are any ids in this selection set. */
|
|
259
|
+
get isActive() {
|
|
260
|
+
return this.elements.size > 0 || this.models.size > 0 || this.subcategories.size > 0;
|
|
261
|
+
}
|
|
262
|
+
/** Return true if elemId is in this `SelectionSet`.
|
|
207
263
|
* @see [[isSelected]]
|
|
264
|
+
* @deprecated in 5.0. Use `SelectionSet.elements.has(elemId)` instead.
|
|
208
265
|
*/
|
|
209
|
-
has(elemId) {
|
|
266
|
+
has(elemId) {
|
|
267
|
+
return !!elemId && this.elements.has(elemId);
|
|
268
|
+
}
|
|
210
269
|
/** Query whether an Id is in the selection set.
|
|
211
270
|
* @see [[has]]
|
|
271
|
+
* @deprecated in 5.0. Use `SelectionSet.elements.has(elemId)` instead.
|
|
212
272
|
*/
|
|
213
|
-
isSelected(elemId) {
|
|
273
|
+
isSelected(elemId) {
|
|
274
|
+
return !!elemId && this.elements.has(elemId);
|
|
275
|
+
}
|
|
214
276
|
/** Clear current selection set.
|
|
215
277
|
* @note raises the [[onChanged]] event with [[SelectionSetEventType.Clear]].
|
|
216
278
|
*/
|
|
217
279
|
emptyAll() {
|
|
218
|
-
if (!this.isActive)
|
|
280
|
+
if (!this.isActive) {
|
|
219
281
|
return;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
this
|
|
282
|
+
}
|
|
283
|
+
const removals = this.#selection;
|
|
284
|
+
this.#selection = {
|
|
285
|
+
elements: new Set(),
|
|
286
|
+
models: new Set(),
|
|
287
|
+
subcategories: new Set(),
|
|
288
|
+
};
|
|
289
|
+
this.#sendChangedEvent({ set: this, type: SelectionSetEventType.Clear, removals, removed: removals.elements });
|
|
223
290
|
}
|
|
224
291
|
/**
|
|
225
292
|
* Add one or more Ids to the current selection set.
|
|
226
293
|
* @param elem The set of Ids to add.
|
|
227
294
|
* @returns true if any elements were added.
|
|
228
295
|
*/
|
|
229
|
-
add(
|
|
230
|
-
return this
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
const oldSize = this.
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
296
|
+
add(adds) {
|
|
297
|
+
return !!this.#add(adds);
|
|
298
|
+
}
|
|
299
|
+
#add(adds, sendEvent = true) {
|
|
300
|
+
const oldSize = this.size;
|
|
301
|
+
const additions = {};
|
|
302
|
+
forEachSelectableType({
|
|
303
|
+
ids: adds,
|
|
304
|
+
elements: (elementIds) => addIds({
|
|
305
|
+
target: this.#selection.elements,
|
|
306
|
+
ids: elementIds,
|
|
307
|
+
onAdd: (id) => (additions.elements ??= []).push(id),
|
|
308
|
+
}),
|
|
309
|
+
models: (modelIds) => addIds({
|
|
310
|
+
target: this.#selection.models,
|
|
311
|
+
ids: modelIds,
|
|
312
|
+
onAdd: (id) => (additions.models ??= []).push(id),
|
|
313
|
+
}),
|
|
314
|
+
subcategories: (subcategoryIds) => addIds({
|
|
315
|
+
target: this.#selection.subcategories,
|
|
316
|
+
ids: subcategoryIds,
|
|
317
|
+
onAdd: (id) => (additions.subcategories ??= []).push(id),
|
|
318
|
+
}),
|
|
319
|
+
});
|
|
320
|
+
const changed = oldSize !== this.size;
|
|
321
|
+
if (!changed) {
|
|
322
|
+
return undefined;
|
|
323
|
+
}
|
|
324
|
+
if (sendEvent) {
|
|
325
|
+
this.#sendChangedEvent({
|
|
326
|
+
type: SelectionSetEventType.Add,
|
|
327
|
+
set: this,
|
|
328
|
+
additions,
|
|
329
|
+
added: additions.elements ?? [],
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
return additions;
|
|
240
333
|
}
|
|
241
334
|
/**
|
|
242
335
|
* Remove one or more Ids from the current selection set.
|
|
243
336
|
* @param elem The set of Ids to remove.
|
|
244
337
|
* @returns true if any elements were removed.
|
|
245
338
|
*/
|
|
246
|
-
remove(
|
|
247
|
-
return this
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
const oldSize = this.
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
339
|
+
remove(removes) {
|
|
340
|
+
return !!this.#remove(removes);
|
|
341
|
+
}
|
|
342
|
+
#remove(removes, sendEvent = true) {
|
|
343
|
+
const oldSize = this.size;
|
|
344
|
+
const removals = {};
|
|
345
|
+
forEachSelectableType({
|
|
346
|
+
ids: removes,
|
|
347
|
+
elements: (elementIds) => removeIds({
|
|
348
|
+
target: this.#selection.elements,
|
|
349
|
+
ids: elementIds,
|
|
350
|
+
onRemove: (id) => (removals.elements ??= []).push(id),
|
|
351
|
+
}),
|
|
352
|
+
models: (modelIds) => removeIds({
|
|
353
|
+
target: this.#selection.models,
|
|
354
|
+
ids: modelIds,
|
|
355
|
+
onRemove: (id) => (removals.models ??= []).push(id),
|
|
356
|
+
}),
|
|
357
|
+
subcategories: (subcategoryIds) => removeIds({
|
|
358
|
+
target: this.#selection.subcategories,
|
|
359
|
+
ids: subcategoryIds,
|
|
360
|
+
onRemove: (id) => (removals.subcategories ??= []).push(id),
|
|
361
|
+
}),
|
|
362
|
+
});
|
|
363
|
+
const changed = oldSize !== this.size;
|
|
364
|
+
if (!changed) {
|
|
365
|
+
return undefined;
|
|
366
|
+
}
|
|
367
|
+
if (sendEvent) {
|
|
368
|
+
this.#sendChangedEvent({
|
|
369
|
+
type: SelectionSetEventType.Remove,
|
|
370
|
+
set: this,
|
|
371
|
+
removals,
|
|
372
|
+
removed: removals.elements ?? [],
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
return removals;
|
|
257
376
|
}
|
|
258
377
|
/**
|
|
259
378
|
* Add one set of Ids, and remove another set of Ids. Any Ids that are in both sets are removed.
|
|
260
379
|
* @returns True if any Ids were either added or removed.
|
|
261
380
|
*/
|
|
262
381
|
addAndRemove(adds, removes) {
|
|
263
|
-
const
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
this
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
382
|
+
const additions = this.#add(adds, false);
|
|
383
|
+
const removals = this.#remove(removes, false);
|
|
384
|
+
const addedElements = additions?.elements ?? [];
|
|
385
|
+
const removedElements = removals?.elements ?? [];
|
|
386
|
+
if (additions && removals) {
|
|
387
|
+
this.#sendChangedEvent({
|
|
388
|
+
type: SelectionSetEventType.Replace,
|
|
389
|
+
set: this,
|
|
390
|
+
additions,
|
|
391
|
+
added: addedElements,
|
|
392
|
+
removals,
|
|
393
|
+
removed: removedElements,
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
else if (additions) {
|
|
397
|
+
this.#sendChangedEvent({
|
|
398
|
+
type: SelectionSetEventType.Add,
|
|
399
|
+
set: this,
|
|
400
|
+
additions,
|
|
401
|
+
added: addedElements,
|
|
402
|
+
});
|
|
282
403
|
}
|
|
283
|
-
|
|
404
|
+
else if (removals) {
|
|
405
|
+
this.#sendChangedEvent({
|
|
406
|
+
type: SelectionSetEventType.Remove,
|
|
407
|
+
set: this,
|
|
408
|
+
removals,
|
|
409
|
+
removed: removedElements,
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
return !!additions || !!removals;
|
|
413
|
+
}
|
|
414
|
+
/** Invert the state of a set of Ids in the `SelectionSet` */
|
|
415
|
+
invert(ids) {
|
|
416
|
+
const adds = {};
|
|
417
|
+
const removes = {};
|
|
418
|
+
forEachSelectableType({
|
|
419
|
+
ids,
|
|
420
|
+
elements: (elementIds) => {
|
|
421
|
+
for (const id of core_bentley_1.Id64.iterable(elementIds)) {
|
|
422
|
+
((this.elements.has(id) ? removes : adds).elements ??= new Set()).add(id);
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
models: (modelIds) => {
|
|
426
|
+
for (const id of core_bentley_1.Id64.iterable(modelIds)) {
|
|
427
|
+
((this.models.has(id) ? removes : adds).models ??= new Set()).add(id);
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
subcategories: (subcategoryIds) => {
|
|
431
|
+
for (const id of core_bentley_1.Id64.iterable(subcategoryIds)) {
|
|
432
|
+
((this.subcategories.has(id) ? removes : adds).subcategories ??= new Set()).add(id);
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
});
|
|
436
|
+
return this.addAndRemove(adds, removes);
|
|
284
437
|
}
|
|
285
438
|
/** Change selection set to be the supplied set of Ids. */
|
|
286
|
-
replace(
|
|
287
|
-
if (areEqual(this
|
|
288
|
-
return;
|
|
289
|
-
const removed = this._elements;
|
|
290
|
-
this._elements = new Set();
|
|
291
|
-
this._add(elem, false);
|
|
292
|
-
if (0 < removed.size) {
|
|
293
|
-
for (const id of core_bentley_1.Id64.iterable(elem)) {
|
|
294
|
-
if (removed.has(id))
|
|
295
|
-
removed.delete(id);
|
|
296
|
-
}
|
|
439
|
+
replace(ids) {
|
|
440
|
+
if (areEqual(this.#selection, ids)) {
|
|
441
|
+
return false;
|
|
297
442
|
}
|
|
298
|
-
|
|
443
|
+
const previousSelection = this.#selection;
|
|
444
|
+
this.#selection = {
|
|
445
|
+
elements: new Set(),
|
|
446
|
+
models: new Set(),
|
|
447
|
+
subcategories: new Set(),
|
|
448
|
+
};
|
|
449
|
+
this.#add(ids, false);
|
|
450
|
+
const additions = {};
|
|
451
|
+
const removals = {};
|
|
452
|
+
forEachSelectableType({
|
|
453
|
+
ids: this.#selection,
|
|
454
|
+
elements: (elementIds) => {
|
|
455
|
+
removeIds({
|
|
456
|
+
target: previousSelection.elements,
|
|
457
|
+
ids: elementIds,
|
|
458
|
+
onNotFound: (id) => (additions.elements ??= new Set()).add(id),
|
|
459
|
+
});
|
|
460
|
+
if (previousSelection.elements.size > 0) {
|
|
461
|
+
removals.elements = previousSelection.elements;
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
models: (modelIds) => {
|
|
465
|
+
removeIds({
|
|
466
|
+
target: previousSelection.models,
|
|
467
|
+
ids: modelIds,
|
|
468
|
+
onNotFound: (id) => (additions.models ??= new Set()).add(id),
|
|
469
|
+
});
|
|
470
|
+
if (previousSelection.models.size > 0) {
|
|
471
|
+
removals.models = previousSelection.models;
|
|
472
|
+
}
|
|
473
|
+
},
|
|
474
|
+
subcategories: (subcategoryIds) => {
|
|
475
|
+
removeIds({
|
|
476
|
+
target: previousSelection.subcategories,
|
|
477
|
+
ids: subcategoryIds,
|
|
478
|
+
onNotFound: (id) => (additions.subcategories ??= new Set()).add(id),
|
|
479
|
+
});
|
|
480
|
+
if (previousSelection.subcategories.size > 0) {
|
|
481
|
+
removals.subcategories = previousSelection.subcategories;
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
});
|
|
485
|
+
this.#sendChangedEvent({
|
|
486
|
+
type: SelectionSetEventType.Replace,
|
|
487
|
+
set: this,
|
|
488
|
+
additions,
|
|
489
|
+
added: additions.elements ?? [],
|
|
490
|
+
removals,
|
|
491
|
+
removed: removals.elements ?? [],
|
|
492
|
+
});
|
|
493
|
+
return true;
|
|
299
494
|
}
|
|
300
495
|
}
|
|
301
496
|
exports.SelectionSet = SelectionSet;
|
|
497
|
+
function forEachSelectableType({ ids, elements, models, subcategories, }) {
|
|
498
|
+
if (typeof ids === "string" || Array.isArray(ids) || ids instanceof Set) {
|
|
499
|
+
elements(ids);
|
|
500
|
+
return { elements: ids };
|
|
501
|
+
}
|
|
502
|
+
elements(ids.elements ?? []);
|
|
503
|
+
models(ids.models ?? []);
|
|
504
|
+
subcategories(ids.subcategories ?? []);
|
|
505
|
+
return ids;
|
|
506
|
+
}
|
|
302
507
|
function areEqual(lhs, rhs) {
|
|
508
|
+
let result = true;
|
|
509
|
+
forEachSelectableType({
|
|
510
|
+
ids: rhs,
|
|
511
|
+
elements: (elementIds) => {
|
|
512
|
+
if (result && !areIdsEqual(lhs.elements, elementIds)) {
|
|
513
|
+
result = false;
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
models: (modelIds) => {
|
|
517
|
+
if (result && !areIdsEqual(lhs.models, modelIds)) {
|
|
518
|
+
result = false;
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
subcategories: (subcategoryIds) => {
|
|
522
|
+
if (result && !areIdsEqual(lhs.subcategories, subcategoryIds)) {
|
|
523
|
+
result = false;
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
});
|
|
527
|
+
return result;
|
|
528
|
+
}
|
|
529
|
+
function areIdsEqual(lhs, rhs) {
|
|
303
530
|
// Size is unreliable if input can contain duplicates...
|
|
304
|
-
if (Array.isArray(rhs))
|
|
531
|
+
if (Array.isArray(rhs)) {
|
|
305
532
|
rhs = core_bentley_1.Id64.toIdSet(rhs);
|
|
306
|
-
|
|
533
|
+
}
|
|
534
|
+
if (lhs.size !== core_bentley_1.Id64.sizeOf(rhs)) {
|
|
307
535
|
return false;
|
|
308
|
-
|
|
309
|
-
|
|
536
|
+
}
|
|
537
|
+
for (const id of core_bentley_1.Id64.iterable(rhs)) {
|
|
538
|
+
if (!lhs.has(id)) {
|
|
310
539
|
return false;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
311
542
|
return true;
|
|
312
543
|
}
|
|
544
|
+
function addIds({ target, ids, onAdd }) {
|
|
545
|
+
let size = target.size;
|
|
546
|
+
for (const id of core_bentley_1.Id64.iterable(ids)) {
|
|
547
|
+
target.add(id);
|
|
548
|
+
const newSize = target.size;
|
|
549
|
+
if (newSize !== size) {
|
|
550
|
+
onAdd?.(id);
|
|
551
|
+
}
|
|
552
|
+
size = newSize;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
function removeIds({ target, ids, onRemove, onNotFound, }) {
|
|
556
|
+
let size = target.size;
|
|
557
|
+
for (const id of core_bentley_1.Id64.iterable(ids)) {
|
|
558
|
+
target.delete(id);
|
|
559
|
+
const newSize = target.size;
|
|
560
|
+
if (newSize !== size) {
|
|
561
|
+
onRemove?.(id);
|
|
562
|
+
}
|
|
563
|
+
else {
|
|
564
|
+
onNotFound?.(id);
|
|
565
|
+
}
|
|
566
|
+
size = newSize;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
313
569
|
//# sourceMappingURL=SelectionSet.js.map
|