@itwin/appui-react 5.0.0-dev.3 → 5.0.1
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 +85 -1
- package/lib/appui-react/UiFramework.d.ts +2 -2
- package/lib/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/appui-react/UiFramework.js +3 -1
- package/lib/appui-react/UiFramework.js.map +1 -1
- package/lib/appui-react/childwindow/ChildWindowWidget.d.ts.map +1 -1
- package/lib/appui-react/childwindow/ChildWindowWidget.js +4 -1
- package/lib/appui-react/childwindow/ChildWindowWidget.js.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts +3 -3
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/appui-react/frontstage/FrontstageDef.js +1 -0
- package/lib/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.d.ts +4 -2
- package/lib/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.js +5 -7
- package/lib/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.scss +0 -5
- package/lib/appui-react/frontstage/ModalFrontstageButton.d.ts +22 -0
- package/lib/appui-react/frontstage/ModalFrontstageButton.d.ts.map +1 -0
- package/lib/appui-react/frontstage/ModalFrontstageButton.js +29 -0
- package/lib/appui-react/frontstage/ModalFrontstageButton.js.map +1 -0
- package/lib/appui-react/{layout/widget/tools/button/Back.scss → frontstage/ModalFrontstageButton.scss} +15 -3
- package/lib/appui-react/icons/SvgAssetClassificationHide.d.ts +7 -0
- package/lib/appui-react/icons/SvgAssetClassificationHide.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgAssetClassificationHide.js +14 -0
- package/lib/appui-react/icons/SvgAssetClassificationHide.js.map +1 -0
- package/lib/appui-react/icons/SvgAssetIsolate.d.ts +7 -0
- package/lib/appui-react/icons/SvgAssetIsolate.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgAssetIsolate.js +14 -0
- package/lib/appui-react/icons/SvgAssetIsolate.js.map +1 -0
- package/lib/appui-react/icons/SvgGyroscope.d.ts +7 -0
- package/lib/appui-react/icons/SvgGyroscope.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgGyroscope.js +15 -0
- package/lib/appui-react/icons/SvgGyroscope.js.map +1 -0
- package/lib/appui-react/icons/SvgLayersHide.d.ts +7 -0
- package/lib/appui-react/icons/SvgLayersHide.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgLayersHide.js +14 -0
- package/lib/appui-react/icons/SvgLayersHide.js.map +1 -0
- package/lib/appui-react/icons/SvgLayersIsolate.d.ts +7 -0
- package/lib/appui-react/icons/SvgLayersIsolate.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgLayersIsolate.js +14 -0
- package/lib/appui-react/icons/SvgLayersIsolate.js.map +1 -0
- package/lib/appui-react/icons/SvgModelHide.d.ts +7 -0
- package/lib/appui-react/icons/SvgModelHide.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgModelHide.js +15 -0
- package/lib/appui-react/icons/SvgModelHide.js.map +1 -0
- package/lib/appui-react/icons/SvgModelIsolate.d.ts +7 -0
- package/lib/appui-react/icons/SvgModelIsolate.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgModelIsolate.js +15 -0
- package/lib/appui-react/icons/SvgModelIsolate.js.map +1 -0
- package/lib/appui-react/icons/SvgSavedView.d.ts +7 -0
- package/lib/appui-react/icons/SvgSavedView.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgSavedView.js +15 -0
- package/lib/appui-react/icons/SvgSavedView.js.map +1 -0
- package/lib/appui-react/icons/SvgSectionTool.d.ts +7 -0
- package/lib/appui-react/icons/SvgSectionTool.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgSectionTool.js +15 -0
- package/lib/appui-react/icons/SvgSectionTool.js.map +1 -0
- package/lib/appui-react/icons/SvgSelectionClear.d.ts +7 -0
- package/lib/appui-react/icons/SvgSelectionClear.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgSelectionClear.js +14 -0
- package/lib/appui-react/icons/SvgSelectionClear.js.map +1 -0
- package/lib/appui-react/icons/SvgViewLayouts.d.ts +7 -0
- package/lib/appui-react/icons/SvgViewLayouts.d.ts.map +1 -0
- package/lib/appui-react/icons/SvgViewLayouts.js +14 -0
- package/lib/appui-react/icons/SvgViewLayouts.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceBottom.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceFront.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoLeft.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceIsoRight.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceLeft.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRear.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceRight.js.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.d.ts +7 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.d.ts.map +1 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.js +15 -0
- package/lib/appui-react/icons/cube-faces/SvgCubeFaceTop.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnaps.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsBisector.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsCenter.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsIntersection.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsMidpoint.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsNearest.js.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.d.ts +7 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.d.ts.map +1 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.js +14 -0
- package/lib/appui-react/icons/snaps/SvgSnapsOrigin.js.map +1 -0
- package/lib/appui-react/layout/footer/snap-mode/Snap.d.ts.map +1 -1
- package/lib/appui-react/layout/footer/snap-mode/Snap.js +2 -2
- package/lib/appui-react/layout/footer/snap-mode/Snap.js.map +1 -1
- package/lib/appui-react/layout/footer/snap-mode/Snap.scss +4 -0
- package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js +16 -16
- package/lib/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/appui-react/pickers/ViewSelector.d.ts.map +1 -1
- package/lib/appui-react/pickers/ViewSelector.js +5 -2
- package/lib/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/appui-react/redux/FrameworkState.d.ts +5 -2
- package/lib/appui-react/redux/FrameworkState.d.ts.map +1 -1
- package/lib/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
- package/lib/appui-react/selection/SelectionContextItemDef.js +21 -20
- package/lib/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/appui-react/settings/ui/UiSettingsPage.js +2 -2
- package/lib/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/appui-react/statusfields/SectionsField.js +2 -2
- package/lib/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/appui-react/statusfields/SnapMode.d.ts.map +1 -1
- package/lib/appui-react/statusfields/SnapMode.js +21 -30
- package/lib/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
- package/lib/appui-react/toolbar/ToolbarItemUtilities.js +5 -0
- package/lib/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
- package/lib/appui-react/tools/CoreToolDefinitions.js +12 -13
- package/lib/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/appui-react/tools/KeyinPaletteTools.d.ts +11 -6
- package/lib/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
- package/lib/appui-react/tools/KeyinPaletteTools.js +12 -9
- package/lib/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/appui-react/tools/OpenSettingsTool.d.ts +10 -5
- package/lib/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
- package/lib/appui-react/tools/OpenSettingsTool.js +11 -8
- package/lib/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/appui-react/tools/RestoreLayoutTool.d.ts +16 -8
- package/lib/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
- package/lib/appui-react/tools/RestoreLayoutTool.js +17 -13
- package/lib/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/appui-react/widget-panels/Content.d.ts +2 -0
- package/lib/appui-react/widget-panels/Content.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/Content.js +2 -1
- package/lib/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.js +2 -2
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
- package/lib/appui-react/widgets/WidgetDef.d.ts +0 -1
- package/lib/appui-react/widgets/WidgetDef.d.ts.map +1 -1
- package/lib/appui-react/widgets/WidgetDef.js +0 -1
- package/lib/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/appui-react.d.ts +1 -0
- package/lib/appui-react.d.ts.map +1 -1
- package/lib/appui-react.js +1 -0
- package/lib/appui-react.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +0 -5
- package/lib/cjs/appui-react/{layout/widget/tools/button/Back.scss → frontstage/ModalFrontstageButton.scss} +15 -3
- package/lib/cjs/appui-react/layout/footer/snap-mode/Snap.scss +4 -0
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +0 -5
- package/lib/esm/appui-react/{layout/widget/tools/button/Back.scss → frontstage/ModalFrontstageButton.scss} +15 -3
- package/lib/esm/appui-react/layout/footer/snap-mode/Snap.scss +4 -0
- package/package.json +11 -13
|
@@ -13,8 +13,9 @@ import { UiFramework } from "../UiFramework.js";
|
|
|
13
13
|
import { ViewUtilities } from "../utils/ViewUtilities.js";
|
|
14
14
|
import { ListItemType, ListPicker } from "./ListPicker.js";
|
|
15
15
|
import { debounce } from "lodash";
|
|
16
|
-
import
|
|
16
|
+
import { SvgSavedView } from "../icons/SvgSavedView.js";
|
|
17
17
|
import { useReduxFrameworkState } from "../uistate/useReduxFrameworkState.js";
|
|
18
|
+
import { Icon } from "@itwin/core-react";
|
|
18
19
|
/** ViewSelector Changed Event class.
|
|
19
20
|
* @beta
|
|
20
21
|
* @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.
|
|
@@ -274,7 +275,9 @@ export class ViewSelector extends React.Component {
|
|
|
274
275
|
*/
|
|
275
276
|
render() {
|
|
276
277
|
const { imodel, ...props } = this.props;
|
|
277
|
-
return (React.createElement(ListPicker, { ...props, title: this.state.title, setEnabled: this._setEnabled, items: this.state.items,
|
|
278
|
+
return (React.createElement(ListPicker, { ...props, title: this.state.title, setEnabled: this._setEnabled, items: this.state.items,
|
|
279
|
+
// eslint-disable-next-line deprecation/deprecation
|
|
280
|
+
icon: React.createElement(Icon, { iconSpec: React.createElement(SvgSavedView, null) }), onExpanded: this._onExpanded, searchBox: this.state.searchBox, onSearchValueChange: debounce((search) => {
|
|
278
281
|
this._searchInput = search;
|
|
279
282
|
if (this._isMounted &&
|
|
280
283
|
this.state.expand === false &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Picker\n */\n\nimport * as React from \"react\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { Id64String } from \"@itwin/core-bentley\";\nimport { assert, BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { FuzzySearch, IModelApp } from \"@itwin/core-frontend\";\nimport type { SupportsViewSelectorChange } from \"../content/ContentControl.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { ViewUtilities } from \"../utils/ViewUtilities.js\";\nimport type { ListItem } from \"./ListPicker.js\";\nimport { ListItemType, ListPicker } from \"./ListPicker.js\";\nimport { debounce } from \"lodash\";\nimport svgSavedView from \"@bentley/icons-generic/icons/saved-view.svg\";\nimport { useReduxFrameworkState } from \"../uistate/useReduxFrameworkState.js\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\n\n// cSpell:ignore Spatials\n\n/** [[ViewSelectorChangedEvent]] Args interface.\n * @beta\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ViewSelectorChangedEventArgs {\n iModelConnection: IModelConnection;\n viewDefinitionId: Id64String;\n viewState: ViewState;\n name: string;\n}\n\n/** ViewSelector Changed Event class.\n * @beta\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> {}\n\n/** Properties for the [[ViewSelector]] component\n * @beta\n */\nexport interface ViewSelectorProps {\n imodel?: IModelConnection;\n listenForShowUpdates?: boolean;\n onViewSelected?: (args: {\n iModelConnection: IModelConnection;\n viewDefinitionId: Id64String;\n viewState: ViewState;\n name: string;\n }) => void;\n\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox?: boolean;\n panelOnly?: boolean;\n}\n\n/** State for the [[ViewSelector]] component\n * @beta\n */\ninterface ViewSelectorState {\n items: ListItem[];\n title: string;\n initialized: boolean;\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox: boolean;\n panelOnly: boolean;\n expand: boolean;\n}\n\n/** Default properties of [[ViewSelector]] component.\n * @beta\n */\nexport type ViewSelectorDefaultProps = Pick<\n ViewSelectorProps,\n \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\"\n>;\n\n/** View Selector React component\n * @beta\n */\nexport class ViewSelector extends React.Component<\n ViewSelectorProps,\n ViewSelectorState\n> {\n private static readonly _onViewSelectorShowUpdateEvent = new BeUiEvent<{\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n }>();\n private _removeShowUpdateListener?: () => void;\n private _isMounted = false;\n private _searchInput = \"\";\n\n public static readonly defaultProps: ViewSelectorDefaultProps = {\n showSpatials: true,\n showDrawings: true,\n showSheets: true,\n showUnknown: true,\n };\n\n /** Gets the [[ViewSelectorChangedEvent]].\n * @deprecated in 4.16.0. Use {@link ViewSelectorProps.onViewSelected} prop instead.\n */\n public static readonly onViewSelectorChangedEvent =\n new ViewSelectorChangedEvent(); // eslint-disable-line deprecation/deprecation\n\n /** Updates the ViewSelector show settings.\n */\n public static updateShowSettings(\n showSpatials: boolean,\n showDrawings: boolean,\n showSheets: boolean,\n showUnknown: boolean\n ): void {\n ViewSelector._onViewSelectorShowUpdateEvent.emit({\n showSpatials,\n showDrawings,\n showSheets,\n showUnknown,\n });\n }\n\n /** Creates a ViewSelector */\n constructor(props: ViewSelectorProps) {\n super(props);\n\n this.state = {\n items: new Array<ListItem>(),\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: false,\n showSpatials: props.showSpatials,\n showDrawings: props.showDrawings,\n showSheets: props.showSheets,\n showUnknown: props.showUnknown,\n searchBox: props.searchBox ? props.searchBox : true,\n panelOnly: props.panelOnly ? props.panelOnly : false,\n expand: false,\n };\n }\n\n public override async componentDidMount() {\n this._isMounted = true;\n if (this.props.listenForShowUpdates)\n this._removeShowUpdateListener =\n ViewSelector._onViewSelectorShowUpdateEvent.addListener(\n this._handleViewSelectorShowUpdateEvent\n );\n\n await this.loadViews();\n }\n\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\n if (this.props.imodel !== prevProps.imodel) {\n await this.loadViews();\n }\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n if (this._removeShowUpdateListener) this._removeShowUpdateListener();\n }\n\n private _handleViewSelectorShowUpdateEvent: ListenerType<\n typeof ViewSelector._onViewSelectorShowUpdateEvent\n > = (args): void => {\n if (!this._isMounted) return;\n\n this.setState(args, async () => this.loadViews());\n };\n\n private setStateContainers(\n views3d: ListItem[],\n views2d: ListItem[],\n sheets: ListItem[],\n unknown?: ListItem[],\n views3dFiltered?: ListItem[],\n views2dFiltered?: ListItem[],\n sheetsFiltered?: ListItem[],\n unknownFiltered?: ListItem[]\n ) {\n const views3dContainer: ListItem = {\n key: \"views3dContainer\",\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\n enabled: false,\n type: ListItemType.Container,\n children: views3dFiltered ? views3dFiltered : views3d,\n };\n\n const views2dContainer: ListItem = {\n key: \"views2dContainer\",\n name: UiFramework.translate(\"viewTypes.drawings\"),\n enabled: false,\n type: ListItemType.Container,\n children: views2dFiltered ? views2dFiltered : views2d,\n };\n\n const sheetContainer: ListItem = {\n key: \"sheetContainer\",\n name: UiFramework.translate(\"viewTypes.sheets\"),\n enabled: false,\n type: ListItemType.Container,\n children: sheetsFiltered ? sheetsFiltered : sheets,\n };\n\n const containers = [views3dContainer, views2dContainer, sheetContainer];\n\n if (unknown && unknown.length > 0) {\n // This should never show, but just in case we missed a type of view state\n const unknownContainer: ListItem = {\n key: \"unknownContainer\",\n name: UiFramework.translate(\"viewTypes.others\"),\n enabled: false,\n type: ListItemType.Container,\n children: unknownFiltered ? unknownFiltered : unknown,\n };\n\n if (unknown.length !== 0) containers.push(unknownContainer);\n }\n\n if (!this._isMounted) return;\n\n this.setState({\n items: containers,\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: true,\n });\n }\n /**\n * Query the views and set the initial state with the iModel's views.\n */\n public async loadViews(): Promise<void> {\n // Query views and add them to state\n const views3d: ListItem[] = [];\n const views2d: ListItem[] = [];\n const sheets: ListItem[] = [];\n const unknown: ListItem[] = [];\n let views3dFiltered: ListItem[] | undefined;\n let views2dFiltered: ListItem[] | undefined;\n let sheetsFiltered: ListItem[] | undefined;\n let unknownFiltered: ListItem[] | undefined;\n const fuzzy = new FuzzySearch<ListItem>();\n\n if (this.props.imodel && this.props.imodel.views.getViewList) {\n const query = { wantPrivate: false };\n const specs = await this.props.imodel.views.getViewList(query);\n\n specs.forEach((spec: IModelConnection.ViewSpec) => {\n const viewItem: ListItem = {\n key: spec.id,\n name: spec.name,\n enabled:\n spec.id === IModelApp.viewManager.selectedView?.view.id\n ? true\n : false,\n type: ListItemType.Item,\n };\n\n const className = ViewUtilities.getBisBaseClass(spec.class);\n\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\n views3d.push(viewItem);\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\n views2d.push(viewItem);\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\n sheets.push(viewItem);\n else if (this.state.showUnknown) unknown.push(viewItem);\n });\n\n if (this._searchInput.length > 0) {\n const views3dFuzzySearchResults = fuzzy.search(\n views3d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const views2dFuzzySearchResults = fuzzy.search(\n views2d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const sheetsFuzzySearchResults = fuzzy.search(\n sheets,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const unknownFuzzySearchResults = fuzzy.search(\n unknown,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n views3dFiltered = [];\n views2dFiltered = [];\n sheetsFiltered = [];\n unknownFiltered = [];\n views3dFuzzySearchResults.forEach(function (result) {\n views3dFiltered?.push(result.item);\n });\n views2dFuzzySearchResults.forEach(function (result) {\n views2dFiltered?.push(result.item);\n });\n sheetsFuzzySearchResults.forEach(function (result) {\n sheetsFiltered?.push(result.item);\n });\n unknownFuzzySearchResults.forEach(function (result) {\n unknownFiltered?.push(result.item);\n });\n }\n }\n\n this.setStateContainers(\n views3d,\n views2d,\n sheets,\n unknown,\n views3dFiltered,\n views2dFiltered,\n sheetsFiltered,\n unknownFiltered\n );\n }\n\n /**\n * Update state of the entries in the widget.\n * @param viewId Identifier for the relevant view\n */\n public async updateState(viewId?: any): Promise<void> {\n // Wait for initialization finished\n if (!this.state.initialized) return;\n\n // Query views and add them to state\n const views3d: ListItem[] = this.state.items[0].children!;\n const views2d: ListItem[] = this.state.items[1].children!;\n const sheets: ListItem[] = this.state.items[2].children!;\n const unknown: ListItem[] =\n this.state.items.length > 3 ? this.state.items[3].children! : [];\n\n const updateChildren = (item: ListItem) => {\n if (item.key === viewId) return { ...item, enabled: true };\n else return { ...item, enabled: false };\n };\n\n this.setStateContainers(\n views3d.map(updateChildren),\n views2d.map(updateChildren),\n sheets.map(updateChildren),\n unknown.map(updateChildren)\n );\n }\n\n // enable/disable the models\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\n const activeContentControl = // eslint-disable-next-line deprecation/deprecation\n UiFramework.content.getActiveContentControl() as unknown as // eslint-disable-next-line deprecation/deprecation\n | SupportsViewSelectorChange\n | undefined;\n if (\n !this.props.onViewSelected &&\n (!activeContentControl ||\n !activeContentControl.supportsViewSelectorChange)\n ) {\n Logger.logError(\n UiFramework.loggerCategory(\"ViewSelector\"),\n `No active ContentControl for ViewSelector change`\n );\n return;\n }\n\n // Enable the item temporarily to let user see that their click was registered\n // while we query for view state and change the current view which may take a bit\n if (_enabled && item.type !== ListItemType.Container) {\n // This itemMapper simply looks through all the list items and their nested children and enables the one\n // that we have registered to enable\n // Also disable all other items\n const itemMapper: (tempItem: ListItem) => ListItem = (\n tempItem: ListItem\n ) => {\n if (tempItem.type === ListItemType.Container) {\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\n } else if (tempItem.key === item.key) {\n return { ...tempItem, enabled: true };\n } else {\n return { ...tempItem, enabled: false };\n }\n };\n\n // Create the new array with the current item enabled\n const itemsWithEnabled = this.state.items.map(itemMapper);\n\n if (!this._isMounted) return;\n\n // Update the state so that we show the user it was enabled while we work in the background\n this.setState({ items: itemsWithEnabled });\n }\n\n assert(!!this.props.imodel);\n assert(!!item.name);\n\n // Load the view state using the viewSpec's ID\n const viewState = await this.props.imodel.views.load(item.key);\n\n if (this.props.onViewSelected) {\n this.props.onViewSelected({\n iModelConnection: this.props.imodel,\n viewDefinitionId: item.key,\n viewState,\n name: item.name,\n });\n } else if (activeContentControl) {\n // Let activeContentControl process the ViewSelector change\n await activeContentControl.processViewSelectorChange(\n this.props.imodel,\n item.key,\n viewState,\n item.name\n );\n\n // Emit a change event\n // eslint-disable-next-line deprecation/deprecation\n ViewSelector.onViewSelectorChangedEvent.emit({\n iModelConnection: this.props.imodel,\n viewDefinitionId: item.key,\n viewState,\n name: item.name,\n });\n }\n\n // Set state to show enabled the view that got selected\n void this.updateState(item.key);\n };\n\n // Hook on the category selector being expanded so that we may initialize if needed\n private _onExpanded = (expand: boolean) => {\n if (expand)\n void this.updateState(\n IModelApp.viewManager.selectedView\n ? IModelApp.viewManager.selectedView.view.id\n : undefined\n );\n };\n\n /**\n * Renders ViewSelector component\n */\n public override render() {\n const { imodel, ...props } = this.props;\n\n return (\n <ListPicker\n {...props}\n title={this.state.title}\n setEnabled={this._setEnabled}\n items={this.state.items}\n iconSpec={svgSavedView}\n onExpanded={this._onExpanded}\n searchBox={this.state.searchBox}\n onSearchValueChange={debounce((search: string) => {\n this._searchInput = search;\n if (\n this._isMounted &&\n this.state.expand === false &&\n this._searchInput.length > 0\n )\n this.setState({ expand: true });\n void this.loadViews();\n }, 300)}\n panelOnly={this.state.panelOnly}\n expanded={this.state.expand}\n />\n );\n }\n}\n\ntype IModelConnectedViewSelectorProps = Omit<\n ViewSelectorProps,\n \"imodel\" | keyof ViewSelectorDefaultProps\n> &\n Partial<ViewSelectorDefaultProps>;\n\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\n * @note Requires redux provider.\n * @beta\n * @deprecated in 4.15.0. Use {@link ViewSelector} instead.\n */\nexport function IModelConnectedViewSelector(\n props: IModelConnectedViewSelectorProps\n) {\n const iModel = useReduxFrameworkState(\n // eslint-disable-next-line deprecation/deprecation\n (state) => state?.sessionState.iModelConnection\n );\n return <ViewSelector imodel={iModel} {...props} />;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ViewSelector.js","sourceRoot":"","sources":["../../../src/appui-react/pickers/ViewSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Picker\n */\n\nimport * as React from \"react\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { Id64String } from \"@itwin/core-bentley\";\nimport { assert, BeUiEvent, Logger } from \"@itwin/core-bentley\";\nimport type { IModelConnection, ViewState } from \"@itwin/core-frontend\";\nimport { FuzzySearch, IModelApp } from \"@itwin/core-frontend\";\nimport type { SupportsViewSelectorChange } from \"../content/ContentControl.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { ViewUtilities } from \"../utils/ViewUtilities.js\";\nimport type { ListItem } from \"./ListPicker.js\";\nimport { ListItemType, ListPicker } from \"./ListPicker.js\";\nimport { debounce } from \"lodash\";\nimport { SvgSavedView } from \"../icons/SvgSavedView.js\";\nimport { useReduxFrameworkState } from \"../uistate/useReduxFrameworkState.js\";\nimport type { ListenerType } from \"@itwin/core-react/internal\";\nimport { Icon } from \"@itwin/core-react\";\n\n// cSpell:ignore Spatials\n\n/** [[ViewSelectorChangedEvent]] Args interface.\n * @beta\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ViewSelectorChangedEventArgs {\n iModelConnection: IModelConnection;\n viewDefinitionId: Id64String;\n viewState: ViewState;\n name: string;\n}\n\n/** ViewSelector Changed Event class.\n * @beta\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line deprecation/deprecation\nexport class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> {}\n\n/** Properties for the [[ViewSelector]] component\n * @beta\n */\nexport interface ViewSelectorProps {\n imodel?: IModelConnection;\n listenForShowUpdates?: boolean;\n onViewSelected?: (args: {\n iModelConnection: IModelConnection;\n viewDefinitionId: Id64String;\n viewState: ViewState;\n name: string;\n }) => void;\n\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox?: boolean;\n panelOnly?: boolean;\n}\n\n/** State for the [[ViewSelector]] component\n * @beta\n */\ninterface ViewSelectorState {\n items: ListItem[];\n title: string;\n initialized: boolean;\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n searchBox: boolean;\n panelOnly: boolean;\n expand: boolean;\n}\n\n/** Default properties of [[ViewSelector]] component.\n * @beta\n */\nexport type ViewSelectorDefaultProps = Pick<\n ViewSelectorProps,\n \"showSpatials\" | \"showDrawings\" | \"showSheets\" | \"showUnknown\"\n>;\n\n/** View Selector React component\n * @beta\n */\nexport class ViewSelector extends React.Component<\n ViewSelectorProps,\n ViewSelectorState\n> {\n private static readonly _onViewSelectorShowUpdateEvent = new BeUiEvent<{\n showSpatials: boolean;\n showDrawings: boolean;\n showSheets: boolean;\n showUnknown: boolean;\n }>();\n private _removeShowUpdateListener?: () => void;\n private _isMounted = false;\n private _searchInput = \"\";\n\n public static readonly defaultProps: ViewSelectorDefaultProps = {\n showSpatials: true,\n showDrawings: true,\n showSheets: true,\n showUnknown: true,\n };\n\n /** Gets the [[ViewSelectorChangedEvent]].\n * @deprecated in 4.16.0. Use {@link ViewSelectorProps.onViewSelected} prop instead.\n */\n public static readonly onViewSelectorChangedEvent =\n new ViewSelectorChangedEvent(); // eslint-disable-line deprecation/deprecation\n\n /** Updates the ViewSelector show settings.\n */\n public static updateShowSettings(\n showSpatials: boolean,\n showDrawings: boolean,\n showSheets: boolean,\n showUnknown: boolean\n ): void {\n ViewSelector._onViewSelectorShowUpdateEvent.emit({\n showSpatials,\n showDrawings,\n showSheets,\n showUnknown,\n });\n }\n\n /** Creates a ViewSelector */\n constructor(props: ViewSelectorProps) {\n super(props);\n\n this.state = {\n items: new Array<ListItem>(),\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: false,\n showSpatials: props.showSpatials,\n showDrawings: props.showDrawings,\n showSheets: props.showSheets,\n showUnknown: props.showUnknown,\n searchBox: props.searchBox ? props.searchBox : true,\n panelOnly: props.panelOnly ? props.panelOnly : false,\n expand: false,\n };\n }\n\n public override async componentDidMount() {\n this._isMounted = true;\n if (this.props.listenForShowUpdates)\n this._removeShowUpdateListener =\n ViewSelector._onViewSelectorShowUpdateEvent.addListener(\n this._handleViewSelectorShowUpdateEvent\n );\n\n await this.loadViews();\n }\n\n public override async componentDidUpdate(prevProps: ViewSelectorProps) {\n if (this.props.imodel !== prevProps.imodel) {\n await this.loadViews();\n }\n }\n\n public override componentWillUnmount() {\n this._isMounted = false;\n if (this._removeShowUpdateListener) this._removeShowUpdateListener();\n }\n\n private _handleViewSelectorShowUpdateEvent: ListenerType<\n typeof ViewSelector._onViewSelectorShowUpdateEvent\n > = (args): void => {\n if (!this._isMounted) return;\n\n this.setState(args, async () => this.loadViews());\n };\n\n private setStateContainers(\n views3d: ListItem[],\n views2d: ListItem[],\n sheets: ListItem[],\n unknown?: ListItem[],\n views3dFiltered?: ListItem[],\n views2dFiltered?: ListItem[],\n sheetsFiltered?: ListItem[],\n unknownFiltered?: ListItem[]\n ) {\n const views3dContainer: ListItem = {\n key: \"views3dContainer\",\n name: UiFramework.translate(\"viewTypes.spatialViews\"),\n enabled: false,\n type: ListItemType.Container,\n children: views3dFiltered ? views3dFiltered : views3d,\n };\n\n const views2dContainer: ListItem = {\n key: \"views2dContainer\",\n name: UiFramework.translate(\"viewTypes.drawings\"),\n enabled: false,\n type: ListItemType.Container,\n children: views2dFiltered ? views2dFiltered : views2d,\n };\n\n const sheetContainer: ListItem = {\n key: \"sheetContainer\",\n name: UiFramework.translate(\"viewTypes.sheets\"),\n enabled: false,\n type: ListItemType.Container,\n children: sheetsFiltered ? sheetsFiltered : sheets,\n };\n\n const containers = [views3dContainer, views2dContainer, sheetContainer];\n\n if (unknown && unknown.length > 0) {\n // This should never show, but just in case we missed a type of view state\n const unknownContainer: ListItem = {\n key: \"unknownContainer\",\n name: UiFramework.translate(\"viewTypes.others\"),\n enabled: false,\n type: ListItemType.Container,\n children: unknownFiltered ? unknownFiltered : unknown,\n };\n\n if (unknown.length !== 0) containers.push(unknownContainer);\n }\n\n if (!this._isMounted) return;\n\n this.setState({\n items: containers,\n title: UiFramework.translate(\"viewTypes.views\"),\n initialized: true,\n });\n }\n /**\n * Query the views and set the initial state with the iModel's views.\n */\n public async loadViews(): Promise<void> {\n // Query views and add them to state\n const views3d: ListItem[] = [];\n const views2d: ListItem[] = [];\n const sheets: ListItem[] = [];\n const unknown: ListItem[] = [];\n let views3dFiltered: ListItem[] | undefined;\n let views2dFiltered: ListItem[] | undefined;\n let sheetsFiltered: ListItem[] | undefined;\n let unknownFiltered: ListItem[] | undefined;\n const fuzzy = new FuzzySearch<ListItem>();\n\n if (this.props.imodel && this.props.imodel.views.getViewList) {\n const query = { wantPrivate: false };\n const specs = await this.props.imodel.views.getViewList(query);\n\n specs.forEach((spec: IModelConnection.ViewSpec) => {\n const viewItem: ListItem = {\n key: spec.id,\n name: spec.name,\n enabled:\n spec.id === IModelApp.viewManager.selectedView?.view.id\n ? true\n : false,\n type: ListItemType.Item,\n };\n\n const className = ViewUtilities.getBisBaseClass(spec.class);\n\n if (ViewUtilities.isSpatial(className) && this.state.showSpatials)\n views3d.push(viewItem);\n else if (ViewUtilities.isDrawing(className) && this.state.showDrawings)\n views2d.push(viewItem);\n else if (ViewUtilities.isSheet(className) && this.state.showSheets)\n sheets.push(viewItem);\n else if (this.state.showUnknown) unknown.push(viewItem);\n });\n\n if (this._searchInput.length > 0) {\n const views3dFuzzySearchResults = fuzzy.search(\n views3d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const views2dFuzzySearchResults = fuzzy.search(\n views2d,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const sheetsFuzzySearchResults = fuzzy.search(\n sheets,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n const unknownFuzzySearchResults = fuzzy.search(\n unknown,\n [\"name\"],\n this._searchInput\n ).results as ListItem[];\n views3dFiltered = [];\n views2dFiltered = [];\n sheetsFiltered = [];\n unknownFiltered = [];\n views3dFuzzySearchResults.forEach(function (result) {\n views3dFiltered?.push(result.item);\n });\n views2dFuzzySearchResults.forEach(function (result) {\n views2dFiltered?.push(result.item);\n });\n sheetsFuzzySearchResults.forEach(function (result) {\n sheetsFiltered?.push(result.item);\n });\n unknownFuzzySearchResults.forEach(function (result) {\n unknownFiltered?.push(result.item);\n });\n }\n }\n\n this.setStateContainers(\n views3d,\n views2d,\n sheets,\n unknown,\n views3dFiltered,\n views2dFiltered,\n sheetsFiltered,\n unknownFiltered\n );\n }\n\n /**\n * Update state of the entries in the widget.\n * @param viewId Identifier for the relevant view\n */\n public async updateState(viewId?: any): Promise<void> {\n // Wait for initialization finished\n if (!this.state.initialized) return;\n\n // Query views and add them to state\n const views3d: ListItem[] = this.state.items[0].children!;\n const views2d: ListItem[] = this.state.items[1].children!;\n const sheets: ListItem[] = this.state.items[2].children!;\n const unknown: ListItem[] =\n this.state.items.length > 3 ? this.state.items[3].children! : [];\n\n const updateChildren = (item: ListItem) => {\n if (item.key === viewId) return { ...item, enabled: true };\n else return { ...item, enabled: false };\n };\n\n this.setStateContainers(\n views3d.map(updateChildren),\n views2d.map(updateChildren),\n sheets.map(updateChildren),\n unknown.map(updateChildren)\n );\n }\n\n // enable/disable the models\n private _setEnabled = async (item: ListItem, _enabled: boolean) => {\n const activeContentControl = // eslint-disable-next-line deprecation/deprecation\n UiFramework.content.getActiveContentControl() as unknown as // eslint-disable-next-line deprecation/deprecation\n | SupportsViewSelectorChange\n | undefined;\n if (\n !this.props.onViewSelected &&\n (!activeContentControl ||\n !activeContentControl.supportsViewSelectorChange)\n ) {\n Logger.logError(\n UiFramework.loggerCategory(\"ViewSelector\"),\n `No active ContentControl for ViewSelector change`\n );\n return;\n }\n\n // Enable the item temporarily to let user see that their click was registered\n // while we query for view state and change the current view which may take a bit\n if (_enabled && item.type !== ListItemType.Container) {\n // This itemMapper simply looks through all the list items and their nested children and enables the one\n // that we have registered to enable\n // Also disable all other items\n const itemMapper: (tempItem: ListItem) => ListItem = (\n tempItem: ListItem\n ) => {\n if (tempItem.type === ListItemType.Container) {\n return { ...tempItem, children: tempItem.children!.map(itemMapper) };\n } else if (tempItem.key === item.key) {\n return { ...tempItem, enabled: true };\n } else {\n return { ...tempItem, enabled: false };\n }\n };\n\n // Create the new array with the current item enabled\n const itemsWithEnabled = this.state.items.map(itemMapper);\n\n if (!this._isMounted) return;\n\n // Update the state so that we show the user it was enabled while we work in the background\n this.setState({ items: itemsWithEnabled });\n }\n\n assert(!!this.props.imodel);\n assert(!!item.name);\n\n // Load the view state using the viewSpec's ID\n const viewState = await this.props.imodel.views.load(item.key);\n\n if (this.props.onViewSelected) {\n this.props.onViewSelected({\n iModelConnection: this.props.imodel,\n viewDefinitionId: item.key,\n viewState,\n name: item.name,\n });\n } else if (activeContentControl) {\n // Let activeContentControl process the ViewSelector change\n await activeContentControl.processViewSelectorChange(\n this.props.imodel,\n item.key,\n viewState,\n item.name\n );\n\n // Emit a change event\n // eslint-disable-next-line deprecation/deprecation\n ViewSelector.onViewSelectorChangedEvent.emit({\n iModelConnection: this.props.imodel,\n viewDefinitionId: item.key,\n viewState,\n name: item.name,\n });\n }\n\n // Set state to show enabled the view that got selected\n void this.updateState(item.key);\n };\n\n // Hook on the category selector being expanded so that we may initialize if needed\n private _onExpanded = (expand: boolean) => {\n if (expand)\n void this.updateState(\n IModelApp.viewManager.selectedView\n ? IModelApp.viewManager.selectedView.view.id\n : undefined\n );\n };\n\n /**\n * Renders ViewSelector component\n */\n public override render() {\n const { imodel, ...props } = this.props;\n\n return (\n <ListPicker\n {...props}\n title={this.state.title}\n setEnabled={this._setEnabled}\n items={this.state.items}\n // eslint-disable-next-line deprecation/deprecation\n icon={<Icon iconSpec={<SvgSavedView />} />}\n onExpanded={this._onExpanded}\n searchBox={this.state.searchBox}\n onSearchValueChange={debounce((search: string) => {\n this._searchInput = search;\n if (\n this._isMounted &&\n this.state.expand === false &&\n this._searchInput.length > 0\n )\n this.setState({ expand: true });\n void this.loadViews();\n }, 300)}\n panelOnly={this.state.panelOnly}\n expanded={this.state.expand}\n />\n );\n }\n}\n\ntype IModelConnectedViewSelectorProps = Omit<\n ViewSelectorProps,\n \"imodel\" | keyof ViewSelectorDefaultProps\n> &\n Partial<ViewSelectorDefaultProps>;\n\n/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.\n * @note Requires redux provider.\n * @beta\n * @deprecated in 4.15.0. Use {@link ViewSelector} instead.\n */\nexport function IModelConnectedViewSelector(\n props: IModelConnectedViewSelectorProps\n) {\n const iModel = useReduxFrameworkState(\n // eslint-disable-next-line deprecation/deprecation\n (state) => state?.sessionState.iModelConnection\n );\n return <ViewSelector imodel={iModel} {...props} />;\n}\n"]}
|
|
@@ -15,8 +15,11 @@ export interface FrameworkState {
|
|
|
15
15
|
* @public
|
|
16
16
|
* @deprecated in 4.15.0. Use your preferred state management library instead.
|
|
17
17
|
*/
|
|
18
|
-
export declare const FrameworkReducer: import("redux").Reducer<
|
|
18
|
+
export declare const FrameworkReducer: import("redux").Reducer<{
|
|
19
19
|
configurableUiState: ConfigurableUiState;
|
|
20
|
+
sessionState: import("./redux-ts.js").DeepReadonlyObject<SessionState>;
|
|
21
|
+
}, import("./SessionState.js").SessionStateActionsUnion | import("./ConfigurableUiState.js").ConfigurableUiActionsUnion, Partial<{
|
|
22
|
+
configurableUiState: never;
|
|
20
23
|
sessionState: never;
|
|
21
|
-
}
|
|
24
|
+
}>>;
|
|
22
25
|
//# sourceMappingURL=FrameworkState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkState.d.ts","sourceRoot":"","sources":["../../../src/appui-react/redux/FrameworkState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"FrameworkState.d.ts","sourceRoot":"","sources":["../../../src/appui-react/redux/FrameworkState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;GAG3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.
|
|
1
|
+
{"version":3,"file":"SelectionContextItemDef.d.ts","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkBvD;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAOzD;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,EAAE,CAU1D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAgB7C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CASrD;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,uBAAuB,CAK7E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CAKzE;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAWf;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,aAAa,CAUf;AAED;;;GAGG;AACH,qBAAa,+BAA+B;IAC1C,WAAkB,+BAA+B,mBAQhD;IAED,WAAkB,mCAAmC,mBAQpD;IAED,WAAkB,sBAAsB,mBASvC;IAED,WAAkB,yBAAyB,iBAa1C;IAED,WAAkB,4BAA4B,mBAQ7C;IAED,WAAkB,gCAAgC,mBAQjD;IAED,WAAkB,mBAAmB,mBASpC;IAED,WAAkB,oBAAoB,iBAarC;IAED,WAAkB,wBAAwB,mBASzC;IAED,WAAkB,wCAAwC,mBAYzD;CACF"}
|
|
@@ -11,17 +11,18 @@ import { CommandItemDef } from "../shared/CommandItemDef.js";
|
|
|
11
11
|
import { SyncUiEventId } from "../syncui/SyncUiEventDispatcher.js";
|
|
12
12
|
import { GroupItemDef } from "../toolbar/GroupItem.js";
|
|
13
13
|
import { UiFramework } from "../UiFramework.js";
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
14
|
+
import { SvgModelIsolate } from "../icons/SvgModelIsolate.js";
|
|
15
|
+
import { SvgLayersIsolate } from "../icons/SvgLayersIsolate.js";
|
|
16
|
+
import { SvgAssetIsolate } from "../icons/SvgAssetIsolate.js";
|
|
17
|
+
import { SvgIsolate } from "@itwin/itwinui-icons-react";
|
|
18
|
+
import { SvgModelHide } from "../icons/SvgModelHide.js";
|
|
19
|
+
import { SvgLayersHide } from "../icons/SvgLayersHide.js";
|
|
20
|
+
import { SvgAssetClassificationHide } from "../icons/SvgAssetClassificationHide.js";
|
|
21
|
+
import { SvgVisibilityHalf } from "@itwin/itwinui-icons-react";
|
|
22
|
+
import { SvgVisibilityHide } from "@itwin/itwinui-icons-react";
|
|
23
|
+
import { SvgVisibilityShow } from "@itwin/itwinui-icons-react";
|
|
24
24
|
import { getActiveViewport } from "../utils/getActiveViewport.js";
|
|
25
|
+
import * as React from "react";
|
|
25
26
|
/* eslint-disable deprecation/deprecation */
|
|
26
27
|
/** Return SyncEventIds that trigger selection state function refresh.
|
|
27
28
|
* @beta
|
|
@@ -127,7 +128,7 @@ export class SelectionContextToolDefinitions {
|
|
|
127
128
|
static get isolateModelsInSelectionItemDef() {
|
|
128
129
|
return new CommandItemDef({
|
|
129
130
|
commandId: "UiFramework.IsolateModel",
|
|
130
|
-
iconSpec:
|
|
131
|
+
iconSpec: React.createElement(SvgModelIsolate, null),
|
|
131
132
|
labelKey: "UiFramework:tools.isolateModels",
|
|
132
133
|
execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),
|
|
133
134
|
});
|
|
@@ -135,7 +136,7 @@ export class SelectionContextToolDefinitions {
|
|
|
135
136
|
static get isolateCategoriesInSelectionItemDef() {
|
|
136
137
|
return new CommandItemDef({
|
|
137
138
|
commandId: "UiFramework.IsolateCategory",
|
|
138
|
-
iconSpec:
|
|
139
|
+
iconSpec: React.createElement(SvgLayersIsolate, null),
|
|
139
140
|
labelKey: "UiFramework:tools.isolateCategories",
|
|
140
141
|
execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),
|
|
141
142
|
});
|
|
@@ -143,7 +144,7 @@ export class SelectionContextToolDefinitions {
|
|
|
143
144
|
static get isolateElementsItemDef() {
|
|
144
145
|
return new CommandItemDef({
|
|
145
146
|
commandId: "UiFramework.IsolateSelected",
|
|
146
|
-
iconSpec:
|
|
147
|
+
iconSpec: React.createElement(SvgAssetIsolate, null),
|
|
147
148
|
labelKey: "UiFramework:tools.isolateSelected",
|
|
148
149
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
149
150
|
execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),
|
|
@@ -153,7 +154,7 @@ export class SelectionContextToolDefinitions {
|
|
|
153
154
|
return new GroupItemDef({
|
|
154
155
|
groupId: "UiFramework.IsolateSelectionGroup",
|
|
155
156
|
labelKey: "UiFramework:tools.isolate",
|
|
156
|
-
iconSpec:
|
|
157
|
+
iconSpec: React.createElement(SvgIsolate, null),
|
|
157
158
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
158
159
|
items: [
|
|
159
160
|
this.isolateElementsItemDef,
|
|
@@ -166,7 +167,7 @@ export class SelectionContextToolDefinitions {
|
|
|
166
167
|
static get hideModelsInSelectionItemDef() {
|
|
167
168
|
return new CommandItemDef({
|
|
168
169
|
commandId: "UiFramework.HideModel",
|
|
169
|
-
iconSpec:
|
|
170
|
+
iconSpec: React.createElement(SvgModelHide, null),
|
|
170
171
|
labelKey: "UiFramework:tools.hideModels",
|
|
171
172
|
execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),
|
|
172
173
|
});
|
|
@@ -174,7 +175,7 @@ export class SelectionContextToolDefinitions {
|
|
|
174
175
|
static get hideCategoriesInSelectionItemDef() {
|
|
175
176
|
return new CommandItemDef({
|
|
176
177
|
commandId: "UiFramework.HideCategory",
|
|
177
|
-
iconSpec:
|
|
178
|
+
iconSpec: React.createElement(SvgLayersHide, null),
|
|
178
179
|
labelKey: "UiFramework:tools.hideCategories",
|
|
179
180
|
execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),
|
|
180
181
|
});
|
|
@@ -182,7 +183,7 @@ export class SelectionContextToolDefinitions {
|
|
|
182
183
|
static get hideElementsItemDef() {
|
|
183
184
|
return new CommandItemDef({
|
|
184
185
|
commandId: "UiFramework.HideSelected",
|
|
185
|
-
iconSpec:
|
|
186
|
+
iconSpec: React.createElement(SvgAssetClassificationHide, null),
|
|
186
187
|
labelKey: "UiFramework:tools.hideSelected",
|
|
187
188
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
188
189
|
execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),
|
|
@@ -192,7 +193,7 @@ export class SelectionContextToolDefinitions {
|
|
|
192
193
|
return new GroupItemDef({
|
|
193
194
|
groupId: "UiFramework.HideSelectionGroup",
|
|
194
195
|
labelKey: "UiFramework:tools.hide",
|
|
195
|
-
iconSpec:
|
|
196
|
+
iconSpec: React.createElement(SvgVisibilityHide, null),
|
|
196
197
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
197
198
|
items: [
|
|
198
199
|
this.hideElementsItemDef,
|
|
@@ -205,7 +206,7 @@ export class SelectionContextToolDefinitions {
|
|
|
205
206
|
static get emphasizeElementsItemDef() {
|
|
206
207
|
return new CommandItemDef({
|
|
207
208
|
commandId: "UiFramework.EmphasizeSelected",
|
|
208
|
-
iconSpec:
|
|
209
|
+
iconSpec: React.createElement(SvgVisibilityHalf, null),
|
|
209
210
|
labelKey: "UiFramework:tools.emphasizeSelected",
|
|
210
211
|
isHidden: getIsHiddenIfSelectionNotActive(),
|
|
211
212
|
execute: async () => UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),
|
|
@@ -214,7 +215,7 @@ export class SelectionContextToolDefinitions {
|
|
|
214
215
|
static get clearHideIsolateEmphasizeElementsItemDef() {
|
|
215
216
|
return new CommandItemDef({
|
|
216
217
|
commandId: "UiFramework.ClearHideIsolateEmphasize",
|
|
217
|
-
iconSpec:
|
|
218
|
+
iconSpec: React.createElement(SvgVisibilityShow, null),
|
|
218
219
|
labelKey: "UiFramework:tools.clearVisibility",
|
|
219
220
|
isHidden: getIsHiddenIfFeatureOverridesActive(),
|
|
220
221
|
execute: async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,gDAAgD,CAAC;AAC7E,OAAO,gBAAgB,MAAM,iDAAiD,CAAC;AAC/E,OAAO,eAAe,MAAM,gDAAgD,CAAC;AAC7E,OAAO,UAAU,MAAM,0CAA0C,CAAC;AAClE,OAAO,YAAY,MAAM,6CAA6C,CAAC;AACvE,OAAO,aAAa,MAAM,8CAA8C,CAAC;AACzE,OAAO,0BAA0B,MAAM,4DAA4D,CAAC;AACpG,OAAO,4BAA4B,MAAM,8DAA8D,CAAC;AACxG,OAAO,iBAAiB,MAAM,oDAAoD,CAAC;AACnF,OAAO,aAAa,MAAM,6CAA6C,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,4CAA4C;AAE5C;;;GAGG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,aAAa,CAAC,oBAAoB;QAClC,aAAa,CAAC,qBAAqB;QACnC,aAAa,CAAC,uBAAuB;QACrC,aAAa,CAAC,mBAAmB;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,aAAa,CAAC,mBAAmB;QACjC,aAAa,CAAC,oBAAoB;QAClC,aAAa,CAAC,qBAAqB;QACnC,mDAAmD;QACnD,oBAAoB,CAAC,mBAAmB;QACxC,aAAa,CAAC,uBAAuB;QACrC,aAAa,CAAC,mBAAmB;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;IACzD,IAAI,cAAc,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,2DAA2D;IAC3D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC9C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;IACvE,IAAI,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3E,OAAO,KAAK,CAAC;IAEf,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CAC7E,QAAQ,CACT,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO,IAAI,uBAAuB,CAChC,2BAA2B,EAC3B,8BAA8B,EAAE,CACjC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO,IAAI,uBAAuB,CAChC,mBAAmB,EACnB,+BAA+B,EAAE,CAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,KAA8B;IAE9B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,SAAS,GACb,WAAW,CAAC,iCAAiC,CAAC,yBAAyB,CACrE,QAAQ,CACT,CAAC;IACJ,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAA8B;IAE9B,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;IACzD,MAAM,SAAS,GACb,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC;IACnE,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,+BAA+B;IACnC,MAAM,KAAK,+BAA+B;QAC/C,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,iCAAiC;YAC3C,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,WAAW,CAAC,iCAAiC,CAAC,mCAAmC,EAAE;SACtF,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,mCAAmC;QACnD,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,6BAA6B;YACxC,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,qCAAqC;YAC/C,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,WAAW,CAAC,iCAAiC,CAAC,sCAAsC,EAAE;SACzF,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,sBAAsB;QACtC,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,6BAA6B;YACxC,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,mCAAmC;YAC7C,QAAQ,EAAE,+BAA+B,EAAE;YAC3C,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,WAAW,CAAC,iCAAiC,CAAC,sBAAsB,EAAE;SACzE,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,yBAAyB;QACzC,OAAO,IAAI,YAAY,CAAC;YACtB,OAAO,EAAE,mCAAmC;YAC5C,QAAQ,EAAE,2BAA2B;YACrC,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,+BAA+B,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,sBAAsB;gBAC3B,IAAI,CAAC,mCAAmC;gBACxC,IAAI,CAAC,+BAA+B;aACrC;YACD,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,4BAA4B;QAC5C,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,uBAAuB;YAClC,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,8BAA8B;YACxC,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,WAAW,CAAC,iCAAiC,CAAC,gCAAgC,EAAE;SACnF,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,gCAAgC;QAChD,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,kCAAkC;YAC5C,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,WAAW,CAAC,iCAAiC,CAAC,mCAAmC,EAAE;SACtF,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,mBAAmB;QACnC,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,0BAA0B;YACpC,QAAQ,EAAE,gCAAgC;YAC1C,QAAQ,EAAE,+BAA+B,EAAE;YAC3C,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,WAAW,CAAC,iCAAiC,CAAC,mBAAmB,EAAE;SACtE,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,oBAAoB;QACpC,OAAO,IAAI,YAAY,CAAC;YACtB,OAAO,EAAE,gCAAgC;YACzC,QAAQ,EAAE,wBAAwB;YAClC,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,+BAA+B,EAAE;YAC3C,KAAK,EAAE;gBACL,IAAI,CAAC,mBAAmB;gBACxB,IAAI,CAAC,gCAAgC;gBACrC,IAAI,CAAC,4BAA4B;aAClC;YACD,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,wBAAwB;QACxC,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,+BAA+B;YAC1C,QAAQ,EAAE,4BAA4B;YACtC,QAAQ,EAAE,qCAAqC;YAC/C,QAAQ,EAAE,+BAA+B,EAAE;YAC3C,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,WAAW,CAAC,iCAAiC,CAAC,wBAAwB,EAAE;SAC3E,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,KAAK,wCAAwC;QACxD,OAAO,IAAI,cAAc,CAAC;YACxB,SAAS,EAAE,uCAAuC;YAClD,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,mCAAmC;YAC7C,QAAQ,EAAE,mCAAmC,EAAE;YAC/C,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,WAAW,CAAC,iCAAiC,CAAC,qBAAqB,EAAE,CAAC;gBAC5E,MAAM,WAAW,CAAC,iCAAiC,CAAC,0BAA0B,EAAE,CAAC;gBACjF,MAAM,WAAW,CAAC,iCAAiC,CAAC,8BAA8B,EAAE,CAAC;YACvF,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState.js\";\nimport { CommandItemDef } from \"../shared/CommandItemDef.js\";\nimport type { BaseItemState } from \"../shared/ItemDefBase.js\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher.js\";\nimport { GroupItemDef } from \"../toolbar/GroupItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems.js\";\nimport { getActiveViewport } from \"../utils/getActiveViewport.js\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n // eslint-disable-next-line deprecation/deprecation\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (selectionCount > 0) return false;\n\n // TODO: add check for categories, subcategories and models\n const hiddenElementsSet = viewport.neverDrawn;\n const selectedElementsSet = viewport.view.iModel.selectionSet.elements;\n if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))\n return false;\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n const isVisible =\n viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: svgModelIsolate,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: svgLayersIsolate,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: svgAssetIsolate,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: svgIsolate,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: svgModelHide,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: svgLayersHide,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: svgAssetClassificationHide,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: svgVisibilityHide,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: svgVisibilitySemiTransparent,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: svgVisibility,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../src/appui-react/selection/SelectionContextItemDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState.js\";\nimport { CommandItemDef } from \"../shared/CommandItemDef.js\";\nimport type { BaseItemState } from \"../shared/ItemDefBase.js\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher.js\";\nimport { GroupItemDef } from \"../toolbar/GroupItem.js\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { SvgModelIsolate } from \"../icons/SvgModelIsolate.js\";\nimport { SvgLayersIsolate } from \"../icons/SvgLayersIsolate.js\";\nimport { SvgAssetIsolate } from \"../icons/SvgAssetIsolate.js\";\nimport { SvgIsolate } from \"@itwin/itwinui-icons-react\";\nimport { SvgModelHide } from \"../icons/SvgModelHide.js\";\nimport { SvgLayersHide } from \"../icons/SvgLayersHide.js\";\nimport { SvgAssetClassificationHide } from \"../icons/SvgAssetClassificationHide.js\";\nimport { SvgVisibilityHalf } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityHide } from \"@itwin/itwinui-icons-react\";\nimport { SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport type { ToolbarItems } from \"../tools/ToolbarItems.js\";\nimport { getActiveViewport } from \"../utils/getActiveViewport.js\";\nimport * as React from \"react\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n // eslint-disable-next-line deprecation/deprecation\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** Return SyncEventIds that trigger selection state function refresh.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function isNoSelectionActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n if (selectionCount > 0) return false;\n\n // TODO: add check for categories, subcategories and models\n const hiddenElementsSet = viewport.neverDrawn;\n const selectedElementsSet = viewport.view.iModel.selectionSet.elements;\n if (![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))\n return false;\n\n return true;\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const viewport = getActiveViewport();\n if (!viewport) {\n return true;\n }\n\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n}\n\n/** Return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** Return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n viewport\n );\n return { ...state, isVisible };\n}\n\n/** Return state with isVisible set to true is SectionSet is active.\n * @beta\n * @deprecated in 4.15.0. Use {@link ToolbarItems} or a custom conditional value instead.\n */\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const viewport = getActiveViewport();\n if (!viewport) {\n return { ...state, isVisible: false };\n }\n\n const selectionCount = UiFramework.getNumItemsSelected();\n const isVisible =\n viewport.view.iModel.selectionSet.size > 0 || selectionCount > 0;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n * @deprecated in 4.15.0. Use {@link ToolbarItems} instead.\n */\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: <SvgModelIsolate />,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: <SvgLayersIsolate />,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: <SvgAssetIsolate />,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: <SvgIsolate />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: <SvgModelHide />,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: <SvgLayersHide />,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: <SvgAssetClassificationHide />,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: <SvgVisibilityHide />,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: <SvgVisibilityHalf />,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: <SvgVisibilityShow />,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Settings
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
8
|
+
import { SvgWindowSettings } from "@itwin/itwinui-icons-react";
|
|
9
9
|
import "./UiSettingsPage.scss";
|
|
10
10
|
import * as React from "react";
|
|
11
11
|
import { UiFramework } from "../../UiFramework.js";
|
|
@@ -196,7 +196,7 @@ export function getUiSettingsManagerEntry(itemPriority) {
|
|
|
196
196
|
itemPriority,
|
|
197
197
|
tabId: "uifw:UiStateStorage",
|
|
198
198
|
label: UiFramework.translate("settings.uiSettingsPage.label"),
|
|
199
|
-
icon:
|
|
199
|
+
icon: React.createElement(SvgWindowSettings, null),
|
|
200
200
|
page: React.createElement(UiSettingsPage, null),
|
|
201
201
|
isDisabled: false,
|
|
202
202
|
tooltip: UiFramework.translate("settings.uiSettingsPage.tooltip"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher.js\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeId.js\";\nimport { ConfigurableUiActionId } from \"../../redux/ConfigurableUiState.js\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, with or without High contrast, or based on OS preference.\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\n * - widget opacity - determines how transparent floating widgets become when the mouse in not in them.\n * @beta\n * @deprecated in 4.15.0. Use iTwinUI components to build a settings page.\n */\nexport function UiSettingsPage() {\n const { translate } = useTranslation();\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n // eslint-disable-next-line deprecation/deprecation\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n ConfigurableUiActionId.SetTheme,\n ConfigurableUiActionId.SetWidgetOpacity,\n ConfigurableUiActionId.SetShowWidgetIcon,\n ConfigurableUiActionId.SetDragInteraction,\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n ConfigurableUiActionId.AnimateToolSettings,\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n ConfigurableUiActionId.SetToolbarOpacity,\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n // eslint-disable-next-line deprecation/deprecation\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n // eslint-disable-next-line deprecation/deprecation\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n });\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: translate(\"settings.uiSettingsPage.systemPreferred\"),\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n {\n label: translate(\"settings.uiSettingsPage.light\"),\n value: ColorTheme.Light,\n },\n {\n label: translate(\"settings.uiSettingsPage.dark\"),\n value: ColorTheme.Dark,\n },\n {\n label: translate(\"settings.uiSettingsPage.lightHighContrast\"),\n value: ColorTheme.HighContrastLight,\n },\n {\n label: translate(\"settings.uiSettingsPage.darkHighContrast\"),\n value: ColorTheme.HighContrastDark,\n },\n {\n label: translate(\"settings.uiSettingsPage.inherit\"),\n value: ColorTheme.Inherit,\n },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.themeTitle\")}\n description={translate(\"settings.uiSettingsPage.themeDescription\")}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.autoHideTitle\")}\n description={translate(\"settings.uiSettingsPage.autoHideDescription\")}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.dragInteractionTitle\")}\n description={translate(\n \"settings.uiSettingsPage.dragInteractionDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetIconTitle\")}\n description={translate(\"settings.uiSettingsPage.widgetIconDescription\")}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")}\n description={translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.toolbarOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.widgetOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: widowSettingsIconSvg,\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\nimport { SvgWindowSettings } from \"@itwin/itwinui-icons-react\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework.js\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher.js\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeId.js\";\nimport { ConfigurableUiActionId } from \"../../redux/ConfigurableUiState.js\";\n\n/* eslint-disable deprecation/deprecation */\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, with or without High contrast, or based on OS preference.\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\n * - widget opacity - determines how transparent floating widgets become when the mouse in not in them.\n * @beta\n * @deprecated in 4.15.0. Use iTwinUI components to build a settings page.\n */\nexport function UiSettingsPage() {\n const { translate } = useTranslation();\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n // eslint-disable-next-line deprecation/deprecation\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n ConfigurableUiActionId.SetTheme,\n ConfigurableUiActionId.SetWidgetOpacity,\n ConfigurableUiActionId.SetShowWidgetIcon,\n ConfigurableUiActionId.SetDragInteraction,\n ConfigurableUiActionId.AutoCollapseUnpinnedPanels,\n ConfigurableUiActionId.AnimateToolSettings,\n ConfigurableUiActionId.UseToolAsToolSettingsLabel,\n ConfigurableUiActionId.SetToolbarOpacity,\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n return SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n // eslint-disable-next-line deprecation/deprecation\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n // eslint-disable-next-line deprecation/deprecation\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n });\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: translate(\"settings.uiSettingsPage.systemPreferred\"),\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n {\n label: translate(\"settings.uiSettingsPage.light\"),\n value: ColorTheme.Light,\n },\n {\n label: translate(\"settings.uiSettingsPage.dark\"),\n value: ColorTheme.Dark,\n },\n {\n label: translate(\"settings.uiSettingsPage.lightHighContrast\"),\n value: ColorTheme.HighContrastLight,\n },\n {\n label: translate(\"settings.uiSettingsPage.darkHighContrast\"),\n value: ColorTheme.HighContrastDark,\n },\n {\n label: translate(\"settings.uiSettingsPage.inherit\"),\n value: ColorTheme.Inherit,\n },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n // eslint-disable-next-line deprecation/deprecation\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.themeTitle\")}\n description={translate(\"settings.uiSettingsPage.themeDescription\")}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.autoHideTitle\")}\n description={translate(\"settings.uiSettingsPage.autoHideDescription\")}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.dragInteractionTitle\")}\n description={translate(\n \"settings.uiSettingsPage.dragInteractionDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetIconTitle\")}\n description={translate(\"settings.uiSettingsPage.widgetIconDescription\")}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")}\n description={translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )}\n description={translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.toolbarOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={translate(\"settings.uiSettingsPage.widgetOpacityTitle\")}\n description={translate(\n \"settings.uiSettingsPage.widgetOpacityDescription\"\n )}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: <SvgWindowSettings />,\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module StatusBar
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
8
|
+
import { SvgSectionTool } from "../icons/SvgSectionTool.js";
|
|
9
9
|
import { IModelApp, ViewClipClearTool, ViewClipDecoration, ViewClipDecorationProvider, } from "@itwin/core-frontend";
|
|
10
10
|
import { Icon } from "@itwin/core-react";
|
|
11
11
|
import { Button, IconButton, ToggleSwitch } from "@itwin/itwinui-react";
|
|
@@ -55,7 +55,7 @@ export function SectionsStatusField(props) {
|
|
|
55
55
|
React.createElement("div", { className: classnames("uifw-sections-label") }, translate("tools.sectionShowHandles")),
|
|
56
56
|
React.createElement(ToggleSwitch, { className: "uifw-sections-toggle", onChange: toggleManipulators, checked: hasManipulatorsShown })))) },
|
|
57
57
|
React.createElement(IconButton, { label: tooltip, styleType: "borderless", "data-testid": "sections-status-field-button" },
|
|
58
|
-
React.createElement(Icon, { iconSpec:
|
|
58
|
+
React.createElement(Icon, { iconSpec: React.createElement(SvgSectionTool, null) }),
|
|
59
59
|
React.createElement(StatusBarPopover.ExpandIndicator, null))))));
|
|
60
60
|
}
|
|
61
61
|
//# sourceMappingURL=SectionsField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsField.js","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SectionsField.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,cAAc,MAAM
|
|
1
|
+
{"version":3,"file":"SectionsField.js","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SectionsField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module StatusBar\n */\n\nimport { SvgSectionTool } from \"../icons/SvgSectionTool.js\";\nimport {\n IModelApp,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n} from \"@itwin/core-frontend\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Icon } from \"@itwin/core-react\";\nimport { Button, IconButton, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { useActiveViewport } from \"../hooks/useActiveViewport.js\";\nimport { StatusBarDialog } from \"../statusbar/dialog/Dialog.js\";\nimport \"./SectionsField.scss\";\nimport { useTranslation } from \"../hooks/useTranslation.js\";\nimport { StatusBarPopover } from \"../statusbar/popup/StatusBarPopover.js\";\n\n/** Sections Status Field Props\n * @beta\n */\n// eslint-disable-next-line deprecation/deprecation\nexport interface SectionsStatusFieldProps extends CommonProps {\n hideWhenUnused?: boolean;\n}\n\n/** Status Field for showing section extra tools for clearing and showing manipulators\n * @beta\n */\nexport function SectionsStatusField(props: SectionsStatusFieldProps) {\n const { translate } = useTranslation();\n const tooltip = translate(\"tools.sectionTools\");\n\n const activeViewport = useActiveViewport();\n const [showIndicator, setShowIndicator] = React.useState(false);\n const [isPopupOpen, setPopupOpen] = React.useState(false);\n const [hasManipulatorsShown, setHasManipulatorsShown] = React.useState(false);\n\n React.useEffect(() => {\n const clipActive = !!activeViewport && !!activeViewport.view.getViewClip();\n setShowIndicator(clipActive || !props.hideWhenUnused);\n setHasManipulatorsShown(\n clipActive && !!activeViewport && !!ViewClipDecoration.get(activeViewport)\n );\n\n return ViewClipDecorationProvider.create().onActiveClipChanged.addListener(\n (viewport) => {\n if (viewport !== activeViewport) return;\n\n setHasManipulatorsShown(!!ViewClipDecoration.get(activeViewport));\n const isClipActive = !!activeViewport.view.getViewClip();\n setShowIndicator(isClipActive || !props.hideWhenUnused);\n }\n );\n }, [activeViewport, props.hideWhenUnused, isPopupOpen]);\n\n const toggleManipulators = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (activeViewport) {\n setHasManipulatorsShown(e.target.checked);\n await ViewClipDecorationProvider.create().toggleDecoration(\n activeViewport\n );\n }\n };\n\n const handleClear = async () => {\n await IModelApp.tools.run(\n ViewClipClearTool.toolId,\n ViewClipDecorationProvider.create()\n );\n setPopupOpen(false);\n };\n\n return (\n <>\n {showIndicator && (\n <StatusBarPopover\n visible={isPopupOpen}\n onVisibleChange={setPopupOpen}\n content={\n <StatusBarDialog\n titleBar={<StatusBarDialog.TitleBar title={tooltip} />}\n >\n <div className=\"uifw-sections-footer-contents\">\n <Button onClick={handleClear}>\n {translate(\"tools.sectionClear\")}\n </Button>\n <div className=\"uifw-uifw-sections-toggle-container\">\n <div className={classnames(\"uifw-sections-label\")}>\n {translate(\"tools.sectionShowHandles\")}\n </div>\n <ToggleSwitch\n className=\"uifw-sections-toggle\"\n onChange={toggleManipulators}\n checked={hasManipulatorsShown}\n />\n </div>\n </div>\n </StatusBarDialog>\n }\n >\n <IconButton\n label={tooltip}\n styleType=\"borderless\"\n data-testid=\"sections-status-field-button\"\n >\n {/* eslint-disable-next-line deprecation/deprecation */}\n <Icon iconSpec={<SvgSectionTool />} />\n <StatusBarPopover.ExpandIndicator />\n </IconButton>\n </StatusBarPopover>\n )}\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnapMode.d.ts","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SnapMode.tsx"],"names":[],"mappings":"AAIA;;GAEG;
|
|
1
|
+
{"version":3,"file":"SnapMode.d.ts","sourceRoot":"","sources":["../../../src/appui-react/statusfields/SnapMode.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8D/B,oEAAoE;AAEpE,UAAU,kBAAmB,SAAQ,WAAW;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBA+DtD"}
|