@itwin/appui-react 3.5.0-dev.57 → 3.5.0-dev.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/appui-react/configurableui/state.d.ts +1 -1
- package/lib/cjs/appui-react/configurableui/state.js +1 -1
- package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +2 -0
- package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
- package/lib/cjs/appui-react/uistate/AppUiSettings.js +4 -0
- package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/esm/appui-react/configurableui/state.d.ts +1 -1
- package/lib/esm/appui-react/configurableui/state.js +1 -1
- package/lib/esm/appui-react/configurableui/state.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +2 -0
- package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
- package/lib/esm/appui-react/uistate/AppUiSettings.js +4 -0
- package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/package.json +32 -32
|
@@ -19,7 +19,7 @@ export declare enum ConfigurableUiActionId {
|
|
|
19
19
|
SetViewOverlayDisplay = "configurableui:set-view-overlay-display",
|
|
20
20
|
AnimateToolSettings = "configurableui:set-animate-tool-settings",
|
|
21
21
|
UseToolAsToolSettingsLabel = "configurableui:set-use-tool-as-tool-settings-label",
|
|
22
|
-
SetToolbarOpacity = "configurableui:
|
|
22
|
+
SetToolbarOpacity = "configurableui:set-toolbar-opacity"
|
|
23
23
|
}
|
|
24
24
|
/** The portion of state managed by the ConfigurableUiReducer.
|
|
25
25
|
* @public
|
|
@@ -29,7 +29,7 @@ var ConfigurableUiActionId;
|
|
|
29
29
|
ConfigurableUiActionId["SetViewOverlayDisplay"] = "configurableui:set-view-overlay-display";
|
|
30
30
|
ConfigurableUiActionId["AnimateToolSettings"] = "configurableui:set-animate-tool-settings";
|
|
31
31
|
ConfigurableUiActionId["UseToolAsToolSettingsLabel"] = "configurableui:set-use-tool-as-tool-settings-label";
|
|
32
|
-
ConfigurableUiActionId["SetToolbarOpacity"] = "configurableui:
|
|
32
|
+
ConfigurableUiActionId["SetToolbarOpacity"] = "configurableui:set-toolbar-opacity";
|
|
33
33
|
})(ConfigurableUiActionId = exports.ConfigurableUiActionId || (exports.ConfigurableUiActionId = {}));
|
|
34
34
|
/** used on first call of ConfigurableUiReducer */
|
|
35
35
|
const initialState = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module State\r\n */\r\n\r\nimport { SnapMode } from \"@itwin/core-frontend\";\r\nimport { ActionsUnion, createAction } from \"../redux/redux-ts\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, TOOLBAR_OPACITY_DEFAULT, WIDGET_OPACITY_DEFAULT } from \"../theme/ThemeManager\";\r\nimport { FrameworkVersionId } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui snapmode toolprompt\r\n\r\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\r\n * Since these are also used as sync ids they should be in lowercase.\r\n * @public\r\n */\r\nexport enum ConfigurableUiActionId {\r\n SetSnapMode = \"configurableui:set_snapmode\",\r\n SetTheme = \"configurableui:set_theme\",\r\n SetToolPrompt = \"configurableui:set_toolprompt\",\r\n SetWidgetOpacity = \"configurableui:set_widget_opacity\",\r\n SetDragInteraction = \"configurableui:set-drag-interaction\",\r\n SetFrameworkVersion = \"configurableui:set-framework-version\",\r\n SetShowWidgetIcon = \"configurableui:set-show-widget-icon\",\r\n AutoCollapseUnpinnedPanels = \"configurableui:set-auto-collapse-unpinned-panels\",\r\n SetViewOverlayDisplay = \"configurableui:set-view-overlay-display\",\r\n AnimateToolSettings = \"configurableui:set-animate-tool-settings\",\r\n UseToolAsToolSettingsLabel = \"configurableui:set-use-tool-as-tool-settings-label\",\r\n SetToolbarOpacity = \"configurableui:set_toolbar_opacity\",\r\n}\r\n\r\n/** The portion of state managed by the ConfigurableUiReducer.\r\n * @public\r\n */\r\nexport interface ConfigurableUiState {\r\n snapMode: number;\r\n toolPrompt: string;\r\n theme: string;\r\n widgetOpacity: number;\r\n useDragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n showWidgetIcon: boolean;\r\n autoCollapseUnpinnedPanels: boolean;\r\n viewOverlayDisplay: boolean;\r\n animateToolSettings: boolean;\r\n useToolAsToolSettingsLabel: boolean;\r\n toolbarOpacity: number;\r\n}\r\n\r\n/** used on first call of ConfigurableUiReducer */\r\nconst initialState: ConfigurableUiState = {\r\n snapMode: SnapMode.NearestKeypoint as number,\r\n toolPrompt: \"\",\r\n theme: SYSTEM_PREFERRED_COLOR_THEME,\r\n widgetOpacity: WIDGET_OPACITY_DEFAULT,\r\n useDragInteraction: false,\r\n frameworkVersion: \"2\",\r\n showWidgetIcon: true,\r\n autoCollapseUnpinnedPanels: false,\r\n viewOverlayDisplay: true,\r\n animateToolSettings: false,\r\n useToolAsToolSettingsLabel: false,\r\n toolbarOpacity: TOOLBAR_OPACITY_DEFAULT,\r\n};\r\n\r\n/** An object with a function that creates each ConfigurableUiReducer that can be handled by our reducer.\r\n * @public\r\n */\r\nexport const ConfigurableUiActions = { // eslint-disable-line @typescript-eslint/naming-convention\r\n setSnapMode: (snapMode: number) => createAction(ConfigurableUiActionId.SetSnapMode, snapMode),\r\n setTheme:\r\n // istanbul ignore next\r\n (theme: string) => createAction(ConfigurableUiActionId.SetTheme, theme),\r\n setToolPrompt:\r\n // istanbul ignore next\r\n (toolPrompt: string) => createAction(ConfigurableUiActionId.SetToolPrompt, toolPrompt),\r\n setWidgetOpacity:\r\n // istanbul ignore next\r\n (opacity: number) => createAction(ConfigurableUiActionId.SetWidgetOpacity, opacity),\r\n setDragInteraction: (dragInteraction: boolean) => createAction(ConfigurableUiActionId.SetDragInteraction, dragInteraction),\r\n setFrameworkVersion: (frameworkVersion: FrameworkVersionId) => createAction(ConfigurableUiActionId.SetFrameworkVersion, frameworkVersion), // eslint-disable-line deprecation/deprecation\r\n setShowWidgetIcon: (showWidgetIcon: boolean) => createAction(ConfigurableUiActionId.SetShowWidgetIcon, showWidgetIcon),\r\n setAutoCollapseUnpinnedPanels: (autoCollapse: boolean) => createAction(ConfigurableUiActionId.AutoCollapseUnpinnedPanels, autoCollapse),\r\n setViewOverlayDisplay: (displayViewOverlay: boolean) => createAction(ConfigurableUiActionId.SetViewOverlayDisplay, displayViewOverlay),\r\n setAnimateToolSettings: (animateToolSettings: boolean) => createAction(ConfigurableUiActionId.AnimateToolSettings, animateToolSettings),\r\n setUseToolAsToolSettingsLabel: (useToolAsToolSettingsLabel: boolean) => createAction(ConfigurableUiActionId.UseToolAsToolSettingsLabel, useToolAsToolSettingsLabel),\r\n setToolbarOpacity: (opacity: number) => createAction(ConfigurableUiActionId.SetToolbarOpacity, opacity),\r\n};\r\n\r\n/** Union of ConfigurableUi Redux actions\r\n * @public\r\n */\r\nexport type ConfigurableUiActionsUnion = ActionsUnion<typeof ConfigurableUiActions>;\r\n\r\n/** Handles actions to update ConfigurableUiState.\r\n * @public\r\n */\r\nexport function ConfigurableUiReducer(state: ConfigurableUiState = initialState, action: ConfigurableUiActionsUnion): ConfigurableUiState {\r\n const outState = state;\r\n\r\n switch (action.type) {\r\n case ConfigurableUiActionId.SetSnapMode: {\r\n return { ...state, snapMode: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolPrompt: {\r\n return { ...state, toolPrompt: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetTheme: {\r\n return { ...state, theme: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetWidgetOpacity: {\r\n return { ...state, widgetOpacity: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetDragInteraction: {\r\n return { ...state, useDragInteraction: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetFrameworkVersion: {\r\n const frameworkVersion = (action.payload);\r\n return { ...state, frameworkVersion };\r\n }\r\n case ConfigurableUiActionId.SetShowWidgetIcon: {\r\n return { ...state, showWidgetIcon: action.payload };\r\n }\r\n case ConfigurableUiActionId.AutoCollapseUnpinnedPanels: {\r\n return { ...state, autoCollapseUnpinnedPanels: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetViewOverlayDisplay: {\r\n return { ...state, viewOverlayDisplay: action.payload };\r\n }\r\n case ConfigurableUiActionId.AnimateToolSettings: {\r\n return { ...state, animateToolSettings: action.payload };\r\n }\r\n case ConfigurableUiActionId.UseToolAsToolSettingsLabel: {\r\n return { ...state, useToolAsToolSettingsLabel: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolbarOpacity: {\r\n return { ...state, toolbarOpacity: action.payload };\r\n }\r\n }\r\n return outState;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module State\r\n */\r\n\r\nimport { SnapMode } from \"@itwin/core-frontend\";\r\nimport { ActionsUnion, createAction } from \"../redux/redux-ts\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, TOOLBAR_OPACITY_DEFAULT, WIDGET_OPACITY_DEFAULT } from \"../theme/ThemeManager\";\r\nimport { FrameworkVersionId } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui snapmode toolprompt\r\n\r\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\r\n * Since these are also used as sync ids they should be in lowercase.\r\n * @public\r\n */\r\nexport enum ConfigurableUiActionId {\r\n SetSnapMode = \"configurableui:set_snapmode\",\r\n SetTheme = \"configurableui:set_theme\",\r\n SetToolPrompt = \"configurableui:set_toolprompt\",\r\n SetWidgetOpacity = \"configurableui:set_widget_opacity\",\r\n SetDragInteraction = \"configurableui:set-drag-interaction\",\r\n SetFrameworkVersion = \"configurableui:set-framework-version\",\r\n SetShowWidgetIcon = \"configurableui:set-show-widget-icon\",\r\n AutoCollapseUnpinnedPanels = \"configurableui:set-auto-collapse-unpinned-panels\",\r\n SetViewOverlayDisplay = \"configurableui:set-view-overlay-display\",\r\n AnimateToolSettings = \"configurableui:set-animate-tool-settings\",\r\n UseToolAsToolSettingsLabel = \"configurableui:set-use-tool-as-tool-settings-label\",\r\n SetToolbarOpacity = \"configurableui:set-toolbar-opacity\",\r\n}\r\n\r\n/** The portion of state managed by the ConfigurableUiReducer.\r\n * @public\r\n */\r\nexport interface ConfigurableUiState {\r\n snapMode: number;\r\n toolPrompt: string;\r\n theme: string;\r\n widgetOpacity: number;\r\n useDragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n showWidgetIcon: boolean;\r\n autoCollapseUnpinnedPanels: boolean;\r\n viewOverlayDisplay: boolean;\r\n animateToolSettings: boolean;\r\n useToolAsToolSettingsLabel: boolean;\r\n toolbarOpacity: number;\r\n}\r\n\r\n/** used on first call of ConfigurableUiReducer */\r\nconst initialState: ConfigurableUiState = {\r\n snapMode: SnapMode.NearestKeypoint as number,\r\n toolPrompt: \"\",\r\n theme: SYSTEM_PREFERRED_COLOR_THEME,\r\n widgetOpacity: WIDGET_OPACITY_DEFAULT,\r\n useDragInteraction: false,\r\n frameworkVersion: \"2\",\r\n showWidgetIcon: true,\r\n autoCollapseUnpinnedPanels: false,\r\n viewOverlayDisplay: true,\r\n animateToolSettings: false,\r\n useToolAsToolSettingsLabel: false,\r\n toolbarOpacity: TOOLBAR_OPACITY_DEFAULT,\r\n};\r\n\r\n/** An object with a function that creates each ConfigurableUiReducer that can be handled by our reducer.\r\n * @public\r\n */\r\nexport const ConfigurableUiActions = { // eslint-disable-line @typescript-eslint/naming-convention\r\n setSnapMode: (snapMode: number) => createAction(ConfigurableUiActionId.SetSnapMode, snapMode),\r\n setTheme:\r\n // istanbul ignore next\r\n (theme: string) => createAction(ConfigurableUiActionId.SetTheme, theme),\r\n setToolPrompt:\r\n // istanbul ignore next\r\n (toolPrompt: string) => createAction(ConfigurableUiActionId.SetToolPrompt, toolPrompt),\r\n setWidgetOpacity:\r\n // istanbul ignore next\r\n (opacity: number) => createAction(ConfigurableUiActionId.SetWidgetOpacity, opacity),\r\n setDragInteraction: (dragInteraction: boolean) => createAction(ConfigurableUiActionId.SetDragInteraction, dragInteraction),\r\n setFrameworkVersion: (frameworkVersion: FrameworkVersionId) => createAction(ConfigurableUiActionId.SetFrameworkVersion, frameworkVersion), // eslint-disable-line deprecation/deprecation\r\n setShowWidgetIcon: (showWidgetIcon: boolean) => createAction(ConfigurableUiActionId.SetShowWidgetIcon, showWidgetIcon),\r\n setAutoCollapseUnpinnedPanels: (autoCollapse: boolean) => createAction(ConfigurableUiActionId.AutoCollapseUnpinnedPanels, autoCollapse),\r\n setViewOverlayDisplay: (displayViewOverlay: boolean) => createAction(ConfigurableUiActionId.SetViewOverlayDisplay, displayViewOverlay),\r\n setAnimateToolSettings: (animateToolSettings: boolean) => createAction(ConfigurableUiActionId.AnimateToolSettings, animateToolSettings),\r\n setUseToolAsToolSettingsLabel: (useToolAsToolSettingsLabel: boolean) => createAction(ConfigurableUiActionId.UseToolAsToolSettingsLabel, useToolAsToolSettingsLabel),\r\n setToolbarOpacity: (opacity: number) => createAction(ConfigurableUiActionId.SetToolbarOpacity, opacity),\r\n};\r\n\r\n/** Union of ConfigurableUi Redux actions\r\n * @public\r\n */\r\nexport type ConfigurableUiActionsUnion = ActionsUnion<typeof ConfigurableUiActions>;\r\n\r\n/** Handles actions to update ConfigurableUiState.\r\n * @public\r\n */\r\nexport function ConfigurableUiReducer(state: ConfigurableUiState = initialState, action: ConfigurableUiActionsUnion): ConfigurableUiState {\r\n const outState = state;\r\n\r\n switch (action.type) {\r\n case ConfigurableUiActionId.SetSnapMode: {\r\n return { ...state, snapMode: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolPrompt: {\r\n return { ...state, toolPrompt: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetTheme: {\r\n return { ...state, theme: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetWidgetOpacity: {\r\n return { ...state, widgetOpacity: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetDragInteraction: {\r\n return { ...state, useDragInteraction: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetFrameworkVersion: {\r\n const frameworkVersion = (action.payload);\r\n return { ...state, frameworkVersion };\r\n }\r\n case ConfigurableUiActionId.SetShowWidgetIcon: {\r\n return { ...state, showWidgetIcon: action.payload };\r\n }\r\n case ConfigurableUiActionId.AutoCollapseUnpinnedPanels: {\r\n return { ...state, autoCollapseUnpinnedPanels: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetViewOverlayDisplay: {\r\n return { ...state, viewOverlayDisplay: action.payload };\r\n }\r\n case ConfigurableUiActionId.AnimateToolSettings: {\r\n return { ...state, animateToolSettings: action.payload };\r\n }\r\n case ConfigurableUiActionId.UseToolAsToolSettingsLabel: {\r\n return { ...state, useToolAsToolSettingsLabel: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolbarOpacity: {\r\n return { ...state, toolbarOpacity: action.payload };\r\n }\r\n }\r\n return outState;\r\n}\r\n"]}
|
|
@@ -76,7 +76,7 @@ function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
76
76
|
const syncIdsOfInterest = ["configurableui:set_theme", "configurableui:set_widget_opacity", "configurableui:set-show-widget-icon",
|
|
77
77
|
"configurableui:set-drag-interaction", "configurableui:set-framework-version",
|
|
78
78
|
"configurableui:set-auto-collapse-unpinned-panels", "configurableui:set-animate-tool-settings",
|
|
79
|
-
"configurableui:set-use-tool-as-tool-settings-label", "configurableui:
|
|
79
|
+
"configurableui:set-use-tool-as-tool-settings-label", "configurableui:set-toolbar-opacity", SyncUiEventDispatcher_1.SyncUiEventId.ShowHideManagerSettingChange];
|
|
80
80
|
const handleSyncUiEvent = (args) => {
|
|
81
81
|
// istanbul ignore else
|
|
82
82
|
if (syncIdsOfInterest.some((value) => args.eventIds.has(value))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\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.\r\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\r\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\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\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.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"));\r\n const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"));\r\n const toolbarOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\"));\r\n const toolbarOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() => UiFramework.getToolbarOpacity());\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\",\r\n \"configurableui:set-use-tool-as-tool-settings-label\", \"configurableui:set_toolbar_opacity\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)\r\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\r\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\r\n setToolbarOpacity(UiFramework.getToolbarOpacity());\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel, toolbarOpacity]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\r\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\r\n }, [useToolAsToolSettingsLabel]);\r\n\r\n const onToolbarOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setToolbarOpacity(values[0]);\r\n }\r\n }, []);\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n <SettingsItem title={useToolAsToolSettingsLabelTitle.current} description={useToolAsToolSettingsLabelDescription.current}\r\n settingUi={<ToggleSwitch checked={useToolAsToolSettingsLabel} onChange={OnToggleUseToolAsToolSettingsLabel} />}\r\n />\r\n <SettingsItem title={toolbarOpacityTitle.current} description={toolbarOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[toolbarOpacity]} step={0.05} onChange={onToolbarOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,yCAAyC;AAEzC,0FAAoF;AACpF,iCAA+B;AAC/B,+BAA+B;AAE/B,mDAAgD;AAChD,2DAAoF;AACpF,qEAAkE;AAClE,8EAA0F;AAC1F,0DAA2E;AAC3E,wDAAkF;AAElF;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAAC,EAAE,8BAA8B,EAA+C;IAC5G,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACzG,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACnG,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC/G,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACjH,MAAM,0BAA0B,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC,CAAC;IAC7H,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAChG,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC5G,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC,CAAC;IACzH,MAAM,8BAA8B,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC,CAAC;IACrI,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC,CAAC;IACrH,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC,CAAC;IACjI,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACtF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACxF,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAC5G,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAC7G,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC,CAAC;IACzH,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACvG,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC,CAAC;IACnH,MAAM,+BAA+B,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACvI,MAAM,qCAAqC,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,+DAA+D,CAAC,CAAC,CAAC;IACnJ,MAAM,wBAAwB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC,CAAC;IACzH,MAAM,8BAA8B,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC,CAAC;IACrI,MAAM,+BAA+B,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACvI,MAAM,qCAAqC,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,+DAA+D,CAAC,CAAC,CAAC;IACnJ,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC/G,MAAM,yBAAyB,GAAG,KAAK,CAAC,MAAM,CAAC,yBAAW,CAAC,SAAS,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAE3H,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,SAAS,CAAC,CAAC;IAC9E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,kBAAkB,CAAC,CAAC;IACzG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,cAAc,CAAC,CAAC;IAC7F,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,0BAA0B,CAAC,CAAC;IACjI,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,mBAAmB,CAAC,CAAC;IAC5G,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,0BAA0B,CAAC,CAAC;IACjI,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,qCAAiB,CAAC,UAAU,CAAC,CAAC;IACvF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,qCAAiB,CAAC,mBAAmB,CAAC,CAAC;IAClH,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,qCAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC5G,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAElG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,CAAC,0BAA0B,EAAE,mCAAmC,EAAE,qCAAqC;YAC/H,qCAAqC,EAAE,sCAAsC;YAC7E,kDAAkD,EAAE,0CAA0C;YAC9F,oDAAoD,EAAE,oCAAoC,EAAE,qCAAa,CAAC,4BAA4B,CAAC,CAAC;QAE1I,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAE,EAAE;YAClD,uBAAuB;YACvB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChF,IAAI,yBAAW,CAAC,aAAa,EAAE,KAAK,KAAK;oBACvC,QAAQ,CAAC,yBAAW,CAAC,aAAa,EAAE,CAAC,CAAC;gBACxC,IAAI,qCAAiB,CAAC,UAAU,KAAK,UAAU;oBAC7C,aAAa,CAAC,qCAAiB,CAAC,UAAU,CAAC,CAAC;gBAC9C,IAAI,yBAAW,CAAC,SAAS,KAAK,SAAS;oBACrC,YAAY,CAAC,yBAAW,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,yBAAW,CAAC,kBAAkB,KAAK,kBAAkB;oBACvD,qBAAqB,CAAC,yBAAW,CAAC,kBAAkB,CAAC,CAAC;gBACxD,IAAI,yBAAW,CAAC,cAAc,KAAK,cAAc;oBAC/C,iBAAiB,CAAC,yBAAW,CAAC,cAAc,CAAC,CAAC;gBAChD,IAAI,yBAAW,CAAC,0BAA0B,KAAK,0BAA0B;oBACvE,6BAA6B,CAAC,yBAAW,CAAC,0BAA0B,CAAC,CAAC;gBACxE,IAAI,yBAAW,CAAC,gBAAgB,EAAE,KAAK,aAAa;oBAClD,gBAAgB,CAAC,yBAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACnD,IAAI,qCAAiB,CAAC,UAAU,KAAK,UAAU;oBAC7C,aAAa,CAAC,qCAAiB,CAAC,UAAU,CAAC,CAAC;gBAC9C,IAAI,qCAAiB,CAAC,mBAAmB,KAAK,mBAAmB;oBAC/D,sBAAsB,CAAC,qCAAiB,CAAC,mBAAmB,CAAC,CAAC;gBAChE,IAAI,qCAAiB,CAAC,iBAAiB,KAAK,iBAAiB;oBAC3D,oBAAoB,CAAC,qCAAiB,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,IAAI,yBAAW,CAAC,mBAAmB,KAAK,mBAAmB;oBACzD,sBAAsB,CAAC,yBAAW,CAAC,mBAAmB,CAAC,CAAC;gBAC1D,IAAI,yBAAW,CAAC,0BAA0B,KAAK,0BAA0B;oBACvE,6BAA6B,CAAC,yBAAW,CAAC,0BAA0B,CAAC,CAAC;gBACxE,IAAI,yBAAW,CAAC,iBAAiB,EAAE,KAAK,cAAc;oBACpD,iBAAiB,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;aACtD;QACH,CAAC,CAAC;QACF,OAAO,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,0BAA0B,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS;QAC7F,kBAAkB,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,cAAc,CAAC,CAAC,CAAC;IAE5H,MAAM,kBAAkB,GAAG,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,2CAA4B,EAAE,CAAC;IACxG,MAAM,YAAY,GAA2B;QAC3C,kBAAkB;QAClB,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAU,CAAC,KAAK,EAAE;QACtD,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAU,CAAC,IAAI,EAAE;KACrD,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QAC3D,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACpD,qCAAiB,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC;IAC7C,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,2BAA2B,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/D,qCAAiB,CAAC,mBAAmB,GAAG,CAAC,mBAAmB,CAAC;IAC/D,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC7D,qCAAiB,CAAC,iBAAiB,GAAG,CAAC,iBAAiB,CAAC;IAC3D,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,yBAAW,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,kCAAkC,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtE,yBAAW,CAAC,6BAA6B,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEjC,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAyB,EAAE,EAAE;QAClF,uBAAuB;QACvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,yBAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5D,yBAAW,CAAC,YAAY,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC3D,yBAAW,CAAC,qBAAqB,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,2BAA2B,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/D,yBAAW,CAAC,sBAAsB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC3D,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1B,MAAM,YAAY,GAAG,yBAAW,CAAC,aAAa,EAAE,CAAC;IAEjD,MAAM,kCAAkC,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACtE,yBAAW,CAAC,6BAA6B,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEjC,MAAM,sBAAsB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,MAAyB,EAAE,EAAE;QACnF,uBAAuB;QACvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,yBAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,6BAAK,SAAS,EAAC,eAAe;QAC5B,oBAAC,YAAY,IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAC5E,SAAS,EACP,4CAAiB,wBAAwB,EAAC,SAAS,EAAC,wBAAwB;gBAC1E,oBAAC,sBAAM,IACL,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,YAAY,iBACT,cAAc,EAC1B,IAAI,EAAC,OAAO,GACZ,CACE,GAER;QACF,oBAAC,YAAY,IAAC,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAClF,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,GAAI,GAC5E;QACD,8BAA8B,IAAI,oBAAC,YAAY,IAAC,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,CAAC,OAAO,EACrH,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,yBAAW,CAAC,SAAS,KAAK,GAAG,EAAE,QAAQ,EAAE,wBAAwB,GAAI,GACvG;QACD,yBAAW,CAAC,SAAS,KAAK,GAAG,IAAI;YAChC,oBAAC,YAAY,IAAC,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,0BAA0B,CAAC,OAAO,EAChG,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB,GAAI,GAC3F;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,8BAA8B,CAAC,OAAO,EACxG,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,2BAA2B,GAAI,GAChG;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC,OAAO,EACpG,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,yBAAyB,GAAI,GAC5F;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAqB,CAAC,OAAO,EACtF,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,GAAI,GAClF;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,+BAA+B,CAAC,OAAO,EAAE,WAAW,EAAE,qCAAqC,CAAC,OAAO,EACtH,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,kCAAkC,GAAI,GAC9G;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,8BAA8B,CAAC,OAAO,EACxG,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,2BAA2B,GAAI,GAChG;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,+BAA+B,CAAC,OAAO,EAAE,WAAW,EAAE,qCAAqC,CAAC,OAAO,EACtH,SAAS,EAAE,oBAAC,4BAAY,IAAC,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,kCAAkC,GAAI,GAC9G;YACF,oBAAC,YAAY,IAAC,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,yBAAyB,CAAC,OAAO,EAC9F,SAAS,EACP,oBAAC,sBAAM,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAClG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAE5E,CACD;QAEH,oBAAC,YAAY,IAAC,KAAK,EAAE,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,wBAAwB,CAAC,OAAO,EAC5F,SAAS,EACP,oBAAC,sBAAM,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAChG,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAC,KAAK,EAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAE5E,CACE,CACP,CAAC;AACJ,CAAC;AA3MD,wCA2MC;AAQD,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEhD,OAAO,CACL,6BAAK,SAAS,EAAC,oBAAoB;QACjC,6BAAK,SAAS,EAAC,kBAAkB;YAC/B,8BAAM,SAAS,EAAC,OAAO,IAAE,KAAK,CAAQ;YACtC,8BAAM,SAAS,EAAC,aAAa,IAAE,WAAW,CAAQ,CAC9C;QACN,6BAAK,SAAS,EAAC,mBAAmB,IAC/B,SAAS,CACN,CACF,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,YAAoB,EAAE,8BAAwC;IACtG,OAAO;QACL,YAAY,EAAE,KAAK,EAAE,qBAAqB;QAC1C,KAAK,EAAE,yBAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;QAC7D,IAAI,EAAE,kCAAiB,CAAC,0BAA0B,CAAC,6BAAoB,CAAC;QACxE,IAAI,EAAE,oBAAC,cAAc,IAAC,8BAA8B,EAAE,CAAC,CAAC,8BAA8B,GAAI;QAC1F,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,yBAAW,CAAC,SAAS,CAAC,iCAAiC,CAAC;KAClE,CAAC;AACJ,CAAC;AATD,8DASC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\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.\r\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\r\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\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\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.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"));\r\n const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"));\r\n const toolbarOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\"));\r\n const toolbarOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() => UiFramework.getToolbarOpacity());\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\",\r\n \"configurableui:set-use-tool-as-tool-settings-label\", \"configurableui:set-toolbar-opacity\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)\r\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\r\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\r\n setToolbarOpacity(UiFramework.getToolbarOpacity());\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel, toolbarOpacity]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\r\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\r\n }, [useToolAsToolSettingsLabel]);\r\n\r\n const onToolbarOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setToolbarOpacity(values[0]);\r\n }\r\n }, []);\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n <SettingsItem title={useToolAsToolSettingsLabelTitle.current} description={useToolAsToolSettingsLabelDescription.current}\r\n settingUi={<ToggleSwitch checked={useToolAsToolSettingsLabel} onChange={OnToggleUseToolAsToolSettingsLabel} />}\r\n />\r\n <SettingsItem title={toolbarOpacityTitle.current} description={toolbarOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[toolbarOpacity]} step={0.05} onChange={onToolbarOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|
|
@@ -16,6 +16,7 @@ export interface InitialAppUiSettings {
|
|
|
16
16
|
autoCollapseUnpinnedPanels?: boolean;
|
|
17
17
|
animateToolSettings?: boolean;
|
|
18
18
|
useToolAsToolSettingsLabel?: boolean;
|
|
19
|
+
toolbarOpacity: number;
|
|
19
20
|
}
|
|
20
21
|
/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,
|
|
21
22
|
* how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor
|
|
@@ -41,6 +42,7 @@ export declare class AppUiSettings implements UserSettingsProvider {
|
|
|
41
42
|
autoCollapseUnpinnedPanels: UiStateEntry<boolean>;
|
|
42
43
|
animateToolSettings: UiStateEntry<boolean>;
|
|
43
44
|
useToolAsToolSettingsLabel: UiStateEntry<boolean>;
|
|
45
|
+
toolbarOpacity: UiStateEntry<number>;
|
|
44
46
|
private setColorTheme;
|
|
45
47
|
constructor(defaults: Partial<InitialAppUiSettings>);
|
|
46
48
|
private handleSyncUiEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppUiSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAe,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIvF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppUiSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAe,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIvF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,oBAAoB;IACxD,SAAgB,UAAU,2BAA2B;IAErD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAmB;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,sBAAsB,CAAS;IAEhC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACnD,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,mBAAmB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,aAAa,CAInB;gBAEU,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IA+CnD,OAAO,CAAC,iBAAiB,CAiCvB;IAEW,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE"}
|
|
@@ -54,6 +54,8 @@ class AppUiSettings {
|
|
|
54
54
|
await this.animateToolSettings.saveSetting(UiFramework_1.UiFramework.getUiStateStorage());
|
|
55
55
|
if (args.eventIds.has("configurableui:set-use-tool-as-tool-settings-label"))
|
|
56
56
|
await this.useToolAsToolSettingsLabel.saveSetting(UiFramework_1.UiFramework.getUiStateStorage());
|
|
57
|
+
if (args.eventIds.has("configurableui:set-toolbar-opacity"))
|
|
58
|
+
await this.toolbarOpacity.saveSetting(UiFramework_1.UiFramework.getUiStateStorage());
|
|
57
59
|
};
|
|
58
60
|
this._settings = [];
|
|
59
61
|
this.colorTheme = new core_react_1.UiStateEntry(AppUiSettings._settingNamespace, "ColorTheme", UiFramework_1.UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);
|
|
@@ -73,6 +75,8 @@ class AppUiSettings {
|
|
|
73
75
|
this._settings.push(this.animateToolSettings);
|
|
74
76
|
this.useToolAsToolSettingsLabel = new core_react_1.UiStateEntry(AppUiSettings._settingNamespace, "UseToolAsToolSettingsLabel", () => UiFramework_1.UiFramework.useToolAsToolSettingsLabel, (value) => UiFramework_1.UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);
|
|
75
77
|
this._settings.push(this.useToolAsToolSettingsLabel);
|
|
78
|
+
this.toolbarOpacity = new core_react_1.UiStateEntry(AppUiSettings._settingNamespace, "ToolOpacity", () => UiFramework_1.UiFramework.getToolbarOpacity(), (value) => UiFramework_1.UiFramework.setToolbarOpacity(value), defaults.toolbarOpacity);
|
|
79
|
+
this._settings.push(this.toolbarOpacity);
|
|
76
80
|
SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);
|
|
77
81
|
}
|
|
78
82
|
async apply(storage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,kDAAiE;AAEjE,2EAAwE;AACxE,gDAAuF;AAmBvF;;;;;;;;;;GAUG;AACH,MAAa,aAAa;IAsBxB,YAAY,QAAuC;QArBnC,eAAU,GAAG,uBAAuB,CAAC;QAG7C,cAAS,GAA6B,EAAE,CAAC;QACzC,2BAAsB,GAAG,KAAK,CAAC;QAW/B,kBAAa,GAAG,CAAC,KAAa,EAAE,EAAE;YACxC,yBAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjC,6FAA6F;YAC7F,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC;QA6CM,sBAAiB,GAAG,KAAK,EAAE,IAAqB,EAAE,EAAE;YAC1D,IAAI,IAAI,CAAC,sBAAsB;gBAC7B,OAAO;YAET,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE;gBACjD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACnE,8GAA8G;gBAC9G,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,yBAAW,CAAC,aAAa,EAAE,CAAC,CAAC;aAC/E;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qCAAqC,CAAC;gBAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE1E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,sCAAsC,CAAC;gBAC3D,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE3E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qCAAqC,CAAC;gBAC1D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAEzE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kDAAkD,CAAC;gBACvE,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAErF,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mCAAmC,CAAC;gBACxD,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAExE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAA0C,CAAC;gBAC/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAE9E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oDAAoD,CAAC;gBACzE,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC;QAxEA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,UAAU,GAAG,IAAI,yBAAY,CAAS,aAAa,CAAC,iBAAiB,EAAE,YAAY,EAAE,yBAAW,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9J,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,EACjG,GAAG,EAAE,CAAC,yBAAW,CAAC,kBAAkB,EACpC,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC1F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE1C,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,gBAAgB,EAC/F,GAAG,EAAE,CAAC,yBAAW,CAAC,cAAc,EAChC,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QACrF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzC,IAAI,CAAC,0BAA0B,GAAG,IAAI,yBAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,4BAA4B,EACvH,GAAG,EAAE,CAAC,yBAAW,CAAC,0BAA0B,EAC5C,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAErD,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAY,CAAqB,aAAa,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,8CAA8C;QAC9J,GAAG,EAAE,CAAC,yBAAW,CAAC,SAAS,EAC3B,CAAC,KAAyB,EAAE,EAAE,CAAC,yBAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,8CAA8C;QAC5I,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE3C,IAAI,CAAC,aAAa,GAAG,IAAI,yBAAY,CAAS,aAAa,CAAC,iBAAiB,EAAE,eAAe,EAC5F,GAAG,EAAE,CAAC,yBAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,yBAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAExC,IAAI,CAAC,mBAAmB,GAAG,IAAI,yBAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,qBAAqB,EACzG,GAAG,EAAE,CAAC,yBAAW,CAAC,mBAAmB,EACrC,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC/F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE9C,IAAI,CAAC,0BAA0B,GAAG,IAAI,yBAAY,CAAU,aAAa,CAAC,iBAAiB,EAAE,4BAA4B,EACvH,GAAG,EAAE,CAAC,yBAAW,CAAC,0BAA0B,EAC5C,CAAC,KAAc,EAAE,EAAE,CAAC,yBAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAErD,6CAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IAkCM,KAAK,CAAC,KAAK,CAAC,OAAuB;QACxC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1C,MAAM,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,OAAuB;QACnD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;;AA3GH,sCA4GC;AAzGgB,+BAAiB,GAAG,eAAe,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport { UiStateEntry, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { FrameworkVersionId, UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui\r\n\r\n/** Default values that may be specified for [[AppUiSettings]].\r\n * @public\r\n */\r\nexport interface InitialAppUiSettings {\r\n colorTheme: string;\r\n dragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n widgetOpacity: number;\r\n showWidgetIcon?: boolean;\r\n /** @alpha */\r\n autoCollapseUnpinnedPanels?: boolean;\r\n animateToolSettings?: boolean;\r\n useToolAsToolSettingsLabel?: boolean;\r\n}\r\n\r\n/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,\r\n * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor\r\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\r\n * defaults specific to their application. This would be done by calling the following.\r\n *\r\n * ```ts\r\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class AppUiSettings implements UserSettingsProvider {\r\n public readonly providerId = \"AppUiSettingsProvider\";\r\n\r\n private static _settingNamespace = \"AppUiSettings\";\r\n private _settings: Array<UiStateEntry<any>> = [];\r\n private _applyingLocalSettings = false;\r\n\r\n public colorTheme: UiStateEntry<string>;\r\n public dragInteraction: UiStateEntry<boolean>;\r\n public frameworkVersion: UiStateEntry<FrameworkVersionId>; // eslint-disable-line deprecation/deprecation\r\n public widgetOpacity: UiStateEntry<number>;\r\n public showWidgetIcon: UiStateEntry<boolean>;\r\n public autoCollapseUnpinnedPanels: UiStateEntry<boolean>;\r\n public animateToolSettings: UiStateEntry<boolean>;\r\n public useToolAsToolSettingsLabel: UiStateEntry<boolean>;\r\n\r\n private setColorTheme = (theme: string) => {\r\n UiFramework.setColorTheme(theme);\r\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\r\n };\r\n\r\n constructor(defaults: Partial<InitialAppUiSettings>) {\r\n this._settings = [];\r\n\r\n this.colorTheme = new UiStateEntry<string>(AppUiSettings._settingNamespace, \"ColorTheme\", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);\r\n this._settings.push(this.colorTheme);\r\n\r\n this.dragInteraction = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"DragInteraction\",\r\n () => UiFramework.useDragInteraction,\r\n (value: boolean) => UiFramework.setUseDragInteraction(value), defaults.dragInteraction);\r\n this._settings.push(this.dragInteraction);\r\n\r\n this.showWidgetIcon = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"ShowWidgetIcon\",\r\n () => UiFramework.showWidgetIcon,\r\n (value: boolean) => UiFramework.setShowWidgetIcon(value), defaults.showWidgetIcon);\r\n this._settings.push(this.showWidgetIcon);\r\n\r\n this.autoCollapseUnpinnedPanels = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AutoCollapseUnpinnedPanels\",\r\n () => UiFramework.autoCollapseUnpinnedPanels,\r\n (value: boolean) => UiFramework.setAutoCollapseUnpinnedPanels(value), defaults.autoCollapseUnpinnedPanels);\r\n this._settings.push(this.autoCollapseUnpinnedPanels);\r\n\r\n this.frameworkVersion = new UiStateEntry<FrameworkVersionId>(AppUiSettings._settingNamespace, \"FrameworkVersion\", // eslint-disable-line deprecation/deprecation\r\n () => UiFramework.uiVersion,\r\n (value: FrameworkVersionId) => UiFramework.setUiVersion(value), defaults.frameworkVersion); // eslint-disable-line deprecation/deprecation\r\n this._settings.push(this.frameworkVersion);\r\n\r\n this.widgetOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"WidgetOpacity\",\r\n () => UiFramework.getWidgetOpacity(), (value: number) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);\r\n this._settings.push(this.widgetOpacity);\r\n\r\n this.animateToolSettings = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AnimateToolSettings\",\r\n () => UiFramework.animateToolSettings,\r\n (value: boolean) => UiFramework.setAnimateToolSettings(value), defaults.animateToolSettings);\r\n this._settings.push(this.animateToolSettings);\r\n\r\n this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"UseToolAsToolSettingsLabel\",\r\n () => UiFramework.useToolAsToolSettingsLabel,\r\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);\r\n this._settings.push(this.useToolAsToolSettingsLabel);\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\r\n }\r\n\r\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\r\n if (this._applyingLocalSettings)\r\n return;\r\n\r\n if (args.eventIds.has(\"configurableui:set_theme\")) {\r\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\r\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", UiFramework.getColorTheme());\r\n }\r\n\r\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\r\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-framework-version\"))\r\n await this.frameworkVersion.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\r\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-auto-collapse-unpinned-panels\"))\r\n await this.autoCollapseUnpinnedPanels.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\r\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-animate-tool-settings\"))\r\n await this.animateToolSettings.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\r\n await this.useToolAsToolSettingsLabel.saveSetting(UiFramework.getUiStateStorage());\r\n };\r\n\r\n public async apply(storage: UiStateStorage): Promise<void> {\r\n this._applyingLocalSettings = true;\r\n for await (const setting of this._settings) {\r\n await setting.getSettingAndApplyValue(storage);\r\n }\r\n this._applyingLocalSettings = false;\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n await this.apply(storage);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport { UiStateEntry, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { FrameworkVersionId, UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui\r\n\r\n/** Default values that may be specified for [[AppUiSettings]].\r\n * @public\r\n */\r\nexport interface InitialAppUiSettings {\r\n colorTheme: string;\r\n dragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n widgetOpacity: number;\r\n showWidgetIcon?: boolean;\r\n /** @alpha */\r\n autoCollapseUnpinnedPanels?: boolean;\r\n animateToolSettings?: boolean;\r\n useToolAsToolSettingsLabel?: boolean;\r\n toolbarOpacity: number;\r\n}\r\n\r\n/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,\r\n * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor\r\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\r\n * defaults specific to their application. This would be done by calling the following.\r\n *\r\n * ```ts\r\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class AppUiSettings implements UserSettingsProvider {\r\n public readonly providerId = \"AppUiSettingsProvider\";\r\n\r\n private static _settingNamespace = \"AppUiSettings\";\r\n private _settings: Array<UiStateEntry<any>> = [];\r\n private _applyingLocalSettings = false;\r\n\r\n public colorTheme: UiStateEntry<string>;\r\n public dragInteraction: UiStateEntry<boolean>;\r\n public frameworkVersion: UiStateEntry<FrameworkVersionId>; // eslint-disable-line deprecation/deprecation\r\n public widgetOpacity: UiStateEntry<number>;\r\n public showWidgetIcon: UiStateEntry<boolean>;\r\n public autoCollapseUnpinnedPanels: UiStateEntry<boolean>;\r\n public animateToolSettings: UiStateEntry<boolean>;\r\n public useToolAsToolSettingsLabel: UiStateEntry<boolean>;\r\n public toolbarOpacity: UiStateEntry<number>;\r\n\r\n private setColorTheme = (theme: string) => {\r\n UiFramework.setColorTheme(theme);\r\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\r\n };\r\n\r\n constructor(defaults: Partial<InitialAppUiSettings>) {\r\n this._settings = [];\r\n\r\n this.colorTheme = new UiStateEntry<string>(AppUiSettings._settingNamespace, \"ColorTheme\", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);\r\n this._settings.push(this.colorTheme);\r\n\r\n this.dragInteraction = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"DragInteraction\",\r\n () => UiFramework.useDragInteraction,\r\n (value: boolean) => UiFramework.setUseDragInteraction(value), defaults.dragInteraction);\r\n this._settings.push(this.dragInteraction);\r\n\r\n this.showWidgetIcon = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"ShowWidgetIcon\",\r\n () => UiFramework.showWidgetIcon,\r\n (value: boolean) => UiFramework.setShowWidgetIcon(value), defaults.showWidgetIcon);\r\n this._settings.push(this.showWidgetIcon);\r\n\r\n this.autoCollapseUnpinnedPanels = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AutoCollapseUnpinnedPanels\",\r\n () => UiFramework.autoCollapseUnpinnedPanels,\r\n (value: boolean) => UiFramework.setAutoCollapseUnpinnedPanels(value), defaults.autoCollapseUnpinnedPanels);\r\n this._settings.push(this.autoCollapseUnpinnedPanels);\r\n\r\n this.frameworkVersion = new UiStateEntry<FrameworkVersionId>(AppUiSettings._settingNamespace, \"FrameworkVersion\", // eslint-disable-line deprecation/deprecation\r\n () => UiFramework.uiVersion,\r\n (value: FrameworkVersionId) => UiFramework.setUiVersion(value), defaults.frameworkVersion); // eslint-disable-line deprecation/deprecation\r\n this._settings.push(this.frameworkVersion);\r\n\r\n this.widgetOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"WidgetOpacity\",\r\n () => UiFramework.getWidgetOpacity(), (value: number) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);\r\n this._settings.push(this.widgetOpacity);\r\n\r\n this.animateToolSettings = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AnimateToolSettings\",\r\n () => UiFramework.animateToolSettings,\r\n (value: boolean) => UiFramework.setAnimateToolSettings(value), defaults.animateToolSettings);\r\n this._settings.push(this.animateToolSettings);\r\n\r\n this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"UseToolAsToolSettingsLabel\",\r\n () => UiFramework.useToolAsToolSettingsLabel,\r\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);\r\n this._settings.push(this.useToolAsToolSettingsLabel);\r\n\r\n this.toolbarOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"ToolOpacity\",\r\n () => UiFramework.getToolbarOpacity(), (value: number) => UiFramework.setToolbarOpacity(value), defaults.toolbarOpacity);\r\n this._settings.push(this.toolbarOpacity);\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\r\n }\r\n\r\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\r\n if (this._applyingLocalSettings)\r\n return;\r\n\r\n if (args.eventIds.has(\"configurableui:set_theme\")) {\r\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\r\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", UiFramework.getColorTheme());\r\n }\r\n\r\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\r\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-framework-version\"))\r\n await this.frameworkVersion.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\r\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-auto-collapse-unpinned-panels\"))\r\n await this.autoCollapseUnpinnedPanels.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\r\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-animate-tool-settings\"))\r\n await this.animateToolSettings.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\r\n await this.useToolAsToolSettingsLabel.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-toolbar-opacity\"))\r\n await this.toolbarOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n };\r\n\r\n public async apply(storage: UiStateStorage): Promise<void> {\r\n this._applyingLocalSettings = true;\r\n for await (const setting of this._settings) {\r\n await setting.getSettingAndApplyValue(storage);\r\n }\r\n this._applyingLocalSettings = false;\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n await this.apply(storage);\r\n }\r\n}\r\n"]}
|
|
@@ -19,7 +19,7 @@ export declare enum ConfigurableUiActionId {
|
|
|
19
19
|
SetViewOverlayDisplay = "configurableui:set-view-overlay-display",
|
|
20
20
|
AnimateToolSettings = "configurableui:set-animate-tool-settings",
|
|
21
21
|
UseToolAsToolSettingsLabel = "configurableui:set-use-tool-as-tool-settings-label",
|
|
22
|
-
SetToolbarOpacity = "configurableui:
|
|
22
|
+
SetToolbarOpacity = "configurableui:set-toolbar-opacity"
|
|
23
23
|
}
|
|
24
24
|
/** The portion of state managed by the ConfigurableUiReducer.
|
|
25
25
|
* @public
|
|
@@ -26,7 +26,7 @@ export var ConfigurableUiActionId;
|
|
|
26
26
|
ConfigurableUiActionId["SetViewOverlayDisplay"] = "configurableui:set-view-overlay-display";
|
|
27
27
|
ConfigurableUiActionId["AnimateToolSettings"] = "configurableui:set-animate-tool-settings";
|
|
28
28
|
ConfigurableUiActionId["UseToolAsToolSettingsLabel"] = "configurableui:set-use-tool-as-tool-settings-label";
|
|
29
|
-
ConfigurableUiActionId["SetToolbarOpacity"] = "configurableui:
|
|
29
|
+
ConfigurableUiActionId["SetToolbarOpacity"] = "configurableui:set-toolbar-opacity";
|
|
30
30
|
})(ConfigurableUiActionId || (ConfigurableUiActionId = {}));
|
|
31
31
|
/** used on first call of ConfigurableUiReducer */
|
|
32
32
|
const initialState = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module State\r\n */\r\n\r\nimport { SnapMode } from \"@itwin/core-frontend\";\r\nimport { ActionsUnion, createAction } from \"../redux/redux-ts\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, TOOLBAR_OPACITY_DEFAULT, WIDGET_OPACITY_DEFAULT } from \"../theme/ThemeManager\";\r\nimport { FrameworkVersionId } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui snapmode toolprompt\r\n\r\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\r\n * Since these are also used as sync ids they should be in lowercase.\r\n * @public\r\n */\r\nexport enum ConfigurableUiActionId {\r\n SetSnapMode = \"configurableui:set_snapmode\",\r\n SetTheme = \"configurableui:set_theme\",\r\n SetToolPrompt = \"configurableui:set_toolprompt\",\r\n SetWidgetOpacity = \"configurableui:set_widget_opacity\",\r\n SetDragInteraction = \"configurableui:set-drag-interaction\",\r\n SetFrameworkVersion = \"configurableui:set-framework-version\",\r\n SetShowWidgetIcon = \"configurableui:set-show-widget-icon\",\r\n AutoCollapseUnpinnedPanels = \"configurableui:set-auto-collapse-unpinned-panels\",\r\n SetViewOverlayDisplay = \"configurableui:set-view-overlay-display\",\r\n AnimateToolSettings = \"configurableui:set-animate-tool-settings\",\r\n UseToolAsToolSettingsLabel = \"configurableui:set-use-tool-as-tool-settings-label\",\r\n SetToolbarOpacity = \"configurableui:set_toolbar_opacity\",\r\n}\r\n\r\n/** The portion of state managed by the ConfigurableUiReducer.\r\n * @public\r\n */\r\nexport interface ConfigurableUiState {\r\n snapMode: number;\r\n toolPrompt: string;\r\n theme: string;\r\n widgetOpacity: number;\r\n useDragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n showWidgetIcon: boolean;\r\n autoCollapseUnpinnedPanels: boolean;\r\n viewOverlayDisplay: boolean;\r\n animateToolSettings: boolean;\r\n useToolAsToolSettingsLabel: boolean;\r\n toolbarOpacity: number;\r\n}\r\n\r\n/** used on first call of ConfigurableUiReducer */\r\nconst initialState: ConfigurableUiState = {\r\n snapMode: SnapMode.NearestKeypoint as number,\r\n toolPrompt: \"\",\r\n theme: SYSTEM_PREFERRED_COLOR_THEME,\r\n widgetOpacity: WIDGET_OPACITY_DEFAULT,\r\n useDragInteraction: false,\r\n frameworkVersion: \"2\",\r\n showWidgetIcon: true,\r\n autoCollapseUnpinnedPanels: false,\r\n viewOverlayDisplay: true,\r\n animateToolSettings: false,\r\n useToolAsToolSettingsLabel: false,\r\n toolbarOpacity: TOOLBAR_OPACITY_DEFAULT,\r\n};\r\n\r\n/** An object with a function that creates each ConfigurableUiReducer that can be handled by our reducer.\r\n * @public\r\n */\r\nexport const ConfigurableUiActions = { // eslint-disable-line @typescript-eslint/naming-convention\r\n setSnapMode: (snapMode: number) => createAction(ConfigurableUiActionId.SetSnapMode, snapMode),\r\n setTheme:\r\n // istanbul ignore next\r\n (theme: string) => createAction(ConfigurableUiActionId.SetTheme, theme),\r\n setToolPrompt:\r\n // istanbul ignore next\r\n (toolPrompt: string) => createAction(ConfigurableUiActionId.SetToolPrompt, toolPrompt),\r\n setWidgetOpacity:\r\n // istanbul ignore next\r\n (opacity: number) => createAction(ConfigurableUiActionId.SetWidgetOpacity, opacity),\r\n setDragInteraction: (dragInteraction: boolean) => createAction(ConfigurableUiActionId.SetDragInteraction, dragInteraction),\r\n setFrameworkVersion: (frameworkVersion: FrameworkVersionId) => createAction(ConfigurableUiActionId.SetFrameworkVersion, frameworkVersion), // eslint-disable-line deprecation/deprecation\r\n setShowWidgetIcon: (showWidgetIcon: boolean) => createAction(ConfigurableUiActionId.SetShowWidgetIcon, showWidgetIcon),\r\n setAutoCollapseUnpinnedPanels: (autoCollapse: boolean) => createAction(ConfigurableUiActionId.AutoCollapseUnpinnedPanels, autoCollapse),\r\n setViewOverlayDisplay: (displayViewOverlay: boolean) => createAction(ConfigurableUiActionId.SetViewOverlayDisplay, displayViewOverlay),\r\n setAnimateToolSettings: (animateToolSettings: boolean) => createAction(ConfigurableUiActionId.AnimateToolSettings, animateToolSettings),\r\n setUseToolAsToolSettingsLabel: (useToolAsToolSettingsLabel: boolean) => createAction(ConfigurableUiActionId.UseToolAsToolSettingsLabel, useToolAsToolSettingsLabel),\r\n setToolbarOpacity: (opacity: number) => createAction(ConfigurableUiActionId.SetToolbarOpacity, opacity),\r\n};\r\n\r\n/** Union of ConfigurableUi Redux actions\r\n * @public\r\n */\r\nexport type ConfigurableUiActionsUnion = ActionsUnion<typeof ConfigurableUiActions>;\r\n\r\n/** Handles actions to update ConfigurableUiState.\r\n * @public\r\n */\r\nexport function ConfigurableUiReducer(state: ConfigurableUiState = initialState, action: ConfigurableUiActionsUnion): ConfigurableUiState {\r\n const outState = state;\r\n\r\n switch (action.type) {\r\n case ConfigurableUiActionId.SetSnapMode: {\r\n return { ...state, snapMode: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolPrompt: {\r\n return { ...state, toolPrompt: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetTheme: {\r\n return { ...state, theme: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetWidgetOpacity: {\r\n return { ...state, widgetOpacity: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetDragInteraction: {\r\n return { ...state, useDragInteraction: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetFrameworkVersion: {\r\n const frameworkVersion = (action.payload);\r\n return { ...state, frameworkVersion };\r\n }\r\n case ConfigurableUiActionId.SetShowWidgetIcon: {\r\n return { ...state, showWidgetIcon: action.payload };\r\n }\r\n case ConfigurableUiActionId.AutoCollapseUnpinnedPanels: {\r\n return { ...state, autoCollapseUnpinnedPanels: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetViewOverlayDisplay: {\r\n return { ...state, viewOverlayDisplay: action.payload };\r\n }\r\n case ConfigurableUiActionId.AnimateToolSettings: {\r\n return { ...state, animateToolSettings: action.payload };\r\n }\r\n case ConfigurableUiActionId.UseToolAsToolSettingsLabel: {\r\n return { ...state, useToolAsToolSettingsLabel: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolbarOpacity: {\r\n return { ...state, toolbarOpacity: action.payload };\r\n }\r\n }\r\n return outState;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../src/appui-react/configurableui/state.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module State\r\n */\r\n\r\nimport { SnapMode } from \"@itwin/core-frontend\";\r\nimport { ActionsUnion, createAction } from \"../redux/redux-ts\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, TOOLBAR_OPACITY_DEFAULT, WIDGET_OPACITY_DEFAULT } from \"../theme/ThemeManager\";\r\nimport { FrameworkVersionId } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui snapmode toolprompt\r\n\r\n/** Action Ids used by Redux and to send sync UI components. Typically used to refresh visibility or enable state of control.\r\n * Since these are also used as sync ids they should be in lowercase.\r\n * @public\r\n */\r\nexport enum ConfigurableUiActionId {\r\n SetSnapMode = \"configurableui:set_snapmode\",\r\n SetTheme = \"configurableui:set_theme\",\r\n SetToolPrompt = \"configurableui:set_toolprompt\",\r\n SetWidgetOpacity = \"configurableui:set_widget_opacity\",\r\n SetDragInteraction = \"configurableui:set-drag-interaction\",\r\n SetFrameworkVersion = \"configurableui:set-framework-version\",\r\n SetShowWidgetIcon = \"configurableui:set-show-widget-icon\",\r\n AutoCollapseUnpinnedPanels = \"configurableui:set-auto-collapse-unpinned-panels\",\r\n SetViewOverlayDisplay = \"configurableui:set-view-overlay-display\",\r\n AnimateToolSettings = \"configurableui:set-animate-tool-settings\",\r\n UseToolAsToolSettingsLabel = \"configurableui:set-use-tool-as-tool-settings-label\",\r\n SetToolbarOpacity = \"configurableui:set-toolbar-opacity\",\r\n}\r\n\r\n/** The portion of state managed by the ConfigurableUiReducer.\r\n * @public\r\n */\r\nexport interface ConfigurableUiState {\r\n snapMode: number;\r\n toolPrompt: string;\r\n theme: string;\r\n widgetOpacity: number;\r\n useDragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n showWidgetIcon: boolean;\r\n autoCollapseUnpinnedPanels: boolean;\r\n viewOverlayDisplay: boolean;\r\n animateToolSettings: boolean;\r\n useToolAsToolSettingsLabel: boolean;\r\n toolbarOpacity: number;\r\n}\r\n\r\n/** used on first call of ConfigurableUiReducer */\r\nconst initialState: ConfigurableUiState = {\r\n snapMode: SnapMode.NearestKeypoint as number,\r\n toolPrompt: \"\",\r\n theme: SYSTEM_PREFERRED_COLOR_THEME,\r\n widgetOpacity: WIDGET_OPACITY_DEFAULT,\r\n useDragInteraction: false,\r\n frameworkVersion: \"2\",\r\n showWidgetIcon: true,\r\n autoCollapseUnpinnedPanels: false,\r\n viewOverlayDisplay: true,\r\n animateToolSettings: false,\r\n useToolAsToolSettingsLabel: false,\r\n toolbarOpacity: TOOLBAR_OPACITY_DEFAULT,\r\n};\r\n\r\n/** An object with a function that creates each ConfigurableUiReducer that can be handled by our reducer.\r\n * @public\r\n */\r\nexport const ConfigurableUiActions = { // eslint-disable-line @typescript-eslint/naming-convention\r\n setSnapMode: (snapMode: number) => createAction(ConfigurableUiActionId.SetSnapMode, snapMode),\r\n setTheme:\r\n // istanbul ignore next\r\n (theme: string) => createAction(ConfigurableUiActionId.SetTheme, theme),\r\n setToolPrompt:\r\n // istanbul ignore next\r\n (toolPrompt: string) => createAction(ConfigurableUiActionId.SetToolPrompt, toolPrompt),\r\n setWidgetOpacity:\r\n // istanbul ignore next\r\n (opacity: number) => createAction(ConfigurableUiActionId.SetWidgetOpacity, opacity),\r\n setDragInteraction: (dragInteraction: boolean) => createAction(ConfigurableUiActionId.SetDragInteraction, dragInteraction),\r\n setFrameworkVersion: (frameworkVersion: FrameworkVersionId) => createAction(ConfigurableUiActionId.SetFrameworkVersion, frameworkVersion), // eslint-disable-line deprecation/deprecation\r\n setShowWidgetIcon: (showWidgetIcon: boolean) => createAction(ConfigurableUiActionId.SetShowWidgetIcon, showWidgetIcon),\r\n setAutoCollapseUnpinnedPanels: (autoCollapse: boolean) => createAction(ConfigurableUiActionId.AutoCollapseUnpinnedPanels, autoCollapse),\r\n setViewOverlayDisplay: (displayViewOverlay: boolean) => createAction(ConfigurableUiActionId.SetViewOverlayDisplay, displayViewOverlay),\r\n setAnimateToolSettings: (animateToolSettings: boolean) => createAction(ConfigurableUiActionId.AnimateToolSettings, animateToolSettings),\r\n setUseToolAsToolSettingsLabel: (useToolAsToolSettingsLabel: boolean) => createAction(ConfigurableUiActionId.UseToolAsToolSettingsLabel, useToolAsToolSettingsLabel),\r\n setToolbarOpacity: (opacity: number) => createAction(ConfigurableUiActionId.SetToolbarOpacity, opacity),\r\n};\r\n\r\n/** Union of ConfigurableUi Redux actions\r\n * @public\r\n */\r\nexport type ConfigurableUiActionsUnion = ActionsUnion<typeof ConfigurableUiActions>;\r\n\r\n/** Handles actions to update ConfigurableUiState.\r\n * @public\r\n */\r\nexport function ConfigurableUiReducer(state: ConfigurableUiState = initialState, action: ConfigurableUiActionsUnion): ConfigurableUiState {\r\n const outState = state;\r\n\r\n switch (action.type) {\r\n case ConfigurableUiActionId.SetSnapMode: {\r\n return { ...state, snapMode: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolPrompt: {\r\n return { ...state, toolPrompt: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetTheme: {\r\n return { ...state, theme: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetWidgetOpacity: {\r\n return { ...state, widgetOpacity: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetDragInteraction: {\r\n return { ...state, useDragInteraction: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetFrameworkVersion: {\r\n const frameworkVersion = (action.payload);\r\n return { ...state, frameworkVersion };\r\n }\r\n case ConfigurableUiActionId.SetShowWidgetIcon: {\r\n return { ...state, showWidgetIcon: action.payload };\r\n }\r\n case ConfigurableUiActionId.AutoCollapseUnpinnedPanels: {\r\n return { ...state, autoCollapseUnpinnedPanels: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetViewOverlayDisplay: {\r\n return { ...state, viewOverlayDisplay: action.payload };\r\n }\r\n case ConfigurableUiActionId.AnimateToolSettings: {\r\n return { ...state, animateToolSettings: action.payload };\r\n }\r\n case ConfigurableUiActionId.UseToolAsToolSettingsLabel: {\r\n return { ...state, useToolAsToolSettingsLabel: action.payload };\r\n }\r\n case ConfigurableUiActionId.SetToolbarOpacity: {\r\n return { ...state, toolbarOpacity: action.payload };\r\n }\r\n }\r\n return outState;\r\n}\r\n"]}
|
|
@@ -73,7 +73,7 @@ export function UiSettingsPage({ allowSettingUiFrameworkVersion }) {
|
|
|
73
73
|
const syncIdsOfInterest = ["configurableui:set_theme", "configurableui:set_widget_opacity", "configurableui:set-show-widget-icon",
|
|
74
74
|
"configurableui:set-drag-interaction", "configurableui:set-framework-version",
|
|
75
75
|
"configurableui:set-auto-collapse-unpinned-panels", "configurableui:set-animate-tool-settings",
|
|
76
|
-
"configurableui:set-use-tool-as-tool-settings-label", "configurableui:
|
|
76
|
+
"configurableui:set-use-tool-as-tool-settings-label", "configurableui:set-toolbar-opacity", SyncUiEventId.ShowHideManagerSettingChange];
|
|
77
77
|
const handleSyncUiEvent = (args) => {
|
|
78
78
|
// istanbul ignore else
|
|
79
79
|
if (syncIdsOfInterest.some((value) => args.eventIds.has(value))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\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.\r\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\r\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\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\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.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"));\r\n const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"));\r\n const toolbarOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\"));\r\n const toolbarOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() => UiFramework.getToolbarOpacity());\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\",\r\n \"configurableui:set-use-tool-as-tool-settings-label\", \"configurableui:set_toolbar_opacity\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)\r\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\r\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\r\n setToolbarOpacity(UiFramework.getToolbarOpacity());\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel, toolbarOpacity]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\r\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\r\n }, [useToolAsToolSettingsLabel]);\r\n\r\n const onToolbarOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setToolbarOpacity(values[0]);\r\n }\r\n }, []);\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n <SettingsItem title={useToolAsToolSettingsLabelTitle.current} description={useToolAsToolSettingsLabelDescription.current}\r\n settingUi={<ToggleSwitch checked={useToolAsToolSettingsLabel} onChange={OnToggleUseToolAsToolSettingsLabel} />}\r\n />\r\n <SettingsItem title={toolbarOpacityTitle.current} description={toolbarOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[toolbarOpacity]} step={0.05} onChange={onToolbarOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\n// cSpell:ignore configurableui checkmark\r\n\r\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\r\nimport \"./UiSettingsPage.scss\";\r\nimport * as React from \"react\";\r\nimport { SettingsTabEntry } from \"@itwin/core-react\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME } from \"../../theme/ThemeManager\";\r\nimport { UiShowHideManager } from \"../../utils/UiShowHideManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"../../syncui/SyncUiEventDispatcher\";\r\nimport { IconSpecUtilities, UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { Select, SelectOption, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\r\n\r\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\r\n *\r\n * - theme - Dark, Light, or based on OS preference.\r\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.\r\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\r\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\r\n * active group button item.\r\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\r\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.\r\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\r\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\r\n *\r\n * @beta\r\n */\r\nexport function UiSettingsPage({ allowSettingUiFrameworkVersion }: { allowSettingUiFrameworkVersion: boolean }) {\r\n const themeTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeTitle\"));\r\n const themeDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.themeDescription\"));\r\n const autoHideTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\"));\r\n const autoHideDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\"));\r\n const dragInteractionTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\"));\r\n const dragInteractionDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\"));\r\n const useNewUiTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiTitle\"));\r\n const useNewUiDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.newUiDescription\"));\r\n const useProximityOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\"));\r\n const useProximityOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityDescription\"));\r\n const snapWidgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\"));\r\n const snapWidgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityDescription\"));\r\n const darkLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.dark\"));\r\n const lightLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.light\"));\r\n const systemPreferredLabel = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\"));\r\n const widgetOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\"));\r\n const widgetOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\"));\r\n const widgetIconTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\"));\r\n const widgetIconDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\"));\r\n const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"));\r\n const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"));\r\n const animateToolSettingsTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\"));\r\n const animateToolSettingsDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsDescription\"));\r\n const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"));\r\n const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"));\r\n const toolbarOpacityTitle = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\"));\r\n const toolbarOpacityDescription = React.useRef(UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\"));\r\n\r\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\r\n const [uiVersion, setUiVersion] = React.useState(() => UiFramework.uiVersion);\r\n const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);\r\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);\r\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] = React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\r\n const [animateToolSettings, setAnimateToolSettings] = React.useState(() => UiFramework.animateToolSettings);\r\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);\r\n const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());\r\n const [autoHideUi, setAutoHideUi] = React.useState(() => UiShowHideManager.autoHideUi);\r\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiShowHideManager.useProximityOpacity);\r\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiShowHideManager.snapWidgetOpacity);\r\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() => UiFramework.getToolbarOpacity());\r\n\r\n React.useEffect(() => {\r\n const syncIdsOfInterest = [\"configurableui:set_theme\", \"configurableui:set_widget_opacity\", \"configurableui:set-show-widget-icon\",\r\n \"configurableui:set-drag-interaction\", \"configurableui:set-framework-version\",\r\n \"configurableui:set-auto-collapse-unpinned-panels\", \"configurableui:set-animate-tool-settings\",\r\n \"configurableui:set-use-tool-as-tool-settings-label\", \"configurableui:set-toolbar-opacity\", SyncUiEventId.ShowHideManagerSettingChange];\r\n\r\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\r\n // istanbul ignore else\r\n if (syncIdsOfInterest.some((value: string): boolean => args.eventIds.has(value))) {\r\n if (UiFramework.getColorTheme() !== theme)\r\n setTheme(UiFramework.getColorTheme());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiFramework.uiVersion !== uiVersion)\r\n setUiVersion(UiFramework.uiVersion);\r\n if (UiFramework.useDragInteraction !== useDragInteraction)\r\n setUseDragInteraction(UiFramework.useDragInteraction);\r\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\r\n setShowWidgetIcon(UiFramework.showWidgetIcon);\r\n if (UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels)\r\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\r\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\r\n setWidgetOpacity(UiFramework.getWidgetOpacity());\r\n if (UiShowHideManager.autoHideUi !== autoHideUi)\r\n setAutoHideUi(UiShowHideManager.autoHideUi);\r\n if (UiShowHideManager.useProximityOpacity !== useProximityOpacity)\r\n setUseProximityOpacity(UiShowHideManager.useProximityOpacity);\r\n if (UiShowHideManager.snapWidgetOpacity !== snapWidgetOpacity)\r\n setSnapWidgetOpacity(UiShowHideManager.snapWidgetOpacity);\r\n if (UiFramework.animateToolSettings !== animateToolSettings)\r\n setAnimateToolSettings(UiFramework.animateToolSettings);\r\n if (UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel)\r\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\r\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\r\n setToolbarOpacity(UiFramework.getToolbarOpacity());\r\n }\r\n };\r\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\r\n }, [autoCollapseUnpinnedPanels, autoHideUi, showWidgetIcon, snapWidgetOpacity, theme, uiVersion,\r\n useDragInteraction, useProximityOpacity, widgetOpacity, animateToolSettings, useToolAsToolSettingsLabel, toolbarOpacity]);\r\n\r\n const defaultThemeOption = { label: systemPreferredLabel.current, value: SYSTEM_PREFERRED_COLOR_THEME };\r\n const themeOptions: SelectOption<string>[] = [\r\n defaultThemeOption,\r\n { label: lightLabel.current, value: ColorTheme.Light },\r\n { label: darkLabel.current, value: ColorTheme.Dark },\r\n ];\r\n\r\n const onThemeChange = React.useCallback((newValue: string) => {\r\n UiFramework.setColorTheme(newValue);\r\n }, []);\r\n\r\n const onAutoHideChange = React.useCallback(async () => {\r\n UiShowHideManager.autoHideUi = !autoHideUi;\r\n }, [autoHideUi]);\r\n\r\n const onUseProximityOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.useProximityOpacity = !useProximityOpacity;\r\n }, [useProximityOpacity]);\r\n\r\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\r\n UiShowHideManager.snapWidgetOpacity = !snapWidgetOpacity;\r\n }, [snapWidgetOpacity]);\r\n\r\n const onWidgetIconChange = React.useCallback(async () => {\r\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\r\n }, [showWidgetIcon]);\r\n\r\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\r\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\r\n }, [autoCollapseUnpinnedPanels]);\r\n\r\n const onWidgetOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setWidgetOpacity(values[0]);\r\n }\r\n }, []);\r\n const onToggleFrameworkVersion = React.useCallback(async () => {\r\n UiFramework.setUiVersion(uiVersion === \"2\" ? \"1\" : \"2\");\r\n }, [uiVersion]);\r\n\r\n const onToggleDragInteraction = React.useCallback(async () => {\r\n UiFramework.setUseDragInteraction(!useDragInteraction);\r\n }, [useDragInteraction]);\r\n\r\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\r\n UiFramework.setAnimateToolSettings(!animateToolSettings);\r\n }, [animateToolSettings]);\r\n const currentTheme = UiFramework.getColorTheme();\r\n\r\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\r\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\r\n }, [useToolAsToolSettingsLabel]);\r\n\r\n const onToolbarOpacityChange = React.useCallback(async (values: readonly number[]) => {\r\n // istanbul ignore else\r\n if (values.length > 0) {\r\n UiFramework.setToolbarOpacity(values[0]);\r\n }\r\n }, []);\r\n\r\n return (\r\n <div className=\"uifw-settings\">\r\n <SettingsItem title={themeTitle.current} description={themeDescription.current}\r\n settingUi={\r\n <div data-testid=\"select-theme-container\" className=\"select-theme-container\">\r\n <Select\r\n value={currentTheme}\r\n onChange={onThemeChange}\r\n options={themeOptions}\r\n data-testid=\"select-theme\"\r\n size=\"small\"\r\n />\r\n </div>\r\n }\r\n />\r\n <SettingsItem title={autoHideTitle.current} description={autoHideDescription.current}\r\n settingUi={<ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />}\r\n />\r\n {allowSettingUiFrameworkVersion && <SettingsItem title={useNewUiTitle.current} description={useNewUiDescription.current}\r\n settingUi={<ToggleSwitch checked={UiFramework.uiVersion === \"2\"} onChange={onToggleFrameworkVersion} />}\r\n />}\r\n {UiFramework.uiVersion === \"2\" && <>\r\n <SettingsItem title={dragInteractionTitle.current} description={dragInteractionDescription.current}\r\n settingUi={<ToggleSwitch checked={useDragInteraction} onChange={onToggleDragInteraction} />}\r\n />\r\n <SettingsItem title={useProximityOpacityTitle.current} description={useProximityOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={useProximityOpacity} onChange={onUseProximityOpacityChange} />}\r\n />\r\n <SettingsItem title={snapWidgetOpacityTitle.current} description={snapWidgetOpacityDescription.current}\r\n settingUi={<ToggleSwitch checked={snapWidgetOpacity} onChange={onSnapWidgetOpacityChange} />}\r\n />\r\n <SettingsItem title={widgetIconTitle.current} description={widgetIconDescription.current}\r\n settingUi={<ToggleSwitch checked={showWidgetIcon} onChange={onWidgetIconChange} />}\r\n />\r\n <SettingsItem title={autoCollapseUnpinnedPanelsTitle.current} description={autoCollapseUnpinnedPanelsDescription.current}\r\n settingUi={<ToggleSwitch checked={autoCollapseUnpinnedPanels} onChange={onAutoCollapseUnpinnedPanelsChange} />}\r\n />\r\n <SettingsItem title={animateToolSettingsTitle.current} description={animateToolSettingsDescription.current}\r\n settingUi={<ToggleSwitch checked={animateToolSettings} onChange={OnToggleAnimateToolSettings} />}\r\n />\r\n <SettingsItem title={useToolAsToolSettingsLabelTitle.current} description={useToolAsToolSettingsLabelDescription.current}\r\n settingUi={<ToggleSwitch checked={useToolAsToolSettingsLabel} onChange={OnToggleUseToolAsToolSettingsLabel} />}\r\n />\r\n <SettingsItem title={toolbarOpacityTitle.current} description={toolbarOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[toolbarOpacity]} step={0.05} onChange={onToolbarOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </>\r\n }\r\n <SettingsItem title={widgetOpacityTitle.current} description={widgetOpacityDescription.current}\r\n settingUi={\r\n <Slider style={{ flex: \"1\" }} values={[widgetOpacity]} step={0.05} onChange={onWidgetOpacityChange}\r\n min={0.20} max={1.0} maxLabel=\"1.0\" tickLabels={[\"\", \"\", \"\", \"\", \"\"]} />\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\ninterface SettingsItemProps {\r\n title: string;\r\n description: string;\r\n settingUi: React.ReactNode;\r\n}\r\n\r\nfunction SettingsItem(props: SettingsItemProps) {\r\n const { title, description, settingUi } = props;\r\n\r\n return (\r\n <div className=\"uifw-settings-item\">\r\n <div className=\"panel left-panel\">\r\n <span className=\"title\">{title}</span>\r\n <span className=\"description\">{description}</span>\r\n </div>\r\n <div className=\"panel right-panel\">\r\n {settingUi}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\r\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\r\n * @beta\r\n */\r\nexport function getUiSettingsManagerEntry(itemPriority: number, allowSettingUiFrameworkVersion?: boolean): SettingsTabEntry {\r\n return {\r\n itemPriority, tabId: \"uifw:UiStateStorage\",\r\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\r\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\r\n page: <UiSettingsPage allowSettingUiFrameworkVersion={!!allowSettingUiFrameworkVersion} />,\r\n isDisabled: false,\r\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\r\n };\r\n}\r\n"]}
|
|
@@ -16,6 +16,7 @@ export interface InitialAppUiSettings {
|
|
|
16
16
|
autoCollapseUnpinnedPanels?: boolean;
|
|
17
17
|
animateToolSettings?: boolean;
|
|
18
18
|
useToolAsToolSettingsLabel?: boolean;
|
|
19
|
+
toolbarOpacity: number;
|
|
19
20
|
}
|
|
20
21
|
/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,
|
|
21
22
|
* how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor
|
|
@@ -41,6 +42,7 @@ export declare class AppUiSettings implements UserSettingsProvider {
|
|
|
41
42
|
autoCollapseUnpinnedPanels: UiStateEntry<boolean>;
|
|
42
43
|
animateToolSettings: UiStateEntry<boolean>;
|
|
43
44
|
useToolAsToolSettingsLabel: UiStateEntry<boolean>;
|
|
45
|
+
toolbarOpacity: UiStateEntry<number>;
|
|
44
46
|
private setColorTheme;
|
|
45
47
|
constructor(defaults: Partial<InitialAppUiSettings>);
|
|
46
48
|
private handleSyncUiEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppUiSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAe,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIvF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppUiSettings.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAe,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIvF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,oBAAoB;IACxD,SAAgB,UAAU,2BAA2B;IAErD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAmB;IACnD,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,sBAAsB,CAAS;IAEhC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACnD,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,mBAAmB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,0BAA0B,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,aAAa,CAInB;gBAEU,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IA+CnD,OAAO,CAAC,iBAAiB,CAiCvB;IAEW,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE"}
|
|
@@ -51,6 +51,8 @@ export class AppUiSettings {
|
|
|
51
51
|
await this.animateToolSettings.saveSetting(UiFramework.getUiStateStorage());
|
|
52
52
|
if (args.eventIds.has("configurableui:set-use-tool-as-tool-settings-label"))
|
|
53
53
|
await this.useToolAsToolSettingsLabel.saveSetting(UiFramework.getUiStateStorage());
|
|
54
|
+
if (args.eventIds.has("configurableui:set-toolbar-opacity"))
|
|
55
|
+
await this.toolbarOpacity.saveSetting(UiFramework.getUiStateStorage());
|
|
54
56
|
};
|
|
55
57
|
this._settings = [];
|
|
56
58
|
this.colorTheme = new UiStateEntry(AppUiSettings._settingNamespace, "ColorTheme", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);
|
|
@@ -70,6 +72,8 @@ export class AppUiSettings {
|
|
|
70
72
|
this._settings.push(this.animateToolSettings);
|
|
71
73
|
this.useToolAsToolSettingsLabel = new UiStateEntry(AppUiSettings._settingNamespace, "UseToolAsToolSettingsLabel", () => UiFramework.useToolAsToolSettingsLabel, (value) => UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);
|
|
72
74
|
this._settings.push(this.useToolAsToolSettingsLabel);
|
|
75
|
+
this.toolbarOpacity = new UiStateEntry(AppUiSettings._settingNamespace, "ToolOpacity", () => UiFramework.getToolbarOpacity(), (value) => UiFramework.setToolbarOpacity(value), defaults.toolbarOpacity);
|
|
76
|
+
this._settings.push(this.toolbarOpacity);
|
|
73
77
|
SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);
|
|
74
78
|
}
|
|
75
79
|
async apply(storage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport { UiStateEntry, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { FrameworkVersionId, UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui\r\n\r\n/** Default values that may be specified for [[AppUiSettings]].\r\n * @public\r\n */\r\nexport interface InitialAppUiSettings {\r\n colorTheme: string;\r\n dragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n widgetOpacity: number;\r\n showWidgetIcon?: boolean;\r\n /** @alpha */\r\n autoCollapseUnpinnedPanels?: boolean;\r\n animateToolSettings?: boolean;\r\n useToolAsToolSettingsLabel?: boolean;\r\n}\r\n\r\n/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,\r\n * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor\r\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\r\n * defaults specific to their application. This would be done by calling the following.\r\n *\r\n * ```ts\r\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class AppUiSettings implements UserSettingsProvider {\r\n public readonly providerId = \"AppUiSettingsProvider\";\r\n\r\n private static _settingNamespace = \"AppUiSettings\";\r\n private _settings: Array<UiStateEntry<any>> = [];\r\n private _applyingLocalSettings = false;\r\n\r\n public colorTheme: UiStateEntry<string>;\r\n public dragInteraction: UiStateEntry<boolean>;\r\n public frameworkVersion: UiStateEntry<FrameworkVersionId>; // eslint-disable-line deprecation/deprecation\r\n public widgetOpacity: UiStateEntry<number>;\r\n public showWidgetIcon: UiStateEntry<boolean>;\r\n public autoCollapseUnpinnedPanels: UiStateEntry<boolean>;\r\n public animateToolSettings: UiStateEntry<boolean>;\r\n public useToolAsToolSettingsLabel: UiStateEntry<boolean>;\r\n\r\n private setColorTheme = (theme: string) => {\r\n UiFramework.setColorTheme(theme);\r\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\r\n };\r\n\r\n constructor(defaults: Partial<InitialAppUiSettings>) {\r\n this._settings = [];\r\n\r\n this.colorTheme = new UiStateEntry<string>(AppUiSettings._settingNamespace, \"ColorTheme\", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);\r\n this._settings.push(this.colorTheme);\r\n\r\n this.dragInteraction = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"DragInteraction\",\r\n () => UiFramework.useDragInteraction,\r\n (value: boolean) => UiFramework.setUseDragInteraction(value), defaults.dragInteraction);\r\n this._settings.push(this.dragInteraction);\r\n\r\n this.showWidgetIcon = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"ShowWidgetIcon\",\r\n () => UiFramework.showWidgetIcon,\r\n (value: boolean) => UiFramework.setShowWidgetIcon(value), defaults.showWidgetIcon);\r\n this._settings.push(this.showWidgetIcon);\r\n\r\n this.autoCollapseUnpinnedPanels = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AutoCollapseUnpinnedPanels\",\r\n () => UiFramework.autoCollapseUnpinnedPanels,\r\n (value: boolean) => UiFramework.setAutoCollapseUnpinnedPanels(value), defaults.autoCollapseUnpinnedPanels);\r\n this._settings.push(this.autoCollapseUnpinnedPanels);\r\n\r\n this.frameworkVersion = new UiStateEntry<FrameworkVersionId>(AppUiSettings._settingNamespace, \"FrameworkVersion\", // eslint-disable-line deprecation/deprecation\r\n () => UiFramework.uiVersion,\r\n (value: FrameworkVersionId) => UiFramework.setUiVersion(value), defaults.frameworkVersion); // eslint-disable-line deprecation/deprecation\r\n this._settings.push(this.frameworkVersion);\r\n\r\n this.widgetOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"WidgetOpacity\",\r\n () => UiFramework.getWidgetOpacity(), (value: number) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);\r\n this._settings.push(this.widgetOpacity);\r\n\r\n this.animateToolSettings = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AnimateToolSettings\",\r\n () => UiFramework.animateToolSettings,\r\n (value: boolean) => UiFramework.setAnimateToolSettings(value), defaults.animateToolSettings);\r\n this._settings.push(this.animateToolSettings);\r\n\r\n this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"UseToolAsToolSettingsLabel\",\r\n () => UiFramework.useToolAsToolSettingsLabel,\r\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);\r\n this._settings.push(this.useToolAsToolSettingsLabel);\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\r\n }\r\n\r\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\r\n if (this._applyingLocalSettings)\r\n return;\r\n\r\n if (args.eventIds.has(\"configurableui:set_theme\")) {\r\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\r\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", UiFramework.getColorTheme());\r\n }\r\n\r\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\r\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-framework-version\"))\r\n await this.frameworkVersion.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\r\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-auto-collapse-unpinned-panels\"))\r\n await this.autoCollapseUnpinnedPanels.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\r\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-animate-tool-settings\"))\r\n await this.animateToolSettings.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\r\n await this.useToolAsToolSettingsLabel.saveSetting(UiFramework.getUiStateStorage());\r\n };\r\n\r\n public async apply(storage: UiStateStorage): Promise<void> {\r\n this._applyingLocalSettings = true;\r\n for await (const setting of this._settings) {\r\n await setting.getSettingAndApplyValue(storage);\r\n }\r\n this._applyingLocalSettings = false;\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n await this.apply(storage);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"AppUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/uistate/AppUiSettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Settings\r\n */\r\n\r\nimport { UiStateEntry, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiSyncEventArgs } from \"@itwin/appui-abstract\";\r\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\r\nimport { FrameworkVersionId, UiFramework, UserSettingsProvider } from \"../UiFramework\";\r\n\r\n// cSpell:ignore configurableui\r\n\r\n/** Default values that may be specified for [[AppUiSettings]].\r\n * @public\r\n */\r\nexport interface InitialAppUiSettings {\r\n colorTheme: string;\r\n dragInteraction: boolean;\r\n frameworkVersion: FrameworkVersionId; // eslint-disable-line deprecation/deprecation\r\n widgetOpacity: number;\r\n showWidgetIcon?: boolean;\r\n /** @alpha */\r\n autoCollapseUnpinnedPanels?: boolean;\r\n animateToolSettings?: boolean;\r\n useToolAsToolSettingsLabel?: boolean;\r\n toolbarOpacity: number;\r\n}\r\n\r\n/** These are the UI settings that are stored in the Redux store. They control the color theme, the UI version,\r\n * how toolbar group buttons work, and the opacity of widgets in 1.0 and floating widget in 2.0 when the cursor\r\n * is not inside them. It is expect that an IModelApp using App UI components will create and register AppUiSettings with\r\n * defaults specific to their application. This would be done by calling the following.\r\n *\r\n * ```ts\r\n * UiFramework.registerUserSettingsProvider(new AppUiSettings(defaults));\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class AppUiSettings implements UserSettingsProvider {\r\n public readonly providerId = \"AppUiSettingsProvider\";\r\n\r\n private static _settingNamespace = \"AppUiSettings\";\r\n private _settings: Array<UiStateEntry<any>> = [];\r\n private _applyingLocalSettings = false;\r\n\r\n public colorTheme: UiStateEntry<string>;\r\n public dragInteraction: UiStateEntry<boolean>;\r\n public frameworkVersion: UiStateEntry<FrameworkVersionId>; // eslint-disable-line deprecation/deprecation\r\n public widgetOpacity: UiStateEntry<number>;\r\n public showWidgetIcon: UiStateEntry<boolean>;\r\n public autoCollapseUnpinnedPanels: UiStateEntry<boolean>;\r\n public animateToolSettings: UiStateEntry<boolean>;\r\n public useToolAsToolSettingsLabel: UiStateEntry<boolean>;\r\n public toolbarOpacity: UiStateEntry<number>;\r\n\r\n private setColorTheme = (theme: string) => {\r\n UiFramework.setColorTheme(theme);\r\n // always store to local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", theme);\r\n };\r\n\r\n constructor(defaults: Partial<InitialAppUiSettings>) {\r\n this._settings = [];\r\n\r\n this.colorTheme = new UiStateEntry<string>(AppUiSettings._settingNamespace, \"ColorTheme\", UiFramework.getColorTheme, this.setColorTheme, defaults.colorTheme);\r\n this._settings.push(this.colorTheme);\r\n\r\n this.dragInteraction = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"DragInteraction\",\r\n () => UiFramework.useDragInteraction,\r\n (value: boolean) => UiFramework.setUseDragInteraction(value), defaults.dragInteraction);\r\n this._settings.push(this.dragInteraction);\r\n\r\n this.showWidgetIcon = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"ShowWidgetIcon\",\r\n () => UiFramework.showWidgetIcon,\r\n (value: boolean) => UiFramework.setShowWidgetIcon(value), defaults.showWidgetIcon);\r\n this._settings.push(this.showWidgetIcon);\r\n\r\n this.autoCollapseUnpinnedPanels = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AutoCollapseUnpinnedPanels\",\r\n () => UiFramework.autoCollapseUnpinnedPanels,\r\n (value: boolean) => UiFramework.setAutoCollapseUnpinnedPanels(value), defaults.autoCollapseUnpinnedPanels);\r\n this._settings.push(this.autoCollapseUnpinnedPanels);\r\n\r\n this.frameworkVersion = new UiStateEntry<FrameworkVersionId>(AppUiSettings._settingNamespace, \"FrameworkVersion\", // eslint-disable-line deprecation/deprecation\r\n () => UiFramework.uiVersion,\r\n (value: FrameworkVersionId) => UiFramework.setUiVersion(value), defaults.frameworkVersion); // eslint-disable-line deprecation/deprecation\r\n this._settings.push(this.frameworkVersion);\r\n\r\n this.widgetOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"WidgetOpacity\",\r\n () => UiFramework.getWidgetOpacity(), (value: number) => UiFramework.setWidgetOpacity(value), defaults.widgetOpacity);\r\n this._settings.push(this.widgetOpacity);\r\n\r\n this.animateToolSettings = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"AnimateToolSettings\",\r\n () => UiFramework.animateToolSettings,\r\n (value: boolean) => UiFramework.setAnimateToolSettings(value), defaults.animateToolSettings);\r\n this._settings.push(this.animateToolSettings);\r\n\r\n this.useToolAsToolSettingsLabel = new UiStateEntry<boolean>(AppUiSettings._settingNamespace, \"UseToolAsToolSettingsLabel\",\r\n () => UiFramework.useToolAsToolSettingsLabel,\r\n (value: boolean) => UiFramework.setUseToolAsToolSettingsLabel(value), defaults.useToolAsToolSettingsLabel);\r\n this._settings.push(this.useToolAsToolSettingsLabel);\r\n\r\n this.toolbarOpacity = new UiStateEntry<number>(AppUiSettings._settingNamespace, \"ToolOpacity\",\r\n () => UiFramework.getToolbarOpacity(), (value: number) => UiFramework.setToolbarOpacity(value), defaults.toolbarOpacity);\r\n this._settings.push(this.toolbarOpacity);\r\n\r\n SyncUiEventDispatcher.onSyncUiEvent.addListener(this.handleSyncUiEvent);\r\n }\r\n\r\n private handleSyncUiEvent = async (args: UiSyncEventArgs) => {\r\n if (this._applyingLocalSettings)\r\n return;\r\n\r\n if (args.eventIds.has(\"configurableui:set_theme\")) {\r\n await this.colorTheme.saveSetting(UiFramework.getUiStateStorage());\r\n // always store as default theme in local storage to avoid flicker during startup if user is not yet logged-in\r\n window.localStorage.setItem(\"uifw:defaultTheme\", UiFramework.getColorTheme());\r\n }\r\n\r\n if (args.eventIds.has(\"configurableui:set-drag-interaction\"))\r\n await this.dragInteraction.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-framework-version\"))\r\n await this.frameworkVersion.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-show-widget-icon\"))\r\n await this.showWidgetIcon.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-auto-collapse-unpinned-panels\"))\r\n await this.autoCollapseUnpinnedPanels.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set_widget_opacity\"))\r\n await this.widgetOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-animate-tool-settings\"))\r\n await this.animateToolSettings.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-use-tool-as-tool-settings-label\"))\r\n await this.useToolAsToolSettingsLabel.saveSetting(UiFramework.getUiStateStorage());\r\n\r\n if (args.eventIds.has(\"configurableui:set-toolbar-opacity\"))\r\n await this.toolbarOpacity.saveSetting(UiFramework.getUiStateStorage());\r\n };\r\n\r\n public async apply(storage: UiStateStorage): Promise<void> {\r\n this._applyingLocalSettings = true;\r\n for await (const setting of this._settings) {\r\n await setting.getSettingAndApplyValue(storage);\r\n }\r\n this._applyingLocalSettings = false;\r\n }\r\n\r\n public async loadUserSettings(storage: UiStateStorage): Promise<void> {\r\n await this.apply(storage);\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "3.5.0-dev.
|
|
3
|
+
"version": "3.5.0-dev.58",
|
|
4
4
|
"description": "UI framework",
|
|
5
5
|
"main": "lib/cjs/appui-react.js",
|
|
6
6
|
"module": "lib/esm/appui-react.js",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"url": "http://www.bentley.com"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@itwin/appui-abstract": "^3.5.0-dev.
|
|
24
|
-
"@itwin/appui-layout-react": "^3.5.0-dev.
|
|
25
|
-
"@itwin/components-react": "^3.5.0-dev.
|
|
26
|
-
"@itwin/core-bentley": "^3.5.0-dev.
|
|
27
|
-
"@itwin/core-common": "^3.5.0-dev.
|
|
28
|
-
"@itwin/core-frontend": "^3.5.0-dev.
|
|
29
|
-
"@itwin/core-geometry": "^3.5.0-dev.
|
|
30
|
-
"@itwin/core-markup": "^3.5.0-dev.
|
|
31
|
-
"@itwin/core-quantity": "^3.5.0-dev.
|
|
32
|
-
"@itwin/core-react": "^3.5.0-dev.
|
|
33
|
-
"@itwin/imodel-components-react": "^3.5.0-dev.
|
|
34
|
-
"@itwin/presentation-common": "^3.5.0-dev.
|
|
35
|
-
"@itwin/presentation-frontend": "^3.5.0-dev.
|
|
23
|
+
"@itwin/appui-abstract": "^3.5.0-dev.58",
|
|
24
|
+
"@itwin/appui-layout-react": "^3.5.0-dev.58",
|
|
25
|
+
"@itwin/components-react": "^3.5.0-dev.58",
|
|
26
|
+
"@itwin/core-bentley": "^3.5.0-dev.58",
|
|
27
|
+
"@itwin/core-common": "^3.5.0-dev.58",
|
|
28
|
+
"@itwin/core-frontend": "^3.5.0-dev.58",
|
|
29
|
+
"@itwin/core-geometry": "^3.5.0-dev.58",
|
|
30
|
+
"@itwin/core-markup": "^3.5.0-dev.58",
|
|
31
|
+
"@itwin/core-quantity": "^3.5.0-dev.58",
|
|
32
|
+
"@itwin/core-react": "^3.5.0-dev.58",
|
|
33
|
+
"@itwin/imodel-components-react": "^3.5.0-dev.58",
|
|
34
|
+
"@itwin/presentation-common": "^3.5.0-dev.58",
|
|
35
|
+
"@itwin/presentation-frontend": "^3.5.0-dev.58",
|
|
36
36
|
"react": "^17.0.0",
|
|
37
37
|
"react-dom": "^17.0.0",
|
|
38
38
|
"react-redux": "^7.2.2",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
"NOTE: All tools used by scripts in this package must be listed as devDependencies"
|
|
44
44
|
],
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@itwin/appui-abstract": "3.5.0-dev.
|
|
47
|
-
"@itwin/appui-layout-react": "3.5.0-dev.
|
|
48
|
-
"@itwin/build-tools": "3.5.0-dev.
|
|
49
|
-
"@itwin/components-react": "3.5.0-dev.
|
|
50
|
-
"@itwin/core-bentley": "3.5.0-dev.
|
|
51
|
-
"@itwin/core-common": "3.5.0-dev.
|
|
52
|
-
"@itwin/core-frontend": "3.5.0-dev.
|
|
53
|
-
"@itwin/core-geometry": "3.5.0-dev.
|
|
54
|
-
"@itwin/core-markup": "3.5.0-dev.
|
|
55
|
-
"@itwin/core-quantity": "3.5.0-dev.
|
|
56
|
-
"@itwin/core-react": "3.5.0-dev.
|
|
57
|
-
"@itwin/eslint-plugin": "3.5.0-dev.
|
|
58
|
-
"@itwin/imodel-components-react": "3.5.0-dev.
|
|
59
|
-
"@itwin/presentation-common": "3.5.0-dev.
|
|
60
|
-
"@itwin/presentation-frontend": "3.5.0-dev.
|
|
61
|
-
"@itwin/presentation-testing": "3.5.0-dev.
|
|
46
|
+
"@itwin/appui-abstract": "3.5.0-dev.58",
|
|
47
|
+
"@itwin/appui-layout-react": "3.5.0-dev.58",
|
|
48
|
+
"@itwin/build-tools": "3.5.0-dev.58",
|
|
49
|
+
"@itwin/components-react": "3.5.0-dev.58",
|
|
50
|
+
"@itwin/core-bentley": "3.5.0-dev.58",
|
|
51
|
+
"@itwin/core-common": "3.5.0-dev.58",
|
|
52
|
+
"@itwin/core-frontend": "3.5.0-dev.58",
|
|
53
|
+
"@itwin/core-geometry": "3.5.0-dev.58",
|
|
54
|
+
"@itwin/core-markup": "3.5.0-dev.58",
|
|
55
|
+
"@itwin/core-quantity": "3.5.0-dev.58",
|
|
56
|
+
"@itwin/core-react": "3.5.0-dev.58",
|
|
57
|
+
"@itwin/eslint-plugin": "3.5.0-dev.58",
|
|
58
|
+
"@itwin/imodel-components-react": "3.5.0-dev.58",
|
|
59
|
+
"@itwin/presentation-common": "3.5.0-dev.58",
|
|
60
|
+
"@itwin/presentation-frontend": "3.5.0-dev.58",
|
|
61
|
+
"@itwin/presentation-testing": "3.5.0-dev.58",
|
|
62
62
|
"@testing-library/react": "^12.0.0",
|
|
63
63
|
"@testing-library/react-hooks": "^7.0.2",
|
|
64
64
|
"@testing-library/user-event": "^14.4.2",
|
|
@@ -114,8 +114,8 @@
|
|
|
114
114
|
"dependencies": {
|
|
115
115
|
"@bentley/icons-generic": "^1.0.15",
|
|
116
116
|
"@bentley/icons-generic-webfont": "^1.0.15",
|
|
117
|
-
"@itwin/core-telemetry": "3.5.0-dev.
|
|
118
|
-
"@itwin/presentation-components": "3.5.0-dev.
|
|
117
|
+
"@itwin/core-telemetry": "3.5.0-dev.58",
|
|
118
|
+
"@itwin/presentation-components": "3.5.0-dev.58",
|
|
119
119
|
"@itwin/itwinui-css": "0.x",
|
|
120
120
|
"@itwin/itwinui-react": "~1.42.0",
|
|
121
121
|
"@itwin/itwinui-icons-react": "^1.8.0",
|