@itwin/appui-react 4.5.1 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts +2 -2
  3. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  5. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  7. package/lib/cjs/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
  8. package/lib/cjs/appui-react/childwindow/CopyStyles.js +3 -1
  9. package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
  10. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  11. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +2 -1
  12. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  13. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts +6 -6
  14. package/lib/cjs/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
  16. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  18. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +4 -4
  19. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  21. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +5 -5
  22. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  23. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  24. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +2 -2
  25. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  27. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  28. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts +1 -2
  29. package/lib/cjs/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  30. package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +22 -26
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  33. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +185 -254
  34. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  35. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts +1 -7
  36. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +0 -6
  38. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  39. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  40. package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  41. package/lib/cjs/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
  43. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -1
  44. package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  45. package/lib/cjs/appui-react/messages/MessageManager.d.ts +0 -1
  46. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  47. package/lib/cjs/appui-react/messages/MessageManager.js +1 -2
  48. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  49. package/lib/cjs/appui-react/messages/Pointer.d.ts +1 -2
  50. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  51. package/lib/cjs/appui-react/messages/Pointer.js +1 -1
  52. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  53. package/lib/cjs/appui-react/popup/PositionPopup.d.ts +2 -2
  54. package/lib/cjs/appui-react/popup/PositionPopup.d.ts.map +1 -1
  55. package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
  56. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  57. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +16 -20
  58. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +80 -115
  60. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  61. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  62. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -2
  63. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  64. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts +36 -0
  65. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts.map +1 -0
  66. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.js +134 -0
  67. package/lib/cjs/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -0
  68. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts +1 -1
  69. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  71. package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  72. package/lib/cjs/appui-react/syncui/UiSyncEvent.d.ts +16 -0
  73. package/lib/cjs/appui-react/syncui/UiSyncEvent.d.ts.map +1 -0
  74. package/lib/cjs/appui-react/syncui/UiSyncEvent.js +18 -0
  75. package/lib/cjs/appui-react/syncui/UiSyncEvent.js.map +1 -0
  76. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  78. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  79. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  80. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +7 -29
  81. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  82. package/lib/cjs/appui-react/widget-panels/Frontstage.js +101 -434
  83. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  84. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +16 -3
  86. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  87. package/lib/cjs/appui-react/widgets/Widget.d.ts +10 -4
  88. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  90. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +9 -29
  91. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/widgets/WidgetDef.js +89 -46
  93. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  94. package/lib/cjs/appui-react.d.ts +1 -0
  95. package/lib/cjs/appui-react.d.ts.map +1 -1
  96. package/lib/cjs/appui-react.js +1 -0
  97. package/lib/cjs/appui-react.js.map +1 -1
  98. package/lib/esm/appui-react/accudraw/MenuButton.d.ts +2 -2
  99. package/lib/esm/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  100. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  101. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  102. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  103. package/lib/esm/appui-react/childwindow/CopyStyles.d.ts.map +1 -1
  104. package/lib/esm/appui-react/childwindow/CopyStyles.js +3 -1
  105. package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
  106. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  107. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +2 -1
  108. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  109. package/lib/esm/appui-react/cursor/CursorInformation.d.ts +6 -6
  110. package/lib/esm/appui-react/cursor/CursorInformation.d.ts.map +1 -1
  111. package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
  112. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  113. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  114. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +4 -4
  115. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  116. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  117. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts +5 -5
  118. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.d.ts.map +1 -1
  119. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
  120. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts +2 -2
  121. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  122. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  123. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  124. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts +1 -2
  125. package/lib/esm/appui-react/feedback/ElementTooltip.d.ts.map +1 -1
  126. package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
  127. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +22 -26
  128. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  129. package/lib/esm/appui-react/frontstage/FrontstageDef.js +189 -258
  130. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  131. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts +1 -7
  132. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  133. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +0 -6
  134. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  135. package/lib/esm/appui-react/hooks/useActiveIModelConnection.d.ts.map +1 -1
  136. package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
  137. package/lib/esm/appui-react/hooks/useActiveViewport.d.ts.map +1 -1
  138. package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
  139. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.d.ts.map +1 -1
  140. package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
  141. package/lib/esm/appui-react/messages/MessageManager.d.ts +0 -1
  142. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  143. package/lib/esm/appui-react/messages/MessageManager.js +1 -2
  144. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  145. package/lib/esm/appui-react/messages/Pointer.d.ts +1 -2
  146. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  147. package/lib/esm/appui-react/messages/Pointer.js +1 -1
  148. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  149. package/lib/esm/appui-react/popup/PositionPopup.d.ts +2 -2
  150. package/lib/esm/appui-react/popup/PositionPopup.d.ts.map +1 -1
  151. package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
  152. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  153. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +16 -20
  154. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  155. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +78 -114
  156. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  157. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  158. package/lib/esm/appui-react/statusfields/MessageCenter.js +1 -2
  159. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  160. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts +36 -0
  161. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.d.ts.map +1 -0
  162. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.js +130 -0
  163. package/lib/esm/appui-react/syncui/InternalSyncUiEventDispatcher.js.map +1 -0
  164. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts +1 -1
  165. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.d.ts.map +1 -1
  166. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js +2 -2
  167. package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
  168. package/lib/esm/appui-react/syncui/UiSyncEvent.d.ts +16 -0
  169. package/lib/esm/appui-react/syncui/UiSyncEvent.d.ts.map +1 -0
  170. package/lib/esm/appui-react/syncui/UiSyncEvent.js +14 -0
  171. package/lib/esm/appui-react/syncui/UiSyncEvent.js.map +1 -0
  172. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  173. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  174. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  175. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  176. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +7 -29
  177. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  178. package/lib/esm/appui-react/widget-panels/Frontstage.js +104 -433
  179. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  180. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  181. package/lib/esm/appui-react/widget-panels/ToolSettings.js +16 -3
  182. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  183. package/lib/esm/appui-react/widgets/Widget.d.ts +10 -4
  184. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  185. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  186. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +9 -29
  187. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  188. package/lib/esm/appui-react/widgets/WidgetDef.js +89 -46
  189. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  190. package/lib/esm/appui-react.d.ts +1 -0
  191. package/lib/esm/appui-react.d.ts.map +1 -1
  192. package/lib/esm/appui-react.js +1 -0
  193. package/lib/esm/appui-react.js.map +1 -1
  194. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\n// cSpell:ignore configurableui checkmark\n\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeManager\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher\";\nimport type { UiSyncEventArgs } from \"@itwin/appui-abstract\";\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, or based on OS preference.\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\n *\n * @beta\n */\nexport function UiSettingsPage() {\n const themeTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeTitle\")\n );\n const themeDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeDescription\")\n );\n const autoHideTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\")\n );\n const autoHideDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\")\n );\n const dragInteractionTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\")\n );\n const dragInteractionDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\")\n );\n const useProximityOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")\n );\n const useProximityOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )\n );\n const snapWidgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")\n );\n const snapWidgetOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )\n );\n const darkLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dark\")\n );\n const lightLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.light\")\n );\n const systemPreferredLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\")\n );\n const widgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\")\n );\n const widgetOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\")\n );\n const widgetIconTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\")\n );\n const widgetIconDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\")\n );\n const autoCollapseUnpinnedPanelsTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )\n );\n const autoCollapseUnpinnedPanelsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )\n );\n const animateToolSettingsTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")\n );\n const animateToolSettingsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )\n );\n const useToolAsToolSettingsLabelTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )\n );\n const useToolAsToolSettingsLabelDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )\n );\n const toolbarOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")\n );\n const toolbarOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\")\n );\n\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n \"configurableui:set_theme\",\n \"configurableui:set_widget_opacity\",\n \"configurableui:set-show-widget-icon\",\n \"configurableui:set-drag-interaction\",\n \"configurableui:set-framework-version\",\n \"configurableui:set-auto-collapse-unpinned-panels\",\n \"configurableui:set-animate-tool-settings\",\n \"configurableui:set-use-tool-as-tool-settings-label\",\n \"configurableui:set-toolbar-opacity\",\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n };\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: systemPreferredLabel.current,\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n { label: lightLabel.current, value: ColorTheme.Light },\n { label: darkLabel.current, value: ColorTheme.Dark },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={themeTitle.current}\n description={themeDescription.current}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={autoHideTitle.current}\n description={autoHideDescription.current}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={dragInteractionTitle.current}\n description={dragInteractionDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={useProximityOpacityTitle.current}\n description={useProximityOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={snapWidgetOpacityTitle.current}\n description={snapWidgetOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={widgetIconTitle.current}\n description={widgetIconDescription.current}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={autoCollapseUnpinnedPanelsTitle.current}\n description={autoCollapseUnpinnedPanelsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={animateToolSettingsTitle.current}\n description={animateToolSettingsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={useToolAsToolSettingsLabelTitle.current}\n description={useToolAsToolSettingsLabelDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={toolbarOpacityTitle.current}\n description={toolbarOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={widgetOpacityTitle.current}\n description={widgetOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
1
+ {"version":3,"file":"UiSettingsPage.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Settings\n */\n\n// cSpell:ignore configurableui checkmark\n\nimport widowSettingsIconSvg from \"@bentley/icons-generic/icons/window-settings.svg\";\nimport \"./UiSettingsPage.scss\";\nimport * as React from \"react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport {\n ColorTheme,\n SYSTEM_PREFERRED_COLOR_THEME,\n} from \"../../theme/ThemeManager\";\nimport {\n SyncUiEventDispatcher,\n SyncUiEventId,\n} from \"../../syncui/SyncUiEventDispatcher\";\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select, Slider, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport type { UiSyncEventArgs } from \"../../syncui/UiSyncEvent\";\n\n/** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.\n *\n * - theme - Dark, Light, or based on OS preference.\n * - auto hide - Starts a timer and blanks out ui components that overlay content if there is no mouse movement for a period of time.\n * - drag interaction - If set, toolbar group buttons require a press and drag or a long press to open. In this mode a child action\n * item is shown as the group button and is activated when button is clicked. If a different child item is selected, it becomes the\n * active group button item.\n * - use proximity - Changes the opacity of toolbar from transparent to opaque as the mouse moves closer.\n * - snap widget opacity - triggers an abrupt change from transparent to opaque for tool and navigation widgets, instead of a gradual change based on mouse location.\n * - widget opacity - determines how transparent floating widgets in V2 and all widgets in V1 become when the mouse in not in them.\n * - UI version - if allowed by props, the UI version can be toggled between V1 and V2.\n *\n * @beta\n */\nexport function UiSettingsPage() {\n const themeTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeTitle\")\n );\n const themeDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.themeDescription\")\n );\n const autoHideTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideTitle\")\n );\n const autoHideDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.autoHideDescription\")\n );\n const dragInteractionTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionTitle\")\n );\n const dragInteractionDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dragInteractionDescription\")\n );\n const useProximityOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.useProximityOpacityTitle\")\n );\n const useProximityOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useProximityOpacityDescription\"\n )\n );\n const snapWidgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.snapWidgetOpacityTitle\")\n );\n const snapWidgetOpacityDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.snapWidgetOpacityDescription\"\n )\n );\n const darkLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.dark\")\n );\n const lightLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.light\")\n );\n const systemPreferredLabel = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.systemPreferred\")\n );\n const widgetOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityTitle\")\n );\n const widgetOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetOpacityDescription\")\n );\n const widgetIconTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconTitle\")\n );\n const widgetIconDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.widgetIconDescription\")\n );\n const autoCollapseUnpinnedPanelsTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle\"\n )\n );\n const autoCollapseUnpinnedPanelsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription\"\n )\n );\n const animateToolSettingsTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.animateToolSettingsTitle\")\n );\n const animateToolSettingsDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.animateToolSettingsDescription\"\n )\n );\n const useToolAsToolSettingsLabelTitle = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelTitle\"\n )\n );\n const useToolAsToolSettingsLabelDescription = React.useRef(\n UiFramework.translate(\n \"settings.uiSettingsPage.useToolAsToolSettingsLabelDescription\"\n )\n );\n const toolbarOpacityTitle = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityTitle\")\n );\n const toolbarOpacityDescription = React.useRef(\n UiFramework.translate(\"settings.uiSettingsPage.toolbarOpacityDescription\")\n );\n\n const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());\n const [useDragInteraction, setUseDragInteraction] = React.useState(\n () => UiFramework.useDragInteraction\n );\n const [showWidgetIcon, setShowWidgetIcon] = React.useState(\n () => UiFramework.showWidgetIcon\n );\n const [autoCollapseUnpinnedPanels, setAutoCollapseUnpinnedPanels] =\n React.useState(() => UiFramework.autoCollapseUnpinnedPanels);\n const [animateToolSettings, setAnimateToolSettings] = React.useState(\n () => UiFramework.animateToolSettings\n );\n const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] =\n React.useState(() => UiFramework.useToolAsToolSettingsLabel);\n const [widgetOpacity, setWidgetOpacity] = React.useState(() =>\n UiFramework.getWidgetOpacity()\n );\n const [autoHideUi, setAutoHideUi] = React.useState(\n () => UiFramework.visibility.autoHideUi\n );\n const [useProximityOpacity, setUseProximityOpacity] = React.useState(\n () => UiFramework.visibility.useProximityOpacity\n );\n const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(\n () => UiFramework.visibility.snapWidgetOpacity\n );\n const [toolbarOpacity, setToolbarOpacity] = React.useState(() =>\n UiFramework.getToolbarOpacity()\n );\n\n React.useEffect(() => {\n const syncIdsOfInterest = [\n \"configurableui:set_theme\",\n \"configurableui:set_widget_opacity\",\n \"configurableui:set-show-widget-icon\",\n \"configurableui:set-drag-interaction\",\n \"configurableui:set-framework-version\",\n \"configurableui:set-auto-collapse-unpinned-panels\",\n \"configurableui:set-animate-tool-settings\",\n \"configurableui:set-use-tool-as-tool-settings-label\",\n \"configurableui:set-toolbar-opacity\",\n SyncUiEventId.ShowHideManagerSettingChange,\n ];\n\n const handleSyncUiEvent = (args: UiSyncEventArgs) => {\n // istanbul ignore else\n if (\n syncIdsOfInterest.some((value: string): boolean =>\n args.eventIds.has(value)\n )\n ) {\n if (UiFramework.getColorTheme() !== theme)\n setTheme(UiFramework.getColorTheme());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.useDragInteraction !== useDragInteraction)\n setUseDragInteraction(UiFramework.useDragInteraction);\n if (UiFramework.showWidgetIcon !== showWidgetIcon)\n setShowWidgetIcon(UiFramework.showWidgetIcon);\n if (\n UiFramework.autoCollapseUnpinnedPanels !== autoCollapseUnpinnedPanels\n )\n setAutoCollapseUnpinnedPanels(UiFramework.autoCollapseUnpinnedPanels);\n if (UiFramework.getWidgetOpacity() !== widgetOpacity)\n setWidgetOpacity(UiFramework.getWidgetOpacity());\n if (UiFramework.visibility.autoHideUi !== autoHideUi)\n setAutoHideUi(UiFramework.visibility.autoHideUi);\n if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)\n setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);\n if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)\n setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);\n if (UiFramework.animateToolSettings !== animateToolSettings)\n setAnimateToolSettings(UiFramework.animateToolSettings);\n if (\n UiFramework.useToolAsToolSettingsLabel !== useToolAsToolSettingsLabel\n )\n setUseToolAsToolSettingsLabel(UiFramework.useToolAsToolSettingsLabel);\n if (UiFramework.getToolbarOpacity() !== toolbarOpacity)\n setToolbarOpacity(UiFramework.getToolbarOpacity());\n }\n };\n return SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);\n }, [\n autoCollapseUnpinnedPanels,\n autoHideUi,\n showWidgetIcon,\n snapWidgetOpacity,\n theme,\n useDragInteraction,\n useProximityOpacity,\n widgetOpacity,\n animateToolSettings,\n useToolAsToolSettingsLabel,\n toolbarOpacity,\n ]);\n\n const defaultThemeOption = {\n label: systemPreferredLabel.current,\n value: SYSTEM_PREFERRED_COLOR_THEME,\n };\n const themeOptions: SelectOption<string>[] = [\n defaultThemeOption,\n { label: lightLabel.current, value: ColorTheme.Light },\n { label: darkLabel.current, value: ColorTheme.Dark },\n ];\n\n const onThemeChange = React.useCallback((newValue: string) => {\n UiFramework.setColorTheme(newValue);\n }, []);\n\n const onAutoHideChange = React.useCallback(async () => {\n UiFramework.visibility.autoHideUi = !autoHideUi;\n }, [autoHideUi]);\n\n const onUseProximityOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.useProximityOpacity = !useProximityOpacity;\n }, [useProximityOpacity]);\n\n const onSnapWidgetOpacityChange = React.useCallback(async () => {\n UiFramework.visibility.snapWidgetOpacity = !snapWidgetOpacity;\n }, [snapWidgetOpacity]);\n\n const onWidgetIconChange = React.useCallback(async () => {\n UiFramework.setShowWidgetIcon(!showWidgetIcon);\n }, [showWidgetIcon]);\n\n const onAutoCollapseUnpinnedPanelsChange = React.useCallback(async () => {\n UiFramework.setAutoCollapseUnpinnedPanels(!autoCollapseUnpinnedPanels);\n }, [autoCollapseUnpinnedPanels]);\n\n const onWidgetOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setWidgetOpacity(values[0]);\n }\n },\n []\n );\n\n const onToggleDragInteraction = React.useCallback(async () => {\n UiFramework.setUseDragInteraction(!useDragInteraction);\n }, [useDragInteraction]);\n\n const OnToggleAnimateToolSettings = React.useCallback(async () => {\n UiFramework.setAnimateToolSettings(!animateToolSettings);\n }, [animateToolSettings]);\n const currentTheme = UiFramework.getColorTheme();\n\n const OnToggleUseToolAsToolSettingsLabel = React.useCallback(async () => {\n UiFramework.setUseToolAsToolSettingsLabel(!useToolAsToolSettingsLabel);\n }, [useToolAsToolSettingsLabel]);\n\n const onToolbarOpacityChange = React.useCallback(\n async (values: readonly number[]) => {\n // istanbul ignore else\n if (values.length > 0) {\n UiFramework.setToolbarOpacity(values[0]);\n }\n },\n []\n );\n\n return (\n <div className=\"uifw-settings\">\n <SettingsItem\n title={themeTitle.current}\n description={themeDescription.current}\n settingUi={\n <div\n data-testid=\"select-theme-container\"\n className=\"select-theme-container\"\n >\n <Select\n value={currentTheme}\n onChange={onThemeChange}\n options={themeOptions}\n data-testid=\"select-theme\"\n size=\"small\"\n />\n </div>\n }\n />\n <SettingsItem\n title={autoHideTitle.current}\n description={autoHideDescription.current}\n settingUi={\n <ToggleSwitch checked={autoHideUi} onChange={onAutoHideChange} />\n }\n />\n <SettingsItem\n title={dragInteractionTitle.current}\n description={dragInteractionDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useDragInteraction}\n onChange={onToggleDragInteraction}\n />\n }\n />\n <SettingsItem\n title={useProximityOpacityTitle.current}\n description={useProximityOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useProximityOpacity}\n onChange={onUseProximityOpacityChange}\n />\n }\n />\n <SettingsItem\n title={snapWidgetOpacityTitle.current}\n description={snapWidgetOpacityDescription.current}\n settingUi={\n <ToggleSwitch\n checked={snapWidgetOpacity}\n onChange={onSnapWidgetOpacityChange}\n />\n }\n />\n <SettingsItem\n title={widgetIconTitle.current}\n description={widgetIconDescription.current}\n settingUi={\n <ToggleSwitch\n checked={showWidgetIcon}\n onChange={onWidgetIconChange}\n />\n }\n />\n <SettingsItem\n title={autoCollapseUnpinnedPanelsTitle.current}\n description={autoCollapseUnpinnedPanelsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={autoCollapseUnpinnedPanels}\n onChange={onAutoCollapseUnpinnedPanelsChange}\n />\n }\n />\n <SettingsItem\n title={animateToolSettingsTitle.current}\n description={animateToolSettingsDescription.current}\n settingUi={\n <ToggleSwitch\n checked={animateToolSettings}\n onChange={OnToggleAnimateToolSettings}\n />\n }\n />\n <SettingsItem\n title={useToolAsToolSettingsLabelTitle.current}\n description={useToolAsToolSettingsLabelDescription.current}\n settingUi={\n <ToggleSwitch\n checked={useToolAsToolSettingsLabel}\n onChange={OnToggleUseToolAsToolSettingsLabel}\n />\n }\n />\n <SettingsItem\n title={toolbarOpacityTitle.current}\n description={toolbarOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[toolbarOpacity]}\n step={0.05}\n onChange={onToolbarOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n <SettingsItem\n title={widgetOpacityTitle.current}\n description={widgetOpacityDescription.current}\n settingUi={\n <Slider\n style={{ flex: \"1\" }}\n values={[widgetOpacity]}\n step={0.05}\n onChange={onWidgetOpacityChange}\n min={0.2}\n max={1.0}\n maxLabel=\"1.0\"\n tickLabels={[\"\", \"\", \"\", \"\", \"\"]}\n />\n }\n />\n </div>\n );\n}\n\ninterface SettingsItemProps {\n title: string;\n description: string;\n settingUi: React.ReactNode;\n}\n\nfunction SettingsItem(props: SettingsItemProps) {\n const { title, description, settingUi } = props;\n\n return (\n <div className=\"uifw-settings-item\">\n <div className=\"panel left-panel\">\n <span className=\"title\">{title}</span>\n <span className=\"description\">{description}</span>\n </div>\n <div className=\"panel right-panel\">{settingUi}</div>\n </div>\n );\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @beta\n */\nexport function getUiSettingsManagerEntry(\n itemPriority: number\n): SettingsTabEntry {\n return {\n itemPriority,\n tabId: \"uifw:UiStateStorage\",\n label: UiFramework.translate(\"settings.uiSettingsPage.label\"),\n icon: IconSpecUtilities.createWebComponentIconSpec(widowSettingsIconSvg),\n page: <UiSettingsPage />,\n isDisabled: false,\n tooltip: UiFramework.translate(\"settings.uiSettingsPage.tooltip\"),\n };\n}\n"]}
@@ -5,7 +5,7 @@ import { UiEvent } from "@itwin/appui-abstract";
5
5
  import type { NineZoneState, PanelSide } from "@itwin/appui-layout-react";
6
6
  import { WidgetDef } from "../widgets/WidgetDef";
7
7
  import { WidgetHost } from "../widgets/WidgetHost";
8
- import type { StagePanelConfig, StagePanelMaxSizeSpec, StagePanelSectionConfig } from "./StagePanelConfig";
8
+ import type { StagePanelConfig, StagePanelSectionConfig } from "./StagePanelConfig";
9
9
  import { StagePanelLocation } from "./StagePanelLocation";
10
10
  import { StagePanelSection } from "./StagePanelSection";
11
11
  /** Enum for StagePanel state.
@@ -49,45 +49,41 @@ export interface PanelPinnedChangedEventArgs {
49
49
  * @public
50
50
  */
51
51
  export declare class StagePanelDef extends WidgetHost {
52
- private _panelState;
53
- private _defaultState;
54
- private _maxSizeSpec;
55
- private _minSize;
56
- private _size;
57
- private _defaultSize;
58
- private _resizable;
59
- private _pinned;
52
+ private _initialConfig?;
60
53
  private _location;
61
54
  private _start;
62
55
  private _end;
63
- /** Constructor for PanelDef.
64
- */
56
+ /** Constructor for PanelDef. */
65
57
  constructor();
66
58
  /** @internal */
67
- get maxSizeSpec(): StagePanelMaxSizeSpec | undefined;
59
+ static create(config: StagePanelConfig, location: StagePanelLocation): StagePanelDef;
60
+ /** @internal */
61
+ initializeFromConfig(config: StagePanelConfig | undefined, location: StagePanelLocation): void;
68
62
  /** @internal */
69
- get minSize(): number | undefined;
70
- /** Default size of the panel */
63
+ get initialConfig(): StagePanelConfig | undefined;
64
+ /** Current size of the panel */
71
65
  get size(): number | undefined;
72
66
  set size(size: number | undefined);
67
+ /** @internal */
68
+ handleSizeChanged(size: number | undefined): void;
73
69
  /** Indicates whether the panel is resizable. */
74
70
  get resizable(): boolean;
75
71
  /** Indicates whether the panel is pinned. */
76
72
  get pinned(): boolean;
77
73
  set pinned(pinned: boolean);
74
+ /** @internal */
75
+ handlePinnedChanged(pinned: boolean): void;
78
76
  /** Location of panel. */
79
77
  get location(): StagePanelLocation;
80
78
  /** Panel state. Defaults to PanelState.Open. */
81
79
  get panelState(): StagePanelState;
82
80
  set panelState(panelState: StagePanelState);
83
81
  /** @internal */
82
+ handlePanelStateChanged(panelState: StagePanelState): void;
83
+ /** @internal */
84
84
  get defaultState(): StagePanelState;
85
85
  /** @internal */
86
86
  get defaultSize(): number | undefined;
87
- /** @internal */
88
- static create(config: StagePanelConfig, location: StagePanelLocation): StagePanelDef;
89
- /** @internal */
90
- initializeFromConfig(config: StagePanelConfig | undefined, location: StagePanelLocation): void;
91
87
  /** Gets the list of Widgets. */
92
88
  get widgetDefs(): ReadonlyArray<WidgetDef>;
93
89
  /** @internal */
@@ -103,7 +99,7 @@ export declare class StagePanelSectionDef extends WidgetHost {
103
99
  /** @internal */
104
100
  export declare function toPanelSide(location: StagePanelLocation): PanelSide;
105
101
  /** @internal */
106
- export declare const setPanelSize: (nineZone: NineZoneState, side: PanelSide, size: number | undefined) => NineZoneState;
107
- /** @internal */
108
102
  export declare const setPanelPinned: (nineZone: NineZoneState, side: PanelSide, pinned: boolean) => NineZoneState;
103
+ /** @internal */
104
+ export declare function getPanelState(state: NineZoneState, side: PanelSide): StagePanelState.Minimized | StagePanelState.Open;
109
105
  //# sourceMappingURL=StagePanelDef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StagePanelDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * @module Frontstage
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.setPanelPinned = exports.setPanelSize = exports.toPanelSide = exports.StagePanelSectionDef = exports.StagePanelDef = exports.PanelSizeChangedEvent = exports.PanelStateChangedEvent = exports.StagePanelState = void 0;
10
+ exports.getPanelState = exports.setPanelPinned = exports.toPanelSide = exports.StagePanelSectionDef = exports.StagePanelDef = exports.PanelSizeChangedEvent = exports.PanelStateChangedEvent = exports.StagePanelState = void 0;
11
11
  const immer_1 = require("immer");
12
12
  const appui_abstract_1 = require("@itwin/appui-abstract");
13
13
  const WidgetDef_1 = require("../widgets/WidgetDef");
@@ -41,81 +41,85 @@ exports.PanelSizeChangedEvent = PanelSizeChangedEvent;
41
41
  * @public
42
42
  */
43
43
  class StagePanelDef extends WidgetHost_1.WidgetHost {
44
- /** Constructor for PanelDef.
45
- */
44
+ /** Constructor for PanelDef. */
46
45
  constructor() {
47
46
  super();
48
- this._panelState = StagePanelState.Open;
49
- this._defaultState = StagePanelState.Open;
50
- this._resizable = true;
51
- this._pinned = true;
52
47
  this._location = StagePanelLocation_1.StagePanelLocation.Left;
53
48
  this._start = new StagePanelSectionDef();
54
49
  this._end = new StagePanelSectionDef();
55
50
  }
56
51
  /** @internal */
57
- get maxSizeSpec() {
58
- return this._maxSizeSpec;
52
+ static create(config, location) {
53
+ const def = new StagePanelDef();
54
+ def.initializeFromConfig(config, location);
55
+ return def;
59
56
  }
60
57
  /** @internal */
61
- get minSize() {
62
- return this._minSize;
58
+ initializeFromConfig(config, location) {
59
+ this._location = location;
60
+ this._initialConfig = config;
61
+ this._start.initializeFromConfig(config?.sections?.start);
62
+ this._end.initializeFromConfig(config?.sections?.end);
63
63
  }
64
- /** Default size of the panel */
64
+ /** @internal */
65
+ get initialConfig() {
66
+ return this._initialConfig;
67
+ }
68
+ /** Current size of the panel */
65
69
  get size() {
66
- // istanbul ignore else
67
- if (UiFramework_1.UiFramework.frontstages.activeFrontstageDef) {
68
- const [_, size] = UiFramework_1.UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);
69
- return size;
70
- }
71
- // istanbul ignore next
72
- return this._defaultSize;
70
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
71
+ const state = frontstageDef?.nineZoneState;
72
+ if (!state)
73
+ return this.defaultSize;
74
+ const side = toPanelSide(this.location);
75
+ const panel = state.panels[side];
76
+ return panel.size;
73
77
  }
74
78
  set size(size) {
75
- if (this._size === size)
76
- return;
77
- // istanbul ignore else
78
79
  const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
79
- // istanbul ignore else
80
- if (frontstageDef && frontstageDef.nineZoneState) {
81
- const side = toPanelSide(this.location);
82
- frontstageDef.nineZoneState = (0, exports.setPanelSize)(frontstageDef.nineZoneState, side, size);
83
- const panel = frontstageDef.nineZoneState.panels[side];
84
- if (panel.size === this._size)
85
- return;
86
- size = panel.size;
87
- }
88
- this._size = size;
80
+ if (!frontstageDef)
81
+ return;
82
+ const side = toPanelSide(this.location);
83
+ frontstageDef.dispatch({
84
+ type: "PANEL_SET_SIZE",
85
+ side,
86
+ size,
87
+ });
88
+ }
89
+ /** @internal */
90
+ handleSizeChanged(size) {
89
91
  InternalFrontstageManager_1.InternalFrontstageManager.onPanelSizeChangedEvent.emit({
90
92
  panelDef: this,
91
93
  size,
92
94
  });
93
95
  }
94
96
  /** Indicates whether the panel is resizable. */
95
- // istanbul ignore next
96
97
  get resizable() {
97
- return this._resizable;
98
+ return this._initialConfig?.resizable ?? true;
98
99
  }
99
100
  /** Indicates whether the panel is pinned. */
100
101
  get pinned() {
101
- if (UiFramework_1.UiFramework.frontstages.activeFrontstageDef) {
102
- const state = UiFramework_1.UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);
103
- return state[2];
104
- }
105
- // istanbul ignore next
106
- return false;
102
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
103
+ const state = frontstageDef?.nineZoneState;
104
+ if (!state)
105
+ return this.initialConfig?.pinned ?? true;
106
+ const side = toPanelSide(this.location);
107
+ const panel = state.panels[side];
108
+ return panel.pinned;
107
109
  }
108
110
  set pinned(pinned) {
109
- if (this._pinned === pinned)
110
- return;
111
- // istanbul ignore else
112
111
  const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
113
- // istanbul ignore else
114
- if (frontstageDef && frontstageDef.nineZoneState) {
115
- const side = toPanelSide(this.location);
116
- frontstageDef.nineZoneState = (0, exports.setPanelPinned)(frontstageDef.nineZoneState, side, pinned);
117
- }
118
- this._pinned = pinned;
112
+ if (!frontstageDef)
113
+ return;
114
+ const side = toPanelSide(this.location);
115
+ frontstageDef.dispatch({
116
+ type: "PANEL_SET_PINNED",
117
+ side,
118
+ pinned,
119
+ });
120
+ }
121
+ /** @internal */
122
+ handlePinnedChanged(pinned) {
119
123
  UiFramework_1.UiFramework.frontstages.onPanelPinnedChangedEvent.emit({
120
124
  panelDef: this,
121
125
  pinned,
@@ -127,39 +131,27 @@ class StagePanelDef extends WidgetHost_1.WidgetHost {
127
131
  }
128
132
  /** Panel state. Defaults to PanelState.Open. */
129
133
  get panelState() {
130
- // istanbul ignore else
131
- if (UiFramework_1.UiFramework.frontstages.activeFrontstageDef) {
132
- const [state] = UiFramework_1.UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);
133
- return state;
134
- }
135
- // istanbul ignore next
136
- return this.defaultState;
134
+ const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
135
+ const state = frontstageDef?.nineZoneState;
136
+ if (!state)
137
+ return this.defaultState;
138
+ const side = toPanelSide(this.location);
139
+ return getPanelState(state, side);
137
140
  }
138
141
  set panelState(panelState) {
139
- if (panelState === this._panelState)
140
- return;
141
142
  const frontstageDef = UiFramework_1.UiFramework.frontstages.activeFrontstageDef;
142
- if (frontstageDef && frontstageDef.nineZoneState) {
143
- const side = toPanelSide(this.location);
144
- frontstageDef.nineZoneState = (0, immer_1.default)(frontstageDef.nineZoneState, (nineZone) => {
145
- const panel = nineZone.panels[side];
146
- switch (panelState) {
147
- case StagePanelState.Minimized: {
148
- panel.collapsed = true;
149
- break;
150
- }
151
- case StagePanelState.Open: {
152
- panel.collapsed = false;
153
- break;
154
- }
155
- case StagePanelState.Off: {
156
- panel.collapsed = true;
157
- break;
158
- }
159
- }
160
- });
161
- }
162
- this._panelState = panelState;
143
+ if (!frontstageDef)
144
+ return;
145
+ const side = toPanelSide(this.location);
146
+ const collapsed = panelState === StagePanelState.Open ? false : true;
147
+ frontstageDef.dispatch({
148
+ type: "PANEL_SET_COLLAPSED",
149
+ collapsed,
150
+ side,
151
+ });
152
+ }
153
+ /** @internal */
154
+ handlePanelStateChanged(panelState) {
163
155
  UiFramework_1.UiFramework.frontstages.onPanelStateChangedEvent.emit({
164
156
  panelDef: this,
165
157
  panelState,
@@ -167,37 +159,12 @@ class StagePanelDef extends WidgetHost_1.WidgetHost {
167
159
  }
168
160
  /** @internal */
169
161
  get defaultState() {
170
- return this._defaultState;
162
+ const defaultState = this._initialConfig?.defaultState;
163
+ return defaultState ?? StagePanelState.Open;
171
164
  }
172
165
  /** @internal */
173
166
  get defaultSize() {
174
- return this._defaultSize;
175
- }
176
- /** @internal */
177
- static create(config, location) {
178
- const def = new StagePanelDef();
179
- def.initializeFromConfig(config, location);
180
- return def;
181
- }
182
- /** @internal */
183
- initializeFromConfig(config, location) {
184
- this._location = location;
185
- if (!config)
186
- return;
187
- this._size = config.size;
188
- this._defaultSize = config.size;
189
- this._maxSizeSpec = config.maxSize;
190
- this._minSize = config.minSize;
191
- if (config.defaultState !== undefined) {
192
- this._defaultState = config.defaultState;
193
- this._panelState = config.defaultState;
194
- }
195
- this._resizable = config.resizable ?? true;
196
- if (config.pinned !== undefined)
197
- this._pinned = config.pinned;
198
- const sections = config.sections;
199
- this._start.initializeFromConfig(sections?.start);
200
- this._end.initializeFromConfig(sections?.end);
167
+ return this._initialConfig?.size;
201
168
  }
202
169
  /** Gets the list of Widgets. */
203
170
  get widgetDefs() {
@@ -251,16 +218,14 @@ function toPanelSide(location) {
251
218
  }
252
219
  exports.toPanelSide = toPanelSide;
253
220
  /** @internal */
254
- exports.setPanelSize = (0, immer_1.default)((nineZone, side, size) => {
255
- const panel = nineZone.panels[side];
256
- panel.size =
257
- size === undefined
258
- ? size
259
- : Math.min(Math.max(size, panel.minSize), panel.maxSize);
260
- });
261
- /** @internal */
262
221
  exports.setPanelPinned = (0, immer_1.default)((nineZone, side, pinned) => {
263
222
  const panel = nineZone.panels[side];
264
223
  panel.pinned = pinned;
265
224
  });
225
+ /** @internal */
226
+ function getPanelState(state, side) {
227
+ const panel = state.panels[side];
228
+ return panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;
229
+ }
230
+ exports.getPanelState = getPanelState;
266
231
  //# sourceMappingURL=StagePanelDef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport type { Draft } from \"immer\";\nimport produce from \"immer\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\nimport { WidgetDef } from \"../widgets/WidgetDef\";\nimport { WidgetHost } from \"../widgets/WidgetHost\";\nimport type {\n StagePanelConfig,\n StagePanelMaxSizeSpec,\n StagePanelSectionConfig,\n} from \"./StagePanelConfig\";\nimport { StagePanelLocation } from \"./StagePanelLocation\";\nimport { StagePanelSection } from \"./StagePanelSection\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Enum for StagePanel state.\n * @public\n */\nexport enum StagePanelState {\n Off,\n Minimized,\n Open,\n Popup,\n}\n\n/** Panel state changed event args interface.\n * @public\n */\nexport interface PanelStateChangedEventArgs {\n panelDef: StagePanelDef;\n panelState: StagePanelState;\n}\n\n/** Panel state changed event class.\n * @beta\n */\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> {}\n\n/** @internal */\nexport interface PanelSizeChangedEventArgs {\n panelDef: StagePanelDef;\n size: number | undefined;\n}\n\n/** @internal */\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> {}\n\n/** Panel pinned changed event args interface.\n * @public\n */\nexport interface PanelPinnedChangedEventArgs {\n panelDef: StagePanelDef;\n pinned: boolean;\n}\n\n/**\n * A StagePanelDef represents each Stage Panel within a Frontstage.\n * @public\n */\nexport class StagePanelDef extends WidgetHost {\n private _panelState = StagePanelState.Open;\n private _defaultState = StagePanelState.Open;\n private _maxSizeSpec: StagePanelMaxSizeSpec | undefined;\n private _minSize: number | undefined;\n private _size: number | undefined;\n private _defaultSize: number | undefined;\n private _resizable = true;\n private _pinned = true;\n private _location: StagePanelLocation = StagePanelLocation.Left;\n private _start = new StagePanelSectionDef();\n private _end = new StagePanelSectionDef();\n\n /** Constructor for PanelDef.\n */\n constructor() {\n super();\n }\n\n /** @internal */\n public get maxSizeSpec() {\n return this._maxSizeSpec;\n }\n\n /** @internal */\n public get minSize() {\n return this._minSize;\n }\n\n /** Default size of the panel */\n public get size() {\n // istanbul ignore else\n if (UiFramework.frontstages.activeFrontstageDef) {\n const [_, size] =\n UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\n return size;\n }\n // istanbul ignore next\n return this._defaultSize;\n }\n\n public set size(size) {\n if (this._size === size) return;\n\n // istanbul ignore else\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = setPanelSize(\n frontstageDef.nineZoneState,\n side,\n size\n );\n const panel = frontstageDef.nineZoneState.panels[side];\n if (panel.size === this._size) return;\n size = panel.size;\n }\n this._size = size;\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\n panelDef: this,\n size,\n });\n }\n\n /** Indicates whether the panel is resizable. */\n // istanbul ignore next\n public get resizable(): boolean {\n return this._resizable;\n }\n\n /** Indicates whether the panel is pinned. */\n public get pinned(): boolean {\n if (UiFramework.frontstages.activeFrontstageDef) {\n const state =\n UiFramework.frontstages.activeFrontstageDef.getPanelCurrentState(this);\n return state[2];\n }\n // istanbul ignore next\n return false;\n }\n\n public set pinned(pinned: boolean) {\n if (this._pinned === pinned) return;\n\n // istanbul ignore else\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n // istanbul ignore else\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = setPanelPinned(\n frontstageDef.nineZoneState,\n side,\n pinned\n );\n }\n this._pinned = pinned;\n UiFramework.frontstages.onPanelPinnedChangedEvent.emit({\n panelDef: this,\n pinned,\n });\n }\n\n /** Location of panel. */\n public get location(): StagePanelLocation {\n return this._location;\n }\n\n /** Panel state. Defaults to PanelState.Open. */\n public get panelState() {\n // istanbul ignore else\n if (UiFramework.frontstages.activeFrontstageDef) {\n const [state] =\n UiFramework.frontstages.activeFrontstageDef?.getPanelCurrentState(this);\n return state;\n }\n // istanbul ignore next\n return this.defaultState;\n }\n\n public set panelState(panelState: StagePanelState) {\n if (panelState === this._panelState) return;\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (frontstageDef && frontstageDef.nineZoneState) {\n const side = toPanelSide(this.location);\n frontstageDef.nineZoneState = produce(\n frontstageDef.nineZoneState,\n (nineZone) => {\n const panel = nineZone.panels[side];\n switch (panelState) {\n case StagePanelState.Minimized: {\n panel.collapsed = true;\n break;\n }\n case StagePanelState.Open: {\n panel.collapsed = false;\n break;\n }\n case StagePanelState.Off: {\n panel.collapsed = true;\n break;\n }\n }\n }\n );\n }\n this._panelState = panelState;\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\n panelDef: this,\n panelState,\n });\n }\n\n /** @internal */\n public get defaultState() {\n return this._defaultState;\n }\n\n /** @internal */\n public get defaultSize() {\n return this._defaultSize;\n }\n\n /** @internal */\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\n const def = new StagePanelDef();\n def.initializeFromConfig(config, location);\n return def;\n }\n\n /** @internal */\n public initializeFromConfig(\n config: StagePanelConfig | undefined,\n location: StagePanelLocation\n ): void {\n this._location = location;\n\n if (!config) return;\n this._size = config.size;\n this._defaultSize = config.size;\n this._maxSizeSpec = config.maxSize;\n this._minSize = config.minSize;\n if (config.defaultState !== undefined) {\n this._defaultState = config.defaultState;\n this._panelState = config.defaultState;\n }\n this._resizable = config.resizable ?? true;\n if (config.pinned !== undefined) this._pinned = config.pinned;\n\n const sections = config.sections;\n this._start.initializeFromConfig(sections?.start);\n this._end.initializeFromConfig(sections?.end);\n }\n\n /** Gets the list of Widgets. */\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\n return [\n ...super.widgetDefs,\n ...this._start.widgetDefs,\n ...this._end.widgetDefs,\n ];\n }\n\n /** @internal */\n public override updateDynamicWidgetDefs(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n _section: StagePanelSection | undefined,\n allStageWidgetDefs: WidgetDef[]\n ) {\n this._start.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.Start,\n allStageWidgetDefs\n );\n this._end.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.End,\n allStageWidgetDefs\n );\n }\n\n /** @internal */\n public getPanelSectionDef(section: StagePanelSection) {\n switch (section) {\n case StagePanelSection.Start: {\n return this._start;\n }\n case StagePanelSection.End: {\n return this._end;\n }\n }\n }\n}\n\n/** @internal */\nexport class StagePanelSectionDef extends WidgetHost {\n /** @internal */\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\n config?.forEach((widgetConfig) => {\n const widgetDef = WidgetDef.create(widgetConfig);\n this.addWidgetDef(widgetDef);\n });\n }\n}\n\n/** @internal */\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\n switch (location) {\n case StagePanelLocation.Bottom:\n return \"bottom\";\n case StagePanelLocation.Left:\n return \"left\";\n case StagePanelLocation.Right:\n return \"right\";\n case StagePanelLocation.Top:\n return \"top\";\n }\n}\n\n/** @internal */\nexport const setPanelSize: (\n nineZone: NineZoneState,\n side: PanelSide,\n size: number | undefined\n) => NineZoneState = produce(\n (\n nineZone: Draft<NineZoneState>,\n side: PanelSide,\n size: number | undefined\n ) => {\n const panel = nineZone.panels[side];\n panel.size =\n size === undefined\n ? size\n : Math.min(Math.max(size, panel.minSize), panel.maxSize);\n }\n);\n\n/** @internal */\nexport const setPanelPinned: (\n nineZone: NineZoneState,\n side: PanelSide,\n pinned: boolean\n) => NineZoneState = produce(\n (nineZone: Draft<NineZoneState>, side: PanelSide, pinned: boolean) => {\n const panel = nineZone.panels[side];\n panel.pinned = pinned;\n }\n);\n"]}
1
+ {"version":3,"file":"StagePanelDef.js","sourceRoot":"","sources":["../../../../src/appui-react/stagepanels/StagePanelDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\n\nimport type { Draft } from \"immer\";\nimport produce from \"immer\";\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { NineZoneState, PanelSide } from \"@itwin/appui-layout-react\";\nimport { WidgetDef } from \"../widgets/WidgetDef\";\nimport { WidgetHost } from \"../widgets/WidgetHost\";\nimport type {\n StagePanelConfig,\n StagePanelSectionConfig,\n} from \"./StagePanelConfig\";\nimport { StagePanelLocation } from \"./StagePanelLocation\";\nimport { StagePanelSection } from \"./StagePanelSection\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Enum for StagePanel state.\n * @public\n */\nexport enum StagePanelState {\n Off,\n Minimized,\n Open,\n Popup,\n}\n\n/** Panel state changed event args interface.\n * @public\n */\nexport interface PanelStateChangedEventArgs {\n panelDef: StagePanelDef;\n panelState: StagePanelState;\n}\n\n/** Panel state changed event class.\n * @beta\n */\nexport class PanelStateChangedEvent extends UiEvent<PanelStateChangedEventArgs> {}\n\n/** @internal */\nexport interface PanelSizeChangedEventArgs {\n panelDef: StagePanelDef;\n size: number | undefined;\n}\n\n/** @internal */\nexport class PanelSizeChangedEvent extends UiEvent<PanelSizeChangedEventArgs> {}\n\n/** Panel pinned changed event args interface.\n * @public\n */\nexport interface PanelPinnedChangedEventArgs {\n panelDef: StagePanelDef;\n pinned: boolean;\n}\n\n/**\n * A StagePanelDef represents each Stage Panel within a Frontstage.\n * @public\n */\nexport class StagePanelDef extends WidgetHost {\n private _initialConfig?: StagePanelConfig;\n private _location: StagePanelLocation = StagePanelLocation.Left;\n private _start = new StagePanelSectionDef();\n private _end = new StagePanelSectionDef();\n\n /** Constructor for PanelDef. */\n constructor() {\n super();\n }\n\n /** @internal */\n public static create(config: StagePanelConfig, location: StagePanelLocation) {\n const def = new StagePanelDef();\n def.initializeFromConfig(config, location);\n return def;\n }\n\n /** @internal */\n public initializeFromConfig(\n config: StagePanelConfig | undefined,\n location: StagePanelLocation\n ) {\n this._location = location;\n\n this._initialConfig = config;\n this._start.initializeFromConfig(config?.sections?.start);\n this._end.initializeFromConfig(config?.sections?.end);\n }\n\n /** @internal */\n public get initialConfig() {\n return this._initialConfig;\n }\n\n /** Current size of the panel */\n public get size(): number | undefined {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return this.defaultSize;\n\n const side = toPanelSide(this.location);\n const panel = state.panels[side];\n return panel.size;\n }\n\n public set size(size) {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const side = toPanelSide(this.location);\n frontstageDef.dispatch({\n type: \"PANEL_SET_SIZE\",\n side,\n size,\n });\n }\n\n /** @internal */\n public handleSizeChanged(size: number | undefined) {\n InternalFrontstageManager.onPanelSizeChangedEvent.emit({\n panelDef: this,\n size,\n });\n }\n\n /** Indicates whether the panel is resizable. */\n public get resizable(): boolean {\n return this._initialConfig?.resizable ?? true;\n }\n\n /** Indicates whether the panel is pinned. */\n public get pinned(): boolean {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return this.initialConfig?.pinned ?? true;\n\n const side = toPanelSide(this.location);\n const panel = state.panels[side];\n return panel.pinned;\n }\n\n public set pinned(pinned: boolean) {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const side = toPanelSide(this.location);\n frontstageDef.dispatch({\n type: \"PANEL_SET_PINNED\",\n side,\n pinned,\n });\n }\n\n /** @internal */\n public handlePinnedChanged(pinned: boolean) {\n UiFramework.frontstages.onPanelPinnedChangedEvent.emit({\n panelDef: this,\n pinned,\n });\n }\n\n /** Location of panel. */\n public get location(): StagePanelLocation {\n return this._location;\n }\n\n /** Panel state. Defaults to PanelState.Open. */\n public get panelState(): StagePanelState {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n const state = frontstageDef?.nineZoneState;\n if (!state) return this.defaultState;\n const side = toPanelSide(this.location);\n return getPanelState(state, side);\n }\n\n public set panelState(panelState: StagePanelState) {\n const frontstageDef = UiFramework.frontstages.activeFrontstageDef;\n if (!frontstageDef) return;\n\n const side = toPanelSide(this.location);\n const collapsed = panelState === StagePanelState.Open ? false : true;\n frontstageDef.dispatch({\n type: \"PANEL_SET_COLLAPSED\",\n collapsed,\n side,\n });\n }\n\n /** @internal */\n public handlePanelStateChanged(panelState: StagePanelState) {\n UiFramework.frontstages.onPanelStateChangedEvent.emit({\n panelDef: this,\n panelState,\n });\n }\n\n /** @internal */\n public get defaultState() {\n const defaultState = this._initialConfig?.defaultState;\n return defaultState ?? StagePanelState.Open;\n }\n\n /** @internal */\n public get defaultSize() {\n return this._initialConfig?.size;\n }\n\n /** Gets the list of Widgets. */\n public override get widgetDefs(): ReadonlyArray<WidgetDef> {\n return [\n ...super.widgetDefs,\n ...this._start.widgetDefs,\n ...this._end.widgetDefs,\n ];\n }\n\n /** @internal */\n public override updateDynamicWidgetDefs(\n stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n _section: StagePanelSection | undefined,\n allStageWidgetDefs: WidgetDef[]\n ) {\n this._start.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.Start,\n allStageWidgetDefs\n );\n this._end.updateDynamicWidgetDefs(\n stageId,\n stageUsage,\n location,\n StagePanelSection.End,\n allStageWidgetDefs\n );\n }\n\n /** @internal */\n public getPanelSectionDef(section: StagePanelSection) {\n switch (section) {\n case StagePanelSection.Start: {\n return this._start;\n }\n case StagePanelSection.End: {\n return this._end;\n }\n }\n }\n}\n\n/** @internal */\nexport class StagePanelSectionDef extends WidgetHost {\n /** @internal */\n public initializeFromConfig(config: StagePanelSectionConfig | undefined) {\n config?.forEach((widgetConfig) => {\n const widgetDef = WidgetDef.create(widgetConfig);\n this.addWidgetDef(widgetDef);\n });\n }\n}\n\n/** @internal */\nexport function toPanelSide(location: StagePanelLocation): PanelSide {\n switch (location) {\n case StagePanelLocation.Bottom:\n return \"bottom\";\n case StagePanelLocation.Left:\n return \"left\";\n case StagePanelLocation.Right:\n return \"right\";\n case StagePanelLocation.Top:\n return \"top\";\n }\n}\n\n/** @internal */\nexport const setPanelPinned: (\n nineZone: NineZoneState,\n side: PanelSide,\n pinned: boolean\n) => NineZoneState = produce(\n (nineZone: Draft<NineZoneState>, side: PanelSide, pinned: boolean) => {\n const panel = nineZone.panels[side];\n panel.pinned = pinned;\n }\n);\n\n/** @internal */\nexport function getPanelState(state: NineZoneState, side: PanelSide) {\n const panel = state.panels[side];\n return panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CACrD,WAAW,EACX,kBAAkB,CACnB;IACC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,WAAW;IAW1B,gBAAgB;IACA,iBAAiB;IAcjC,gBAAgB;IACA,oBAAoB;IAapC,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAyDzC,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,mBAAmB,CASzB;IAEF,OAAO,CAAC,4BAA4B,CAElC;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CACrD,WAAW,EACX,kBAAkB,CACnB;IACC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,WAAW;IAW1B,gBAAgB;IACA,iBAAiB;IAcjC,gBAAgB;IACA,oBAAoB;IAapC,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAyDzC,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,mBAAmB,CASzB;IAEF,OAAO,CAAC,4BAA4B,CAElC;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,SAAS;CAGlB"}
@@ -15,7 +15,6 @@ const MessageManager_1 = require("../messages/MessageManager");
15
15
  const MessageSpan_1 = require("../messages/MessageSpan");
16
16
  const UiFramework_1 = require("../UiFramework");
17
17
  const core_react_1 = require("@itwin/core-react");
18
- const classnames_1 = require("classnames");
19
18
  /** Enum for the [[MessageCenterField]] active tab
20
19
  * @internal
21
20
  */
@@ -103,7 +102,7 @@ class MessageCenterField extends React.Component {
103
102
  /* istanbul ignore else */
104
103
  if (this.state.activeTab === MessageCenterActiveTab.AllMessages ||
105
104
  this.isProblemStatus(details.priority)) {
106
- const iconClassName = (0, classnames_1.default)("icon", "notifymessage-icon");
105
+ const iconClassName = MessageManager_1.MessageManager.getIconClassName(details);
107
106
  const iconSpec = MessageManager_1.MessageManager.getIconSpecFromDetails(details);
108
107
  const message = details.briefMessage;
109
108
  tabRows.push(React.createElement(appui_layout_react_1.MessageCenterMessage, { key: index.toString(), icon: React.createElement(core_react_1.Icon, { iconSpec: iconSpec, className: iconClassName }) },